В процессе эксплуатации типовых решений «1С:Зарплата и управление персоналом 8» и «1С:Бухгалтерия предприятия 8» пользователи часто сталкиваются с ситуацией, когда данные по начислениям и удержаниям (например, по исполнительным листам) переносятся не полностью. Типичный сценарий: в ЗУП заведено новое физическое лицо, произведены расчеты, документы зарегистрированы к обмену, но после синхронизации в бухгалтерской базе в соответствующих документах вместо ФИО сотрудника отображается надпись «Объект не найден». Рассмотрим подробно, почему так происходит, и проанализируем доступные способы решения этой проблемы.
Основная причина кроется в настройках синхронизации данных, а именно в выборе режима детализации. Когда в настройках обмена указано «Сводно по сотрудникам», типовые правила регистрации объектов работают по следующей логике:
ОтражениеЗарплатыВБухучете при сводном режиме не содержит в своих табличных частях прямых ссылок на элементы справочника ФизическиеЛица (кроме специфических случаев, таких как удержания).ФизическиеЛица установлен режим «Выгружать при необходимости».Проанализируем три основных способа решения задачи: от простого административного до технического вмешательства в правила обмена.
Если нам необходимо разово «протолкнуть» новых сотрудников в бухгалтерскую базу без внесения изменений в конфигурацию или правила, воспользуемся изменением настроек синхронизации. Разберем этот процесс по шагам:
Этот метод хорош тем, что не требует навыков программирования, однако его неудобно использовать постоянно, если новые сотрудники появляются регулярно.
Рассмотрим более продвинутый способ, который позволит автоматизировать выгрузку физлиц навсегда. Для этого нам потребуется отредактировать файл правил регистрации RegistrationRules.xml. Этот файл управляет тем, какие объекты и при каких условиях помечаются к выгрузке.
Проанализируем необходимые изменения в XML-структуре файла:
ФизическиеЛица. Обычно он ищется по коду или наименованию:
<Код>000000027</Код>
<Наименование>Физические лица</Наименование>
ОтборПоСвойствамПланаОбмена и РежимВыгрузкиПриНеобходимости.
<ОтборПоСвойствамПланаОбмена/>
<ОтборПоСвойствамОбъекта/>
ПередОбработкой. Если там стоит запрет на выгрузку групп (папок), сохраним его, чтобы не переносить пустую иерархию:
Если Объект.ЭтоГруппа Тогда
Отказ = Истина;
КонецЕсли;
После внесения изменений загрузим обновленный файл RegistrationRules.xml обратно в настройку синхронизации через меню Загрузить правила регистрации объектов.
Иногда проблема заключается в том, что объект просто не попал в очередь на отправку из-за сбоя в подписках на события. Проверим это с помощью встроенных инструментов 1С:
Физические лица. Если напротив него стоит число «0», значит изменения не зарегистрированы.Важное замечание: Если вы используете Способ 3 без реализации Способа 2, ручная регистрация может не помочь, так как фильтр «Выгружать при необходимости» все равно отсечет объект непосредственно в момент формирования XML-пакета выгрузки.
Если ваша бухгалтерская база не является «чистой» типовой конфигурацией (например, содержит БИТ-Финанс), обратим внимание на дополнительные аналитики. В таких базах часто на счетах 70 или 76.05 установлены дополнительные субконто. Если синхронизация не передает данные для заполнения этих субконто, документ Отражение зарплаты в бухучете может не проводиться в БП или выдавать ошибки заполнения даже после того, как физлицо будет успешно перенесено. В этом случае потребуется доработка правил конвертации данных (ExchangeRules.xml) для сопоставления аналитик БИТ-Финанса с данными из ЗУП.
Подведем итог. Ошибка «Объект не найден» для физлиц при сводном обмене — это не программная ошибка, а следствие заложенной в типовые правила логики минимизации данных. Для быстрого решения используем временное переключение в режим детализации по сотрудникам. Для системного решения — корректируем правила регистрации, убирая признак выгрузки только при необходимости для справочника ФизическиеЛица.