Почему при синхронизации ЗУП 3.1 и БП 3.0 физические лица загружаются как "Объект не найден" и как это исправить?

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

Ситуация, когда после успешной, на первый взгляд, синхронизации в базе «1С:Бухгалтерия предприятия» (БП) вместо фамилий сотрудников появляются битые ссылки «Объект не найден», является довольно распространенной — для её решения есть инструмент исправления битых ссылок физических лиц. Особенно часто эта проблема проявляется при изменении архитектуры сети, например, при переносе баз на веб-сервер или при переходе на работу через веб-клиент. В этой статье мы подробно разберем причины возникновения такой ошибки и найдем способы её устранения, основываясь на практическом опыте специалистов.

Разберем основную причину проблемы

Когда мы видим надпись Объект не найден, это означает, что в базе-приемнике (БП) создана ссылка на объект (например, в документе «Отражение зарплаты в бухучете»), но сам объект в справочнике ФизическиеЛица не был создан или не был найден. При стандартном обмене (через правила конвертации данных КД 2.0) идентификация происходит по внутреннему идентификатору (GUID). Если поиск по GUID не удался, система пытается найти объект по полям поиска (ИНН, СНИЛС, ФИО). Если и этот поиск завершается неудачей, а настройки обмена запрещают создание новых объектов, мы получаем «битую» ссылку.

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

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

Рассмотрим реквизиты, которые за это отвечают:

  1. НеВыгружатьПерсональныеДанныеФизическихЛиц: если этот флаг установлен, в файл обмена не попадут ни ИНН, ни СНИЛС, ни паспортные данные.
  2. РежимВыгрузкиПерсональныеДанные: определяет объем передаваемой информации.

Если в настройках синхронизации включен режим «выгрузки без персональных данных», то при попытке загрузки в БП система видит ссылку на физлицо, но не видит полей для его создания. В итоге создается пустая запись или просто остается ссылка в «пустоту». Проверьте в ЗУП состав отправляемых данных в настройках синхронизации.

Выясним особенности работы через веб-сервер

Перенос баз на веб-сервер (Apache или IIS) вносит свои коррективы в процесс обмена файлами. Проанализируем нюанс, подмеченный практиками: загрузку данных в БП 3.0 рекомендуется выполнять непосредственно на сервере, где расположен кластер 1С, либо через «Тонкий клиент» с прямым подключением, а не через браузер.

Почему это важно? При работе через веб-клиент (браузер) обработка XML-файла происходит с использованием временных хранилищ. Существуют известные проблемы парсинга XML-структур на стороне веб-сервера, когда строковые данные (например, ИНН) могут считываться с невидимыми спецсимволами или обрезаться. Это приводит к тому, что механизм поиска по полям ИНН + СНИЛС не находит существующее физлицо и пытается создать новое, что может блокироваться правами доступа или логикой правил обмена.

Проверим версию правил обмена (КД 2.0 vs КД 3.0)

Важно понимать, какой именно механизм обмена используется в вашей паре баз. Существует два типа типового обмена:

  1. Классический обмен (КД 2.0): использует файл правил, зашитый в конфигурацию. В настройках он часто отображается как «старый формат».
  2. Enterprise Data (КД 3.0): современный формат обмена, использующий универсальный формат данных.

Если при перенастройке синхронизации формат обмена случайно изменился (например, с КД 2.0 на КД 3.0), механизмы сопоставления объектов будут работать иначе — для контроля различий есть отчет поиска расхождений и отсутствующих данных. В КД 3.0 (Enterprise Data) сопоставление часто идет по GUID, и если базы ранее не были «синхронизированы» по идентификаторам, то «Объект не найден» — ожидаемый результат. Убедитесь, что в обеих базах выбран одинаковый и привычный вам вариант обмена.

Посмотрим на проблему прав доступа веб-сервера

Когда синхронизация запускается через веб-сервис, код выполняется от имени системного пользователя (например, IUSR или NetworkService). Проанализируем ситуацию: если у этого пользователя нет прав на запись в папку временных файлов сервера или на чтение определенных метаданных, процесс «разбора» входящего файла может прерваться на этапе записи справочника ФизическиеЛица, при этом сам документ (например, Ведомость) может записаться.

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

Разберем ситуацию с удержаниями и контрагентами

Иногда проблема локализуется только в документах удержаний. В ЗУП 3.1 удержания (например, исполнительные листы) тесно связаны с контрагентами-получателями. Если в правилах обмена настроено, что физическое лицо должно создаваться только «по ссылке» из контрагента, а сам контрагент не загрузился (например, из-за дубля ИНН), то и связанное с ним физлицо не будет создано в БП.

Проанализируем регистр сведений Соответствие объектов информационных баз в Бухгалтерии. Если вы видите там записи, где в поле «Приемник» стоит пустая ссылка, попробуйте удалить эти записи и запустить синхронизацию заново, предварительно убедившись, что в ЗУП данные физлица заполнены корректно (ИНН и СНИЛС обязательны) — для этого подойдёт обработка автоматического пересопоставления объектов синхронизации.

Технический алгоритм исправления

Для гарантированного исправления ситуации выполните следующие шаги:

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

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	СоответствиеОбъектов.СобственнаяСсылка,
    |	СоответствиеОбъектов.УникальныйИдентификаторИсточника,
    |	СоответствиеОбъектов.ТипИсточника,
    |	СоответствиеОбъектов.ТипПриемника
    |ИЗ
    |	РегистрСведений.СоответствиеОбъектовИнформационныхБаз КАК СоответствиеОбъектов
    |ГДЕ
    |	СоответствиеОбъектов.СобственнаяСсылка.Наименование ЕСТЬ NULL";
Результат = Запрос.Выполнить();

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

Подводя итог, можно сказать, что в 90% случаев проблема решается либо включением выгрузки персональных данных в ЗУП, либо сменой клиента с веб-браузера на Тонкий клиент 1С для проведения первичной синхронизации после технических работ на сервере.

← На главную