Обработка вызывается через Файл - Открыть, преобразование текста XML в формат JSON производится по кнопке "Сформировать".
Обработчик команды "Сформировать":
&НаСервере
Процедура СформироватьНаСервере()
ТекстXML = XML;
ЧтениеXML = Новый ЧтениеXML();
ЧтениеXML.УстановитьСтроку(ТекстXML);
//Перебор узлов
МассивСтруктур = Новый Массив;
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если ЧтениеXML.ЛокальноеИмя = "СведТов" Тогда
//Читаем = Истина;
Если ЧтениеXML.КоличествоАтрибутов() > 0 Тогда
СтруктураТоваров = Новый Структура();
Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
// Обработка атрибута
СтруктураТоваров.Вставить(ЧтениеXML.ЛокальноеИмя,ЧтениеXML.Значение);
КонецЦикла;
МассивСтруктур.Добавить(СтруктураТоваров);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
ЗаписьJSON(МассивСтруктур);
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
&НаСервере
Функция ЗаписьJSON(МассивСтруктур)
Настройки = Новый НастройкиСериализацииJSON();
Настройки.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
Настройки.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДата;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON( ПереносСтрокJSON.Нет));
ЗаписатьJSON(ЗаписьJSON, МассивСтруктур, Настройки);
СтрокаJSON = ЗаписьJSON.Закрыть();
Возврат СтрокаJSON;
КонецФункции
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, релизы 2.1.34.1