1с 8 запрет на редактирование модулей поддержка

Обновлено: 06.07.2024

Речь пойдет о новых возможностях по кастомизации конфигурации в платформе 1С:Предприятие 8.3.9.

Чистая доработка

Сегодня мы рассмотрим внешние инструменты для доработки типовых решений.

Это позволит вносить достаточно серьезные изменения, НЕ снимая конфигурацию с поддержки.

Причем сама конфигурация остается оригинальной и обновиться на новый релиз проблем не составляет.

Это решается с помощью расширений конфигурации на платформе 8.3.9.

Видео

В видео мы рассмотрим:

Хотите больше?

Эта тема детально раскрыта в курсе:

Не откладывайте свое обучение!

Комментарии / обсуждение (110):

Может кто подскажет как решить следующую проблему:

При заимствовании в расширение справочника Номенклатуры из типовой конфигурации УТ и добавлении в метаданные справочника своей табличной части Расш_Таблица сразу же возникает проблема при попытке в режиме предприятия скопировать уже существующий элемент справочника выдает ошибку:

Перебрасывает в Конфигураторе на:

Как можно обойти эту беду?

Добрый день!
Такая же ошибка возникнет, если табличную часть добавить в самой конфигурации, без расширения.

В указанной строке кода нужно новую ТЧ указать в методе ЗаполнитьЗначениеСвойств в четвертом параметре (список полей-исключений).
А для заполнения этой новой ТЧ при копировании дописать код (или реализовать другую логику, если нужно не просто скопировать строки ТЧ, а преобразовать их):

Объект.Расш_Таблица.Загрузить(ИсточникКопирования.Расш_Таблица.Выгрузить());

Все эти действия можно сделать в расширении.

Спасибо за ответ? Если я создаю новый справочник в расширении и в нем таблицу, то таких проблем не возникает. Эта беда в заимствованном справочнике.

Пока не могу сообразить как в расширении это сделать, чтобы не лезть в код конфигурации? Можете подсказать?

1. Да, это проблема в конкретном справочнике Номенклатура в конкретной конфигурации, которая содержит указанный код.
2. Можно использовать аннотацию Вместо или ИзменениеИКонтроль.

Это не оговорка, всё верно.
Речь о том, что в 8.3.9 нельзя было добавлять реквизиты в объекты конфигурации. Например, нельзя добавить реквизит в документ или справочник, нельзя добавить табличную часть и так далее.
В данном же примере был добавлен реквизит в форму расширение. Это просто поле формы, оно не хранится в БД и заполняется программным образом.

Был добавлен реквизит формы, а не реквизит объекта.

Это был условный код.
Для простоты мы не стали заполнять реквизит формы.
В любом случае в 8.3.9 не было возможности создавать реквизиты в расширениях, поэтому скрытую фичу здесь можно не искать :)

Переопределение свойств заимствованных объектов в расширениях недопустимо в режиме совместимости 8.3.8 и ниже, который сейчас используется в типовой УТ.

Добрый день!
В этом видеоуроке показывается, что в корневом объекте конфигурации устанавливается режим совместимости Не использовать.
А в типовой УТ 11 действительно пока еще используется режим совместимости Версия 8.3.8. Думаю, что это вопрос времени.

Добрый день, Кирилл!

Евгений, спасибо!
В тех. поддержку 1С написал, посмотрю, что ответят. Свежая (на 08.12.2016) версия платформы (8.3.9.1850) не помогла :)

Ок, сообщайте полученный ответ :)

Отлично, ждем релиза.

У меня уже релиз платформы 8.3.11.3034, а проблемы все те же:(

Добрый день.
Вопрос по расширениях, если кто сталкивался, помогите.

Есть подозрение что фоновое задание их не использует. Может как то можно настроить? Не понимаю, это нереально, или я просто что то не так делаю.

Вопрос снят.
Расширение работало в безопасном режиме, в этом и была проблема.

Короче есть глюк для файлового варианта фонки не видят расширения, в клиет серверном видит, не знаю может исправят скоро.

Ребята, а кто нибудь знает, как расширения с применением хранилища разрабатывать? С приходом 8.3.9 расширения стали очень перспективными, но в отсутсвие средства групповой разработки кажется бесполезным.

Добрый день!
На данный момент нельзя работать с расширением через хранилище. Такой вариант не поддерживается. На партнерском форуме разработчики платформы отвечали, что рассматривают возможность добавления этой возможности.

Опыта использования таких систем нет. Встречал упоминания об использовании Mercurial для этих целей.

Добрый день, Евгений!

Вопрос снимается.
Надо было настроить профиль безопасности в консоли и связать с Базой

Вопрос: это я делаю что-то не так, или поведение системы так задумано?

Если это ошибка платформы, она должна как-нибудь ругнуться, а тут не ругается. Может, есть какие-то хитрости при обращении к реквизитам через ссылку в расширяющей форме?

Ясно, спасибо. Значит чуда не произошло))
Я про то, что через расширения структуру конфигурации не изменишь.

