gifts2017

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

Опубликовал Степан Яранцев (infosoftvc) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. юрий гулидов (gull22) 16.07.14 13:57
За информацию для базы своих знаний плюс
2. OLGA DANILOVA (OLGAO) 06.10.14 08:22
В БП 3.0 при синхронизации с УТ 10.3 появляется ошибка: Справочник.Ссылка.КлассификаторСтранМира Тип не определен . Подскажите, пожалуйста, как это лечиттся?
3. Степан Яранцев (infosoftvc) 06.10.14 09:24
(2) OLGAO, С такой ошибкой не сталкивались, но я бы посоветовал посмотреть правила через конвертацию данных. Здесь еще следует учесть, что правила выгрузки из УТ 10.3 в БП 3.0 хранятся не только в настройках обмена УТ 10.3, но и непосредственно в конфигурации БП 3.0 (также в настройках синхронизации). То есть если меняем правила выгрузки из УТ 10.3 в БП 3.0, то их необходимо заменить не только в УТ 10.3, но и в БП 3.0. Имейте ввиду, что в БП 3.0 такие правила хранятся в zip-архиве, если зайти в настройки синхронизации, то там есть возможность выгрузки типовых правил в виде архива, в котором необходимо заменить правила обмена на свои и в таком же виде загрузить архив обратно.
4. Илья Ставров (istavrov) 07.10.14 15:50
На партнерсе Молдованов Илья (1С, Москва) написал:
Это действительно ошибка конфигурации, исправлена она недавно.
Способ исправления: В УТ, в модуле объекта обработки "КонвертацияОбъектовИнформационныхБаз", в процедуре "ВыгрузитьГруппуСвойств" есть строчка "Если ВыгружатьГруппуЧерезФайл Тогда" (в типовой конфигурации релиза 10.3.29.1 номер строки 9942). Сразу после нее, нужно добавить строку:
 ПКГС.НуженУзелXMLПриВыгрузке = Ложь;

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


Мне это помогло.
SergIG; AlexB.; +2 Ответить 1
5. OLGA DANILOVA (OLGAO) 08.10.14 23:11
Всем огромное спасибо! Помогло.
6. Дмитрий (pdimas) 10.11.14 21:27
Та же самая ошибка, но как её исправить при условии то ставка НДС должна проставляться в табличной части при выгрузке.
7. Александр Бланк (AlexB.) 23.12.14 15:47
8. Виталий Васильев (orfos) 14.02.15 12:54
Не помогло. У меня исключительно не грузятся отчеты о продажах.
9. Надежда Васина (naddy) 13.06.15 22:47
Спасибо!
Чтобы не наступить на грабли: код надо именно удалять, а не комментировать. Т.к. на поведение выгрузки влияет, есть вообще там что-то, или нет.
Чтобы ставка НДС выгружалась, можно в правиле конвертации свойства СтавкаНДС табличной части Товары в обработчике "При выгрузке" написать:
Если Источник.УчитыватьНДС = Ложь Тогда
	Значение = Перечисления.СтавкиНДС.БезНДС;
ИначеЕсли Значение = Перечисления.СтавкиНДС.ПустаяСсылка() Тогда
	Значение = Перечисления.СтавкиНДС.БезНДС;
КонецЕсли;
...Показать Скрыть

По смыслу совпадает с удаленным куском.
Почему-то (4) у меня не сработало (старая конфигурация-источник).
10. Владимир Кирин (redsun1981) 19.06.15 14:51
Столкнулся сегодня с этой же ошибкой. Не выгружался один документ вида "РеализацияТоваровУслуг", в табличной части которого было 999 строк (да, да, одной не хватило). В процессе исследования в отладчике встретил в коде модуля обработки УниверсальныйОбменДаннымиXML следующую строку:
ВыгружатьГруппуЧерезФайл = ВыгружатьГруппуЧерезФайл ИЛИ (КоллекцияОбъектов.Количество() > 1000);

Именно в этом и была проблема. Просто увеличил предел до 2000 и все. Обращаю внимание, что данная инструкция дальше по коду активирует неоптимальный (по скорости) режим выгрузки объекта, но зато экономит оперативную память. Так что если в процессе обмена у вас не возникает сообщений о нехватке оперативной памяти, то предел можно увеличить (тем более, что документ с большим количеством строк это в общем-то редкость)
anchovy; sonne; +2 Ответить
11. Сергей Ожерельев (Поручик) 19.07.15 18:15
Замечательно. А я-то голову ломал. что за ерунда. У меня перенос работает, а на некоторых других базах нет. Пошёл исправлять.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа