Как получить сжатое значение ХЗ из внешней базы
Добавлено: 04 апр 2014, 15:13
Есть база 1С, в одной из таблиц которой есть колонка с типом ХранилищеЗначений.
Подключаюсь к этой базе из другой с помощью "Внешних источников данных" и возникает проблема с получением данных из этого типа.
Вариант № 1. Мы не сжимаем данные при помещении в хранилище.
Тогда все просто: текст из несжатого файла за исключением первых 11 символов может быть преобразован в значение 1с при помощи функции ЗначениеИзСтрокиВнутр(). Примерно так:
Вариант № 2. При записи в таблицу мы сжимаем данные встроенным объектом "СжатиеДанных".
Как получить данные в этом случае - непонятно. Вроде бы это должен быть " Deflation", но
говорит, что это не v8-формат
Во вложении два файла с одними и теми же данными: в сжатом и несжатом виде.
Помогите получить данные из запакованного вида.
Подключаюсь к этой базе из другой с помощью "Внешних источников данных" и возникает проблема с получением данных из этого типа.
Вариант № 1. Мы не сжимаем данные при помещении в хранилище.
Тогда все просто: текст из несжатого файла за исключением первых 11 символов может быть преобразован в значение 1с при помощи функции ЗначениеИзСтрокиВнутр(). Примерно так:
Код: Выделить всё
//ДвоичныеДанные.Записать("F:\Отладка\ХЗБезСжатия.txt");
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.Прочитать("F:\Отладка\ХЗБезСжатия.txt",КодировкаТекста.UTF8);
ТекстХЗ = ТекстДок.ПолучитьТекст();
ТекстХЗ = Прав(ТекстХЗ,СтрДлина(ТекстХЗ)-11);
ЗначениеХЗ = ЗначениеИзСтрокиВнутр(ТекстХЗ);Вариант № 2. При записи в таблицу мы сжимаем данные встроенным объектом "СжатиеДанных".
Как получить данные в этом случае - непонятно. Вроде бы это должен быть " Deflation", но
Код: Выделить всё
V8Unpack.exe -undeflateговорит, что это не v8-формат
Во вложении два файла с одними и теми же данными: в сжатом и несжатом виде.
Помогите получить данные из запакованного вида.