1С 8.3 ПараметрыФормы в структуру
Данные > Примеры кода 1С > 1С 8.3 Форма, элементы
Перейти в раздел примеры кода 1С 8.3:
Функция возвращает структуру из параметров формы в 1С 8.3:
// Возвращает структуру из параметров формы.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/133
//
// Параметры:
// ПараметрыФормы - ДанныеФормыСтруктура
//
// Возвращаемое значение:
// Структура
Функция СтруктураИзПараметровФормы(Знач ПараметрыФормы) Экспорт
Результат = Новый Структура;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ПараметрыФормы, НазначениеТипаXML.Явное);
СтрокаXML = ЗаписьXML.Закрыть();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.Имя = "structure"
И ЧтениеXML.ПолучитьАтрибут("name") = "parameters"
И ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли ЧтениеXML.Имя = "field" Тогда
ТекущийКлюч = ЧтениеXML.ПолучитьАтрибут("nameRu");
ТекущийКлюч = ?(ЗначениеЗаполнено(ТекущийКлюч), ТекущийКлюч, ЧтениеXML.ПолучитьАтрибут("name"));
Если ЗначениеЗаполнено(ТекущийКлюч) Тогда
Результат.Вставить(ТекущийКлюч);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
ЗаполнитьЗначенияСвойств(Результат, ПараметрыФормы);
Возврат Результат;
КонецФункции
// MIT License
//
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/133
//
// Параметры:
// ПараметрыФормы - ДанныеФормыСтруктура
//
// Возвращаемое значение:
// Структура
Функция СтруктураИзПараметровФормы(Знач ПараметрыФормы) Экспорт
Результат = Новый Структура;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ПараметрыФормы, НазначениеТипаXML.Явное);
СтрокаXML = ЗаписьXML.Закрыть();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.Имя = "structure"
И ЧтениеXML.ПолучитьАтрибут("name") = "parameters"
И ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли ЧтениеXML.Имя = "field" Тогда
ТекущийКлюч = ЧтениеXML.ПолучитьАтрибут("nameRu");
ТекущийКлюч = ?(ЗначениеЗаполнено(ТекущийКлюч), ТекущийКлюч, ЧтениеXML.ПолучитьАтрибут("name"));
Если ЗначениеЗаполнено(ТекущийКлюч) Тогда
Результат.Вставить(ТекущийКлюч);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
ЗаполнитьЗначенияСвойств(Результат, ПараметрыФормы);
Возврат Результат;
КонецФункции
// MIT License
//
// Copyright (c) 2024 SeiOkami
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник