Кратко суть проблемы можно озвучить цитатой из документации:
"Передача параметра из источника в приемник доступна только при обмене между информационными базами на платформе 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; Прервать; КонецЕсли; КонецЦикла;