Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 17:28

Грабли с конвертацией

Автор maks_20, 27 сен 2015, 18:38

0 Пользователей и 1 гость просматривают эту тему.

maks_20

Всем привет. Делаю обмен с использованием конфигурации Интеграция 2is и конвертации. Набросал конвертацию, в ручном режиме при выгрузке с использованием обработки универсального обмена все гуд. Затык начинается при переносе обработчика выгрузки в глобальный обработчик конвертации ПередВыгрузкойОбъекта. А именно - передаю в правило выгрузки входящие данные, но при выгрузке вылетает ошибка, говорящая, что данная структура неопределена. Приведу куски кода, чтобы проще было понять, о чем речь.
ПередВыгрузкойОбъекта:
                ДопДанные   = Новый Структура;
      ДопДанные.Вставить("Контрагент", СсылкаРН.Контрагент);
      ДопДанные.Вставить("Склад",СсылкаРН.Склад);
      ДопДанные.Вставить("Дата", ДатаДокумента);
      ДопДанные.Вставить("Организация", СсылкаРН.Организация);
      ДопДанные.Вставить("Договор", СсылкаРН.Договор);
      ДопДанные.Вставить("Комментарий", ЦенаПлановая);
      ДопДанные.Вставить("ВалютаДокумента", СсылкаРН.ВалютаДокумента);
      ДопДанные.Вставить("Услуги", ТЗУслуги);
      ДопДанные.Вставить("Продукция", ТЗПродукция);
      ДопДанные.Вставить("ИспользованныеМатериалы", ТЗИспМатериалы);
      
      ВыгрузитьПоПравилу(Ссылка,,ДопДанные,, ИмяПКО, пУзелСсылки);
где СсылкаРН - ссылка на зависимый документ, дергается запросом. (вывожу в логах, ссылка не пустая, реквизиты тоже заполнены -  на нее грешить не стоит).

Обработчик ПередВыгрузкой ПКО (для документа)

Если ТипЗнч(ВходящиеДанные) <> Тип("Структура") Тогда
   ВходящиеДанные = Новый Структура;   
КонецЕсли;
Если Не ВходящиеДанные.Свойство("Подразделение") Тогда
   ВходящиеДанные.Вставить("Подразделение", "Неопределен");   
КонецЕсли;

И далее в самом ПКС для документа Значение = ВходящиеДанные.ДоговорКонтрагента;

В итоге при выгрузке вылетает такое сообщение:
Ошибка в обработчике события ПередВыгрузкой (Свойства)
ПКО                    =  ПоступлениеИзПереработки  (: )
ПКС                    =  28  (--> ДоговорКонтрагента)
Объект                 =  Приходная накладная ПЗ-9010-0000108 от 04.09.2015 15:48:55  (Документ объект: Приходная накладная) СвойствоПриемника      =  ДоговорКонтрагента  (СправочникСсылка.ДоговорыКонтрагентов) КонвертируемоеЗначение =    (Не определено)
Обработчик             =  ПередВыгрузкойСвойства
ОписаниеОшибки         =  Поле объекта не обнаружено (Договор) ПозицияМодуля          =  (1)
КодСообщения           =  55

Повторюсь, что проблема проявляется только если вместо правил выгрузки использовать обработчик ПередВыгрузкойОбъекта самой конвертации. Использование этого обработчика обусловлено особенностями внедрения обмена в интеграцию. Кто с подобным сталкивался? Какие особенности использования этого обработчика? почему он не хочет передавать в ПКО структуру ВходящиеДанные?

cska-fanat-kz

наверное проблема тут
ДопДанные.Вставить("Договор", СсылкаРН.Договор);

возможно надо
ДопДанные.Вставить("Договор", СсылкаРН.ДоговорКонтрагента);
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

maks_20

В базе-источнике у документа реквизит называется "Договор". Она не совсем типовая. Какая-то грабля именно с переносом обработчика выгрузки в ПередВыгрузкойОбъекта. Потому как с обычным правилом выгрузки все работает идеально.

cska-fanat-kz

Цитата: maks_20 от 27 сен 2015, 18:38ОписаниеОшибки         =  Поле объекта не обнаружено (Договор)

я просто опираюсь на вот это.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Цитата: maks_20 от 28 сен 2015, 08:05В базе-источнике у документа реквизит называется "Договор".
Как бы, еще раз хочу уточнить: у документа "приходная накладная" есть реквизит "договор"?

maks_20

тему можно закрывать. В правилах ошибки не было. Дело было с настройками в интеграции. Нужно было отключить режим выгрузки зависимых.

Похожие темы (3)

Рейтинг@Mail.ru

Поиск