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