1С 8.3 Выгрузка картинки в json
Данные > Примеры кода 1С > 1С 8.3 HTTP
Перейти в раздел примеры кода 1С 8.3:

Пример выгрузки картинки номенклатуры в json в 1С 8.3:
Процедура КнопкаВыполнитьНажатие(Кнопка)
JSON = Новый ЗаписьJSON;
JSON.ПроверятьСтруктуру = Ложь;
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
JSON.ОткрытьФайл(ЭтаФорма.ПутьВыгрузки, КодировкаТекста.UTF8, , ПараметрыЗаписиJSON);
JSON.ЗаписатьНачалоМассива();
JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("Номенклатура");
JSON.ЗаписатьЗначение(СокрЛП(ЭтаФорма.Номенклатура.Наименование));
//JSON.ЗаписатьКонецОбъекта();
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("Гуид");
JSON.ЗаписатьЗначение(СокрЛП(ЭтаФорма.Номенклатура.УникальныйИдентификатор()));
//JSON.ЗаписатьКонецОбъекта();
КартинкаДв = ЭтаФорма.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
Если ТипЗнч(КартинкаДв) = Тип("Картинка") Тогда
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ИмяКартинки");
JSON.ЗаписатьЗначение(СокрЛП(ЭтаФорма.Номенклатура.ОсновноеИзображение.ИмяФайла));
//JSON.ЗаписатьКонецОбъекта();
//
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ОсновноеИзображение");
JSON.ЗаписатьЗначение(Base64Строка(КартинкаДв.ПолучитьДвоичныеДанные()));
JSON.ЗаписатьКонецОбъекта();
Иначе
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ИмяКартинки");
JSON.ЗаписатьЗначение("");
//JSON.ЗаписатьКонецОбъекта();
//
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ОсновноеИзображение");
JSON.ЗаписатьЗначение("");
JSON.ЗаписатьКонецОбъекта();
КонецЕсли;
JSON.ЗаписатьКонецМассива();
JSON.Закрыть();
КонецПроцедуры
Процедура ПутьВыгрузкиНачалоВыбора(Элемент, СтандартнаяОбработка)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Текст = "ru = ""json-файл""; en = ""json-file""";
Фильтр = НСтр(Текст)+"(*.json) |*.json";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
ПутьВыгрузки = МассивФайлов[0];
Иначе
Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
Предупреждение(НСтр(Текст));
КонецЕсли;
КонецПроцедуры
JSON = Новый ЗаписьJSON;
JSON.ПроверятьСтруктуру = Ложь;
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON( , Символы.Таб);
JSON.ОткрытьФайл(ЭтаФорма.ПутьВыгрузки, КодировкаТекста.UTF8, , ПараметрыЗаписиJSON);
JSON.ЗаписатьНачалоМассива();
JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("Номенклатура");
JSON.ЗаписатьЗначение(СокрЛП(ЭтаФорма.Номенклатура.Наименование));
//JSON.ЗаписатьКонецОбъекта();
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("Гуид");
JSON.ЗаписатьЗначение(СокрЛП(ЭтаФорма.Номенклатура.УникальныйИдентификатор()));
//JSON.ЗаписатьКонецОбъекта();
КартинкаДв = ЭтаФорма.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
Если ТипЗнч(КартинкаДв) = Тип("Картинка") Тогда
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ИмяКартинки");
JSON.ЗаписатьЗначение(СокрЛП(ЭтаФорма.Номенклатура.ОсновноеИзображение.ИмяФайла));
//JSON.ЗаписатьКонецОбъекта();
//
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ОсновноеИзображение");
JSON.ЗаписатьЗначение(Base64Строка(КартинкаДв.ПолучитьДвоичныеДанные()));
JSON.ЗаписатьКонецОбъекта();
Иначе
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ИмяКартинки");
JSON.ЗаписатьЗначение("");
//JSON.ЗаписатьКонецОбъекта();
//
//JSON.ЗаписатьНачалоОбъекта();
JSON.ЗаписатьИмяСвойства("ОсновноеИзображение");
JSON.ЗаписатьЗначение("");
JSON.ЗаписатьКонецОбъекта();
КонецЕсли;
JSON.ЗаписатьКонецМассива();
JSON.Закрыть();
КонецПроцедуры
Процедура ПутьВыгрузкиНачалоВыбора(Элемент, СтандартнаяОбработка)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Текст = "ru = ""json-файл""; en = ""json-file""";
Фильтр = НСтр(Текст)+"(*.json) |*.json";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
ПутьВыгрузки = МассивФайлов[0];
Иначе
Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
Предупреждение(НСтр(Текст));
КонецЕсли;
КонецПроцедуры
Пример вывода картинок из библиотеки картинок в поле браузера Webkit в 1С 8.3:
Функция ПолучитьАдресДляВыводаВБраузерКартинки(ИмяКартинки) Экспорт
Картинка = БиблиотекаКартинок[ИмяКартинки];
КартинкаДД = Картинка.ПолучитьДвоичныеДанные();// Преобразуем картинку в тип ДвоичныеДанные
ДанныеСтрокойДД = Base64Строка(КартинкаДД); // Двоичные данные, которые кодируем в base64
//По отдельности убираем разделение переводами строки:
ДанныеСтрокойДД = СтрЗаменить(ДанныеСтрокойДД, Символ(13), "");
ДанныеСтрокойДД = СтрЗаменить(ДанныеСтрокойДД, Символ(10), "");
АдресBase64 = "data:image/jpg;base64," + ДанныеСтрокойДД;
Возврат АдресBase64;
КонецФункции
Картинка = БиблиотекаКартинок[ИмяКартинки];
КартинкаДД = Картинка.ПолучитьДвоичныеДанные();// Преобразуем картинку в тип ДвоичныеДанные
ДанныеСтрокойДД = Base64Строка(КартинкаДД); // Двоичные данные, которые кодируем в base64
//По отдельности убираем разделение переводами строки:
ДанныеСтрокойДД = СтрЗаменить(ДанныеСтрокойДД, Символ(13), "");
ДанныеСтрокойДД = СтрЗаменить(ДанныеСтрокойДД, Символ(10), "");
АдресBase64 = "data:image/jpg;base64," + ДанныеСтрокойДД;
Возврат АдресBase64;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник