Конвертация данных: Поле объекта не обнаружено! #642634


#0 by breakthrough
Здравствуйте! При загрузке в 8-ку ловлю следующую ошибку: Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7082)}: Поле объекта не обнаружено При этом какое поле не обнаружено совершенно непонятно. Кто-нибудь знает как запустить отладку обработки "Универсальный обмен данными в формате XML" ?
#1 by leonidkorolev
Всё как обычно. Это обычная обработка. Ставь точку в модуле на строке 7082
#2 by Stim
запускай загрузку в режиме отладки
#3 by breakthrough
Ок. Попробую. Спасибо. А как пользоваться встроенным в обработку механизмом отладки? Например я сделал все по инструкции: Включил режим отладки, перенес код обработчиков в модуль новой внешней обработки, подключил ее. А дальше что делать не понимаю.
#4 by acsent
дальше обычная отладка
#5 by breakthrough
Т.е. запускаю отладчик и в нем открываю внешнюю обработку с модулем отладки?
#6 by breakthrough
Обычная отладка в моем представлении возможно по самой универсальной обработке обмена данными, а вот как отладить выгруженный модуль отладки, ведь он содержит правила обмена, которые подключаются в момент начала загрузки данных?
#7 by echo77
так и отлаживаешь, вызываются процедуры из него
#8 by breakthrough
Вот так выглядит часть кода модуля обработки:            КонецЕсли; Не понимаю где здесь может быть затык и про какое поле имеется в виду.(
#9 by breakthrough
А можно по действиям? Вот я подключил внешнюю обработку с модулем отладки в "Универсальный обмен данными в формате XML". Что потом?
#10 by echo77
Там инструкции нет? 1. Открываешь конфигуратор, 2. Из него запускаешь отладку 3. В конфигураторе открывает твою вновь созданную обработку с модулем, что хочешь отладить 4. Ставишь где нужно точку останова 5. В режиме предприятие запускаешь "Универсальный обмен данными в формате XML". Настраиваешь её для выполениня отадки, грузишь правила 6. Выгружаешь/загружаешь данные с поможщью обработки Универсальный обмен данными в формате XML" 7. На точке остановке конфигуратор встанет
#11 by zippygrill
ставишь галку "Останавливать по ошибки" и смотришь в каком месте валится.
#12 by Skylark
Объект[Имя] Скорее всего вот здесь. Смотри, что за объект (Объект) и что за свойство (Имя).
#13 by zippygrill
ему придется проитись по всем процедурам выгрузки/загрузки по этому наверное быстрее будет ставить галку "останавливать по ошибки" чтобы найти это место.
#14 by Skylark
Чтобы поймать, можно этот проблемный участок вставить в Попытка / Исключение и точку останова поместить в Исключение.
#15 by breakthrough
Нашел Имя. Оно равно "". Т.е. пустое.
#16 by breakthrough
А где такую галку найти? В обработке или в отладчике конфигуратора?
#17 by breakthrough
Кстати, весь код выше и так обернут в попытка/исключение. Как раз по исключению и вываливается ошибка.
#18 by breakthrough
нашел. Только это ничего не дало.
#19 by acsent
объект чему равен
#20 by Йохохо
в отладчике выше по коду глянь условие попадания в эту ветку в принципе, задача кода что-то пропустить, если косяк, просто помоги ему. Было такое, тупо добавил доп проверку
#21 by breakthrough
Ссылка на элемент номенклатуры.
#22 by acsent
имяПКО? Что из тебя вытягивать всю инфу чтоли?
#23 by breakthrough
ИмяПКО пустое.
#24 by breakthrough
ИмяПКО=""
#25 by breakthrough
Ошибка вылетает на этой логической конструкции Если НЕ ЭтоПараметрДляОбъекта                ИЛИ (Объект[Имя] = NULL)) Тогда Хотя она верная.
#26 by breakthrough
Вот скрины самих правил из-за которых вываливается ошибка: 1. 2.
#27 by breakthrough
Вот такой код обработчика перед выгрузкой одного из ПКС номенклатуры:
#28 by breakthrough
Вот такой код обработчика ПКС для ПКО  КатегорииОбъектовРегистрСведений:
#29 by breakthrough
Кстати, сама выгрузка категорий нормально проходит по одной номенклатуре. Сам элемент полностью выгружается. А вот до второго дело не доходит.
#30 by breakthrough
ау!
#31 by jackal-655600
Отключи выгрузку выделенных свойств. У ПКО "Номенклатура" в обработчике "Перед выгрузкой" добавь примерно такой код
#32 by jackal-655600
Посмотри какие параметры можно передать в процедуру "ВыгрузитьПоПравилу".   Возможно часть информации придется передавать через переменные ВходящиеДанные и ИсходящиеДанные. У тебя ошибка валится из-за пустого приемника в последних трех свойствах.
#33 by breakthrough
Так кое что проясняется.  А как это обойти? Я  и так передаю все через ВходящиеДанные и ИсходящиеДанные.
#34 by breakthrough
Что это даст? Я так понимаю в таком случае создастся одна запись в регистре сведений. Т.к. выгрузка будет привязана к ПКО, а не ПКС.
#35 by breakthrough
Всем спасибо! Разобрался сам. Если кому пригодиться, то вот решение: Создал ПВД с произвольным алгоритмом. В обработчик "перед обработкой" воткнул следующий код: И дальше через ИсходящиеВходящие данные выгрузил из одного ПКО в другое с поиском по наименованию.
#36 by breakthrough
Проверку на группы не делал, т.к. они не проходят по условиям.
#37 by breakthrough
В результате выгружается 3 категории для каждой номенклатуры, если они установлены.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С