Почему при синхронизации ЗУП и БП обновляются документы в закрытом периоде?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При работе с программными продуктами 1С:Предприятие, особенно в связке 1С:Зарплата и управление персоналом (ЗУП) и 1С:Бухгалтерия предприятия (БП), часто возникает ситуация, когда после закрытия месяца и установки даты запрета редактирования данные в «закрытом» периоде все равно изменяются после проведения очередной синхронизации. Это вызывает обоснованное беспокойство у бухгалтеров и системных администраторов. В рамках данной статьи мы подробно разберем, почему стандартные механизмы защиты могут не срабатывать и как правильно настроить систему, чтобы исключить нежелательные изменения данных.

Разберем различие между датой запрета редактирования и датой запрета загрузки

Первое, что нам необходимо осознать: в современных конфигурациях на базе БСП (Библиотеки стандартных подсистем) реализовано два принципиально разных механизма контроля. Рассмотрим их подробнее:

  1. Дата запрета изменения (редактирования): Этот механизм предназначен для контроля действий пользователей непосредственно в интерфейсе программы. Он предотвращает ручное создание, изменение или удаление документов и записей регистров.
  2. Дата запрета загрузки данных: Этот механизм создан специально для планов обмена. Он находится в разделе Администрирование — Синхронизация данных — Даты запрета загрузки данных. Если эта настройка не задана или сконфигурирована неверно, система будет считать источник данных (например, ЗУП) «доверенным» и позволит обновить объекты в закрытом периоде, игнорируя общую дату запрета редактирования.

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

Проанализируем влияние параметра ОбменДанными.Загрузка

Выясним техническую причину, по которой документы «проскакивают» через защиту. При выполнении синхронизации программный код 1С устанавливает объекту специальный признак:


Объект.ОбменДанными.Загрузка = Истина;
Объект.Записать(РежимЗаписиДокумента.Запись);

Рассмотрим, к чему это приводит. На уровне платформы установка флага Загрузка = Истина отключает большинство проверок в подписках на события и в самих модулях объектов (например, в процедуре ПередЗаписью). Это делается для того, чтобы обеспечить полную идентичность данных между двумя базами. Если в ЗУП документ был изменен, платформа стремится максимально точно повторить это состояние в БП.

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

Выясним роль настроек в узле обмена и прав пользователя

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

Также немаловажным фактором является учетная запись, под которой выполняется фоновое задание синхронизации. Проанализируем настройки прав: если пользователь, осуществляющий обмен (или регламентное задание), обладает Полными правами или входит в роль Администратор, то для него проверки даты запрета могут просто игнорироваться. Нам нужно проверить в настройках даты запрета опцию Распространять на пользователей с полными правами. Если она выключена, администратор (и обмен под ним) сможет менять всё что угодно.

Решение проблемы: пошаговая инструкция

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

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Проверим флаг Даты запрета загрузки. Если он выключен — включим.
  3. Нажмем гиперссылку Настроить и установим дату для нужного узла обмена (базы ЗУП). Рекомендуется использовать режим По разделам и объектам, чтобы точно указать дату для раздела Бухгалтерский учет или Зарплата.
  4. В базе-источнике (ЗУП) откроем Состав отправляемых данных (через монитор синхронизации). Если там висят зарегистрированные документы прошлых периодов, их необходимо удалить из регистрации вручную. В противном случае ЗУП будет пытаться отправить их при каждой синхронизации, создавая нагрузку и риск изменения данных.
  5. Проверим настройки пользователя, под которым работает регламентное задание обмена. Если у него есть полные права, убедимся, что дата запрета распространяется и на него.

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

← На главную