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

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

При совместном использовании программных продуктов 1С:Зарплата и управление персоналом (ЗУП) и 1С:Бухгалтерия предприятия (БП / БУХ) часто возникает неприятная ситуация. Бухгалтерия уже сдала отчетность, период (например, апрель) закрыт, и в базе БУХ установлена дата запрета изменений на 30 июня. Однако расчетчик в ЗУП решает внести изменения в документ Отражение зарплаты в бухучете за апрель. После очередного сеанса синхронизации данных этот документ в БУХ успешно перезаписывается новыми данными, искажая закрытую отчетность. Почему стандартная защита не сработала и как надежно закрыть эту "дыру" без доработки конфигурации? Разберем эту проблему подробно по шагам.

Выясняем причину: почему дата запрета изменений пропускает корректировки при обмене?

Для начала проанализируем поведение платформы 1С:Предприятие 8.3. Большинство пользователей уверены, что если в базе БУХ установлена общая Дата запрета изменения данных, то система абсолютно защищена от любых корректировок задним числом. На самом деле это не совсем так.

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


// При обмене данными система включает программный режим записи
ОбменДанными.Загрузка = Истина;

Этот режим сообщает платформе, что документ переносится из другой базы, где он уже прошел все необходимые проверки и является корректным. При программной записи с установленным свойством ОбменДанными.Загрузка стандартные подписки на события и триггеры проверки даты запрета изменений платформой игнорируются, чтобы не нарушать целостность обмена данными. Именно поэтому измененный документ за апрель из ЗУП беспрепятственно затирает данные в закрытом периоде БУХ.

Коварство «Даты запрета загрузки данных» и пометка документов на удаление

Для защиты закрытых периодов именно от автоматической загрузки разработчики 1С создали отдельный инструмент — Дата запрета загрузки данных (ее можно настроить в БУХ в меню Администрирование — Синхронизация данных). Однако при ее включении пользователи часто сталкиваются со странным поведением системы, которое детально описано на форумах.

Рассмотрим ситуацию: в БУХ включили дату запрета загрузки по 30 апреля. В ЗУП изменили апрельский документ Отражение зарплаты в бухучете и запустили обмен. В результате:

  1. Документ в БУХ не обновился, а в Журнале регистрации появилась ошибка: Отражение зарплаты в бухучете в запрещенном периоде невозможно заменить загружаемыми данными.
  2. При этом сам существующий документ в БУХ внезапно помечается на удаление!

Почему так происходит? Это известная особенность логики работы правил обмена (особенно при использовании современного формата обмена EnterpriseData). Когда документ в ЗУП изменяется, система регистрирует его новую версию для отправки. БУХ при получении пакета видит, что этот документ относится к закрытому периоду загрузки, и блокирует его перезапись новыми данными. Но из-за коллизии версий (программа-приемник понимает, что старая связь между объектами нарушена, а новую принять нельзя) или особенностей очистки устаревших зарегистрированных связей, существующий в БУХ документ может ошибочно получить пометку на удаление. Это ставит учет под угрозу, так как ломает проведение прошлых периодов.

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

Способ 1. Использование параметра «Дата начала использования обмена» (Самый надежный технический способ)

Чтобы предотвратить любые попытки изменения старых периодов, нам нужно технически "отрезать" их от процесса синхронизации. Для этого используется параметр ДатаНачалаИспользованияОбмена.

Рассмотрим, как это работает и как настроить этот параметр:

  1. В базе ЗУП перейдите в меню Администрирование — Синхронизация данных — Настройки синхронизации.
  2. Откройте свойства вашей настройки обмена с Бухгалтерией.
  3. Найдите поле Дата начала использования обмена (или "Дата начала обмена") и установите туда дату начала текущего открытого периода (например, 01.07.2018).
  4. Выполните аналогичную настройку на стороне БУХ.

После установки этого параметра любые изменения документов за более ранние периоды (в нашем примере — за апрель) программа ЗУП просто проигнорирует при регистрации изменений. Документ за апрель физически не будет включен в файл обмена и никак не сможет повлиять на данные в базе БУХ.

Способ 2. Симметричная установка дат запрета изменений в обеих базах (Методический подход)

Фирма «1С» рекомендует решать данную проблему в первую очередь организационным путем. Синхронизация — это зеркальное отражение учета в двух базах. Если период закрыт в БУХ, он должен быть закрыт и в ЗУП.

Проанализируем этот подход:

Способ 3. Мониторинг коллизий через раздел «Предупреждения» в БУХ

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

Разберем, как восстановить порядок в базе БУХ:

  1. Перейдите в меню Администрирование — Синхронизация данных.
  2. Нажмите на ссылку Предупреждения.
  3. В открывшемся окне перейдите на вкладку Непринятые по дате запрета.
  4. Здесь вы увидите список всех документов (включая наше Отражение зарплаты в бухучете за апрель), которые система отказалась перезаписывать.
  5. Вы можете проанализировать изменения и принять решение: либо окончательно отклонить изменения (чтобы вернуть документу исходное состояние и снять ошибочную пометку на удаление), либо временно сдвинуть дату запрета и нажать кнопку Принять версию, если изменения действительно были необходимы.

Способ 4. Методологически верное исправление ошибок в ЗУП

Часто корни проблемы лежат в неверных действиях пользователей. Исправлять документы прошлых закрытых периодов "прямым" редактированием задним числом категорически не рекомендуется. Для этого в решениях 1С предусмотрены механизмы исправления текущим периодом.

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

  1. В ЗУП вместо изменения апрельского документа создайте новый документ Отражение зарплаты в бухучете в текущем открытом периоде (например, в июле).
  2. Заполните его сторнирующими (отрицательными) записями по старой ошибочной аналитике и добавьте новые правильные начисления положительными суммами.
  3. При очередной синхронизации этот корректирующий документ без проблем перенесется в БУХ в открытый период (июль), не затрагивая закрытую отчетность за апрель и не вызывая никаких ошибок блокировки или удаления.

Комбинируя эти методы (в первую очередь, установку симметричных дат запрета изменений и использование параметра ДатаНачалаИспользованияОбмена), вы сможете полностью защитить базу Бухгалтерии от нежелательных изменений со стороны ЗУП без необходимости изменять код конфигурации и снимать ее с поддержки.

← На главную