====== Картинки в 1С ======
1С платформа 8.2.х
Сразу: хранение картинок в 1С - это жесть, надо же было такое выдумать...
===== Описание =====
Так как 1С умеет работать с тонким клиентом и веб-клиентом, был придуман следующий механизм хранения файлов:
* Файл помещается во Временное хранилище и находится там либо пока его не удалят, либо пока жива форма, к которой привязаны данные. В этом случае файл должен быть передан методом ПоместитьВоВременноеХранилище()
не в виде пути в файловой системе, а в виде значения. Обратно его можно получить методом ПолучитьИзВременногоХранилища()
.
* Файл можно поместить в Хранилище методами ПоместитьФайл()
и ПоместитьФайлы()
, да еще и указать отображать ли диалог выбора.
===== Пример =====
Складываем файл во временное хранилище, затем выбираем и отображаем в поле картинки.
Процедура ПоместитьФайл(Файл)
// Сохраняем изображение во Временное Хранилище
ИзображениеФото = Новый Картинка(Файл.ПолноеИмя);
Если ИзображениеФото <> Неопределено Тогда
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ИзображениеФото);
КонецЕсли;
КонецПроцедуры
Процедура ОтобразитьКартинку()
// Считаем что адрес картинки во временном хранилище хранится в ТаблицеЗначений с названием "ТабличноеПолеИзображений"
// в 3-й колонке
// А поместить изображение надо в элемент Поле картинки с именем "ИзображениеНоменклатуры"
// Выбираем текущую строку
ТекущаяСтрокаТаблицы = ЭтаФорма.ЭлементыФормы.ТабличноеПолеИзображений.ТекущаяСтрока;
// Получаем адрес изображения во Временном Хранилище
АдресВременногоХранилища = ТекущаяСтрокаТаблицы[3];
// Отрисовать картинку
Картинка = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
ЭлементыФормы.ИзображениеНоменклатуры.Картинка = Картинка;
КонецПроцедуры
{{tag>1с картинка поле_картинки ВременноеХранилище временное_хранилище отобразить_картинку}}