Здравствуйте. видео останавливается нв 3 секунде. Не подскажите, с чем это может быть связано.

Добрый день!
Проверка видео в нескольких браузерах не выявила никаких проблем.
После чистки кэша или при просмотре в другом браузере ошибка сохраняется?

Спасибо. Видео пошло.

Здравствуйте! Посмотрел видео, тяжело вздохнул! Как же я отстал от жизни! Сижу в древней, переписанной УПП. До УФ/БСП дальше, чем до Китая! И просвета не видно!! :(

1С:Предприятие 8.3 (8.3.9.1850) Управление торговлей, редакция 11.2 (11.2.3.175)
Я наверное что то пропустил, у меня не получилось снять с поддержки только один объект конфигурации и не получилось создать документ в расширении конфигурации.

1. Простите, не получилось поставить режим «Объект поставщика редактируется с сохранением поддержки» только для одного объекта.
2. Буду ждать курс

Сразу могу сказать что задействован механизм доп.сведений, но оооочень нестандартным и возможно неоптимальным образом, зато это позволило использовать в добавленном функционале данные любых ссылочных и примитивных типов, и любой структуры.

Спасибо за видео! Очень познавательно!

Теперь весь пласт доработок можно вынести в расширение. Конфигурацию все равно придется с замочка снять, для добавления реквизитов и новых объектов. Но это совсем не проблема, т.к. не влияет на обновление типовой.

Да, можно считать, что это прорыв в разработке на 1С :)

Ну в 8.3.9 наконец-то добавили возможность изменять модули объектов, до этого, имхо, ничего серьезного с помощью расширения сделать было нельзя, так как все равно лезешь либо в код общих модулей либо в код модулей объектов, теперь в целом, можно добавлять в конфигурацию новые реквизиты и объекты метаданных, а существующие дорабатывать с помощью расширений, но пока лично мой опыт использования расширений: сыровато. Ждем дальнейших улучшений и усовершенствований.

Я буквально 2 месяца назад ради интереса пример делал с хранением данных(таблицы значений) в доп реквизите в формате json\xml\и другие варианты. На хабре многии не поняли(не все прочитали) для чего это может быть нужно и устроили бурный холивар(ну там впринципе 1с красная тряпка), на инфостарте вопросов не задавали. И вот Вы пишите пример который как раз под этот метод. ;)

1 При открытии формы считываем из доп реквизита и прячем доп реквизит хранящий данные.
2 При закрытии преобразовываем данные в формат хранения и сравниваем изменились ли они и если да переписываем данные доп реквизита.

Поэтому вероятность этого события не велика.

Блокировка данных объекта для редактирования из кода

Область применения: управляемое приложение, обычное приложение.

1.1. Прежде чем изменять существующий объект информационной базы из кода на встроенном языке, следует предварительно его заблокировать (установить «блокировку данных для редактирования» или «объектную блокировку»), тем самым, во-первых, убедиться, не заблокирован ли он другими объектами, во-вторых, попытаться предотвратить его изменение другими пользовательскими сеансами (или другими экземплярами объекта в этом же сеансе).

В противном случае, если при изменении и записи из встроенного языка не устанавливать блокировку объекта на время редактирования, то может возникнуть, например, ситуация, когда пользователь не сможет сохранить свои изменения, если эти же самые данные были конкурентно изменены в другом сеансе.

При этом блокировка данных для редактирования не запрещает запись заблокированных данных в других пользовательских сеансах (или в других экземплярах объекта в этом же сеансе), а лишь не позволяет нескольким объектам одновременно установить блокировку одних и тех же данных. В отличие от транзакционных блокировок данных, пессимистическая блокировка данных для редактирования предназначена для обеспечения конкурентной работы пользователей с объектами информационной базы 1С:Предприятия (элементами справочников, документами и т.д.) Подробнее о блокировке данных для редактирования см. документацию по платформе 1С:Предприятие 8 .

