|
|||||||
1С: Динамическое поле. Дополнительная вычисляемая или текстовая колонка в списке.
Время создания: 01.06.2012 14:27
Раздел: Компьютер - Windows - 1С - Готовые решения
Запись: xintrea/mytetra_syncro/master/base/1338546430fyqacrwbgl/text.html на raw.github.com
|
|||||||
|
|||||||
Дополнительная вычисляемая или текстовая колонка в списке Автор статьи: Волшебник | Редакторы: Мелкий бес, Гений 1С, le_ Последняя редакция №10 от 06.02.12 В 7.7 были текстовые колонки, в Формуле которых можно было написать произвольное выражение. В 8.0 программный код может находиться только в модулях, поэтому дополнительные колонки реализуются с помощью события ПриВыводеСтроки табличного поля. 1-й вариант: Процедура НоменклатураПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) СамаЯчейка = ОформлениеСтроки.Ячейки.ИмяЯчейки; СамаЯчейка.ОтображатьТекст = Истина; СамаЯчейка.Текст = "Лалала"; КонецПроцедуры 2-й вариант: Процедура НоменклатураПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ОформлениеСтроки.Ячейки.ИмяЯчейки.УстановитьТекст("Лалала"); КонецПроцедуры 3-й вариант: Процедура НоменклатураПриПолученииДанных(Элемент, ОформленияСтрок) Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл СамаЯчейка = ОформлениеСтроки.Ячейки.ИмяЯчейки; СамаЯчейка.ОтображатьТекст = Истина; СамаЯчейка.Текст = "Лалала"; КонецЦикла; КонецПроцедуры Обычно колонка должна быть рассчитываемой, или зависимой от данных, поэтому задействуется второй параметр ДанныеСтроки. Этот механизм можно использовать для отображения остатков товаров в форме подбора, текущих цен, долга контрагента, другой информации по строкам. Но здесь нужно быть осторожным! Событие ПриВыводеСтроки вызывается довольно часто при перерисовке табличного поля. Поэтому процедура должна отрабатывать довольно быстро, чтобы не тормозить вывод списка. Если в ней происходит обращение к базе данных, то вывод может резко замедлиться. Если начались тормоза, то рекомендуется сделать следующее:
С помощью этого события можно выводить не только текст, но также флажки и картинки, например: Картинка: Ячейка = ОформлениеСтроки.Ячейки.ТипСобытия; Ячейка.ОтображатьТекст = Ложь; Ячейка.ОтображатьФлажок = Ложь; Ячейка.ОтображатьКартинку = Истина; Ячейка.ИндексКартинки = 1; Установка картинки одной строкой: ОформлениеСтроки.Ячейки.ТипСобытия.УстановитьКартинку(Картинка); или другой пример: ТЗ=Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ПометкаУдаления",,"ПометкаУдаления"); ТЗ.Колонки.Добавить("Проведен",,"Проведен");
КолонкаКартинки=ЭлементыФормы.ТЗ.Колонки.Вставить(0,"<"); КолонкаКартинки.Имя="Картинка"; КолонкаКартинки.Ширина=5; КолонкаКартинки.ДанныеКартинки="ИндексКартинки"; КолонкаКартинки.КартинкиСтрок= БиблиотекаКартинок.СостоянияДокумента; Процедура ТЗПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДанныеСтроки.Проведен Тогда ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=0; ИначеЕсли НЕ ДанныеСтроки.Проведен Тогда ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=2; ИначеЕсли ДанныеСтроки.ПометкаУдаления Тогда ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=1; КонецЕсли; Флажки: ОформлениеСтроки.Ячейки.Колонка2.ОтображатьФлажок= Истина; ОформлениеСтроки.Ячейки.Колонка2.УстановитьТекст(""); ОформлениеСтроки.Ячейки.Колонка2.Флажок = Истина; Или так: ОформлениеСтроки.Ячейки.Колонка2.УстановитьФлажок(Истина); Еще можно менять цвет фона и текста, шрифт и другие характеристики оформления: ОформлениеСтроки.Ячейки.<ИмяКолонки>.ЦветФона = Новый Цвет (255,100,100); ОформлениеСтроки.Ячейки.<ИмяКолонки>.Шрифт = Новый Шрифт(,,Истина); Можно также управлять доступностью отдельных строк и ячеек табличного поля: ОформлениеСтроки.Ячейки.ХХХ.ТолькоПросмотр = Истина; |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|