8. Механизмы интеграции и обмена данными
#20

Готовишься к экзамену?

Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.

Перейти в бота

С точки зрения XML сериализации, значение типа "ХранилищеЗначения" относится:

К простым типам
Правильно: В подсистеме XML-сериализации простые типы записываются как элемент с текстом без вложенной структуры. «ХранилищеЗначения» сериализуется именно так: содержимое превращается в последовательность байт и записывается в XML в виде текстовой строки (обычно в Base64), поэтому тип считается простым по форме представления.
Применить средства XML сериализации к данному типу значения нельзя
Неправильно: «ХранилищеЗначения» входит в перечень типов, которые штатно поддерживаются XML-сериализацией платформы и могут быть записаны/прочитаны стандартными средствами. Ошибки возникают обычно не из-за запрета типа, а из-за попыток вручную «разобрать» или «вставить» данные без корректной записи/чтения Base64-представления.
К сложным типам
Неправильно: Сложные типы в XML обычно представлены набором вложенных элементов и атрибутов, отражающих структуру объекта/коллекции. Для «ХранилищеЗначения» структура не раскрывается в набор узлов - оно попадает в XML как одно текстовое значение элемента, поэтому к сложным типам его не относят.

Пояснение

Под «простыми типами» в XML-сериализации 1С понимаются значения, которые записываются в XML как один элемент с текстовым содержимым (без вложенных элементов). «ХранилищеЗначения» именно так и ведет себя: платформа берет сохраненные данные (по сути, двоичное представление сохраненного значения), кодирует их в текст (на практике это Base64) и помещает в текст узла XML. Практический пример: если у вас есть переменная ХЗ = Новый ХранилищеЗначения(Структура("A", 1)); и вы записываете её через ЗаписатьXML(ЗаписьXML, ХЗ), то в документе появится один узел, внутри которого будет длинная строка символов (закодированные данные), а не «раскрытая» структура с отдельными тегами для полей. При обратном чтении ПрочитатьXML(ЧтениеXML) платформа восстановит именно объект типа «ХранилищеЗначения», а уже затем вы сможете вызвать ХЗ.Получить() и получить исходное значение. Из-за этого часто путаются: внутри «ХранилищеЗначения» может лежать сколь угодно сложный объект, но в XML оно представлено как простой текстовый блок. Поэтому в тестах по механизму интеграции правильная классификация - «простой тип» именно с точки зрения XML-представления.