Обмен между УТ 10.3 и БП 3.0 — Не установлен приемник XML

При выполнении обмена данными между конфигурациями "Управление торговлей", редакция 10.3 и Бухгалтерия предприятия 3.0 бывает случается ошибка "Не установлен приемник XML". После некоторых мучений причина ошибки была таки найдена и предлагается способ ее устранения.
Не так давно наш коллектив столкнулся с такой проблемой: при выполнении обмена данными между конфигурациями «Управление торговлей», редакция 10.3 и Бухгалтерия предприятия 3.0 происходит ошибка «Не установлен приемник XML». На этом обмен (синхронизация как теперь это называется) останавливается и больше никакой полезной информации не сообщается.
Как настроить сам обмен подробно написано в статье — //infostart.ru/public/254877/.
Не могу точно сказать как у остальных, но у нас ,как выяснилось, ошибка происходит при выгрузке документов «Отчет о розничных продажах» -> табличная часть «Товары». Экспериментальным путем было установлено, что это никак не связано с добавлением в конфигураторе каких-то своих реквизитов в табличную часть или шапку документа. Отладка подсказала, что ошибка происходит в модуле обработки «КонвертацияОбъектовИнформационныхБаз» в процедуре «ДобавитьПодчиненный» в момент вызова метода «ЗаписатьБезОбработки» узла XML. Причем выскакивает ошибка после выгрузки первой строки табличной части «Товары». Пришлось копать правила обмена. Открываем меню «Сервис» -> «Обмен данными с продуктами на платформе 1С 8.2» -> «Обмен данными». Открывается окно настройки синхронизации (предполагается, что она у Вас создана и настроена). Жмем кнопку «Настроить» -> «Загрузить правила конвертации объектов» -> «Выгрузить правила». Полученный XML с правилами грузим в конвертацию данных. Также правила обмена есть здесь — //infostart.ru/public/275160/ и работают через универсальный обмен данными, автору спасибо)). Находим правила конвертации объекта (ПКО) для документа «Отчет о розничных продажах», открываем правило конвертации свойств (ПКС) для табличной части «Товары». Здесь на вкладке «При выгрузке» есть кусок кода: «Выполнить(Алгоритмы.ЗаполнитьСтавкуВСтрокеПоФлагуУчитыватьНДС);». Удаляем его, сохраняем правила, загружаем обратно в настройку синхронизации, выполняем обмен и проверяем — должно сработать.
Получается, что теперь ставка НДС в табличной части товаров не будет проставляться при выгрузке. По просьбе бухгалтерии клиента было настроено автоматическое заполнение ставки НДС (из реквизита номенклатуры) перед записью документа с помощью подписки на событие.

P.S. еще один момент — через обработку регистрации данных не следует вручную регистрировать например справочник «АдресныеСокращения», т.к. по правилам регистрации объектов он и не должен вставать на обмен, а в самих правилах обмена он отсутствует — в результате появляется та же ошибка.

Спасибо за внимание, возможно статья кому поможет…

11 Comments

  1. gull22

    За информацию для базы своих знаний плюс

    Reply
  2. OLGAO

    В БП 3.0 при синхронизации с УТ 10.3 появляется ошибка: Справочник.Ссылка.КлассификаторСтранМира Тип не определен . Подскажите, пожалуйста, как это лечиттся?

    Reply
  3. infosoftvc

    (2) OLGAO, С такой ошибкой не сталкивались, но я бы посоветовал посмотреть правила через конвертацию данных. Здесь еще следует учесть, что правила выгрузки из УТ 10.3 в БП 3.0 хранятся не только в настройках обмена УТ 10.3, но и непосредственно в конфигурации БП 3.0 (также в настройках синхронизации). То есть если меняем правила выгрузки из УТ 10.3 в БП 3.0, то их необходимо заменить не только в УТ 10.3, но и в БП 3.0. Имейте ввиду, что в БП 3.0 такие правила хранятся в zip-архиве, если зайти в настройки синхронизации, то там есть возможность выгрузки типовых правил в виде архива, в котором необходимо заменить правила обмена на свои и в таком же виде загрузить архив обратно.

    Reply
  4. istavrov

    На партнерсе Молдованов Илья (1С, Москва) написал:

    Это действительно ошибка конфигурации, исправлена она недавно.

    Способ исправления: В УТ, в модуле объекта обработки «КонвертацияОбъектовИнформационныхБаз», в процедуре «ВыгрузитьГруппуСвойств» есть строчка «Если ВыгружатьГруппуЧерезФайл Тогда» (в типовой конфигурации релиза 10.3.29.1 номер строки 9942). Сразу после нее, нужно добавить строку:

     ПКГС.НуженУзелXMLПриВыгрузке = Ложь;

    Т. е. в результате должно получиться вот так:

     Если ВыгружатьГруппуЧерезФайл Тогда
    ПКГС.НуженУзелXMLПриВыгрузке = Ложь;

    Мне это помогло.

    Reply
  5. OLGAO

    Всем огромное спасибо! Помогло.

    Reply
  6. pdimas

    Та же самая ошибка, но как её исправить при условии то ставка НДС должна проставляться в табличной части при выгрузке.

    Reply
  7. AlexB.

    (4) Спасибо, помогло.

    Reply
  8. orfos

    Не помогло. У меня исключительно не грузятся отчеты о продажах.

    Reply
  9. naddy

    Спасибо!

    Чтобы не наступить на грабли: код надо именно удалять, а не комментировать. Т.к. на поведение выгрузки влияет, есть вообще там что-то, или нет.

    Чтобы ставка НДС выгружалась, можно в правиле конвертации свойства СтавкаНДС табличной части Товары в обработчике «При выгрузке» написать:

    Если Источник.УчитыватьНДС = Ложь Тогда
    Значение = Перечисления.СтавкиНДС.БезНДС;
    ИначеЕсли Значение = Перечисления.СтавкиНДС.ПустаяСсылка() Тогда
    Значение = Перечисления.СтавкиНДС.БезНДС;
    КонецЕсли;

    По смыслу совпадает с удаленным куском.

    Почему-то (4) у меня не сработало (старая конфигурация-источник).

    Reply
  10. redsun1981

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

    ВыгружатьГруппуЧерезФайл = ВыгружатьГруппуЧерезФайл ИЛИ (КоллекцияОбъектов.Количество() > 1000);
    

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

    Reply
  11. Поручик

    Замечательно. А я-то голову ломал. что за ерунда. У меня перенос работает, а на некоторых других базах нет. Пошёл исправлять.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *