Автор: svetas_l 17.09.20, 16:25
есть код работает
но нужно его переделать под старую платформу 8.3.12 т.е. без "СериализаторXDTO."
помогите пожалуйста
Код&НаСервере
Процедура Команда1НаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ *
|ИЗ
| Справочник.Организации КАК Организации
|";
Выборка = Запрос.Выполнить().Выбрать();
Массив_записи =Новый массив;
Пока Выборка.Следующий() Цикл
ОписаниеОбъекта = Новый Структура("Ссылка, Код, Наименование, Префикс,ИНН,НомерСвидетельства,КодПоЕДРПОУ,ФизическоеЛицо,НаименованиеПолное,СвидетельствоСерияНомер,СвидетельствоДатаВыдачи,БанковскийСчетПоУмолчанию,ЮрФизЛицо,ТекущийРуководитель,ТекущаяДолжностьРук
оводителя,ТекущийГлавныйБухгалтер,ТекущийКассир,ТекущийПаспортист,ТипОрганизации,УчетнаяЗаписьЭлектроннойПочты,НазваниеДляСвернутыхУслуг,ИнформацияПредупреждениеНовойКвитанции");
ОписаниеОбъекта.Ссылка = Строка(Выборка.Ссылка);
ОписаниеОбъекта.Код=Строка(Выборка.Код);
ОписаниеОбъекта.Наименование=Строка(Выборка.Наименование);
ОписаниеОбъекта.Префикс=Строка(Выборка.Префикс);
ОписаниеОбъекта.ИНН=Строка(Выборка.ИНН);
ОписаниеОбъекта.НомерСвидетельства=Строка(Выборка.НомерСвидетельства);
ОписаниеОбъекта.КодПоЕДРПОУ=Строка(Выборка.КодПоЕДРПОУ);
ОписаниеОбъекта.ФизическоеЛицо=Строка(Выборка.ФизическоеЛицо);
ОписаниеОбъекта.НаименованиеПолное=Строка(Выборка.НаименованиеПолное);
ОписаниеОбъекта.СвидетельствоСерияНомер=Строка(Выборка.СвидетельствоСерияНомер);
ОписаниеОбъекта.СвидетельствоДатаВыдачи=Строка(Выборка.СвидетельствоДатаВыдачи);
ОписаниеОбъекта.БанковскийСчетПоУмолчанию=Строка(Выборка.БанковскийСчетПоУмолчанию);
ОписаниеОбъекта.ЮрФизЛицо=Строка(Выборка.ЮрФизЛицо);
ОписаниеОбъекта.ТекущийРуководитель=Строка(Выборка.ТекущийРуководитель);
ОписаниеОбъекта.ТекущаяДолжностьРуководителя=Строка(Выборка.ТекущаяДолжностьРуководителя);
ОписаниеОбъекта.ТекущийГлавныйБухгалтер=Строка(Выборка.ТекущийГлавныйБухгалтер);
ОписаниеОбъекта.ТекущийКассир=Строка(Выборка.ТекущийКассир);
ОписаниеОбъекта.ТекущийПаспортист=Строка(Выборка.ТекущийПаспортист);
ОписаниеОбъекта.ТипОрганизации=Строка(Выборка.ТипОрганизации);
ОписаниеОбъекта.УчетнаяЗаписьЭлектроннойПочты=Строка(Выборка.УчетнаяЗаписьЭлектроннойПочты);
ОписаниеОбъекта.НазваниеДляСвернутыхУслуг=Строка(Выборка.НазваниеДляСвернутыхУслуг);
ОписаниеОбъекта.ИнформацияПредупреждениеНовойКвитанции=Строка(Выборка.ИнформацияПредупреждениеНовойКвитанции);
Массив_записи.Добавить(ОписаниеОбъекта);
КонецЦикла;
Запись_в_JSON(Массив_записи,"test");
КонецПроцедуры
процедура Запись_в_JSON(Массив_записи,имя_файла)
ЗаписьJSON= Новый ЗаписьJSON;
ЗаписьJSON.ПроверятьСтруктуру = Истина;
НастройкиСериализации = Новый НастройкиСериализацииJSON;
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", Истина);
НастройкиСериализации.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.УниверсальнаяДата;
НастройкиСериализации.СериализовыватьМассивыКакОбъекты = Истина;
ЗаписьJSON.ОткрытьФайл(Этаформа.ПутьЗаписи+имя_файла+".json"); // , , , ПараметрыJSON
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("Массив_записи");
СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON,Массив_записи,НазначениеТипаXML.Явное); //НастройкиСериализации
ЗаписьJSON.ЗаписатьКонецОбъекта();
ЗаписьJSON.Закрыть();
КонецПроцедуры
Автор: kihor 17.09.20, 16:50
svetas_l @ Сегодня, 17:25
,
Попробуйте для формирования JSON такой фрагмент кода.
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Массив_записи);
Результат = ЗаписьJSON.Закрыть();
В конце в переменной Результат будет текст JSON.
Автор: svetas_l 18.09.20, 7:58
kihor, спасибо
ЗаписьJSON.ОткрытьФайл(Этаформа.ПутьЗаписи+имя_файла+".json"); // , , , ПараметрыJSON
//ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Массив_записи);
ЗаписьJSON.Закрыть();
спасибо, без строки "УстановитьСтроку(); " вроде работает, а как прочитать этим способом строку, когда массив объектов?
Автор: kihor 18.09.20, 17:08
svetas_l @ Сегодня, 8:58
,
Прочитать JSON можно при помощи такого кода:
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ЗдесьСтрокаJSON);
ЭлементыСписка = ПрочитатьJSON(ЧтениеJSON, Истина);
ЧтениеJSON.Закрыть();