Почему при синхронизации ЗУП и БП статья расходов «ОТ» превращается в «Объект не найден» и как это исправить?

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

При настроенной синхронизации между конфигурациями «Зарплата и управление персоналом» (ЗУП 3.1) и «Бухгалтерия предприятия» (БП 3.0) пользователи часто сталкиваются с неприятной ситуацией. После очередного обмена в документе Отражение зарплаты в бухучете на стороне БП в колонке «Статья расходов» вместо привычного значения «ОТ» отображается битая ссылка: «<Объект не найден>...». При этом на стороне ЗУП все заполнено корректно и никаких ошибок программа не выдает.

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

---

Зачем нужны статьи «ОТ», «ПР», «КА», «ДВ» и где они хранятся

Начиная с версии ЗУП 3.1.9, разработчики 1С внедрили жесткую аналитику для отражения расчетов с персоналом. Были введены предопределенные статьи расходов:

Эти сокращения — не просто названия. Они определяют алгоритмы распределения НДФЛ, страховых взносов и проведение сумм по счетам бухучета.

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

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

  1. В правом верхнем углу программы нажмем кнопку «Сервис и настройки» (значок с шестеренкой или стрелкой).
  2. Выберем команду «Переход по ссылке» (или нажмем горячие клавиши Shift + F11).
  3. В открывшемся окне введем адрес: e1cib/list/Справочник.СтатьиРасходовЗарплата и нажмем «Перейти».

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

---

Почему ломается ссылка и появляется «Объект не найден»

Появление надписи «Объект не найден» означает, что документ в БП ссылается на конкретный уникальный идентификатор (UUID/GUID) в базе данных, которого физически в этой базе больше нет. Проанализируем основные причины, почему это происходит:

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

Критически важно: Ошибка «Объект не найден» на месте статьи «ОТ» — это не просто визуальный дефект. Из-за отсутствия правильной аналитики при проведении документа «Отражение зарплаты в бухучете» программа БП начинает задваивать НДФЛ, некорректно распределять налоги по регистрам и отправлять проводки на счета 73 или 76 вместо 70 счета.

---

Способ 1. Принудительная повторная выгрузка справочника из ЗУП

Если элемент «ОТ» исправно существует в ЗУП, но пропал в БП, мы можем принудительно заставить систему синхронизации передать этот элемент вместе с его исходным GUID из ЗУП в БП.

Разберем этот процесс по шагам:

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

При обмене ЗУП передаст информацию о статье «ОТ» в БП, и система автоматически создаст элемент с правильным идентификатором GUID. После завершения обмена битая ссылка в документах отражения зарплаты должна исчезнуть.

---

Способ 2. Программное воссоздание элемента по его оригинальному GUID

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

Сначала нам нужно выяснить утерянный GUID. В документе «Отражение зарплаты в бухучете» скопируем или перепишем представление битой ссылки. Оно выглядит примерно так: <Объект не найден> (83:af82005056bf011111e6fae1cc38b056). Набор символов после двоеточия — это и есть зашифрованный идентификатор.

Для создания элемента напишем и выполним во внешней обработке следующий код (в контексте «1С:Бухгалтерии»):


// Сформируем валидный GUID из строки битой ссылки
// Строка GUID должна иметь вид "f9d80462-056c-11e7-855c-005056a46a7a"
ИскомыйGUID = "005056bf-0111-11e6-fae1-cc38b056af82"; // Соберите GUID согласно структуре вашей битой ссылки

НовыйИдентификатор = Новый УникальныйИдентификатор(ИскомыйGUID);
СсылкаНаОбъект = Справочники.СтатьиРасходовЗарплата.ПолучитьСсылку(НовыйИдентификатор);

// Проверим, действительно ли объект отсутствует в базе
Если СсылкаНаОбъект.ПолучитьОбъект() = Неопределено Тогда
    ОбъектСправочника = Справочники.СтатьиРасходовЗарплата.СоздатьЭлемент();
    ОбъектСправочника.УстановитьСсылкуНового(СсылкаНаОбъект);
    
    // Заполняем обязательные реквизиты
    ОбъектСправочника.Код = "ОТ";
    ОбъектСправочника.Наименование = "Оплата труда";
    
    // Включаем режим загрузки, чтобы обойти платформенные проверки и запреты на редактирование
    ОбъектСправочника.ОбменДанными.Загрузка = Истина;
    
    Попытка
        ОбъектСправочника.Записать();
        Сообщить("Элемент справочника 'Статьи расходов (зарплата)' успешно восстановлен!");
    Исключение
        Сообщить("Ошибка при записи объекта: " + ОписаниеОшибки());
    КонецПопытки;
Иначе
    Сообщить("Объект с данным GUID уже существует в базе данных!");
КонецЕсли;

После выполнения данного кода пустая ссылка мгновенно заполнится восстановленным элементом «Оплата труда» во всех исторических документах.

---

Способ 3. Сопоставление объектов через регистр сведений

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

Для этого выполним сопоставление через регистр сведений:

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

---

Способ 4. Групповое исправление документов

Если вы успешно восстановили или пересоздали статью расходов «ОТ» в справочнике БП одним из вышеперечисленных методов, но в ранее проведенных документах за прошлые периоды ссылки по-прежнему отображаются некорректно или требуют обновления движений по регистрам, выполним групповое перепроведение:

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

После группового изменения обязательно перепроведем измененные документы, чтобы исправить движения по счетам бухгалтерского учета и скорректировать записи в регистрах НДФЛ.

← На главную