Имя: Пароль:
1C
 
8.3 ДанныеФормыСтруктура в Структуру
0 SeiOkami
 
24.01.19
09:37
Добрый день.

Есть ли способ ДанныеФормыСтруктура преобразовать в Структура?

Нуно параметры формы загнать в структуру. Однако, заранее ключи неизвестны.

Или может есть способ получить из ДанныеФормыСтруктура ключи ?
1 SeiOkami
 
24.01.19
10:03
уп
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.Закрыть();
    
    
    ЗаполнитьЗначенияСвойств(СтруктураРезультат, ПараметрыФормы);
    
    
    Возврат СтруктураРезультат;
    
КонецФункции
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс