База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как передать изображение в JSON через Base64 в 1С 7.7?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 недели, 3 дня назад сделано
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 с изображением:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061// Функция кодирования бинарных данных в 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, что упростит код.
Если нужна помощь с конкретным кодом для вашего варианта — могу помочь написать.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.