Программное добавление реквизитов-картинок на управляемую форму
Доброго времени суток. Просьба помочь, люди добрые... Может кто нибудь привести пример как программно на управляемую форму добавить неограниченное количество реквизитов, для отображения картинок. К примеру, в элементе справочника в табличной части хранятся картинки. На фоме элемента есть группа в виде вкладки. В эту вкладку нужно вывести все картинки, количество картинок заранее не известно, расположение картинок горизонтальное (что бы появился скроль для перемотки). Заранее спасибо!
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Принцип такой: Помещаете картинки во временное хранилище. Создаёте строковые реквизиты формы, в которые передаёте адреса картинок во временном хранилище. На форме создаёте элементы, связанные с этими реквизитами — поля с видом Поле картинки. Но я бы сделал через таблицу формы с колонкой, в которой будут выводиться картинки.
(2) А как мне добавить реквизит на форму?
Сейчас пишу так, но говорит, что ти не определен "ПолеКартинки":
Сейчас пишу так, но говорит, что ти не определен "ПолеКартинки":
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Для Каждого СтрокаТабЧасти Из Объект.Картинки Цикл
ИмяРеквизита = "Картинка" + СтрокаТабЧасти.НомерСтроки;
Элемент = ЭтаФорма.Элементы.Добавить(ИмяРеквизита, Тип("ПолеКартинки"), Элементы.СтраницаПросмотрКартинок);
Элемент.Вид = ВидПоляФормы.ПолеКартинки;
КонецЦикла;
КонецПроцедуры
Показать
Кому интересно:
Замечания приветствуются!
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Для Каждого СтрокаТабЧасти Из Объект.Картинки Цикл
Картинка = ОбменДаннымиСервер.ПолучитьКартинку(СтрокаТабЧасти.ИдентификаторКартинки);
Если ТипЗнч(Картинка) = Тип("Картинка") Тогда
ИмяРеквизита = "Картинка" + СтрокаТабЧасти.НомерСтроки;
ДобавляемыеРеквизиты = Новый Массив;
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("Строка"));
Реквизит = Новый РеквизитФормы(ИмяРеквизита, Новый ОписаниеТипов(МассивТипов), , , Истина);
ДобавляемыеРеквизиты.Добавить(Реквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
ЭлементФормы = Элементы.Добавить(ИмяРеквизита, Тип("ПолеФормы"), Элементы.СтраницаПросмотрКартинок);
ЭлементФормы.ПутьКДанным = ИмяРеквизита;
ЭлементФормы.Вид = ВидПоляФормы.ПолеКартинки; //ВидПоляФормы.ПолеВвода;
ЭлементФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ЭтаФорма[ИмяРеквизита] = ПоместитьВоВременноеХранилище(Картинка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьЗамечания приветствуются!
(5)
Как только номер картинки станет больше 999, так сразу выскочит ошибка. Все числа, которые используются в именах объектов, ВСЕГДА надо форматировать к виду без разделителей разрядов и без дробной части.
ИмяРеквизита = "Картинка" + СтрокаТабЧасти.НомерСтроки;
Как только номер картинки станет больше 999, так сразу выскочит ошибка. Все числа, которые используются в именах объектов, ВСЕГДА надо форматировать к виду без разделителей разрядов и без дробной части.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот