Поиск по блогу

понедельник, 21 ноября 2016 г.

СКД. Программное чтение/запись СКД в/из XML.

Сериализация объектов в XML

Объект типа СхемаКомпоновкиДанных не имеет в своем арсенале метода записи/чтения себя в/из XML. Но все исправимо благодаря возможности сериализации схемы компоновки данных в объект XDTO.

// Запись СКД в XML-файл.
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайлаСКД);
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, СхемаКомпоновкиДанных);
ЗаписьXML.Закрыть();


Сериализация объектов 1С выполняется с помощью объекта глобального контекста СериализацияXDTO - это сериализатор XDTO, соответствующий глобальной фабрики XDTO.

суббота, 5 ноября 2016 г.

Сериализация объектов в XML

СКД. Программное чтение/запись СКД в/из XML.

Наверняка, каждый начинающий программист сталкивался с заданием выгрузки объектов в XML, но из-за плохого знания механизмов платформы 1С, выполнял задание в лоб. Алгоритм выгрузки заключался в написании кода по записи значения каждого реквизита в XML-файл.

Наиболее простой способ выгрузки объектов в XML - воспользоваться глобальным методом ЗаписатьXML(), который предназначен для сериализации объектов/значений в формат XML.

Функция ПолучитьXML(Значение)
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, Значение);
Возврат ЗаписьXML.Закрыть();
КонецФункции


Важно! Значения не всех типов могут быть записаны в формате XML данным методом. В XML могут быть записаны значения следующих типов: Неопределено, Null, Булево, Число, Строка, Дата, Тип, УникальныйИдентификатор, ДвоичныеДанные, ХранилищеЗначения, ОписаниеТипов, а также ссылки объектов данных и сами объекты данных, наборы записей регистров, менеджер значения константы. При попытке записи значения неподходящего типа будет вызвано исключение.