1С 8.3 Сжатие строки - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Сжатие строки

Данные > Примеры кода 1С > 1С 8.3 Строка, текст, буквы
Перейти в раздел примеры кода 1С 8.3:
Сжать и восстановить длинную строку в 1С 8.3 (от ProхyInspectоr):
Функция СжатьСтроку(СтрокаJSON)

   //  Для СтрокаJSON длиной 1 000 000 байт
   //  СтрокаBase64 имеет длину 36 000 байт

   СжатиеДанных = Новый СжатиеДанных(9);
   Значение = Новый ХранилищеЗначения(СтрокаJSON,СжатиеДанных);
   СтрокаBase64 = XMLСтрока(Значение);    //  Преобразуем в Base64

   Возврат СтрокаBase64;

КонецФункции

Функция ВосстановитьСтроку(Стр)

   Результат = Стр;

   Хранилище = XMLЗначение(Тип("ХранилищеЗначения"), Стр);
   СтрокаJSONизХранилища = Хранилище.Получить();
   Если НЕ СтрокаJSONизХранилища = Неопределено Тогда //  Исползовалось Сжатие через ХранилищеЗначения
       Результат = СтрокаJSONизХранилища;
   КонецЕсли;

   Возврат Результат;

КонецФункции

&НаКлиенте
Процедура Тест()

   ТестоваяСтрока="какая-то строка";

   ТестоваяСтрокаСжата = СжатьСтроку(ТестоваяСтрока);
   Сообщить(ТестоваяСтрокаСжата); //AgFTS2/0iI3BT...

   ТестоваяСтрокаВосстановлена = ВосстановитьСтроку(ТестоваяСтрокаСжата);
   Сообщить(ТестоваяСтрокаВосстановлена); //какая-то строка

КонецПроцедуры
Начиная с 8.3.10 предпочтительно использовать глобальную функцию (там разнообразие входящих данных):
// Глобальный контекст (Global context)
ПолучитьBase64СтрокуИзДвоичныхДанных(GetBase64StringFromBinaryData)
// Синтаксис:
ПолучитьBase64СтрокуИзДвоичныхДанных()
// Параметры:
//  (обязательный)
// Тип: ДвоичныеДанные.
// Двоичные данные.
// Возвращаемое значение:
// Тип: Строка.
// Описание:
// Преобразует двоичные данные в строку формата Base64.
// Полученный текст разбивается на строки длиной 64 символа.
// В качестве разделителя строк используется сочетание символов CR+LF.
// Если целевой декодер Base64 не поддерживает переводы строк,
// требуется дополнительно обработать строки, чтобы удалить из нее разделители.
// Доступность:
// Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение,
// мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.


// И обратное преобразование
// Глобальный контекст (Global context)
ПолучитьДвоичныеДанныеИзBase64Строки(GetBinaryDataFromBase64String)
// Синтаксис:
ПолучитьДвоичныеДанныеИзBase64Строки()
// Параметры:
//  (обязательный)
// Тип: Строка.
// Строка в формате Base64.
// Возвращаемое значение:
// Тип: ДвоичныеДанные.
// Описание:
// Преобразует строку формата Base64 в двоичные данные.
// Доступность:
// Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение,
// мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 24.04.2024
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому