Работа с ZIP-архивами в 1С

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Работа с ZIP-архивами в 1СПри решении задач обмена может потребоваться передача довольно большого объема данных, как посредством каких-либо интернет-технологий, так и другими средствами. В связи с объемом этих данных может возникнуть необходимость в их сжатии перед передачей и распаковкой после приема.

 

Платформа «1С:Предприятие» предоставляет возможности работы с ZIP-архивами. Для этого в системе существуют объекты Запись ZIРФайла (ответственный за запись) и ЧтениеZIРФайла (ответственный за чтение архивов).

Пример реализации обмена при разной структуре объектов конфигурации

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Даже при организации обмена данными между информационными базами «1С:Предприятия» довольно редкой является ситуация, когда структура объектов конфигурации (даже в рамках обмениваемых данных) полностью совпадает. Что делать, когда структура объектов различается? Один из вариантов решения задачи приводится ниже (данный подход не обязательно должен использоваться только при организации обмена между базами «1 С:Предприятия 8»).

 

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

В базе данных - источнике в справочнике Номенклатура присутствует реквизит Артикул (тип СправочникСсылка .Артикулы) , в базе-приемнике существует реквизит Куратор (тип СправочникСсылка.ФизическиеЛица) . Все остальные реквизиты совпадают, их состав:

  • в Код, тип Число;
  • Наименование, тип Строка;
  • ПолноеНаименование, тип Строка;
  • ЗакупочнаяЦена, тип Число;
  • Картинка, тип ХранилищеЗначения.

В этом примере, передача XML-документа между клиентом и сервером происходит через временное хранилище.

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

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

 

Механизм XDTO является универсальным способом представления данных для интеграции с другими системами. Аббревиатура XDTO расшифровывается как XML Data Transfer Objects. XDTO является механизмом объектного моделирования данных, описываемых с помощью схемы XML.

Можно выделить несколько задач, для решения которых используется механизм XDTO:

•обмен данными между конфигурациями «1С:Предприятия» с разными структурами данных;

•обмен данными на основе схем XML, не привязанных к той или иной конфигурации (например, обмен с информационными системами, построенными не на основе системы «1С:Предприятие»);

•создание собственной системы типов и значений для обработки произвольных данных;

•описание типов параметров и возвращаемых значений Web-сервисов.

 

В данном разделе мы остановимся на вопросе сериализации данных на основе механизма XDTO. Использование механизма для описания типов параметров и возвращаемых значений Web-сервисов будет рассмотрено в отдельной главе «Использование XDTO для описания типов параметров и возвращаемых значений Web-сервисов» на стр. 139.

В настоящее время обмен с различными программными системами реализуется с использованием XML. Механизм XDTO позволяет создавать требуемые для обмена схемы XML и формировать XML-документы, удовлетворяющие этим схемам.

 

Основным понятием, на котором строится механизм XDTO, является фабрика XDTO. Фабрика XDTO содержит описание всех типов, с которыми оперирует система. В частности, при создании новой информационной базы «1С:Предприятия» автоматически создается глобальная фабрика XDTO, которая описывает все типы, используемые в конфигурации. Эта фабрика доступна через свойство глобального контекста ФабрикаХБТО.

 

 

 

Работа со сложными типами в 1С

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Для работы со сложными с точки зрения сериализации значениями могут использоваться следующие методы «1С:Предприятия» (они же могут использоваться и для простых типов):

•ЗаписатьХМL(),

•ПрочитатьХМL().

Метод ЗаписатьХМL() имеет два обязательных параметра. Первый параметр — это объект типа ЗаписьХМL, через который осуществляется запись XML, а второй - значение, которое должно быть записано в XML. Необязательные параметры образуют три различных варианта вызова метода.

 

В простейшем случае параметра три, и в качестве третьего параметра указывается значение перечисления НазначениеТипаХМL, определяющее необходимость явного указания типа данных XML в атрибуте xsi:type корневого элемента XML.

 

