|
v7: КД2 7.7 -> 7.7 Не работают обработчики на стороне приемника | ☑ | ||
---|---|---|---|---|
0
Turku
03.07.18
✎
05:16
|
День добрый, товарищи. Подскажите, в чем проблема, пожалуйста. Делаю выгрузку документов "РасходнаяНакладная" из комплексной семерки в типовую бухию 7.7. Пишу такой код в конвертации "после загрузки объекта":
Если Объект.Вид() = "РасходнаяНакладная" Тогда СпрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен"); Если СпрТипыЦен.НайтиПоНаименованию("Основная цена")=1 Тогда Объект.ТипЦен = СпрТипыЦен.ТекущийЭлемент(); КонецЕсли; Объект.ВидОтгрузки = 1; КонецЕсли; Это глобальный обработчик, ибо в ПКО такие обработчики в 7.7 не поддерживаются. А при загрузке получаю такое: Конвертация_ПослеЗагрузкиОбъекта<<?>>(ОбъектБД, ИмяПравила) Функция не обнаружена (Конвертация_ПослеЗагрузкиОбъекта) Модули в обеих обработках поменял на выгруженные из КД. |
|||
1
bolder
03.07.18
✎
07:36
|
(0) Отладчик конечно отобрали?В 7.7 отладка просто счастье какое то))
|
|||
2
Turku
03.07.18
✎
15:44
|
Сделал сохранение/восстановление БД приемника и обработчики заработали...
Однако, не удается выгрузить периодические реквизиты спр. Номенклатура. Решение подсмотрел здесь же на Мисте (оно выглядит рабочим): v8: Как перенести периодические реквизиты из 7.7 с помощью "Конвертации данных 2.0" Если в обработчиком выгрузки все понятно, он отрабатывает и в файл данные от него пишутся, то вот куда вставить второй обработчик "При загрузке свойства" не вижу. Нужного поля просто нет. Вот скриншот. https://cdn1.savepice.ru/uploads/2018/7/3/81fece50ab5ef92b7cbb10db0dabb6ac-full.png В принципе, устроил бы вариант установки одного последнего значения, но только не на текущую дату, а, к примеру, на 01.01.18. Гуру конвертации, подскажите, пожалуйста, куда копать. |
|||
3
Turku
03.07.18
✎
23:57
|
Сам же и отпишусь. Может быть, кому-то полезно будет. Победил я этих периодические реквизиты, разместив коды выгрузки/загрузки в обработчике "При выгрузке" и "При загрузке" ПКО "Номенклатура". Выгружающий код из той темы, а вот загружающий немного модифицировать пришлось вида:
Если Объект.ЭтоГруппа() = 0 Тогда УзлыПериодического = Узел.ВыбратьУзлы("Периодический"); Для СчУзлов = 0 По УзлыПериодического.КоличествоУзлов-1 Цикл УзелПериодического = УзлыПериодического.ПолучитьУзел(СчУзлов); Имя = УзелПериодического.ПолучитьАтрибут("Имя"); Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект(Имя, Объект); Выборка = УзелПериодического.ВыбратьУзлы("ПериодическоеЗначение"); Для Сч = 0 По Выборка.КоличествоУзлов-1 Цикл УзелЗначения = Выборка.ПолучитьУзел(Сч); ДатаЗнач = УзелЗначения.ПолучитьАтрибут("ДатаЗнач"); Значение = УзелЗначения.ПолучитьАтрибут("Значение"); Периодический.ДатаЗнач = ДатаЗнач; //Периодический.Значение = Значение; СтНДС = СоздатьОбъект("Справочник.СтавкиНДС"); Если СтНДС.НайтиПоНаименованию(Значение)=1 Тогда Периодический.Значение = СтНДС.ТекущийЭлемент(); КонецЕсли; СтНП = СоздатьОбъект("Справочник.СтавкиНП"); Если СтНП.НайтиПоНаименованию(Значение)=1 Тогда Периодический.Значение = СтНП.ТекущийЭлемент(); КонецЕсли; Периодический.Записать(); //сообщить(ДатаЗнач); //сообщить(Значение); КонецЦикла; КонецЦикла; КонецЕсли; Хотя в справке КД2 написано что этот обработчик якобы "Только для платформы V8", однако, он отработал на 7.7. |
|||
4
SleepyHead
гуру
04.07.18
✎
06:20
|
(3) В справке много чего написано, но надо проверять опытным путем. Пишешь код обработчика, выгружаешь модули, если в модулях появился - работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |