Одним из полезных свойств элемента управления Табличное поле является возможность настройки оформления его строк программным способом.
Для иллюстрации этой возможности мы снова воспользуемся формой справочника Номенклатура и придадим ей «нестандартный» вид.
Откроем в конфигураторе форму списка справочника Номенклатура и создадим обработчик события формы ПриОткрытии со следующим текстом:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Процедура ПриОткрытии() СписокСправочника = ЭлементыФормы.СправочникСписок; // Задать режим чередования цветов строк СписокСправочника.ЦветФонаЧередованияСтрок = WEBЦвета.Бежевый; СписокСправочника.ЧередованиеЦветовСтрок = Истина; // Скрыть линии сетки СписокСправочника.ВертикальныеЛинии = Ложь; СписокСправочника.ГоризонтальныеЛинии = Ложь; КонецПроцедуры |
Вначале мы задаем режим чередования цветов фона строк списка. Первая строка будет выводиться на бежевом фоне, вторая на белом, третья снова на бежевом и т. д.
Затем мы скрываем линии, разделяющие колонки и строки.
Теперь откроем обработчик события ПриВыводеСтроки табличного поля списка справочника и добавим в него следующие строки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки,ДанныеСтроки) // Для элементов отобразить цену и... Если Не ДанныеСтроки.ЭтоГруппа Тогда ОтборНоменклатуры = Новый Структура; ОтборНоменклатуры.Вставить("Номенклатура", ДанныеСтроки.Ссылка); ОформлениеСтроки.Ячейки.Цена.ОтображатьТекст = Истина; АктуальнаяЦена = РегистрыСведений.Цены.ПолучитьПоследнее( , ОтборНоменклатуры).Цена; ОформлениеСтроки.Ячейки.Цена.Текст = АктуальнаяЦена; // низкие цены выделим другим цветом Если АктуальнаяЦена<500 Тогда ОформлениеСтроки.Ячейки.Цена.ЦветТекста = WEBЦвета.Васильковый; КонецЕсли; // Раздвинуть строку, если длинное наименование Если СтрДлина(СокрЛП(ДанныеСтроки.Наименование))>30 Тогда ОформлениеСтроки.Ячейки.Наименование.АвтоВысотаЯчейки = Истина; ОформлениеСтроки.Ячейки.Наименование.ВысотаЯчейки = 3; КонецЕсли; // Пример Оформления ВСЕЙ СТРОКИ // ОформлениеСтроки.Шрифт = Новый Шрифт(ОформлениеСтроки.Шрифт , , , Истина, Ложь); // ОформлениеСтроки.ЦветФона = Новый Цвет(255, 245, 207); КонецЕсли; КонецПроцедуры |
Здесь в случае вывода элемента справочника мы анализируем длину его наименования. Если оно более 30 символов, устанавливаем автоматическое определение высоты ячейки, ограничивая ее максимальную высоту тремя строками.