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

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

1С 8.3 Преобразование обычной строки в формат Base64

Перейти в раздел примеры кода 1С 8.3:
Формат Base64 используется для:
  • Передачи бинарных данных через текстовые протоколы (например, в JSON, XML, email).
  • Хранения файлов в текстовом виде (например, вставка картинок в HTML/CSS).
  • Безопасной передачи строк без искажения (например, в HTTP-запросах).
Если нужно раскодировать Base64, используйте следующие функции:
Кодирование строки в Base64:
// Функция преобразует строку в формат Base64
//
// Параметры:
//  Строка - Строка - Текст для кодирования
//  Кодировка - КодировкаТекста - Кодировка исходной строки (по умолчанию UTF-8)
//  ЗаписатьBOM - Булево - Флаг записи метки порядка байтов (BOM)
//
// Возвращаемое значение:
//  Строка - Текст в кодировке Base64
//
Функция КодироватьСтрокуВBase64(Знач Строка,
                               Знач Кодировка = Неопределено,
                               Знач ЗаписатьBOM = Ложь) Экспорт

   // Устанавливаем кодировку по умолчанию, если не указана
   Если Не ЗначениеЗаполнено(Кодировка) Тогда
       Кодировка = КодировкаТекста.UTF8;
   КонецЕсли;

   // Преобразуем строку в двоичные данные
   ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Строка, Кодировка, ЗаписатьBOM);

   // Кодируем двоичные данные в Base64
   Результат = Base64Строка(ДвоичныеДанные);

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

КонецФункции
Функция КодироватьСтрокуВBase64() предназначена для преобразования обычной строки в формат Base64 (стандарт кодирования бинарных данных в текстовый вид).
Кодирование/декодирование строки в Base64:
&НаКлиенте
// Процедура декодирования строки из Base64
//
// Параметры:
//  Команда - Строка - Не используется (параметр командной формы)
//
Процедура ДекодироватьИзBase64(Команда)

   // Декодируем Base64 в двоичные данные
   ДвоичныеДанные = Base64Значение(Encoded);

   // Проверка корректности формата Base64
   Если ДвоичныеДанные = Неопределено Тогда
       Предупреждение("Ошибка: некорректный формат Base64");
       Возврат;
   КонецЕсли;

   // Создаем временный файл для промежуточного хранения
   ВременныйФайл = ПолучитьИмяВременногоФайла();
   ДвоичныеДанные.Записать(ВременныйФайл);

   // Определяем кодировку для чтения файла
   КодировкаДляЧтения = ПолучитьКодировкуИзСтроки(Кодировка);

   // Читаем содержимое файла в нужной кодировке
   ЧтениеТекста = Новый ЧтениеТекста(ВременныйФайл, КодировкаДляЧтения);
   Decoded = ЧтениеТекста.Прочитать();
   ЧтениеТекста.Закрыть();

   // Удаляем временный файл
   УдалитьФайлы(ВременныйФайл);

КонецПроцедуры

&НаКлиенте
// Процедура кодирования строки в Base64
//
// Параметры:
//  Команда - Строка - Не используется (параметр командной формы)
//
Процедура КодироватьВBase64(Команда)

   // Определяем кодировку для записи файла
   КодировкаДляЗаписи = ПолучитьКодировкуИзСтроки(Кодировка);

   // Создаем временный файл
   ВременныйФайл = ПолучитьИмяВременногоФайла();

   // Записываем текст в файл с указанной кодировкой
   ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл, КодировкаДляЗаписи);
   ЗаписьТекста.Записать(Decoded);
   ЗаписьТекста.Закрыть();

   // Читаем файл как двоичные данные и кодируем в Base64
   ДвоичныеДанные = Новый ДвоичныеДанные(ВременныйФайл);
   Encoded = Base64Строка(ДвоичныеДанные);

   // Удаляем временный файл
   УдалитьФайлы(ВременныйФайл);

КонецПроцедуры

// Функция преобразует строковое представление кодировки в тип КодировкаТекста
//
// Параметры:
//  КодировкаСтрокой - Строка - Строковое представление кодировки
//
// Возвращаемое значение:
//  КодировкаТекста - Соответствующая кодировка
//
Функция ПолучитьКодировкуИзСтроки(Знач КодировкаСтрокой)

   Если КодировкаСтрокой = "ANSI" Тогда
       Возврат КодировкаТекста.ANSI;
   ИначеЕсли КодировкаСтрокой = "OEM" Тогда
       Возврат КодировкаТекста.OEM;
   ИначеЕсли КодировкаСтрокой = "UTF8" Тогда
       Возврат КодировкаТекста.UTF8;
   ИначеЕсли КодировкаСтрокой = "UTF16" Тогда
       Возврат КодировкаТекста.UTF16;
   ИначеЕсли КодировкаСтрокой = "Системная" Тогда
       Возврат КодировкаТекста.Системная;
   КонецЕсли;

   // Возвращаем UTF-8 по умолчанию
   Возврат КодировкаТекста.UTF8;

КонецФункции
Процедура КодироватьСтрокуВBase64() - преобразует строку в формат Base64 с возможностью указания кодировки и управления меткой порядка байтов (BOM). Процедура ДекодироватьИзBase64() - декодирует строку из Base64 обратно в текст с учетом указанной кодировки.

Эти методы полезны для:
  • Безопасной передачи данных через API (JSON/XML).
  • Хранения бинарных данных (например, картинок) в текстовом виде.
  • Работы с файлами в разных кодировках.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 19.05.2025
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Назад к содержимому