Конвертация данных2: переданный в ПКС параметр теряется в ПКО
Здравствуйте!
В правиле конвертации объекта (документ) добавляю ПКС "передавать данные в параметр", имя параметра СчетФактураПолученный, код "Перед выгрузкой":
Пытаюсь получить значение этого параметра в ПКО "После загрузки", пробовал
не взлетает((
Изначально пробовал в обработчике "Перед выгрузкой" писать
По идее, в обработчике "После загрузки" этого же самого ПКО структура Параметры должна содержать нужные данные, но увы - нихт((
В правиле конвертации объекта (документ) добавляю ПКС "передавать данные в параметр", имя параметра СчетФактураПолученный, код "Перед выгрузкой":
врЗначение = Новый Структура();
врЗначение.Вставить("СоздаватьСчетФактураПолученный", Истина);
врЗначение.Вставить("РеквизитыСФ", Новый Структура("Дата, Номер", Источник.ДатаСчф,Источник.НомерСчф));
Значение = врЗначение;
Пытаюсь получить значение этого параметра в ПКО "После загрузки", пробовал
СоздаватьСФ = ПараметрыОбъекта.Получить("СчетФактураПолученный");
не взлетает((
Изначально пробовал в обработчике "Перед выгрузкой" писать
Параметры.Вставить("СоздаватьСчетФактураПолученный", Истина);
Параметры.Вставить("РеквизитыСФ", Новый Структура("Дата, Номер", Источник.ДатаСчф,Источник.НомерСчф));
По идее, в обработчике "После загрузки" этого же самого ПКО структура Параметры должна содержать нужные данные, но увы - нихт((
Найденные решения
В ПКС в обработчике "Перед выгрузкой" если ИмяПКО не указано, то Значение должно иметь тип из списка:
1. Строка
2. Число
3. Булево
4. Дата
5. ХранилищеЗначения
6. УникальныйИдентификатор
7. ВидДвиженияНакопления
иначе значение в файл данных не выгружается.
Нужно переделать так:
1. Строка
2. Число
3. Булево
4. Дата
5. ХранилищеЗначения
6. УникальныйИдентификатор
7. ВидДвиженияНакопления
иначе значение в файл данных не выгружается.
Нужно переделать так:
врЗначение = Новый Структура();
врЗначение.Вставить("СоздаватьСчетФактураПолученный", Истина);
врЗначение.Вставить("РеквизитыСФ", Новый Структура("Дата, Номер", Источник.ДатаСчф,Источник.НомерСчф));
Значение = Новый ХранилищеЗначения(врЗначение);
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я пробовал передавать один параметр, не передается. Может я не понимаю логику работы обработчиков ПКО? Если в обработчике "Перед выгрузкой" делаю уф
то в обработчике "После загрузки" должен сработать код
?
Параметры.Вставить("СоздаватьСчетФактураПолученный", Истина);
то в обработчике "После загрузки" должен сработать код
Флаг = Параметры.СоздаватьСчетФактураПолученный;
?
В ПКС в обработчике "Перед выгрузкой" если ИмяПКО не указано, то Значение должно иметь тип из списка:
1. Строка
2. Число
3. Булево
4. Дата
5. ХранилищеЗначения
6. УникальныйИдентификатор
7. ВидДвиженияНакопления
иначе значение в файл данных не выгружается.
Нужно переделать так:
1. Строка
2. Число
3. Булево
4. Дата
5. ХранилищеЗначения
6. УникальныйИдентификатор
7. ВидДвиженияНакопления
иначе значение в файл данных не выгружается.
Нужно переделать так:
врЗначение = Новый Структура();
врЗначение.Вставить("СоздаватьСчетФактураПолученный", Истина);
врЗначение.Вставить("РеквизитыСФ", Новый Структура("Дата, Номер", Источник.ДатаСчф,Источник.НомерСчф));
Значение = Новый ХранилищеЗначения(врЗначение);
Параметр передавался, действительно, с недопустимым типом. Но в итоге сделал все проще - в комментарий добавлял @@@Дата@@@Номер, после загрузки его обрабатывал. Все равно непонятно, почему не передался параметр в рамках одного ПКО между обработчиками.
(7) Вы путаете "Глобальные параметры" и "Параметы ПКО". Переключатель "Передавать данные в параметр" будет передавать эти данные вместе с конвертируемым объектом.
Это не имеет отношения к "структуре, в которой хранятся переменные доступные во всех обработчиках"
<Объект Нпп="1" Тип="СправочникСсылка.Номенклатура" ИмяПравила="Номенклатура"><Ссылка Нпп="1">
<Свойство Имя="Код" Тип="Строка">
<Значение>75658</Значение>
</Свойство>
<Свойство Имя="ЭтоГруппа" Тип="Булево">
<Значение>false</Значение>
</Свойство>
</Ссылка>
<Свойство Имя="Наименование" Тип="Строка">
<Значение>тест 1</Значение>
</Свойство>
<ЗначениеПараметра Имя="П1" Тип="ХранилищеЗначения">
<Значение>AQFGAQAAAAAAAO+7v3siIyIsNDIzODAxOWQtN2U0OS00ZmM5LT kxZGItYjZiOTUx
ZDVjZjhlLA0KezIsDQp7DQp7IlMiLCLQodC+0LfQtNCw0LLQsNGC0YzQodGH 0LXR
gtCk0LDQutGC0YPRgNCw0J/QvtC70YPRh9C10L3QvdGL0LkifSwNCnsiQiIs MX0N
Cn0sDQp7DQp7IlMiLCLQoNC10LrQstC40LfQuNGC0YvQodCkIn0sDQp7IiMi LDQy
MzgwMTlkLTdlNDktNGZjOS05MWRiLWI2Yjk1MWQ1Y2Y4ZSwNCnsyLA0Kew0K eyJT
Iiwi0JTQsNGC0LAifSwNCnsiRCIsMjAyMjA0MTkxNTQ3Mzl9DQp9LA0Kew0K eyJT
Iiwi0J3QvtC80LXRgCJ9LA0KeyJTIiwiMTEyMyJ9DQp9DQp9DQp9DQp9DQp9 DQp9
</Значение>
</ЗначениеПараметра>
</Объект>
ПоказатьЭто не имеет отношения к "структуре, в которой хранятся переменные доступные во всех обработчиках"
Прикрепленные файлы:
(8) Вот я ожидал, что "структура, в которой хранятся переменные доступные во всех обработчиках", будет доступна для всех обработчиков этого ПКО, но почему-то чуда не произошло. Разумеется, эта структура должна попасть в файл обмена, а ее там нет. Спасибо за разъяснения!
(10)
"Структура, в которой хранятся переменные доступные во всех обработчиках" действительна доступна для всех обработчиков. Это некоторый аналог глобальных переменных. Но только в файл обмена параметры выгружаются еще до того, как начнуться выгружаться данные, т.е. до первого объекта. Поэтому заполнять глобальные параметры в ПКО (с целью их выгрузки) уже поздно. Чаще глобальные параметры используются для хранения вспомогательных данных.
Но есть возможность выгрузки глобальных параметров в файл обмена. Для этого у параметра должна стоять галка "Передавать параметр из источника в приемник", но значение параметров должны быть установлены в обработчике "Перед выгрузкой данных".
Также можно выгрузить параметр с помощью метода ПередатьОдинПараметрВПриемник(Имя, Значение, ИмяПКО = ""). Но использовать этот метод в обработчиках ПКО не следует, т.к. поломается файл обмена.
В вашем случае нужно использовать локальные параметры. Они будут переданы вместе с объектом. В приемнике они будут доступны в обработчике ПКО "После загрузки" в переменной ПараметрыОбъекта
"Структура, в которой хранятся переменные доступные во всех обработчиках" действительна доступна для всех обработчиков. Это некоторый аналог глобальных переменных. Но только в файл обмена параметры выгружаются еще до того, как начнуться выгружаться данные, т.е. до первого объекта. Поэтому заполнять глобальные параметры в ПКО (с целью их выгрузки) уже поздно. Чаще глобальные параметры используются для хранения вспомогательных данных.
Но есть возможность выгрузки глобальных параметров в файл обмена. Для этого у параметра должна стоять галка "Передавать параметр из источника в приемник", но значение параметров должны быть установлены в обработчике "Перед выгрузкой данных".
Также можно выгрузить параметр с помощью метода ПередатьОдинПараметрВПриемник(Имя, Значение, ИмяПКО = ""). Но использовать этот метод в обработчиках ПКО не следует, т.к. поломается файл обмена.
В вашем случае нужно использовать локальные параметры. Они будут переданы вместе с объектом. В приемнике они будут доступны в обработчике ПКО "После загрузки" в переменной ПараметрыОбъекта
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот