XML JSON преобразователь

11.10.17

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Обработка демонстрирует возможность программного преобразования XML в JSON и обратно без подключения внешних модулей.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
XML <-> JSON преобразователь:
.epf 10,50Kb
121
121 Скачать (1 SM) Купить за 1 850 руб.

Преобразование выполняется полностью средствами 1С, при помощи объектов ЧтениеXML, ЗаписьXML, ЧтениеJSON и ЗаписьJSON, без подключения внешних библиотек. Преобразование учитывает возможность наличия в JSON массивов, значений типа Число, Строка, Булево и возможность наличия атрибутов в XML. Эти параметры настраиваются, все видно на скриншотах.

Все процедуры написаны с инструкцией &НаКлиентеНаСервереБезКонтекста, что позволит использовать их как на клиентской так и на серверной стороне, в общих модулях и на формах. Код открыт.

Обработка не претендует на учет всех возможных случаев и в некоторых сложных ситуациях может приводить к невоспроизводимому результату (преобразование XML->JSON->XML не вернет исходный текст) или приводить к исключению, но все случаи встречавшиеся мне на практике обрабатывает успешно.

Платформа 8.3.9.2233.

См. также

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 24894 руб.

12.06.2017    145356    845    299    

437

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.20.x), также подходят для релиза 11.5 (11.5.19.x).

35000 руб.

23.07.2020    55650    254    73    

208

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    74010    196    154    

135

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    38146    107    69    

101

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.240.x) и БП 3.0 (3.0.169.x). Правила подходят для версии ПРОФ и КОРП.

35000 руб.

15.12.2021    25901    184    55    

139

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Платформа 1C v8.2 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16260 руб.

18.02.2016    188918    613    534    

536

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 50200 руб.

24.04.2015    197487    157    244    

287

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:ERP Управление предприятием 2.5 и 1С:Комплексную автоматизацию 2.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.240.x), ERP 2.5 (2.5.20.x), КА 2.5 (2.5.20.x), также подходят для релиза ERP 2.5 (2.5.19.x), КА 2.5 (2.5.19.x).

35000 руб.

24.06.2020    64767    80    28    

92
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. m-rv 977 11.10.17 17:39 Сейчас в теме
Если будут встречаться ошибки преобразования и вы ими захотите поделиться - доводите пжста текст XML/JSON до минимально необходимого для воспроизведения объема перед отправкой, а также указывайте значения настроек при которых они возникли. Не гарантирую, что отвечу всем, но в целом я заинтересован в том, чтобы этот инструмент работал на как можно лучше.
2. kuzyara 2127 18.10.17 13:34 Сейчас в теме
&НаКлиенте
Функция ПрочитатьXML_(XML)	
	Ветка = Новый Соответствие;
	Значение = "";
	
	Пока XML.Прочитать() Цикл
		ТипУзла = XML.ТипУзла;
		Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
			Имя = XML.Имя;
			Временно = Ветка.Получить(Имя);
			Если Временно = Неопределено Тогда
				Ветка.Вставить(Имя, ПрочитатьXML_(XML));
			Иначе
				Если ТипЗнч(Временно) <> Тип("Массив") Тогда
					нз = новый Массив;
					нз.Добавить(Временно);
					Временно = нз;
					нз = "";
					Ветка.Удалить(Имя);
					Ветка.Вставить(Имя, Временно);
				КонецЕсли;
				Временно.Добавить(ПрочитатьXML_(XML));
			КонецЕсли;
		ИначеЕсли ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
			Возврат ?(ЗначениеЗаполнено(Ветка), Ветка, Значение);
		ИначеЕсли ТипУзла = ТипУзлаXML.Текст Тогда
			Значение = Значение + XML.Значение;
			XML.Прочитать(); //Вычитка закрывающего тега
			Возврат Значение;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Ветка;
КонецФункции
Показать


&НаКлиенте
Функция json(Объект)

    Тип = ТипЗнч(Объект);

    Если
                    Тип = Тип("Массив")
            ИЛИ Тип = Тип("СписокЗначений")

            Тогда

            Количество = Объект.Количество();
            Результат = "[";

            Для н = 0 ПО Количество - 1 Цикл
                    Результат = Результат + json(Объект[н]) + ?(н < Количество - 1, ", ", "");
            КонецЦикла;

            Результат = Результат + "]";
            Возврат Результат;

    ИначеЕсли
                    Тип = Тип("Структура")
            ИЛИ Тип = Тип("Соответствие") Тогда
            н = 0;
            Количество = Объект.Количество();
            Результат = "{";

            Для Каждого Пара Из Объект Цикл
                    Результат = Результат + json(Пара.Ключ) + ": " + json(Пара.Значение) + ?(н < Количество - 1, ", ", "");
                    н = н + 1;
            КонецЦикла;
            Результат = Результат + "}";
            Возврат Результат;

    ИначеЕсли Тип = Тип("ЭлементСпискаЗначений") Тогда
            Возврат json(Объект.Значение);

    ИначеЕсли Тип = Тип("Строка") Тогда
            Результат = Объект;

            Результат = СтрЗаменить(Результат, "\",          "\\");
            Результат = СтрЗаменить(Результат, "/",          "\/");
            Результат = СтрЗаменить(Результат, """",         "\""");
            Результат = СтрЗаменить(Результат, Символы.ВК,   "\r");
            Результат = СтрЗаменить(Результат, Символы.Таб,  "\t");
            Результат = СтрЗаменить(Результат, Символы.ПС,   "\n");

            Возврат """" + Результат + """";

    ИначеЕсли Тип = Тип("Число") Тогда
            Возврат Формат(Объект, "ЧРД=.; ЧН=0; ЧГ=0");

    ИначеЕсли Тип = Тип("Булево") Тогда
            Возврат Формат(Объект, "БЛ=false; БИ=true");

    ИначеЕсли Тип = Тип("Дата") Тогда
            Возврат json(Формат(Объект, "ДФ=yyyy-MM-ddThh:mm:ss"));

    ИначеЕсли
                    Объект = Неопределено
            ИЛИ Объект = Null

            Тогда Возврат "null";

    Иначе
            Возврат json(Строка(Объект));

    КонецЕсли;
КонецФункции
Показать


		ЧтениеXML = Новый ЧтениеXML;
		ЧтениеXML.УстановитьСтроку(ТекстXML);
		СоответствиеXML = ПрочитатьXML_(ЧтениеXML);
		
		ТекстJson = json(СоответствиеXML);
bds22; freegman74; vers139; +3 Ответить
3. Zazamuh 23.07.19 18:16 Сейчас в теме
(2)
СоответствиеXML = ПрочитатьXML_(ЧтениеXML);

ТекстJson = json(СоответствиеXML);


Спасибо дружище!
4. agdam_m 6 19.12.19 09:05 Сейчас в теме
Штатными средствами:

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, СоответствиеXML);
ТекстJson = ЗаписьJSON.Закрыть();
5. samoswork 30.03.21 14:54 Сейчас в теме
Вот из-за таких ошибок спутники с орбит сходят...

Возврат json(Формат(Объект, "ДФ=yyyy-MM-ddThh:mm:ss"));


Переведите региональные установки на 12-часовой формат (AM/PM) и удивитесь результату :)

Чтобы не копать далеко, сразу говорю... не "hh", а "HH"
bds22; Fruktoved; Eillecho; +3 Ответить
6. MaxS 2980 02.12.22 08:30 Сейчас в теме
Что-то пока не разобрался куда копать
Выгрузил документ 1С в JSON и пытаюсь преобразовать в xml. Обратное преобразование из xml не нужно.
Начало json выглядит так:
{
"#type": "jcfg:DocumentObject.АвансовыйОтчет",
"#value": {
"Ref": "91f310ae-ecd0-11e4-92f1-0050568b35ac",
"DeletionMark": false,
"Date": "2017-04-27T15:28:48",
"Number": "ТД00-000001",

Данная обработка не может это разобрать.
Оставьте свое сообщение