Почему не работает синхронизация данных между УТ 11 и БП 3 и как исправить ошибки выгрузки?

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

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

Чтобы понять, куда копать, проанализируем журнал регистрации. Общая ошибка формата ВызватьИсключение НСтр("ru = 'При формировании сообщения обмена данными произошли ошибки.'"); малоинформативна. Выясним причину, заглянув глубже в логи, где обычно кроются конкретные ошибки формата EnterpriseData. Разберем две наиболее распространенные ошибки, которые блокируют создание файла выгрузки.

Проанализируем ошибку проверки данных XDTO: Отсутствует обязательное свойство Контрагента

В журнале регистрации мы можем обнаружить ошибку следующего вида при выгрузке документа (например, заказа поставщику):


Ошибка проверки данных XDTO:
Структура объекта '/КлючевыеСвойства' не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8}КлючевыеСвойстваЗаказПоставщику Проверка свойства 'Контрагент':
    форма: Элемент
    имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8}Контрагент     тип: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.8}КлючевыеСвойстваКонтрагент Отсутствует обязательное свойство

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

  1. Проверим заполнение карточки контрагента: Чаще всего забывают заполнить базовые реквизиты, критичные для обмена. Убедитесь, что у проблемного контрагента заполнено поле «Юридическое / Физическое лицо» и реквизит «Наименование».
  2. Проанализируем связку Партнер - Контрагент: В УТ 11 используется разделение на партнеров и контрагентов. Ошибка выгрузки часто возникает, если в справочнике Контрагенты нет ссылки на партнера, или наоборот, в справочнике Партнеры нет корректной связи с контрагентом. Откройте карточку проблемного контрагента, перевыберите партнера и перезапишите элемент.
  3. Посмотрим на связанные объекты с пустыми ссылками: Часто ошибка кроется не в самом контрагенте, указанном в шапке документа, а в связанных с ним объектах. Например, пустая ссылка на контрагента могла случайно попасть в табличную часть, в привязанную счет-фактуру, банковский счет или договор. Если у контрагента не заполнен БИК в банковском счете, который тянется по правилам обмена, это тоже может вызвать ошибку структуры.
  4. Проверим нестандартное использование полей: В некоторых релизах по правилу «Контрагент» могут выгружаться и другие сущности. Например, поле «Импортер» или «Производитель» в карточке Номенклатуры или ГТД. Если в документе участвует номенклатура, у которой в поле импортера указана битая или пустая ссылка, система попытается выгрузить ее как контрагента и выдаст ошибку по свойству КлючевыеСвойстваКонтрагент.

Для диагностики рекомендуется с помощью обработки регистрации изменений посмотреть состав отправляемых данных узла обмена. Исключите из выгрузки проблемные документы или контрагентов, чтобы подтвердить, что проблема именно в них, после чего детально сравните заполнение «больного» контрагента со «здоровым». Для оперативного отключения выгрузки конкретных документов подойдёт расширение для выборочного переноса документов из УТ.

Разберем ошибку: Преобразование значения к типу Булево не может быть выполнено

Вторая популярная проблема связана с документами товародвижения (например, «Приобретение товаров и услуг»). В логах она выглядит так:


Ошибка выполнения обработчика.
Преобразование значения к типу Булево не может быть выполнено
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(49806)}:            Если НДСПоСтавкам2и4 Тогда
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(18926)}:        ОпределитьСтавкуНДС_Отправка(Товары, НДСПоСтавкам2и4);

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

Посмотрим, как решить эту проблему:

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

Подводя итог: при сбоях обмена без формирования файла всегда начинайте с детального изучения журнала регистрации. Ищите конкретные тексты ошибок XDTO или сбои обработчиков (как правило, они идут перед общей ошибкой выгрузки). Исправление данных в справочниках и документах согласно требованиям формата обмена позволит успешно завершить синхронизацию. Для выгрузки данных без прерывания процесса при ошибках можно использовать обработку выгрузки и загрузки EnterpriseData с фиксацией ошибок.

← На главную