При работе в 1С:ERP часто возникают задачи, требующие корректировки документов в закрытом периоде. Стандартный механизм Даты запрета изменения (ДЗИ), реализованный в БСП, надежно защищает данные, однако иногда требуется точечно разрешить редактирование конкретного документа. Рассмотрим, почему стандартные способы не всегда работают и как решить эту задачу правильно. Для гибкой настройки исключений без изменения программного кода можно использовать расширение для управления датами запрета изменений в разрезе метаданных и пользователей.
Многие разработчики пытаются использовать ДополнительныеСвойства объекта для отключения контроля, добавляя свойство ПропуститьПроверкуЗапретаИзменения. Однако в современных версиях 1С:ERP, особенно в казначейских документах, проверка происходит не только при записи самого объекта, но и при записи наборов движений по регистрам накопления. Механизм БСП выполняет контроль непосредственно перед записью набора записей в базу данных, и в этот момент контекст ДополнительныхСвойств документа может быть утрачен или проигнорирован системой.
Если документ «Заявка на расходование денежных средств» блокируется из-за движений по регистрам (например, РасчетыПоФинансовымИнструментам), эффективным способом является принудительный пропуск проверки в соответствующем модуле БСП.
Для реализации этого метода необходимо внести изменения в процедуру ПроверитьДатуЗапретаПоТаблицеИзменений, которая отвечает за проверку соответствия даты документа установленному запрету. Ниже приведен пример того, как программно исключить конкретный тип документа:
Процедура ПроверитьДатуЗапретаПоТаблицеИзменений(Механизмы, Документ, МенеджерВременныхТаблиц, Отказ) Экспорт
Если ТипЗнч(Документ) = Тип("ДокументОбъект.ЗаявкаНаРасходованиеДенежныхСредств") Тогда
Возврат;
КонецЕсли;
// Далее следует стандартный код проверки БСП...
КонецПроцедуры
Хотя предложенный код решает поставленную задачу, важно учитывать следующие рекомендации при внедрении:
ПроверитьДатуЗапретаПоТаблицеИзменений в расширении.Применяя этот подход, вы сможете гибко управлять доступом к редактированию документов, сохраняя при этом целостность системы и обеспечивая чистоту обновлений конфигурации.