Почему документы исчезают при обмене УТ 11 — БП 3.0 и как исправить ошибку получения контрагента?

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

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

Причина 1: Программная ошибка в схеме EnterpriseData (Патч EF_00_00385576)

Одной из наиболее распространенных причин «тихого» исчезновения документов в последних релизах УТ 11.4 и УТ 11.5 является некорректная работа с версиями формата EnterpriseData. Рассмотрим ситуацию: система пытается использовать версию 1.10, которая на уровне программного кода конфигурации может содержать ошибки в XSD-схеме или механизмах сериализации данных.

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

  1. Перейдем в раздел Администрирование — Обслуживание.
  2. Выберем пункт Обновление программы — Установленные исправления (патчи).
  3. Убедимся, что установлен патч с идентификатором EF_00_00385576.

Этот патч исправляет проблему отсутствия или некорректной обработки EnterpriseData 1.10. Если патч не установлен, его необходимо загрузить через сервис интернет-поддержки или установить вручную.

Причина 2: Конфликт сущностей «Партнер» и «Контрагент»

В современных конфигурациях 1С (УТ 11, ERP, КА) разделены понятия управленческого учета (Партнеры) и регламентированного учета (Контрагенты). Это часто становится камнем преткновения при обмене с Бухгалтерией предприятия, где сущность Партнер отсутствует. Разберем, как это влияет на выгрузку.

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

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

Причина 3: Технический анализ кода общего модуля

Выясним причину ошибки на уровне программного кода. Проблема часто локализуется в общем модуле ПартнерыИКОнтрагенты в функции ПолучитьКонтрагентаПартнераПоУмолчанию(Партнер). В некоторых релизах запрос внутри этой функции написан таким образом, что при наличии более чем одного контрагента у партнера, результат поиска всегда возвращает NULL.

Рассмотрим фрагмент проблемного запроса:


ВЫБРАТЬ
    ВЫБОР
        КОГДА ЕСТЬNULL(БлижнийУровень.Уровень, 0) < ЕСТЬNULL(УровеньСЧисломКонтрагентовБольшеОдного.Уровень, 0)
            ТОГДА NULL
        ИНАЧЕ БлижнийУровень.Уровень
    КОНЕЦ КАК Уровень
ПОМЕСТИТЬ ИскомыйУровень
ИЗ
    БлижнийУровень КАК БлижнийУровень
        ПОЛНОЕ СОЕДИНЕНИЕ УровеньСЧисломКонтрагентовБольшеОдного КАК УровеньСЧисломКонтрагентовБольшеОдного
        ПО (ИСТИНА)

Проанализируем это условие. Если у партнера привязано несколько контрагентов (например, 4 юридических лица на один управленческий холдинг), то в таблице БлижнийУровень может оказаться 0 записей или записи, которые из-за ПОЛНОЕ СОЕДИНЕНИЕ и условий в ВЫБОР приводят к результату NULL. В итоге функция возвращает пустое значение, и механизм обмена EnterpriseData считает, что объект не может быть выгружен, так как нарушена целостность данных для приемника (БП).

Алгоритм исправления проблемы

Рассмотрим пошагово, что необходимо сделать для восстановления работоспособности обмена:

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

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

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

← На главную