Динамический список
Источником данных для таблиц большинства форм списков (списки справочников клиентов, контактных лиц и др.) является системный компонент ДинамическийСписок
.
Для динамических списков указывается основная таблица и выражения полей, для которых можно использовать псевдонимы, как в примере ниже для поля Владелец.Клиент. Дополнительно к этому может быть определен порядок сортировки записей, например сортировка по полю ДатаСоздания в примере ниже:
Тип: Таблица<ДинамическийСписок>
Имя: ТаблицаСписка
Источник:
ОсновнаяТаблица:
Таблица: Задачи
Поля:
-
Тип: ПолеДинамическогоСписка
Выражение: Код
-
Тип: ПолеДинамическогоСписка
Выражение: Наименование
-
Тип: ПолеДинамическогоСписка
Выражение: ДатаСоздания
-
Тип: ПолеДинамическогоСписка
Выражение: Владелец.Клиент
Псевдоним: Владелец_Клиент
Представление: Клиент
ОтображатьВНастройкахФильтров: Истина
ОтображатьВПростыхФильтрах: Истина
Сортировка:
-
Поле: ДатаСоздания
НаправлениеСортировки: ПоУбыванию
Кроме того, можно указывать присоединенные таблицы, которые соединяются с основной для уточнения выборки. Так, в примере ниже, в форме списка валют имеются присоединенные таблицы динамического списка. Основная таблица справочника Общие::КурсыВалют::Валюты соединяется с виртуальной таблицей среза последних регистра сведений Общие::КурсыВалют::КурсыВалют:
И для основной, и для присоединенной таблиц указ ываются псевдонимы, которые используются в выражении соединения таблиц и в выражениях полей динамического списка:
Тип: Таблица<ДинамическийСписок>
ИспользованиеПоиска: Ложь
Имя: ТаблицаСписка
Источник:
ОсновнаяТаблица:
Таблица: Валюты
Псевдоним: Валюты
Поля:
-
Тип: ПолеДинамическогоСписка
Выражение: Валюты.Ссылка
Псевдоним: Валюты_Ссылка
-
Тип: ПолеДинамическогоСписка
Выражение: Валюты.Наименование
Псевдоним: Валюты_Наименование
-
Тип: ПолеДинамическогоСписка
Выражение: Валюты.Код
Псевдоним: Валюты_Код
-
Тип: ПолеДинамическогоСписка
Выражение: КурсыСрезПоследних.Курс
Псевдоним: КурсыСрезПоследних_Курс
-
Тип: ПолеДинамическогоСписка
Выражение: КурсыСрезПоследних.Кратность
Псевдоним: КурсыСрезПоследних_Кратность
-
Тип: ПолеДинамическогоСписка
Выражение: КурсыСрезПоследних.Период
Псевдоним: КурсыСрезПоследних_Период
ПрисоединенныеТаблицы:
-
Таблица: КурсыВалют.СрезПоследних
Псевдоним: КурсыСрезПоследних
Фильтр:
Элементы:
-
Тип: ЭлементФильтраВыражение
Выражение: Валюты.Ссылка == КурсыСрезПоследних.Валюта
Кроме того, можно задать условия фильтрации данных в выборке с помощью свойства Фильтр
. Для фильтра могут использоваться поля как основной, так и присоединенных таблиц. Условие фильтрации сравнивается со значением поля данных. Это может быть одно значение, выражение или группа значений и/или выражений, соединенных логическими операторами.
Параметры и аргументы
Условие запроса можно указать непосредственно в описании динамического списка или одной из его табл иц, как значение свойства. Это позволяет:
- передавать условия запроса во время исполнения программы;
- упрощать написание и чтение длинных, сложных запросов;
- переиспользовать одно и то же условие, которое повторяется несколько раз в одном или нескольких запросах.
Параметры позволяют добавлять условия выборки напрямую в описание динамического списка как значения его свойств. В дальнейшем они могут использоваться в виде ссылок в значениях или выражениях фильтра.
Чтобы добавить параметр, добавьте в описание динамического списка свойство Параметры
, после чего укажите один или несколько параметров, каждый из которых будет иметь специальный тип ПараметрДинамическогоСписка
, имя и значение. Значением может быть как собственно значение определенного типа, так и ссылка на объект, например, условие выборки, переданное пользователем во время исполнения запроса:
Тип: Таблица<ДинамическийСписок>
Имя: ТаблицаСПараметрами
Источник:
ОсновнаяТаблица:
Таблица: Срез
Параметры:
-
Тип: ПараметрДинамическогоСписка
Имя: Параметр1
Значение:
Тип: Число
Значение: 110
-
Тип: ПараметрДинамическогоСписка
Имя: Параметр2
Значение: =УсловиеОтПользователя
Фильтр:
Элементы:
-
Тип: ЭлементФильтраВыражение
Выражение: Срез.Курс == &Параметр2
Аргументы позволяют добавлять значения в основную или присоединенные таблицы динамического списка. Аргументом таблицы может быть просто значение или целое выражение. При использовании таблицы аргумент будет передан автоматически во время исполнения запроса.
Чтобы добавить аргумент, добавьте свойство Аргументы
, после чего укажите для него одно или несколько свойств Значение
. Например, для следующей выборки на языке запросов:
ВЫБРАТЬ
Период,
Курс,
Валюта
ИЗ
Курсы.СрезПоследних(Дата{2021-04-05})
Описание аргументов в файле YAML будет выглядеть следующим образом:
- для основной таблицы:
Тип: Таблица<ДинамическийСписок>
Источник:
ОсновнаяТаблица:
Таблица: КурсыВалют.СрезПоследних
Псевдоним: Срез
Аргументы:
-
Тип: АргументТаблицы
Значение:
Тип: Дата
Значение: 2021-04-05
Поля:
-
Тип: ПолеДинамическогоСписка
Выражение: Срез.Период
-
Тип: ПолеДинамическогоСписка
Выражение: Срез.Валюта
- для присоединенной таблицы:
ПрисоединенныеТаблицы:
-
Тип: ПрисоединеннаяТаблица
Таблица: КурсыВалют.СрезПоследних
Аргументы:
-
Тип: АргументТаблицы
Значение:
Тип: Дата
Значение: 2021-04-05
Пример использования выражения как аргумента таблицы:
Тип: Таблица<ДинамическийСписок>
ИспользованиеПоиска: Ложь
Источник:
ОсновнаяТаблица:
Таблица: КурсыВалют.СрезПоследних
Псевдоним: Срез
Аргументы:
-
Тип: АргументТаблицыВыражение
Выражение: =ПараметрДата
Параметры:
-
Тип: ПараметрДинамическогоСписка
Имя: ПараметрДата
З начение:
Тип: Дата
Значение: 10.10.2021
Поля:
-
Тип: ПолеДинамическогоСписка
Выражение: Срез.Период
-
Тип: ПолеДинамическогоСписка
Выражение: Срез.Валюта
Фильтр:
Элементы:
-
Тип: ЭлементФильтраВыражение
Выражение: Срез.Курс == &Параметр2