При обмене данными через WEB сервисы иногда возникает задача передавать данные в сжатом виде. Для этого лучше всего использовать объект 1С ХранилищеЗначения. Тут возникает проблема преобразования ХранилищаЗначения в ДвоичныеДанные и обратно. Внятного алгоритма реализации этого алгоритма 1С не предоставляет.
Процедура КнопкаТестироватьХранилищеЗначенияНажатие(Элемент)
СтрокаJSON = "Строка для преобразования";
//Преобразуем Строку в Хранилище значения со сжатием.
СжатиеДанных = Новый СжатиеДанных(9);
ХранилищеЗначения = Новый ХранилищеЗначения(СтрокаJSON,СжатиеДанных);
//Преобразуем Хранилище Значения в Двоичные данные
СтрBase64 = XMLСтрока(ХранилищеЗначения);
ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(СтрBase64,"UTF-8", Ложь);
//Преобразуем Двоичные данные в Хранилище значений
РезультатСтрBase64 = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные,"UTF-8");
РезультатХранилище = XMLЗначение(Тип("ХранилищеЗначения"), РезультатСтрBase64);
//Получим строку из Хранилища
СтрокаJSONизХранилища = РезультатХранилище.Получить();
КонецПроцедуры
{19} Переменной СтрокаJSONизХранилища присвоено значение, но оно нигде не используется
ТаблицаЗначенийВСписокСтруктур
СписокСтруктурВТаблицуЗначений
ТаблицаЗначенийВМассивСтруктур
МассивСтруктурВТаблицуЗначений
ХранилищеФайлаИзИнформационнойБазы (БСП)