Имя: Пароль:
1C
 
1c json
Ø (Asmody 26.05.2025 20:43)
0 semiluki
 
26.05.25
16:19
Подскажите пожалуйста как записать результат запроса из одной 1с в  json  для последующей загрузки в другую 1с. Делаю так ЗаписьJSON.ЗаписатьНачалоМассива();
    
    Пока Выборка.Следующий() Цикл
        
        ЗаписьJSON.ЗаписатьНачалоОбъекта();
        ЗаписьJSON.ЗаписатьИмяСвойства("Номенклатура");
        ЗаписьJSON.ЗаписатьЗначение("Значение номеклатуры");
       // СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Выборка.Номенклатура, НазначениеТипаXML.Явное));  
        ЗаписьJSON.ЗаписатьКонецОбъекта();  
        
        ЗаписьJSON.ЗаписатьНачалоОбъекта();
        ЗаписьJSON.ЗаписатьИмяСвойства("Склад");
        ЗаписьJSON.ЗаписатьЗначение("Значение Склад");
       // СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, Выборка.Склад, НазначениеТипаXML.Явное));  
        ЗаписьJSON.ЗаписатьКонецОбъекта();
        
        
    КонецЦикла;  
    
    ЗаписьJSON.ЗаписатьКонецМассива();

Как правильно предать через json файл сериализованные значения склад и номенклатура?
1 Волшебник
 
26.05.25
16:22
передавайте GUID
   ЗаписьJSON.ЗаписатьЗначение(Выборка.Номенклатура.УникальныйИдентификатор());
2 Dedal
 
26.05.25
17:04
Если платформа старше чем 8.3.22 то можно и в запросе https://wonderland.v8.1c.ru/blog/poluchenie-unikalnogo-identifikatora-obekta-iz-ssylki-v-zaprose/
3 semiluki
 
26.05.25
17:16
(1) Спасибо. Я хотел бы передать в json файл сериализованный
результат запроса. Т. е хотел бы в json файле получить справочники со всеми ссылками. Т. е. как правильно написать вот этот кусок кода
ЗаписьJSON.ЗаписатьНачалоОбъекта();
        ЗаписьJSON.ЗаписатьИмяСвойства("Склад");
        ЗаписьJSON.ЗаписатьЗначение(СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON,Выборка.Склад));
4 Климов Сергей
 
26.05.25
17:32
(0) Курите про ФабрикаXDTO
5 arsik
 
гуру
26.05.25
18:05
(3) Можешь прямо объекты запихнуть в json или массив структур.
Функция СериализоватьВJSON(МассивСсылок) Экспорт
	Результат = Новый Структура("Успешно, Описание, ТекстJSON", Истина, "","");
	
	МассивОбъектов = Новый массив;
	Для каждого Ссылка Из МассивСсылок Цикл
		МассивОбъектов.Добавить(Ссылка.ПолучитьОбъект());
	КонецЦикла;
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	
	Попытка
		ЗаписатьJSON(ЗаписьJSON, МассивОбъектов);
		Результат.ТекстJSON = ЗаписьJSON.Закрыть();
	Исключение
		Результат.Успешно = Ложь;
		Результат.Описание = "Ошибка Сериализации: "+ОписаниеОшибки();
	КонецПопытки;
	
	Возврат Результат;
КонецФункции
6 Asmody
 
модератор
26.05.25
20:43
Тема не отражает суть сообщения
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.