|
Конвертация данных2: переданный в ПКС параметр теряется в ПКО | ☑ | ||
---|---|---|---|---|
0
vdeemer
18.04.22
✎
19:18
|
Здравствуйте!
В правиле конвертации объекта добавляю ПКС "передавать данные в параметр", код "Перед выгрузкой":
Теперь вытащить это можно в ПКО "После загрузки"? Пробовал
не получается, нет такой буквы в этом слове(( |
|||
1
vdeemer
18.04.22
✎
19:19
|
(0) Сам параметр называется "СчетФактураПолученная", пропустил
|
|||
2
big
18.04.22
✎
19:36
|
Я не специалист по конвертации из 8 в 8, но в документации вроде как написано, что параметр передается через "Выражение", а не через "Значение".
|
|||
3
vdeemer
18.04.22
✎
19:40
|
(2) Это из справки:
Выражение - Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8 Хотя попробовать не сложно) |
|||
4
big
18.04.22
✎
19:44
|
(3) Именно. "Значение" используется для дальнейшей конвертации, то есть процесс не прерывается, а "Выражение" прерывает дальнейшую работу - "ПриВыгрузке" не сработает.
|
|||
5
vdeemer
18.04.22
✎
19:55
|
(4) Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1086)}: Ошибка при вызове метода контекста (XMLСтрока): Ошибка преобразования данных XML
|
|||
6
big
18.04.22
✎
19:57
|
(5) Может быть потому, что там тип данных "Строка" должен быть?
|
|||
7
vdeemer
18.04.22
✎
20:03
|
(6) Точно, я же структуру передаю
|
|||
8
vdeemer
18.04.22
✎
20:05
|
(6) Ага, появился параметр в файле выгрузки. Осталось его оттуда взять и дело в шляпе. Спасибо!!!
|
|||
9
Йохохо
18.04.22
✎
20:07
|
(3) выражение вычисляется в приемнике, значение в источнике
|
|||
10
vdeemer
18.04.22
✎
20:08
|
(9) Так я же в источнике писал (0)
|
|||
11
vdeemer
18.04.22
✎
20:18
|
(8) Ну не достается он((
Ошибка при загрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4908)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {<Неизвестный модуль>(1,1)}: Ожидается выражение Все-таки "Выражение" это именно произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Мне-то надо передать уже вычисленное выражение, обычную структуру. |
|||
12
alexxx961503
18.04.22
✎
20:51
|
(11) Попробуй ПараметрыОбъекта["<Имя параметра>"]
|
|||
13
vdeemer
18.04.22
✎
21:53
|
(12) Дык это те же яйца, что и (0), только в профиль
|
|||
14
Доминошник
18.04.22
✎
22:15
|
(13) А если использовать обработчик событий "После выгрузки в файл" для документа, где написать примерно такое
|
|||
15
vdeemer
18.04.22
✎
22:22
|
(14) А грузить потом как?
|
|||
16
Доминошник
18.04.22
✎
22:51
|
(15) Ну тогда "совсем альтернативный вариант" :))) - писать что-то такого типа @@@СЧ-Ф полученный № 123 от 01/12/2021@@@ в комментарий документа, в "после загрузки" - разбирать комментарий, при необходимости - создавать счет-фактуру входящую
А если "по теме", то правильно в (12) - см. https://forum.infostart.ru/forum15/topic246127/ |
|||
17
vdeemer
18.04.22
✎
23:30
|
(16) И это не взлетело... Не передаются параметры почему-то, прямо мистика какая-то((
|
|||
18
Лирик
19.04.22
✎
00:00
|
Попробуй выгрузить 3 параметра простых типов (Число, Дата и Булево)
|
|||
19
hhhh
19.04.22
✎
00:20
|
(17) да, проще же выгрузить два параметра: номер счета фактуры и дата счета фактуры, чем выгружать структуру, да еще у вас как-то через задницу, две структуры, вложенные друг в друга.
|
|||
20
vdeemer
19.04.22
✎
11:04
|
(18) (19) пробовал - те же яйца, только в профиль. Я пробовал передавать один параметр, не передается. Может я не понимаю логику работы обработчиков ПКО? Если в обработчике "Перед выгрузкой" делаю уф
то в обработчике "После загрузки" должен сработать код
? |
|||
21
hhhh
19.04.22
✎
11:14
|
(20) наверно
Флаг = Параметры["СоздаватьСчетФактураПолученный"]; |
|||
22
vdeemer
19.04.22
✎
11:17
|
(21)
Ошибка в обработчике события ПослеЗагрузкиОбъекта ИмяПКО = ПоступлениеТоваровУслуг ТипОбъекта = Поступление (акт, накладная, УПД) Объект = Поступление (акт, накладная, УПД) П0000000126 от 07.04.2022 0:00:00 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Поле объекта не обнаружено (СоздаватьСчетФактураПолученный) ПозицияМодуля = <Неизвестный модуль>(1) КодСообщения = 21 |
|||
23
vdeemer
19.04.22
✎
11:36
|
(16) так и сделал, но это же идеологически неверно((
|
|||
24
hhhh
19.04.22
✎
11:37
|
(20) а он создается программно? или есть в таблице параметров
|
|||
25
hhhh
19.04.22
✎
11:39
|
там в таблице параметров есть галки, выгрузка и загрузка. то есть задаем виден параметр на этапе загрузки или нет.
|
|||
26
vdeemer
19.04.22
✎
11:51
|
(24) В таблице параметров его нет... Может здесь порылась чихуахуа? Но этот параметр мне нужен только для конкретного ПКО, он не вылезет в другом месте? Или в других ПКО про это дело помнить и не трогать его?
|
|||
27
DiMel_77
19.04.22
✎
12:24
|
(26) Коллеги, в чем спор? Во первых необходимо поделить структуру на отдельные параметры. Передать через выражение в ПКС или Через Входящие данные в процедуре "Перед выгрузкой" ПКО (не принципиально).
Структуру наверно тоже можно передать, если серилизовать в json и т.п. Далее, через соответствие ПараметрыОбъекта["Имя параметра"] она передается в приемник. Единственный ньюанс, который у меня был если передаешь параметр нужно указывать "Поиск объекта при загрузке по свойству", но это когда хочешь использовать в обработчике "Поля поиска" (может кстати ошибка быть с этим флагом связанна). |
|||
28
vdeemer
19.04.22
✎
18:03
|
(27) Да тут не спор, справку толкуем (с)
Мне больше интересно, почему не работает структура Параметры, доступная для всех обработчиков ПКО - по идее, можно через нее же передать. |
|||
29
elCust
19.04.22
✎
18:39
|
Если передается значение в параметр в ПКС, то
Модуле обработчика "После загрузки" нужно писать ПараметрыОбъекта.Получить["ИмяПараметра"]; |
|||
30
vdeemer
19.04.22
✎
19:18
|
(29) Это если в ПКС указывается "Передавать данные в параметр", а можно в обработчиках ПКО использовать именно структуру "Параметры"? Она заявлена как доступная во всех обработчиках.
|
|||
31
elCust
19.04.22
✎
19:51
|
(30) Тогда используйте ПередатьОдинПараметрВПриемник
|
|||
32
Йохохо
19.04.22
✎
19:57
|
(30) а откуда уверенность что она если и есть будет одна и та же? имхо все "сквозные" объекты перечислены в параметрах функции ВыгрузитьПоПравилу(), остальные локальные переменные
|
|||
33
vdeemer
19.04.22
✎
21:15
|
(32) дык сейчас нет в этом никакой уверенности, потому что не работает оно у меня почему-то. А так-то я не придумал, в информации по обработчикам написано... Хотя на заборе тоже встречаются полиграфические следы, но все же)
|
|||
34
Лирик
19.04.22
✎
22:23
|
Все значения структуры "Параметры" доступны во всех обработчиках на стороне источника, но на стороне приемника доступны лишь те, которые "объявлены" через закладку "Параметры" конфигурации КД2 и с установленным признаком "При загрузке". Параметры, сделанные на стороне источника конструкцией "Параметры.Вставить([Ключ], [Значение])" на стороне приемника (без дополнительного шаманства) недоступны.
Очень хорошая статья про параметры КД2 https://learn.programstore.ru/blog/parametry-v-1c |
|||
35
vdeemer
19.04.22
✎
22:40
|
(34) Вот оно!
Спасибо!!! |
|||
36
Йохохо
19.04.22
✎
22:46
|
(35) ждём утра
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |