1С: Получить хранилище значения из двоичных данных SQL
Добрый день.
Работаю с "Внешними источниками данных", подключила таблицу из внешней БД SQL, где хранятся устаревшие версии объектов (Регистр сведений "ВерсииОбъектов" из ДО).
Задача - реализовать восстановление версий обратно в регистр в рабочей БД 1С.
Проблема с реквизитом "ВерсияОбъекта", которая в регистре ДО хранится как хранилище значения (где хранится структура, в которой XML-данные в файле в бинарном формате FastInfoset), а в SQL - как двоичные данные (varbinary(max)).
Как преобразовать двоичные данные из SQL обратно в хранилище значения?
Работаю с "Внешними источниками данных", подключила таблицу из внешней БД SQL, где хранятся устаревшие версии объектов (Регистр сведений "ВерсииОбъектов" из ДО).
Задача - реализовать восстановление версий обратно в регистр в рабочей БД 1С.
Проблема с реквизитом "ВерсияОбъекта", которая в регистре ДО хранится как хранилище значения (где хранится структура, в которой XML-данные в файле в бинарном формате FastInfoset), а в SQL - как двоичные данные (varbinary(max)).
Как преобразовать двоичные данные из SQL обратно в хранилище значения?
По теме из базы знаний
- Хранение файлов во внешней базе данных MSSQL.
- Сжатие/Распаковка данных по алгоритму Deflate встроенными (!) средствами платформы 1С
- Отказ от работы с временными файлами при работе с двоичными данными или Потоки как простая замена ADODB.Stream и временным файлам
- Данные в хранилище значений
- Хранилище значения. Заметки
Найденные решения
(8) Спасибо огромное!
Функция ПолучитьХранилищеЗначенияИзДвоичныхДанных(ДвДанные)
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, ДвДанные);
МояСериализация = ЗаписьXML.Закрыть();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(МояСериализация);
ХранилищеЗначения = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("ХранилищеЗначения"));
Возврат ХранилищеЗначения;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(8) Спасибо огромное!
Функция ПолучитьХранилищеЗначенияИзДвоичныхДанных(ДвДанные)
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, ДвДанные);
МояСериализация = ЗаписьXML.Закрыть();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(МояСериализация);
ХранилищеЗначения = СериализаторXDTO.ПрочитатьXML(ЧтениеXML, Тип("ХранилищеЗначения"));
Возврат ХранилищеЗначения;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот