Back to top

Как в списке установить нестандартную картинку строки

Опубликовано e-1c@mail.ru - сб, 08/12/2017 - 16:15

В событиях управляемых формах отсутствуют события ПриВыводеСтроки, ПриПолученииДанных, которые в неуправляемых формах успешно использовались для отображения картинок. Теперь работа с картинками ТЧ в управляемых формах основана на механизмах КартинкаСтрок и ПутьКДаннымКартинкиСтрок. Работа с картинками выглядит это примерно так:
- КартинкаСтрок - содержит коллекцию картинок которые будут использоватся в ТЧ.
- ПутьКДаннымКартинкиСтроки - указывает, откуда система будет барть индексы для картинок.
Весь фокус в том, что у колонки, которая является данными для индексов картинок(ПутьКДаннымКартинкиСтроки) обязательно должно быть в свойствах списка стоять галочка Использовать всегда

kartinka000.png

Для решения задачи установки картинки существует два способа. Рассмотрим их на примере.

Создание колонки

Колонку с картинкой можно связать с колонкой данных, содержащих значение типов Число или Булево. В нашем случае требуется одну и ту же картинку выводить вместо стандартной, поэтому добавленная колонка должна содержать значение Истина для всех строк. Для динамического списка её нужно добавить в запросе.

ВЫБРАТЬ
   СправочникНоменклатура.Ссылка,
   СправочникНоменклатура.ПометкаУдаления,
   СправочникНоменклатура.Предопределенный,
   СправочникНоменклатура.Код,
   СправочникНоменклатура.Наименование,
   ИСТИНА КАК ИндексКартинки
ИЗ
   Справочник.Номенклатура  КАК СправочникНоменклатура

Примечание
Для колонки данных типа Булево значения инвертируются, т. е. Истина означает индекс 0, а Ложь – индекс 1 (это реализовано для удобства отображения картинок-флажков, когда у некоторых строк картинка по некоторому условию есть, а у других её нет).

В списке реквизитов для реквизита ИндексКартинки установим флажок ИспользоватьВсегда.

В списке элементов формы добавим колонку с видом Поле картинки. Значение будет указывать индекс конкретной картинки для конкретной строки в наборе картинок.

В свойстве Данные поля выберем Список.ИндексКартинки.

Набор картинок задается в свойстве поля Картинка значений.

Созданную колонку можно поместить в произвольное место таблицы как самостоятельную или объединить с одной из колонок в группу колонок с группировкой В ячейке. Объединим поле Картинка с колонкой Код:

kartinka001.jpg

В результате список примет вид, как показано на рисунке:

kartinka002.jpg

Переопределение стандартной картинки

Данный способ более удобен, поскольку не требуется создавать дополнительное поле и группировать его с другим полем, но он менее гибок, поскольку такая картинка всегда отображается в самой левой колонке, содержащей текст. В свойствах таблицы укажем нужную картинку в свойстве Картинка строк и установим свойство Данные картинки строк. Колонку для этого свойства нужно создать так же, как и в предыдущем способе.

kartinka003.jpg

В результате список примет следующий вид:

kartinka004.jpg