1.2. Для блокировки данных для редактирования из встроенного языка следует вызывать метод объектов Заблокировать или метод глобального контекста ЗаблокироватьДанныеДляРедактирования .

«Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено. Ошибка блокировки объекта. Объект уже заблокирован: компьютер: <имя компьютера>, пользователь: <имя пользователя>, сеанс: <номер сеанса>, начат: <дата и время>, приложение: <тип клиентского приложения>».

Аналогичным образом, можно воспользоваться методом глобального контекста ЗаблокироватьДанныеДляРедактирования :

Пример № 2. Требуется пропустить обработку объекта, если он заблокирован для редактирования. При очередном вызове процедуры (например, из фонового или регламентного задания) будет предпринята повторная попытка изменения объекта.

ФайлОбъект = ТекущаяВерсия.ПолучитьОбъект();
// Выполнить блокировку объекта от изменения другими режимами или пользователями.
УстановитьПолноеНаименование = Истина;
Попытка
ФайлОбъект.Заблокировать();
Исключение
// в случае блокировки - не выполнять изменение объекта
УстановитьПолноеНаименование = Ложь;
// записать предупреждение в журнал регистрации
ЗаписьЖурналаРегистрации(НСтр("ru = 'Фоновое обновление имен файлов'", Метаданные.ОсновнойЯзык.КодЯзыка),
УровеньЖурналаРегистрации.Предупреждение,, ФайлОбъект, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;

// Пропустить обработку объекта, если он заблокирован.
Если УстановитьПолноеНаименование Тогда
ФайлОбъект.ПолноеНаименование = ПолноеНаименование;
ФайлОбъект.Записать();
КонецЕсли;

1.3. При редактировании данных в формах, платформа 1С:Предприятие автоматически устанавливает блокировку объекта, указанного в качестве основного реквизита формы.

2. Не следует проверять блокировку объектов для редактирования в следующих случаях:

Настройка поддержки

В 1С:Предпрятии 8 существуют два режима поддержки конфигураций - полная поддержка конфигурации поставщика и поддержка с возможностью редактирования. В режиме полной поддержки пользователь всегда работает с точной копией конфигурации поставщика последней версии. Главное преимущество данного варианта - полностью автоматический процесс обновления, недостаток - невозможность адаптации конфигурации поставщика под нужды пользователя. Может возникнуть вопрос, в чем заключается действие механизма поддержки в этом случае, какие возможности он дает по сравнению с "ручным" получением новых версий конфигурации поставщика. Таких преимуществ два.

  • Интегрированная проверка версий конфигурации. Пользователь не сможет ошибочно загрузить другую конфигурацию, что может привести к потере данных.
  • Возможность использовать для обновления файлы *.cfu , которые имеют небольшой размер и хорошо приспособлены для передачи по низкоскоростным каналам связи.

Начальный режим поддержки

Начальный режим зависит от способа постановки конфигурации на поддержку. Таких способов два. Пользователь приобретает дистрибутив конфигурации поставщика и далее устанавливает его на свой компьютер как новую информационную базу или пользователь загружает конфигурацию поставщика в существующую конфигурацию, использую команду конфигуратора "Загрузить конфигурацию из файла ". В этом случае начальным режимом является полная поддержка конфигурации.

Другая возможность постановки на поддержку состоит в объединении пользовательской конфигурации с дистрибутивом поставщика. В этом случае начальным режимом является поддержка с возможностью редактирования.

Определение текущего режима и переключение между режимами

Для определения текущего режима поддержки (как и для всех других операций, связанных с настройкой поддержки конфигурации) следует воспользоваться диалогом " Настройка поддержки " меню " Конфигурация - Поддержка ". В верхней строке диалога отображается текущий режим. Там же находится кнопка включения возможности изменений для перевода в соответствующий режим. Обратной возможности перевода в режим полной поддержки не существует. Стоит особо отметить, что для редактирования конфигурации поставщика достаточно включить возможность изменений, снимать конфигурацию с поддержки не требуется.

Общее управление поддержкой конфигурации

В диалоге настройки поддержки, помимо смены режима, можно полностью отказаться от поддержки (кнопка "Снять с поддержки"), подготовить копию конфигурации поставщика последней версии (кнопка "Сохранить в файл"), настроить языки поддержки конфигурации, правила поддержки конкретных объектов, и вызвать диалог сравнения и объединения с конфигурацией поставщика.

Языки поддержки конфигурации

В 1С:Предприятии 8 существует возможность сравнения конфигураций как целиком, так и по отдельным выбранным языкам. Предположим, что сравниваются две конфигурации (это могут быть как конфигурация пользователя и конфигурация поставщика, так и любая другая комбинация). Первая конфигурация содержит русский и украинский языки, а вторая конфигурация только русский язык. Если установить режим сравнения только по русскому языку, строки первой конфигурации, которые содержат значения на украинском языке не будут помечаться как различающиеся, если соответствующие значения на русском языке совпадают. Настройка языков сравнения осуществляется в соответствующем диалоге, но в настройке поддержки можно указать значения по умолчанию, которые будут использоваться как при сравнении с конфигурацией поставщика, так и и при обновлении конфигурации.

Настройка правил поддержки объектов

Удаление объектов поставщика

Для удаления пользователем объекта поставщика, соответствующий объект и все его подчиненные должны иметь правило "Объект поставщика снят с поддержки". В диалоге настройки поддержки соответствующее правило можно установить рекурсивно (для объекта и всех его подчиненных). Так же поддерживается установка правил для группы объектов или для группы объектов со всеми их подчиненными.

Взаимодействие с групповой разработкой

Вся настройка поддержки конфигурации хранится в корне конфигурации. Для любого изменения, связанного с настройкой поддержки, а также для обновления конфигурации, корень должен быть захвачен в хранилище конфигурации. Впрочем, для выполнения обновления конфигурации настоятельно рекомендуется захватить в хранилище всю конфигурацию.

Возврат к объекту поставщика

Для возврата к объекту поставщика следует воспользоваться диалогом сравнения и объединения с конфигурацией поставщика. Важно отметить одну особенность. Если объект поставщика был удален пользователем, то при его копировании из конфигурации поставщика в пользовательскую конфигурацию будет добавлен объект, логически идентичный объекту поставщика, но с другим внутренним идентификатором. Если в конфигурации базы данных еще существовал "предыдущий" вариант данного объекта, то при обновлении конфигурации базы данных сопоставление произведено не будет, что может привести к потере данных. Если объект поставщика был непродуманно удален, а в конфигурации базы данных он еще присутствует, следует вернуться к конфигурации базы данных, а не выполнять объединение с конфигурацией поставщика.

В типовых конфигурациях 1С есть замечательный инструмент, позволяющий запретить изменения документов в закрытых периодах. Обзор и инструкцию по нему вы можете прочитать по ссылке . Но иногда все таки возникает необходимость проведения операций задним числом или исправления уже введенных данных. Поэтому, какой-то период всегда держат открытым для редактирования. Как правило, это текущий месяц или квартал.

При работе вы или другие пользователи часто открываете старые документы, для того, чтобы что-то посмотреть или проверить. Иногда, особенно в конце периода, при подготовке отчетности случайно можно поменять данные. Так же можно просто « случайно » перепровести старый документ. Напомню, что дата запрета у нас на текущий период еще не установлена. Изменения документов, включая даже простое перепроведение документа, могут привести к изменениям, которые сложно отловить, особенно если сразу не обратили на это внимание.

Рассмотрим несколько способов решения данной проблемы.

Использование даты запрета

В программе можно настроить автоматическое изменение даты запрета. Минусы данного способа очевидны — пользоваться таким строгим ограничением не очень удобно, так как при необходимости внесения изменений в текущем периоде — придется отключать контроль, а потом включать заново.

Правильное закрытие документов

Можно развить в себе и в сотрудниках привычку закрывать документы не кнопкой «Провести и закрыть», а как это принято говорить «крестиком». Т.е. пиктограммой в правом верхнем углу формы. Предположим, что за себя вы можете поручиться, то за других сотрудников, работающих в базе, сделать это будет сложно.

Использование расширения

Я подготовил специальное расширение для типовых конфигурации, которое позволяет решать данную проблему альтернативным способом.

Расширение предоставляет возможность включить режим «Только просмотр» для проведенных документов. Другими словами, когда вы открываете проведенный документ, вы не можете изменять данные на форме. Для того чтобы внести изменения, необходимо будет найти этот документ в списке и вызвав правой клавишей мыши контекстное меню, отменить его проведение. Таком образом, случайная ошибка при этом практически исключается.

Чтобы быстро найти нужный документ в списке можно использовать следующий метод: В открытой форме необходимого документа выбрать команду Еще. В открывшемся меню выбрать команду Показать в списке . Далее откроется список, текущей строкой в котором будет искомый документ. И уже здесь можно отменить проведение указанным выше способом

Расширение добавляет на главную страницу программы в раздел сервис отдельную команду для вызова формы настройки. Доступ к настройкам имеют только пользователи с полными правами.

Есть несколько режимов работы. Самый первый режим отключает контроль для всех документов. Т.е. расширение ничего не делает и система работает в штатном режиме . Он может пригодится для временного отключения расширения.

Второй режим, включает контроль для всех документов. Любые проведенные документы будут открываться в режиме «Только просмотр»

Третий режим позволяет указать виды документов, для которых будет производиться контроль. Например, вы можете выбрать только банковские документы. Здесь все зависит от особенностей учета в Вашей организации. Этот вариант является наиболее предпочтительным.

В заключение рассмотрим плюсы и минусы расширения.

  • дополнительные возможности контроля изменения документов
  • подходит для разных конфигураций
  • простота настройки и подключения
  • несколько режимов работы
  • не влияет на обновления
  • для редактирования проведенного документа из списка ограничений, приходится отменять проведение
  • нельзя использовать в базовой версии

Ознакомится с возможностями данного продукта вы также можете на странице расширения.

Напоминаю, что Вы всегда можете обратиться ко мне по любым вопросам связанными с доработкой и настройкой 1С

Подписывайтесь на канал и наши группы в социальных сетях, чтобы не пропустить новые публикации.

Видео инструкцию к данному материалу можно посмотреть в моем инстаграме

Дата запрета редактирования данных — стандартная функция конфигураций 1С 8.3. Данный механизм позволяет задавать ограничения для редактирования, добавления, удаления и проведения документов ранее определенной даты. Иначе говоря, позволяет закрыть период для редактирования . Запрет можно устанавливать как в целом во всей программе. Так и по отдельным объектам, например, по организациям. Так же его можно установить для определенных пользователей.

На что влияет дата запрета

После установки запрета редактирования будет запрещено изменение, проведение и удаление документов. Таким образом, дата запрета

не позволяет записать существующий документ с датой, входящей в период запрета
запрещает сохранить новый документ с датой, входящей в период ограничений
не позволяет удалить документы, помеченные на удаление, с датой, входящей в запрещенный период

Простая настройка даты запрета

Для включения функции запрета редактирования необходимо перейти в раздел Администрирование (Администрирование и НСИ) – Настройки пользователей и прав . На открывшейся форме необходимо включить флажок Даты запрета изменения и перейти по ссылке Настроить .

Самой простой является настройка общей даты запрета для всех пользователей. При такой настройке никто, даже вы сами, не сможете изменить документы в закрытом периоде. Для их корректировки придется отключать или изменять дату запрета.

Общие ограничения по пользователям

Когда требуется назначить ограничения для определенных пользователей, необходимо перейти на вкладку По пользователям. Далее необходимо указать с помощью кнопки Подобрать нужных пользователей. Таким образом, можно настроить даты запретов в зависимости от компетенции и должности того или иного пользователя системы.

Ограничения по разделам и объектам

Важной настройкой ограничений является возможность установки запрета на определенные разделы и объекты учета. В поле Указывать дату запрета доступны следующие значения:

  • Общая дата – дата запрета задается для всех данных.
  • По разделам – для каждого раздела программы устанавливается своя дата запрета. При этом становится доступным список, в который можно добавлять Разделы и указывать для каждого раздела свое значение даты запрета.
  • По разделам и объектам – даты запрета задаются и в разрезе разделов, и в разрезе объектов. Для каждого объекта устанавливается своя дата запрета. Если выбрано это значение, то становится доступным список, в который можно добавлять объекты и указывать для каждого объекта свое значение даты запрета.

Например, способ указания по разделам и объектам , можно использовать, когда в системе ведется учет по нескольким организациям.

Читайте также: