Приветствую Вас ГостьСуббота, 04.05.2024, 19:21

Каталог статей


Вывод произвольных данных в столбце динамического списка

Если необходимо вывести данные по произвольному алгоритму, основанному на данных строки динамического списка (например вывести в одной колонке остатки материала по складам с цветовым оформлением отрицательных остатков), то можно использовать событие ПриПолученииДанныхНаСервере(). Оно срабатывает при отображении данных динамического списка на экране, т.е. только для тех строк, которые видит пользователь. Эта особенность позволяет выполнять сложные расчеты, в том числе обращаться к данным с помощью запроса для расчета значения, при этом расчет выполняется не для всего списка, а только для строк, отображаемых на экране.

Пример использования можно посмотреть здесь: https://xn----1-bedvffifm4g.xn--p1ai/news/2017-12-26-many-values-in-one-cell/ 

Метод ПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) обрабатывает только те данные, которые отображаются на экране пользователя. Проблема только в том, что этот метод выполняется на сервере без контекста, поэтому, если нам надо формировать данные данные столбца на основании введенных данных на форме, то надо позаботиться о том, чтобы получить данные формы. Для этого используют параметр Настройки, который содержит настройки компоновки данных динамического списка. Мы можем поместить в дополнительные необходимые данные.

Список.КомпановщикНастроек.Настройки.ДополнительныеСвойства.Вставить("Склад", Склад);

Элементы.Список.Обновить(); // в методе изменения элемента "Склад" обновить список после установки настроек, чтобы они применились.

В методе ПриПолученииДанныхНаСервере() получаем дополнительное свойство и формируем содержимое нашего столбца.

Склад = Неопределено;

Настройки.ДополнительныеСвойств.Свойство("Склад" ,Склад);

Чтобы получить данные текущих строк, надо использовать свойство Строки (тип СтрокаДинамическогоСписка)

Динамический список содержит ключевой поле. Если динамический список формируется по справочнику, то ключом будет ссылка на элемент списка. 

Получить массив ключей можно с помощью метода Строки.ПолучитьКлючи();

Чтобы установить значение колонки так же используем параметр Строки:

СтрокаСписка = Строки[<КлючСтроки>];

В нашем случае в качестве ключа строки выступает ссылка на элемент справочника.

СтрокаСписка имеет 2 свойства:

  • Данные - содержит данные в строке
  • Оформление -  содержит оформление строки

Задаем текст колонки:

СирокаСписка.Данные.Остаток = "бла бла " + ЗначениеОстатка;

Задаем оформление

СтрокаСписка.Оформление["Остаток"].УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(255,0,0));

 

Категория: Формы | Добавил: leshic (24.04.2023)
Просмотров: 311 | Рейтинг: 0.0/0
Всего комментариев: 0
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [40]
Администрирование [34]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0