У следующего варианта вызова в качестве третьего параметра используется строковое значение, указывается имя корневого элемента XML. При этом подразумевается, что пространство имен не определено. Четвертый параметр - значение типа НазначениеТипаХМL, определяющее необходимость явного указания типа данных XML.

И, наконец, у последнего варианта вызова после параметра, указывающего имя корневого элемента XML, появляется еще один параметр - строковое значение, обозначающее пространство имен, к которому относится корневой элемент. Последний параметр по-прежнему имеет тип НазначениеТипаХМL.

 

 

 

Сложные типы XML - Тип

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Перейдем к рассмотрению сложных (с точки зрения сериализации) типов.

Тип

Типу Тип соответствует тип данных XML Туре из пространства имен http://v8.1c.ru/data. Элемент XML, представляющий значение данного типа, содержит текст. В нем записано имя типа XML, соответствующего типу данных «1С:Предприятия».

Примеры представления в XML значений типа Тип приведены ниже (листинг 1.50).

На первый взгляд тип Тип относится не к сложным, а к простым типам данных, так как элемент, представляющий значение данного типа, не содержит вложенных элементов. Однако это не так. Вложенных элементов действительно нет. Но при этом текст элемента, содержащий имя типа данных XML, содержит префикс пространства имен типа, который должен быть определен в данном элементе или одном из родительских элементов, что делает текст элемента не вполне самодостаточным. Поэтому данный тип не отнесен к простым типам.

 

Работа с простыми типами XML в 1С

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Для работы с XML-представлениями значений простых типов предназначены два метода глобального контекста - ХМLСтрока () и ХМLЗначение ().

Метод ХМLСтрока () имеет единственный параметр - значение, для которого нужно получить XML-представление. Это значение должно относиться к типу, являющемуся простым с точки зрения XML-сериализации. В противном случае будет вызвано исключение. При нормальном завершении функция возвращает строку, которая может быть использована как текст элемента XML, представляющего значение простого типа.

Метод ХМLЗначение () выполняет противоположную задачу. У этого метода два параметра. Первый параметр - тип значения, которое нужно получить из строки, второй параметр - сама строка.

XML - сериализация - Null

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

XML - сериализация - NullТипу Null соответствует тип данных XML Null из пространства имен http://v8.1c.ru/data. Данный тип имеет одно-единственное значение, которое представляется пустой строкой.

 

Ниже приведены примеры представления в XML значений типа Null

<!- Не задано явно имя корневого элемента ->
<v8: Null>
<!-- Явно задано имя корневого элемента XML -->
<selected/>
<!-- Явно указан тип данных XML -->
<Data xsi: type="v8:Null">

XML - сериализация - Двоичные данные

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

XML - сериализация - PostedТипу ДвоичныеДанные соответствует тип данных XML base64Binary из пространства имен http://www.w3.org/2001/XMLSchema.

Значения данного типа представляются как двоичные данные, закодированные с использованием алгоритма Base64, описанного в RFC 2045.

Ниже приведены примеры представления в XML значений типа ДвоичныеДанные:

XML - сериализация - Булево

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

Типу Булево соответствует тип данных boolean из пространства имен http://www.w3.org/2001/XMLSchema.

Значение Ложь представляется строкой false, а значение Истина - строкой true. Такой формат предусмотрен в документе XML Schema Part 2: Datatypes.

Ниже приведены примеры представления в XML значений типа Булево:

XML - сериализация - Дата

Категория: Учебники по 1С » Технологии интеграции 1С Предприятия 8.2

XML - сериализация - ДатаТипу Дата соответствует тип данных XML dateTime из пространства имен http://www.w3.org/2001/XMLSchema.

 

Значения типа Дата представляются в виде CCYY-MM-DDTHH:MM:SS,

где

  • CCYY — год, представленный в виде четырех цифр;
  • ММ - месяц, представленный двумя цифрами;
  • DD - день месяца двумя цифрами;
  • Т - латинская буква Т;
  • НН - час суток;
  • ММ - минута;
  • SS - секунда.

Такой формат даты определен как допустимый в документе XML Schema Part 2: Datatypes.

 

Ниже приведены примеры представления в XML значений типа Дата