---
title: Сериализация БЗК
slug: zup/сериализация-бзк
---


## СтруктураDOM
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// На основании XML получает структуру с документом DOM и разыменователем пространств имен DOM.
//   Полученную структуру можно передавать в другие методы модуля в качестве параметра СтруктураDOM.
//
// Параметры:
//   XMLСтрокаИлиДвоичныеДанные - Строка, ДвоичныеДанные - Строка в формате XML или двоичные данные XML документа.
//
// Возвращаемое значение:
//   Структура - Информация о документе DOM.
//       * ДокументDOM - ДокументDOM
//       * Разыменователь - РазыменовательПространствИменDOM
//
Функция СтруктураDOM(XMLСтрокаИлиДвоичныеДанные) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СтруктураDOM(XMLСтрокаИлиДвоичныеДанные) 
```
</details>

## НайтиУзелDOM
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Находит узел документа DOM используя выражение XPath.
//
// Параметры:
//   СтруктураDOM - Структура - См. СериализацияБЗК.СтруктураDOM.
//   ВыражениеXPath - Строка - См. в синтакс-помощнике "ДокументDOM.ВычислитьВыражениеXPath", параметр "Выражение".
//   ЭлементDOM - Произвольный - Элемент документа, в контексте которого выполняется поиск.
//       См. в синтакс-помощнике "ДокументDOM.ВычислитьВыражениеXPath", параметр "УзелКонтекста".
//
// Возвращаемое значение:
//   Неопределено - Если элемент не найден.
//   ЭлементDOM, Произвольный - См. в синтакс-помощнике "РезультатXPath.ПолучитьСледующий", возвращаемое значение.
//
Функция НайтиУзелDOM(Знач СтруктураDOM, Знач ВыражениеXPath, Знач ЭлементDOM = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.НайтиУзелDOM(СтруктураDOM, ВыражениеXPath, ЭлементDOM);
```
</details>

## НайтиУзелDOMПоИмени
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Находит узел документа DOM используя выражение XPath.
//
// Параметры:
//   СтруктураDOM - Структура - См. СериализацияБЗК.СтруктураDOM.
//   ЛокальноеИмя - Строка - Имя элемента или маска имени. Допускается использование предопределенного шаблона '*'.
//
// Возвращаемое значение:
//   Неопределено - Если элемент не найден.
//   ЭлементDOM, Произвольный - См. в синтакс-помощнике "СписокЭлементовDOM", элементы коллекции.
//
Функция НайтиУзелDOMПоИмени(Знач СтруктураDOM, Знач ЛокальноеИмя) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.НайтиУзелDOMПоИмени(СтруктураDOM, ЛокальноеИмя) 
```
</details>

## ВычислитьВыражениеXPath
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Вычисляет выражение XPath для документа DOM.
//
// Параметры:
//   СтруктураDOM - Структура - См. СериализацияБЗК.СтруктураDOM.
//   ВыражениеXPath - Строка - См. в синтакс-помощнике "ДокументDOM.ВычислитьВыражениеXPath", параметр "Выражение".
//   ЭлементDOM - Произвольный - Элемент документа, в контексте которого выполняется поиск.
//       См. в синтакс-помощнике "ДокументDOM.ВычислитьВыражениеXPath", параметр "УзелКонтекста".
//
// Возвращаемое значение:
//   РезультатXPath - См. в синтакс-помощнике "ДокументDOM.ВычислитьВыражениеXPath".
//
Функция ВычислитьВыражениеXPath(Знач СтруктураDOM, Знач ВыражениеXPath, Знач ЭлементDOM = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ВычислитьВыражениеXPath(СтруктураDOM, ВыражениеXPath, ЭлементDOM);
```
</details>

## ОбъектDOMВСтрокуXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует (сериализует) объект DOM в строку в формате XML.
//
// Параметры:
//   ОбъектDOM - ЭлементDOM, ДокументDOM - Объект, который требуется сериализовать в строку XML.
//
// Возвращаемое значение:
//   Строка
//
Функция ОбъектDOMВСтрокуXML(ОбъектDOM) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ОбъектDOMВСтрокуXML(ОбъектDOM) 
```
</details>

## УзлыЭлементаDOM
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает дочерние узлы элемента DOM по перечисленным именам.
//
// Параметры:
//   ЭлементDOM      - ЭлементDOM
//   ИменаРеквизитов - Строка - Если имена не указаны, то будут получены все узлы.
//
// Возвращаемое значение:
//   Структура - Найденные узлы.
//       * Ключ     - Строка     - Имя узла.
//       * Значение - ЭлементDOM - Дочерний узел.
//
Функция УзлыЭлементаDOM(ЭлементDOM, ИменаРеквизитов = "") Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.УзлыЭлементаDOM(ЭлементDOM, ИменаРеквизитов);
```
</details>

## УзлыЭлементаDOMСКонтролем
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает дочерние узлы элемента DOM по перечисленным именам и регистрирует необработанные узлы.
//
// Параметры:
//   ЭлементDOM      - ЭлементDOM
//   ИменаРеквизитов - Строка - Если имена не указаны, то будут получены все узлы.
//
// Возвращаемое значение:
//   Структура - Найденные узлы.
//       * Ключ     - Строка     - Имя узла.
//       * Значение - ЭлементDOM - Дочерний узел.
//
Функция УзлыЭлементаDOMСКонтролем(ЭлементDOM, ИменаРеквизитов) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.УзлыЭлементаDOMСКонтролем(ЭлементDOM, ИменаРеквизитов) 
```
</details>

## АтрибутыЭлементаDOM
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает атрибуты элемента DOM по перечисленным именам.
//
// Параметры:
//   ЭлементDOM     - ЭлементDOM
//   ИменаАтрибутов - Строка - Если имена не указаны, то будут получены все атрибуты.
//
// Возвращаемое значение:
//   Структура - Значения атрибутов.
//       * Ключ     - Строка - Имя атрибута.
//       * Значение - Строка - XML-текст атрибута.
//
Функция АтрибутыЭлементаDOM(ЭлементDOM, ИменаАтрибутов = "") Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.АтрибутыЭлементаDOM(ЭлементDOM, ИменаАтрибутов);
```
</details>

## ОбъектXDTOИзСтрокиXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает (десериализует) объект XDTO из строки в формате XML.
//
// Параметры:
//   СтрокаXML - Строка
//
// Возвращаемое значение:
//   ОбъектXDTO
//
Функция ОбъектXDTOИзСтрокиXML(СтрокаXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ОбъектXDTOИзСтрокиXML(СтрокаXML) 
```
</details>

## СписокXDTO
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает значение списочного свойства объекта XDTO.
//
// Параметры:
//   ОбъектXDTO - ОбъектXDTO
//   ПутьКСвойству - Строка
//
// Возвращаемое значение:
//   Массив
//
Функция СписокXDTO(ОбъектXDTO, ПутьКСвойству) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СписокXDTO(ОбъектXDTO, ПутьКСвойству) 
```
</details>

## ОбъектXDTOВСтрокуXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Записывает (сериализует) объект XDTO в строку в формате XML.
//
// Параметры:
//   ОбъектXDTO - ОбъектXDTO
//   ИмяКорневогоУзла - Строка
//   ЗаписатьОбъявлениеXML - Булево
//
// Возвращаемое значение:
//   Строка - Строка XML.
//
Функция ОбъектXDTOВСтрокуXML(ОбъектXDTO, ИмяКорневогоУзла, ЗаписатьОбъявлениеXML = Ложь) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ОбъектXDTOВСтрокуXML(ОбъектXDTO, ИмяКорневогоУзла, ЗаписатьОбъявлениеXML);
```
</details>

## ЗначениеИзXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует строку XML (полученную из текста элемента или значения атрибута XML) в значение указанного типа.
//
// Параметры:
//   * СтрокаXML - Строка, Неопределено - Строка, полученная из XML.
//   * Тип - Тип - Тип ожидаемого значения.
//
// Возвращаемое значение:
//   Произвольный - В соответствии с указанным типом.
//       Если параметр "СтрокаXML" не заполнен, то значение параметра СтрокаXML возвращается без приведения к типу.
//       Например, если передать Неопределено, то на выходе тоже будет Неопределено.
//
Функция ЗначениеИзXML(ЗначениеXML, ТипВозвращаемогоЗначения) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЗначениеИзXML(ЗначениеXML, ТипВозвращаемогоЗначения) 
```
</details>

## СтрокаИзXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует строку XML (полученную из текста элемента или значения атрибута XML) в значение типа Строка.
//
// Параметры:
//   ЗначениеXML - Строка, Неопределено, ОбъектXDTO - Значение свойства объекта, полученное из XML.
//
// Возвращаемое значение:
//   Строка
//
Функция СтрокаИзXML(ЗначениеXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СтрокаИзXML(ЗначениеXML) 
```
</details>

## БулевоИзXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует строку XML (полученную из текста элемента или значения атрибута XML) в значение типа Булево.
//
// Параметры:
//   ЗначениеXML - Строка, Неопределено, ОбъектXDTO - Значение свойства объекта, полученное из XML.
//
// Возвращаемое значение:
//   Булево, Неопределено
//
Функция БулевоИзXML(ЗначениеXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.БулевоИзXML(ЗначениеXML) 
```
</details>

## ДатаИзXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует строку XML (полученную из текста элемента или значения атрибута XML) в значение типа Дата.
//
// Параметры:
//   ЗначениеXML - Строка, Неопределено, ОбъектXDTO - Значение свойства объекта, полученное из XML.
//
// Возвращаемое значение:
//   Дата, Неопределено
//
Функция ДатаИзXML(ЗначениеXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ДатаИзXML(ЗначениеXML) 
```
</details>

## ЧислоИзXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует строку XML (полученную из текста элемента или значения атрибута XML) в значение типа Число.
//
// Параметры:
//   ЗначениеXML - Строка, Неопределено, ОбъектXDTO - Значение свойства объекта, полученное из XML.
//
// Возвращаемое значение:
//   Число, Неопределено
//
Функция ЧислоИзXML(ЗначениеXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЧислоИзXML(ЗначениеXML) 
```
</details>

## ЭтоЭлементТипаНеопределено
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает Истина если ЭлементDOM = Неопределено или у элемента нет содержимого и есть атрибут xsi:nil="true".
Функция ЭтоЭлементТипаНеопределено(ЭлементDOM) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЭтоЭлементТипаНеопределено(ЭлементDOM) 
```
</details>

## СтроковыйРеквизитОбъекта
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует строку XML (полученную из текста элемента или значения атрибута XML) в значение типа Строка.
//
// Параметры:
//   ОбъектXDTO - Неопределено, ОбъектXDTO - Объект XML.
//   ПутьКСвойству - Строка - Путь к свойству.
//
// Возвращаемое значение:
//   Строка
//
Функция СтроковыйРеквизитОбъекта(ОбъектXDTO, ПутьКСвойству) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СтроковыйРеквизитОбъекта(ОбъектXDTO, ПутьКСвойству) 
```
</details>

## СтрокаXMLИзВременногоХранилища
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает строку XML из значения типа "Строка" или "ДвоичныеДанные", размещенного во временном хранилище.
Функция СтрокаXMLИзВременногоХранилища(Адрес) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СтрокаXMLИзВременногоХранилища(Адрес) 
```
</details>

## СтрокаXMLИзХранилищаЗначения
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает строку XML из значения типа "Строка" или "ДвоичныеДанные", размещенного в хранилище значения.
Функция СтрокаXMLИзХранилищаЗначения(ХранилищеЗначения) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СтрокаXMLИзХранилищаЗначения(ХранилищеЗначения) 
```
</details>

## СтрокаXMLИзДвоичныхДанных
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает строку XML из значения типа "ДвоичныеДанные", размещенного во временном хранилище.
Функция СтрокаXMLИзДвоичныхДанных(ДвоичныеДанные) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.СтрокаXMLИзДвоичныхДанных(ДвоичныеДанные) 
```
</details>

## ЭтоТипОбъекта
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает Истина если указанный ТипДанныхXML принадлежит объекту (СправочникОбъект, ДокументОбъект, ...).
Функция ЭтоТипОбъекта(ТипДанныхXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЭтоТипОбъекта(ТипДанныхXML) 
```
</details>

## ЭтоТипСсылки
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает Истина если указанный ТипДанныхXML принадлежит ссылке объекта (СправочникСсылка, ДокументСсылка, ...).
Функция ЭтоТипСсылки(ТипДанныхXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЭтоТипСсылки(ТипДанныхXML) 
```
</details>

## ЗначениеВСтрокуJSON
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Преобразует (сериализует) значение в строку в формате JSON.
// Внимание. В формат JSON допускается записывать только значения следующих типов:
//     * Строка,
//     * Число,
//     * Булево,
//     * Дата (преобразованная в строку),
//     * Массив,
//     * ФиксированныйМассив,
//     * Структура,
//     * ФиксированнаяСтруктура,
//     * Соответствие,
//     * ФиксированноеСоответствие.
//   Данное требование рекурсивно.
//
// Параметры:
//   Значение - Булево, Число, Строка, Массив, Структура, Соответствие - Объект, сериализуемый в JSON.
//   ПорядокКлючейВКоллекциях - Соответствие - Определяет порядок записи ключей коллекций в JSON.
//
// Возвращаемое значение:
//   Строка
//
Функция ЗначениеВСтрокуJSON(Значение, ПорядокКлючейВКоллекциях = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЗначениеВСтрокуJSON(Значение, ПорядокКлючейВКоллекциях);
```
</details>

## ЗначениеИзСтрокиJSON
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Получает (десериализует) объект значение из строки в формате JSON.
//
// Параметры:
//   СтрокаJSON - Строка
//   ПрочитатьВСоответствие - Булево - Если Истина, то коллекции с ключами и значениями будут получены в Соответствие.
//       Если Ложь, то в Структуру.
//       Подробнее см. в синтакс-помощнике описание одноименного параметра метода глобального контекста "ПрочитатьJSON".
//   ПорядокКлючейВКоллекциях - Соответствие - Используется в случае, если важно запомнить порядок прочитанных ключей,
//       например, для использования в параметрах метода ЗначениеВСтрокуJSON.
//       На входе передается пустое соответствие.
//       После выполнения функции в ключи соответствия помещаются коллекции типа Структура и Соответствие,
//       а в значение порядок их ключей в виде массива.
//       Внимание. При удалении ключей из коллекции их также необходимо удалить и из порядка ключей.
//   ИменаСвойствСоЗначениямиДата - Массив, Строка, ФиксированныйМассив - Имена свойств, которые должны загружаться как
//       тип "Дата". Подробнее см. в синтакс-помощнике описание одноименного параметра метода глобального контекста "ПрочитатьJSON".
//
// Возвращаемое значение:
//   Булево, Число, Строка, Массив, Структура, Соответствие
//
Функция ЗначениеИзСтрокиJSON(СтрокаJSON, ПрочитатьВСоответствие = Ложь, ПорядокКлючейВКоллекциях = Неопределено, ИменаСвойствСоЗначениямиДата = "") Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЗначениеИзСтрокиJSON(СтрокаJSON, ПрочитатьВСоответствие, ПорядокКлючейВКоллекциях, ИменаСвойствСоЗначениямиДата);
```
</details>

## ЗначениеXMLТипаСтрока
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устарела. Следует использовать СтрокаИзXML.
Функция ЗначениеXMLТипаСтрока(ЗначениеXML) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЗначениеXMLТипаСтрока(ЗначениеXML) 
```
</details>

## ЗначениеXML
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Устарела. Следует использовать ЗначениеИзXML или другие функции *ИзXML.
Функция ЗначениеXML(ЗначениеXML, ТипВозвращаемогоЗначения) Экспорт
```

Пример вызова
```bsl
Результат = СериализацияБЗК.ЗначениеXML(ЗначениеXML, ТипВозвращаемогоЗначения) 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
