Каталог решений - Конвертация данных 2: передача параметров из выгрузки в загрузку (в том числе и на ранние стадии) при обмене из 7.7 в 8.х

Конвертация данных 2: передача параметров из выгрузки в загрузку (в том числе и на ранние стадии) при обмене из 7.7 в 8.х

Конвертация данных 2: передача параметров из выгрузки в загрузку (в том числе и на ранние стадии) при обмене из 7.7 в 8.х

В наличии

Кратко суть проблемы можно озвучить цитатой из документации:
"Передача параметра из источника в приемник доступна только при обмене между информационными базами на платформе 1С:Предприятие 8".

Ниже излагается способ передачи глобальных параметров при таком обмене без правки выгруженного из КД 2 модуля выгрузки и без правки самой КД 2.

Категория:

Описание

Итак, в обработчике ПередВыгрузкойДанных пишем код:

УзелПарам=СоздатьУзел("ЗначениеПараметра");
УстановитьАтрибут(УзелПарам,"Имя","НашПараметр1");
УстановитьАтрибут(УзелПарам,"Тип","Строка");
ЗаписатьЭлемент(УзелПарам,"Значение","Значение нашего параметра 1");
ДобавитьПодчиненный(rootNode,УзелПарам);

УзелПарам=СоздатьУзел("ЗначениеПараметра");
УстановитьАтрибут(УзелПарам,"Имя","НашПараметр2");
УстановитьАтрибут(УзелПарам,"Тип","Булево");
ЗаписатьЭлемент(УзелПарам,"Значение","true");
ДобавитьПодчиненный(rootNode,УзелПарам);

после этого данные параметры будут абсолютно штатно загружены в стандартной обработке «Универсальный обмен данными в формате XML (2.1.5)».

Ещё хотелось бы заметить, что содержимое обработчика ПослеЗагрузкиПараметров при таком обмене также не выгружается в файл обмена. Исправить данную оплошность можно так же, записав в обработчике ПередВыгрузкойДанных

АлгПослеЗагрузкиПараметров=
"СтрокаКода1;"+РазделительСтрок+
"СтрокаКода2;"+РазделительСтрок+
"СтрокаКода3;";
ЗаписатьЭлемент(rootNode,"АлгоритмПослеЗагрузкиПараметров",АлгПослеЗагрузкиПараметров); 

Нюанс: чтобы иметь параметры на ранних стадиях загрузки, например, в обработчиках ПередЗагрузкойДанных или ПередОбработкой в ПОД (правилах очистки данных), нужно помещать выгружаемые параметры в корень узла с выгружаемыми данными:

ИмяПараметра="НашПараметр1";
ТипПараметра="Строка";
ЗначениеПараметра="Значение нашего параметра 1";


// Устанавливаем значение параметра в обработчике ПередЗагрузкойДанных
УзелПравил=rootNode.getElementsByTagName("ПравилаОбмена").item(0);
УзелПередЗагрузкой=УзелПравил.getElementsByTagName("ПередЗагрузкойДанных").item(0);
КоллУзлов=УзелПередЗагрузкой.childNodes;
Для НомУзла=0 По КоллУзлов.length-1 Цикл
    ТекУзел=КоллУзлов.item(НомУзла);
    Если (ТекУзел.nodeType=3) Тогда
        // текст элемента
        ТекУзел.nodeValue=РазделительСтрок+"Параметры."+ИмяПараметра+"="+?(ТипПараметра="Строка","""","")+
            ЗначениеПараметра+?(ТипПараметра="Строка","""","")+";"+РазделительСтрок+РазделительСтрок+
            ТекУзел.nodeValue;
        Прервать;
    КонецЕсли;
КонецЦикла;
has been added to your cart:
Оформление заказа