Передача параметров на приёмник
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Здравствуйте!
При интерактивной(ручной) выгрузке передать параметр можно так:
1. В карточке КД на вкладке "Параметры" добавляем необходимые параметры и ставим галку "Передавать при выгрузке"(остальные галки сами ставятся);
2. В обработчике "ПослеЗагрузкиПравилОбмена" добавляем код "Параметры.НомерПринятого = 555;".
И всё, данный параметр доступен везде, и на стороне приёмника и на стороне источника. Замечательно.
Но! При НЕ интерактивной выгрузке, а именно, программным способом запускаем обработку "УниверсальныйОбменДаннымиXML", вызываем по очереди необходимые экспортные процедуры данной обработки(в которой есть и "ЗагрузкаПравилОбмена") и выгружаем данные. В файле с выгруженными данными параметр присутствует, но всегда ПУСТОЙ.
Думал обработчик "ПослеЗагрузкиПравилОбмена" не срабатывает, перенёс заполнение параметра в обработчик "ПередВыгрузкойДанных". Так ни при ручной, ни при программной выгрузке параметр не заполняется.
Попробовал заполнение параметра через "ПередатьОдинПараметрВПриемник("НомерПринятого", 555);" в обраотчике "ПередВыгрузкойДанных", но в этом случае происходит дублирование параметров, один из них доступен на приёмнике, другой(пустой) - на источнике.
Вопрос: как правильно передать параметр на приёмник, но чтобы он был доступен и на источнике?
При интерактивной(ручной) выгрузке передать параметр можно так:
1. В карточке КД на вкладке "Параметры" добавляем необходимые параметры и ставим галку "Передавать при выгрузке"(остальные галки сами ставятся);
2. В обработчике "ПослеЗагрузкиПравилОбмена" добавляем код "Параметры.НомерПринятого = 555;".
И всё, данный параметр доступен везде, и на стороне приёмника и на стороне источника. Замечательно.
Но! При НЕ интерактивной выгрузке, а именно, программным способом запускаем обработку "УниверсальныйОбменДаннымиXML", вызываем по очереди необходимые экспортные процедуры данной обработки(в которой есть и "ЗагрузкаПравилОбмена") и выгружаем данные. В файле с выгруженными данными параметр присутствует, но всегда ПУСТОЙ.
Думал обработчик "ПослеЗагрузкиПравилОбмена" не срабатывает, перенёс заполнение параметра в обработчик "ПередВыгрузкойДанных". Так ни при ручной, ни при программной выгрузке параметр не заполняется.
Попробовал заполнение параметра через "ПередатьОдинПараметрВПриемник("НомерПринятого", 555);" в обраотчике "ПередВыгрузкойДанных", но в этом случае происходит дублирование параметров, один из них доступен на приёмнике, другой(пустой) - на источнике.
Вопрос: как правильно передать параметр на приёмник, но чтобы он был доступен и на источнике?
По теме из базы знаний
- Передача файлов и данных на веб-сервер средствами 1С:Предприятие 8.X методом POST
- Механизмы и транспорт обмена данными. Пример создания в КД 2.1 правил обмена данными ЗУП 2.5 -> БП 3.0. Выгрузка ведомостей и банковских счетов. Передача параметров обмена из Источника в Приемник. ВыгрузитьПоПравилу(). ПередатьОдинПараметрВПриемник().
- Полезности при работе с динамическими списками
- DaJet Stream: потоковый обмен данными
- Оптимизация типовых обменов EnterpriseData. Делаем асинхронное проведение и дожидаемся ответа от приёмника
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(0) Я как-то сталкивался с проблемой передачи параметров в приемник.
Выкрутился следующим образом: в обработчик конвертации "Перед выгрузкой данных" прописал следующий код (для своего параметра "ПроводитьПриЗагрузке"):
СтрокаТЗ = ТаблицаНастройкиПараметров.Найти("ПроводитьПриЗагрузке", "Имя");
Если СтрокаТЗ <> Неопределено Тогда
СтрокаТЗ.Значение = Истина;
КонецЕсли;
Выкрутился следующим образом: в обработчик конвертации "Перед выгрузкой данных" прописал следующий код (для своего параметра "ПроводитьПриЗагрузке"):
СтрокаТЗ = ТаблицаНастройкиПараметров.Найти("ПроводитьПриЗагрузке", "Имя");
Если СтрокаТЗ <> Неопределено Тогда
СтрокаТЗ.Значение = Истина;
КонецЕсли;
УРА! Разобрался)
Внимательно ознакомившись с алгоритмом интерактивной выгрузки, выяснил, что заполнение параметров производится не в процедуре "ЗагрузкаПравилОбмена()", а в процедуре "ИнициализироватьПервоначальныеЗначенияПараметров()". Следовательно, при программной выгрузки необходимо вызывать экспортную процедуру заполнения параметров.
Обработка.ЗагрузитьПравилаОбмена();
Обработка.ИнициализироватьПервоначальныеЗначенияПараметров();
Обработка.ВыполнитьВыгрузку();
Внимательно ознакомившись с алгоритмом интерактивной выгрузки, выяснил, что заполнение параметров производится не в процедуре "ЗагрузкаПравилОбмена()", а в процедуре "ИнициализироватьПервоначальныеЗначенияПараметров()". Следовательно, при программной выгрузки необходимо вызывать экспортную процедуру заполнения параметров.
Обработка.ЗагрузитьПравилаОбмена();
Обработка.ИнициализироватьПервоначальныеЗначенияПараметров();
Обработка.ВыполнитьВыгрузку();
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот