База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как передать изображение в JSON через Base64 в 1С 7.7?
- В этой теме 1 ответ, 2 участника, последнее обновление 4 дня, 11 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
30 января 2026 в 16:45 #35604
передать в JSON изображение 1с 7.7 через преобразование его в бинарную строку
-
30 января 2026 в 16:45 #35605
Сергей, в 1С 7.7 для передачи изображения в JSON через бинарную строку нужно выполнить следующие шаги:
1. Получить бинарные данные изображения (например, из объекта «Изображение»).
2. Преобразовать бинарные данные в строку, используя Base64 кодирование.
3. Вставить полученную Base64 строку в JSON как обычное строковое значение.В 1С 7.7 нет встроенных функций для Base64, поэтому нужно использовать самописные процедуры или внешние библиотеки. Вот пример реализации Base64 кодирования и формирования JSON с изображением:
// Функция кодирования бинарных данных в Base64 Функция Base64Кодировать(ДвоичныеДанные) ТаблицаКодов = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; Результат = ""; Буфер = ""; Длина = СтрДлина(ДвоичныеДанные); Индекс = 1; Пока Индекс <= Длина Цикл // Читаем по 3 байта Байты = ""; Для i = 0 По 2 Цикл Если (Индекс + i) <= Длина Тогда Байты = Байты + Сред(ДвоичныеДанные, Индекс + i, 1); Иначе Байты = Байты + Символ(0); КонецЕсли; КонецЦикла; // Преобразуем 3 байта в 4 символа Base64 Б1 = КодСимвола(Сред(Байты,1,1)); Б2 = КодСимвола(Сред(Байты,2,1)); Б3 = КодСимвола(Сред(Байты,3,1)); Инд1 = Б1 / 4; Инд2 = ((Б1 % 4) * 16) + (Б2 / 16); Инд3 = ((Б2 % 16) * 4) + (Б3 / 64); Инд4 = Б3 % 64; Результат = Результат + Сред(ТаблицаКодов, Цел(Инд1)+1, 1); Результат = Результат + Сред(ТаблицаКодов, Цел(Инд2)+1, 1); Если (Индекс + 1) > Длина Тогда Результат = Результат + "="; Иначе Результат = Результат + Сред(ТаблицаКодов, Цел(Инд3)+1, 1); КонецЕсли; Если (Индекс + 2) > Длина Тогда Результат = Результат + "="; Иначе Результат = Результат + Сред(ТаблицаКодов, Цел(Инд4)+1, 1); КонецЕсли; Индекс = Индекс + 3; КонецЦикла; Возврат Результат; КонецФункции // Пример использования Процедура ПередатьИзображениеВJSON(Изображение) // Получаем бинарные данные изображения БинарныеДанные = Изображение.ПолучитьДвоичныеДанные(); // Кодируем в Base64 СтрокаBase64 = Base64Кодировать(БинарныеДанные); // Формируем JSON вручную JSON = "{""image"":""" + СтрокаBase64 + """}"; Сообщить(JSON); КонецПроцедурыОбъяснения:
— Метод `ПолучитьДвоичныеДанные()` у объекта Изображение возвращает бинарные данные.
— Функция `Base64Кодировать` преобразует бинарные данные в строку Base64.
— В JSON строка Base64 вставляется как обычное строковое значение.Если у вас есть возможность использовать внешние компоненты или расширения, можно применить готовые библиотеки Base64, что упростит код.
Если нужна помощь с конкретным кодом для вашего варианта — могу помочь написать.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.