Формирование строки json в 1С: 7.7

10.12.18

Разработка - Универсальные функции

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

7.70.027

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

Наименование По подписке [?] Купить один файл
Формирование строки json в 1с 7.7:
.ert 32,50Kb ver:1
62
62 Скачать (1 SM) Купить за 1 850 руб.

Формирование строки json сводится к использованию 5 функций

НовыйОбъект()

ДобавитьВОбъект()

НовыйМассив()

ДобавитьВМассив()

Value()

и финальной функции

СформироватьСтрокуJSON_OBJECT()


// Пример формирования строки json. Взят из  https://jsonformatter.org/
Процедура Сформировать()

	Tom = НовыйОбъект();
	ДобавитьВОбъект(Tom,"id",Value("Строка","1"));
	ДобавитьВОбъект(Tom,"firstname",Value("Строка","Tom"));
	ДобавитьВОбъект(Tom,"lastname",Value("Строка","Cruise"));
	ДобавитьВОбъект(Tom,"photo",Value("Строка","https://jsonformatter.org/img/tom-cruise.jpg"));

	Maria = НовыйОбъект();
	ДобавитьВОбъект(Maria,"id",Value("Строка","2"));
	ДобавитьВОбъект(Maria,"firstname",Value("Строка","Maria"));
	ДобавитьВОбъект(Maria,"lastname",Value("Строка","Sharapova"));
	ДобавитьВОбъект(Maria,"photo",Value("Строка","https://jsonformatter.org/img/Maria-Sharapova.jpg"));
   
	Robert = НовыйОбъект();
	ДобавитьВОбъект(Robert,"id",Value("Строка","3"));
	ДобавитьВОбъект(Robert,"firstname",Value("Строка","Robert"));
	ДобавитьВОбъект(Robert,"lastname",Value("Строка","Downey Jr."));
	ДобавитьВОбъект(Robert,"photo",Value("Строка","https://jsonformatter.org/img/Robert-Downey-Jr.jpg"));

	
	employee_array = НовыйМассив();
	ДобавитьВМассив(employee_array,Value("Object",Tom));
	ДобавитьВМассив(employee_array,Value("Object",Maria)); 
	ДобавитьВМассив(employee_array,Value("Object",Robert)); 
	
	employee = НовыйОбъект();
	ДобавитьВОбъект(employee,"employee:",Value("Array",employee_array));
	
	employees = НовыйОбъект();
	ДобавитьВОбъект(employees,"employees:",Value("Object",employee));   
	
	Результат = СформироватьСтрокуJSON_OBJECT(employees) ;   // Само формирование строки json
	
	Результат = ПреобразоватьСтрокуВУТФ8(Результат );	    // Взято из //infostart.ru/public/18816/
	
	json_file = СоздатьОбъект("Текст");
	json_file.ДобавитьСтроку(Результат);   
	
	ИмяФайла = "Sample" ;
	Путь = "";
	
	Если ФС.ВыбратьФайл(1,ИмяФайла,Путь,"Сохранить в файле","Файлы json (*.json)|*.json","json",)=1 Тогда
		json_file.Записать(Путь+ИмяФайла );
	КонецЕсли;
КонецПроцедуры                                        


//Ещё один пример обхода справочника Сотрудники 
// Будет работать, если такой справочник  и реквизиты Должность и ДатаРождения есть в конфигурации

Процедура Выполнить()
	СпрСотр = СоздатьОбъект("Справочник.Сотрудники"); 
	// Формируем Object и сохраняем в Таблице значений
	ТЗ =СоздатьОбъект("ТаблицаЗначений");
	ТЗ.НоваяКолонка("Obj");
	СпрСотр.ВыбратьЭлементы();
	Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл
		Если СпрСотр.ЭтоГруппа() = 0 Тогда
			ТЗ.НоваяСтрока();    
			ТЗ.Obj = НовыйОбъект();
			ДобавитьВОбъект(ТЗ.Obj,"ТабN",Value("Число",СпрСотр.Код,"Ч4"));
			ДобавитьВОбъект(ТЗ.Obj,"ФИО",Value("Строка",СпрСотр.Наименование));
			ДобавитьВОбъект(ТЗ.Obj,"Должность",Value("Строка",СпрСотр.Должность.Получить(ТекущаяДата())));
			ДобавитьВОбъект(ТЗ.Obj,"ДатаРождения",Value("Дата",СпрСотр.ДатаРождения,"ДДДММГГ"));
		КонецЕсли; 		
	КонецЦикла;
	// Формируем Массив из Таблицы значений
	ТЗ_Array = НовыйМассив();
	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку() = 1 Цикл
		ДобавитьВМассив(ТЗ_Array,Value("Object",ТЗ.Obj));
	КонецЦикла;
	
	// Массив в Объект
	СотрудникиJson = НовыйОбъект();
	ДобавитьВОбъект(СотрудникиJson,"Сотрудники",Value("Array",ТЗ_Array));
	
	Результат = СформироватьСтрокуJSON_OBJECT(СотрудникиJson) ;   // Само формирование строки json
	
	Результат = ПреобразоватьСтрокуВУТФ8(Результат );	    // Взято из //infostart.ru/public/18816/
	
	json_file = СоздатьОбъект("Текст");
	json_file.ДобавитьСтроку(Результат);   
	
	ИмяФайла = "Сотрудники" ;
	Путь = "";
	
	Если ФС.ВыбратьФайл(1,ИмяФайла,Путь,"Сохранить в файле","Файлы json (*.json)|*.json","json",)=1 Тогда
		json_file.Записать(Путь+ИмяФайла );
	КонецЕсли;
КонецПроцедуры

Номер релиза 7.70.027.

Обмен данными json

См. также

Универсальные функции Программист Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    1377    14    user706545_kseg1971    0    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    2344    zhenyat    7    

8

Универсальные функции Программист Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    5143    Zoltan_Black    11    

2

Универсальные функции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13935    4    alsen    3    

5

Универсальные функции Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18888    2    HAMMER_59    6    

2

Информационная безопасность Универсальные функции Программист Платформа 1С v7.7 Бесплатно (free)

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    13088    kudenzov    3    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 03.12.19 14:50
Сообщение было скрыто модератором.
...
2. srt2020 02.02.22 13:04 Сейчас в теме
Кому нибудь пригодилось?
3. Hexed 2 28.03.24 12:50 Сейчас в теме
(2) Как минимум - мне ))) Спасибо автору за решение!
4. srt2020 29.03.24 07:31 Сейчас в теме
(3) А к какому источнику подключались? К общедоступному?
5. Hexed 2 29.03.24 08:55 Сейчас в теме
6. srt2020 29.03.24 09:29 Сейчас в теме
(5) К какому сайту подключались?
7. Hexed 2 29.04.24 22:18 Сейчас в теме
(4) просто локальные файлы обрабатывал
8. sassashok 04.11.24 14:00 Сейчас в теме
Кодировать - это несложно, валяй себе иль СписокЗначений иль чего там придумать можно из коллекция - вот декодировать - проблема блин... если файл невелик - скриптами решается - ну а если размер поприличнее - вот тут засада товарищи - явно внешняя компонента напрашивается
Оставьте свое сообщение