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

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

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

Разберем логику работы правил регистрации объектов (ПРО)

Проанализируем архитектуру обмена данными. Для того чтобы объект (например, Документ.ВедомостьНаВыплатуЗарплатыВБанк) попал в очередную синхронизацию, он должен быть зарегистрирован в специальной таблице — плане обмена. В типовых решениях за этот процесс отвечают Правила регистрации объектов (ПРО).

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

Проверим основные условия для автоматической регистрации

Прежде чем переходить к радикальным мерам, рассмотрим обязательные условия, без которых Ведомость не попадет в обмен:

  1. Статус проведения: Документ обязательно должен быть проведен. Просто записанные черновики ведомостей в типовых правилах обмена ЗУП — БП к регистрации не принимаются. Если вы изменили проведенную ведомость, но не перепровели её, регистрация может не обновиться.
  2. Месяц выплаты: Это ключевой реквизит. Если в настройках синхронизации установлена дата начала выгрузки данных (например, с 01.01.2023), а в новой ведомости по ошибке указан МесяцВыплаты — декабрь 2022, документ будет проигнорирован.
  3. Состояние «Готов к выплате»: В некоторых конфигурациях и кастомизированных правилах проверяется наличие отметки о том, что ведомость окончательно сформирована.

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

Рассмотрим ситуацию, когда бухгалтеры создают новую ведомость путем копирования предыдущей. Это частая практика, которая, однако, может приводить к техническим коллизиям в механизме регистрации изменений. При копировании объекта платформа 1С иногда не инициирует событие ПриЗаписи так, как этого ожидают правила обмена, или внутренние идентификаторы версии данных не обновляются корректно.

Если вы столкнулись с тем, что скопированная ведомость не уходит в БП, попробуйте следующий алгоритм:

  1. Отмените проведение ведомости.
  2. Внесите любое незначительное изменение (например, добавьте пробел в комментарий).
  3. Запишите и снова проведите документ.

Этот цикл действий принудительно вызывает обработчики регистрации изменений в плане обмена.

Решение проблемы через перезагрузку правил синхронизации

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

Пошаговая инструкция по обновлению правил:

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

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

Использование инструментов технического контроля

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

Рассмотрим, как это сделать:

В окне синхронизации нажмите на иконку «Состав отправляемых данных» (выглядит как два листка бумаги). Найдите в списке объект Ведомость на выплату зарплаты.... Если количество объектов равно нулю, вы можете нажать правую кнопку мыши и выбрать Зарегистрировать изменения всех объектов этого типа.

Однако помните, что это разовое решение. Если вам приходится делать это постоянно, значит, проблема кроется либо в «Дате начала выгрузки» в настройках обмена, либо в том, что МесяцВыплаты в документах относится к уже закрытому периоду.

Программная проверка регистрации (для администраторов)

Посмотрим на пример того, как можно программно проверить, зарегистрирован ли конкретный объект для узла обмена. Это может быть полезно, если вы пишете внешнюю обработку или расширение для диагностики:


// Пример проверки регистрации объекта в плане обмена
УзелОбмена = ПланыОбмена.ЗарплатаБухгалтерия30.НайтиПоНаименованию("НазваниеВашегоУзла");
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, 1); // 1 - номер сообщения

Пока ВыборкаИзменений.Следующий() Цикл
    Если ТипЗнч(ВыборкаИзменений.Объект) = Тип("ДокументСсылка.ВедомостьНаВыплатуЗарплатыВБанк") Тогда
        Сообщить("Документ " + ВыборкаИзменений.Объект + " зарегистрирован для выгрузки.");
    КонецЕсли;
КонецЦикла;

Используя этот код, можно убедиться, видит ли платформа изменения на уровне ядра, или проблема находится исключительно в логике правил XDTО.

Резюме и рекомендации

Для стабильной работы синхронизации ведомостей между ЗУП и БП придерживайтесь следующих правил:

Таким образом, мы выяснили, что отсутствие регистрации — это чаще всего не программная ошибка, а срабатывание защитных фильтров правил регистрации, которые можно «сбросить» через обновление настроек обмена.

← На главную