Почему после обновления УТ 11.4 не выгружаются документы в БП 3.0, хотя синхронизация проходит без ошибок?

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

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

Ситуация, описанная на форуме, выглядит так:

  1. Исходная связка: УТ 11.4.13.180 и БП 3.0.105.40. Обмен через прямое COM-подключение работал стабильно.
  2. Действие: УТ обновили до версии 11.4.13.227.
  3. Проблема: Синхронизация запускается, проходит этапы отправки и получения данных и завершается с сообщением «Синхронизация данных завершена успешно». Но по факту ни один документ из УТ в БП не попадает. В журнале регистрации и форме предупреждений синхронизации — пусто.

Шаг 1: Диагностика и определение источника проблемы

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

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

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

Шаг 2: Выясняем причину — несоответствие форматов обмена

Основная причина такого поведения кроется в версиях универсального формата обмена данными EnterpriseData. После обновления конфигурация УТ 11.4.13.227 начинает по умолчанию использовать более новый формат обмена (в данном случае — 1.10), который не поддерживается старой версией БП 3.0.105.40.

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

Решение 1: Установка официального исправления (патча) — Рекомендуемый способ

Разработчики 1С знают о подобных проблемах и часто выпускают исправления в виде патчей. Для описанной ситуации существует официальный патч, который решает проблему.

Код исправления: EF_00_00385576

Название патча, как правило, говорит само за себя — «Отсутствует EnterpriseData 1.10», что прямо указывает на корень проблемы. Установка этого патча добавляет в конфигурацию необходимые компоненты для корректной работы с указанной версией формата.

Как установить патч:

  1. Убедитесь, что в базе настроена Интернет-поддержка пользователей (раздел «Администрирование» -> «Интернет-поддержка и сервисы»).
  2. Перейдите в раздел «Обновление версии программы».
  3. Выберите пункт «Установка исправлений (патчей)». Система автоматически найдет и предложит установить доступные исправления.
  4. Если автоматическая установка не работает, патч можно скачать с портала 1С и установить вручную через конфигуратор.

Это самый правильный и безопасный способ решения, так как он предложен самим вендором.

Решение 2: Временное исправление через расширение

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

Порядок действий:

  1. Создайте новое расширение для конфигурации УТ.
  2. Найдите в конфигурации общий модуль ОбменДаннымиСервер и добавьте его в расширение.
  3. В заимствованном модуле найдите процедуру ДоступныеВерсииУниверсальногоФормата.
  4. Замените ее код, используя аннотацию &Вместо. Это позволит полностью переопределить поведение стандартной процедуры.

Пример кода для расширения:


&Вместо("ДоступныеВерсииУниверсальногоФормата")
Процедура yz_РасшДоступныеВерсииУниверсальногоФормата(ВерсииФормата)
    // Этот код принудительно регистрирует старые версии формата,
    // которые поддерживаются вашей версией Бухгалтерии.
    
    // Стандартный вызов процедуры закомментирован, чтобы он не выполнялся.
    // ПродолжитьВызов(ВерсииФормата);
    
    ВерсииФормата.Вставить("1.3", МенеджерОбменаЧерезУниверсальныйФормат);
    ВерсииФормата.Вставить("1.4", МенеджерОбменаЧерезУниверсальныйФормат);
    ВерсииФормата.Вставить("1.5", МенеджерОбменаЧерезУниверсальныйФормат);
    ВерсииФормата.Вставить("1.6", МенеджерОбменаЧерезУниверсальныйФормат);
    ВерсииФормата.Вставить("1.7", МенеджерОбменаЧерезУниверсальныйФормат);
    ВерсииФормата.Вставить("1.8", МeneджерОбменаЧерезУниверсальныйФормат);

    // Версию 1.10, которая вызывает проблему, мы не добавляем.
    // ВерсииФормата.Вставить("1.10", МенеджерОбменаЧерезУниверсальныйФормат);
КонецПроцедуры

После добавления этого кода и подключения расширения:

  1. Зайдите в настройки синхронизации в УТ.
  2. В технических параметрах обмена вы увидите возможность выбора версии формата. Установите там версию 1.8.
  3. Проделайте то же самое в настройках синхронизации на стороне БП.

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

Решение 3: Обновление конфигураций

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

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

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

← На главную