Записки программиста 1с

Сериализация в 1с.

Сериализация и десериализация в 1с применяется для передачи объектов между различными базами в файловом формате. 

Сериализация в 1с
Код сериализации в 1с

Десериализация объектов 1C

Сериализация в 1с
Код десериализации в 1с

Сериализация и десериализация объектов в 1с

Сериализация в 1с
Код сериализации и десериализации в 1с

Ссылка на статью:

https://open-budget.ru/public/274915

метод GET

Функция NomGet(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	Возврат Ответ;
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Номенклатура.Код КАК Код,
		|	Номенклатура.Наименование КАК Наименование,
		|	Номенклатура.Цена КАК Цена
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	КодЭл = 0;
	Массив = новый Массив;
	Стр = новый Структура;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		если ВыборкаДетальныеЗаписи.Код <> КодЭл тогда
			КодЭл = ВыборкаДетальныеЗаписи.Код;
			
			Стр = новый структура;
			Стр.Вставить("Код",ВыборкаДетальныеЗаписи.Код);
			Стр.Вставить("Наименование",ВыборкаДетальныеЗаписи.Наименование);
			Стр.Вставить("Цена",ВыборкаДетальныеЗаписи.Цена);
			Массив.Добавить(Стр);
		КонецЕсли;
		
	КонецЦикла;
	
	Запись = новый ЗаписьJSON;
	Запись.УстановитьСтроку();
	ЗаписатьJSON(Запись,Массив);
	Ответ.УстановитьТелоИзСтроки(Запись.Закрыть());
	Ответ.Заголовки.Вставить("content-type","application/json");
	
	Возврат Ответ;
КонецФункции
Сериализация  в 1с
Http

код в общем модуле на клиенте

процедура ЗагрузкаНом() Экспорт
Соединение = новый HTTPСоединение(“localhost”,,””,””);
Запрос = новый HTTPЗапрос(“Per”+”/hs/ex/nomen”);

Ответ = соединение.Получить(Запрос);

Чтение = новый ЧтениеJSON;
Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());

Массив = ПрочитатьJSON(Чтение);

Для каждого СтрокаМассива из Массив цикл;
    Проверка = справочники.Номенклатура.НайтиПоКоду(СтрокаМассива.Код);
    Если проверка.Пустая() тогда
        Пред = справочники.Номенклатура.СоздатьЭлемент();
    иначе
        пред = проверка.ПолучитьОбъект();
    КонецЕсли;

    Пред.Код = СтрокаМассива.Код;
    Пред.Наименование = СтрокаМассива.Наименование;
    Пред.Цена = СтрокаМассива.Цена;
    Пред.Записать();
КонецЦикла;

конецпроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *