2
SeiOkami
24.01.19
✎
10:23
|
Нашел костыльный способ. Насколько он везде работает - не знаю. Со временем увижу)
&НаКлиентеНаСервереБезКонтекста
Функция СтруктураИзПараметровФормы(ПараметрыФормы) Экспорт
Если ТипЗнч(ПараметрыФормы) = Тип("Структура") Тогда
Возврат ПараметрыФормы;
КонецЕсли;
СтруктураРезультат = Новый Структура;
//ПараметрыФормы в строку XML
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ПараметрыФормы, НазначениеТипаXML.Явное);
СтрокаXML = ЗаписьXML.Закрыть();
//Чтение ключей параметров формы из строки XML
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.Имя = "structure"
И ЧтениеXML.ПолучитьАтрибут("name") = "parameters"
И ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли ЧтениеXML.Имя = "field" Тогда
ТекущийКлюч = ЧтениеXML.ПолучитьАтрибут("nameRu");
ТекущийКлюч = ?(ЗначениеЗаполнено(ТекущийКлюч), ТекущийКлюч, ЧтениеXML.ПолучитьАтрибут("name"));
Если ЗначениеЗаполнено(ТекущийКлюч) Тогда
СтруктураРезультат.Вставить(ТекущийКлюч);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
ЗаполнитьЗначенияСвойств(СтруктураРезультат, ПараметрыФормы);
Возврат СтруктураРезультат;
КонецФункции
|
|