Конвертация Данных 2.0 сравнение значения реквизита справочника при загрузке #385486


#0 by Андрей Александрыч
Здравствуйте. Помогите, плиз, с такой ситуацией. Выполняю настройку выгрузки - загрузки между двумя семерочными конфигурациями через КД 2.0 на восьмерке. Номенклатура в конфах синхронизируется по коду. Но есть задача на всякий случай сверить наименование в базе приемнике и источнике. При несовпадении наименований должно выводиться сообщение. По логике вещей произвести такую проверку можно только при загрузке данных в базе - приемнике. Есть обработчики "Перед загрузкой", "При загрузке" и после загрузки, как я понимаю они в принципе все подходят для этих целей. Да вот беда - эти обработчики работают только на восьмерочной платформе. Хотелось бы сделать это именно средствами КД, а не "влазить" в модуль обработки...
#1 by ТелепатБот
#2 by vs84
я как-то тоже так думал, а оказывается работают. несколько глючно, не все и не всегда (по крайней мере у меня так было), но все-таки работают
#3 by Андрей Александрыч
я пробовал. Результат при открытии V77IMP.ERT в базе - приемнике: ЗафиксироватьОшибку<<?>>("Ошибка исполнения обработчика:  ПКО_ПриЗагрузке_Номенклатура" + ": " + ОписаниеОшибки); {E:КД 2.0 ФАЙЛОV77IMP.ERT}: Процедура не обнаружена (ЗафиксироватьОшибку) ****
#4 by Барбариска
закомментарь, ущерба не будет
#5 by Андрей Александрыч
угу, уже сделал. Смотрю че получается. Правда все таки приходится в код лезть. Мдя... Не хотелось.
#6 by Барбариска
мышки плакали-кололись... а что остается делать)))
#7 by Андрей Александрыч
Блин, а как теперь обратиться к загружаемому наименованию?
#8 by ilou
попробуй глобальную обработку "После загрузки объекта", но там нет ссылки на элемент в файле xml
#9 by Андрей Александрыч
Итак. Задачу решил. Поделюсь с будущими поколениями решением. В ПКО обработчик "при загрузке" на семерочной платформе видит: Объект - это элемент справочника из базы - приемника. Здесь совсем просто. Получить наименование можно через атрибут Объект.Наименование; Узел - это узел загружаемого ХМЛ файла. (подчеркну, это на семерке!). Через него - то и можно "достать" загружаемое имя без вмешательства в модуль обработки загрузки. Т.е. для выполнения поставленной задачи достаточно прописать в обработчике "при загрузке" следующий код: И еще нужно не забыть в модуле обработки загрузки закомментировать строку //ЗафиксироватьОшибку("Ошибка исполнения обработчика:  ПКО_ПриЗагрузке_Номенклатура" + ": " + ОписаниеОшибки); хотя в принципе забыть об этом не получится, потому что обработка просто не загрузится - не проходит синтаксический контроль. З.ы. Всем спасибо и удачи!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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