Имя: Пароль:
1C
 
Как в приёмнике интерактивно передать параметры в УниверсальныйОбменДаннымиXML?
0 Климов Сергей
 
18.06.25
13:10
Ситуация примерно как описано здесь: передача параметров и Конвертация данных
В приёмнике создана обработка-обёртка, вызывающая УниверсальныйОбменДаннымиXML.ВыполнитьЗагрузку(). Хочется в форме обёртки задать параметры, которые надо передать в обработчики событий загрузки. Попытка передать их через Параметры или ТаблицаНастройкиПараметров успехом не увенчалась - при загрузке данных они очищаются. Передать их в файле из приёмника тоже не получается: приёмник "не знает" нужных типов данных, да и тот, кто будет выполнять выгрузку не должен ими рулить.
Вносить изменения в код УниверсальныйОбменДаннымиXML, во-первых, некрасиво и, во-вторых, приёмник - базовая версия. Тащить в обёртку весь функционал универсального обмена тоже не хочется.
Может есть какой-то хитрый способ?
1 lucky_
 
18.06.25
13:44
(0)
1.ПКС-> выгружать в параметр
2.ПКО-> выгрузить по правилу.
способы не хитрые, но рабочие.
от задачи сильно зависит.
2 Климов Сергей
 
18.06.25
13:45
(1) Я не могу выгрузить эти параметры из источника, их там неоткуда взять. Источник про них "не знает".
3 lucky_
 
18.06.25
13:51
(2) если источник про них не знает
приемник не знает типов - может уже озвучишь задачу?)
как вариант - просто заполняй параметры программно перед загрузкой, или ещё где.
но, скорее всего, ты тоже не знаешь, чем их заполнить.
кто тогда знает?
4 Климов Сергей
 
18.06.25
13:55
(3) Источник - исковерканная и древняя как г-но мамонта УТ10. Приёмник - базовая БП. В приёмнике нужно:
1) Указать номенклатурную группу (НГ), -к-рую использовать в загружаемой номенклатуре. В УТ НГ не заполнены ваще. Т.е. это реквизит типа Справочник "Номенклаткрные группы".
2) Хочу иметь флажок "Проводить документы". Если установлен - проводить документы при загрузке. Булево.

Вот так не работает:
    Загрузка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    Загрузка.ИмяФайлаОбмена = Объект.ИмяФайлаОбмена;
    Загрузка.Параметры.Вставить("НоменклатурнаяГруппа", Объект.НоменклатурнаяГруппа);
    Загрузка.Параметры.Вставить("ПроводитьДокументы",   Объект.ПроводитьДокументы);
    
    ТаблицаНастройкиПараметров = Новый ТаблицаЗначений();
    ТаблицаНастройкиПараметров.Колонки.Добавить("Имя");
    ТаблицаНастройкиПараметров.Колонки.Добавить("Значение");
    
    НоваяСтрока = ТаблицаНастройкиПараметров.Добавить();
    НоваяСтрока.Имя = "НоменклатурнаяГруппа";
    НоваяСтрока.Значение = Объект.НоменклатурнаяГруппа;
    
    НоваяСтрока = ТаблицаНастройкиПараметров.Добавить();
    НоваяСтрока.Имя = "ПроводитьДокументы";
    НоваяСтрока.Значение = Объект.ПроводитьДокументы;
    
    Загрузка.ТаблицаНастройкиПараметров = ТаблицаНастройкиПараметров.Скопировать();
    
    Загрузка.РежимОбмена = "Загрузка";
    Загрузка.ВыполнитьЗагрузку();
5 Мультук
 
гуру
18.06.25
14:03
(0)

Моё имхо.
Скопипастить полностью обработку "УниверсальныйОбменДаннымиXML", внести свои изменения.

Хотел предложить скопипастить только функцию ВыполнитьЗагрузку(), она маленькая и прозрачная
Но увы, часть нужных функций, которые она дёргает, экспортные (ура!), но конечно же не все (печаль).


P.S.
Базовые версии == Базовые клиенты == Околонулевая доходность

Работы много, выхлопа мало
6 Климов Сергей
 
18.06.25
14:06
(5) Я тоже пришёл к мысли задуплить универсальный обмен. Но "неаккуратненько как-то" :-)
В данном случае с доходностью нормально )))
7 d4rkmesa
 
гуру
18.06.25
14:08
(4) Так это (обращение к Загрузка.Параметры) вполне должно работать, как работает в форме обработки. Если параметры пустые, значит они еще не подгрузились, либо что-то не так делаете.
https://forum.infostart.ru/forum15/topic113153/
8 d4rkmesa
 
гуру
18.06.25
14:10
del
9 Климов Сергей
 
18.06.25
14:12
(7) По ссылке речь об источнике. Там проблем нет.
10 zenik
 
18.06.25
14:26
В КД есть "После загрузки параметров". В ней можно добавить Параметры.Вставить("Параметр", Значение);
11 d4rkmesa
 
гуру
18.06.25
15:13
Поэкспериментируйте с Загрузка.ОткрытьФайлЗагрузки(...)
12 Климов Сергей
 
18.06.25
15:19
(10) Спасибо, не обращал внимание на этот обработчик. Но как сюда передать нужные Значения? Они то задаются интерактивно в другой обработке.
13 zenik
 
18.06.25
15:26
(12) другая обработка может их сохранить "где то", а обработка загрузки взять их где было сохранено...
К примеру общий модуль можно вызвать, который вернет все эти параметры... Ну а где их хранить - дело вкуса.
14 Климов Сергей
 
18.06.25
15:45
(13) Базовая версия (((
15 Климов Сергей
 
18.06.25
15:46
(13) Разве что через Хранилище...