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

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

В процессе эксплуатации типовых решений «1С:Зарплата и управление персоналом 8» и «1С:Бухгалтерия предприятия 8» пользователи часто сталкиваются с ситуацией, когда данные по начислениям и удержаниям (например, по исполнительным листам) переносятся не полностью. Типичный сценарий: в ЗУП заведено новое физическое лицо, произведены расчеты, документы зарегистрированы к обмену, но после синхронизации в бухгалтерской базе в соответствующих документах вместо ФИО сотрудника отображается надпись «Объект не найден». Рассмотрим подробно, почему так происходит, и проанализируем доступные способы решения этой проблемы.

Причина проблемы: Механизм «Выгрузки при необходимости»

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

  1. Документ ОтражениеЗарплатыВБухучете при сводном режиме не содержит в своих табличных частях прямых ссылок на элементы справочника ФизическиеЛица (кроме специфических случаев, таких как удержания).
  2. В правилах регистрации для справочника ФизическиеЛица установлен режим «Выгружать при необходимости».
  3. Механизм обмена считает объект «необходимым» только в том случае, если на него ссылается какой-либо другой выгружаемый объект (например, документ).
  4. Поскольку в сводном документе ссылки на новое физическое лицо отсутствуют (или фильтры правил их игнорируют), система просто «выбрасывает» это физлицо из пакета выгрузки, даже если оно было зарегистрировано к обмену вручную.

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

Способ 1: Временное изменение детализации обмена

Если нам необходимо разово «протолкнуть» новых сотрудников в бухгалтерскую базу без внесения изменений в конфигурацию или правила, воспользуемся изменением настроек синхронизации. Разберем этот процесс по шагам:

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

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

Способ 2: Редактирование правил регистрации объектов (XML)

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

Проанализируем необходимые изменения в XML-структуре файла:

  1. Выгрузим правила регистрации из состава синхронизации (или найдем их в составе конфигурации).
  2. Найдем блок, отвечающий за справочник ФизическиеЛица. Обычно он ищется по коду или наименованию:
    
    <Код>000000027</Код>
    <Наименование>Физические лица</Наименование>
    
  3. Внутри этого блока нам нужно найти и нейтрализовать условия, которые ограничивают выгрузку. В частности, это обработчики ОтборПоСвойствамПланаОбмена и РежимВыгрузкиПриНеобходимости.
  4. Заменим существующий сложный код в правиле регистрации на пустые теги отборов. Это заставит систему выгружать физлицо всегда, когда оно зарегистрировано, независимо от наличия ссылок на него в документах:
    
    <ОтборПоСвойствамПланаОбмена/>
    <ОтборПоСвойствамОбъекта/>
    
  5. Также рекомендуется проверить обработчик ПередОбработкой. Если там стоит запрет на выгрузку групп (папок), сохраним его, чтобы не переносить пустую иерархию:
    
    Если Объект.ЭтоГруппа Тогда
        Отказ = Истина;
    КонецЕсли;
    

После внесения изменений загрузим обновленный файл RegistrationRules.xml обратно в настройку синхронизации через меню Загрузить правила регистрации объектов.

Способ 3: Использование обработки «Регистрация изменений для обмена»

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

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

Важное замечание: Если вы используете Способ 3 без реализации Способа 2, ручная регистрация может не помочь, так как фильтр «Выгружать при необходимости» все равно отсечет объект непосредственно в момент формирования XML-пакета выгрузки.

Особенности работы с надстройками (БИТ-Финанс, ЦУЛ)

Если ваша бухгалтерская база не является «чистой» типовой конфигурацией (например, содержит БИТ-Финанс), обратим внимание на дополнительные аналитики. В таких базах часто на счетах 70 или 76.05 установлены дополнительные субконто. Если синхронизация не передает данные для заполнения этих субконто, документ Отражение зарплаты в бухучете может не проводиться в БП или выдавать ошибки заполнения даже после того, как физлицо будет успешно перенесено. В этом случае потребуется доработка правил конвертации данных (ExchangeRules.xml) для сопоставления аналитик БИТ-Финанса с данными из ЗУП.

Резюме

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

← На главную