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