В конструкторе схемы компоновки данных на закладке Наборы данных находится флажок Автозаполнение, который позволяет управлять свойством набора данных АвтоЗаполнениеДоступныхПолей (рис. 3.122).
Рис. 3.122. Автоматическое заполнение полей набора данных
При создании набора данных типа Запрос данный флажок установлен по умолчанию. Свойство АвтоЗаполнениеДоступныхПолей указывает, что система должна самостоятельно сформировать состав полей, доступных для схемы компоновки данных, на основании текста запроса, содержащегося в наборе данных.
Доступные поля – это те поля отчета, которыми оперирует схема компоновки. Они могут быть использованы в настройках отчета (сортировке, отборе и др.), участвовать в группировках отчета, формировании вычисляемых полей и пр. Затем можно поставить флажок ограничения доступности у поля на его участие в отображаемых полях отчета (колонка П… – недоступно для выбора), создание условий (У… – недоступно как условие), группировке (Г… – недоступно для группировки), сортировке (У… – недоступно для упорядочивания). И тогда данное поле не будет участвовать в этих настройках (см. рис. 3.122).
При автоматическом заполнении полей наборов данных действуют следующие правила:
Для примера рассмотрим отчет Отчет по продажам. Набор данных для него получается с помощью следующего запроса (листинг 3.29).
Листинг 3.29. Текст запроса
ВЫБРАТЬ
ПродажиОбороты.ПериодДень,
ПродажиОбороты.ПериодМесяц,
ПродажиОбороты.Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СтоимостьОборот КАК Стоимость
ИЗ
РегистрНакопления.Продажи.Обороты(, , Авто, ) КАК ПродажиОбороты
В соответствии с первым правилом поля Контрагент, ПериодДень, ПериодМесяц, Стоимость, Количество будут доступны для отбора, сортировки, группировки, выбора (см. рис. 3.122).
Мы видим, что платформа автоматически заполнила колонки Поле, Путь и Заголовок полей текущего набора данных исходя из псевдонимов полей запроса:
При этом свойства Поле и Путь доступных полей схемы компоновки данных генерируются на языке, соответствующем варианту встроенного языка конфигурации. Например, если установить в свойствах конфигурации свойство Вариант встроенного языка в значение Английский, то доступные поля набора данных примут следующий вид (рис. 3.123).
Рис. 3.123. Автоматическое заполнение полей набора данных
Для свойства Заголовок можно задать представление, соответствующее языкам, определенным в конфигурации. Для этого нужно установить флажок слева от заголовка поля и нажать кнопку открытия в данном поле.
В соответствии со вторым правилом поле Номенклатура хотя явно не присутствует в запросе, будет доступно для отбора, так как на него можно наложить отбор в параметрах виртуальной таблицы (рис. 3.124).
Рис. 3.124. Доступные поля для отбора в схеме компоновки данных
В соответствии с третьим правилом параметры НачалоПериода и КонецПериода хотя они явно не указаны в запросе, попадут в доступные параметры схемы компоновки данных, так как их можно указывать в виртуальной таблице (рис. 3.125).
Рис. 3.125. Доступные параметры в схеме компоновки данных
При этом имена доступных параметров схемы компоновки данных генерируются на языке, соответствующем варианту встроенного языка конфигурации.
Проиллюстрируем эти два правила на примере. В конструкторе запроса схемы компоновки данных Отчета по продажам вызовем диалог параметров виртуальной таблицы. В этом диалоге мы увидим параметры НачалоПериода и КонецПериода, которые становятся доступны при автозаполнении. Вызовем диалог для создания условия виртуальной таблицы. В этом диалоге мы увидим поля Контрагент и Номенклатура, которые становятся доступны для отбора при автозаполнении. То есть если бы поле Контрагент не было указано в выбранных полях запроса и не попало бы в список доступных полей в соответствии с первым правилом автозаполнения, то оно стало бы доступно для отбора в соответствии со вторым правилом (рис. 3.126).
Рис. 3.126. Поля и параметры виртуальной таблицы в конструкторе запроса
Если в запросе в виртуальной таблице указаны имена параметров, то доступны будут параметры именно с указанными именами (листинг 3.30).
Листинг 3.30. Текст запроса
ВЫБРАТЬ
ПродажиОбороты.ПериодДень,
ПродажиОбороты.ПериодМесяц,
ПродажиОбороты.Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СтоимостьОборот КАК Стоимость
ИЗ
РегистрНакопления.Продажи.Обороты({&Начало}, {&Конец}, Авто, ) КАК ПродажиОбороты
При автозаполнении полей на основе приведенного выше запроса доступными будут параметры Начало и Конец вместо НачалоПериода и КонецПериода (рис. 3.127).
Рис. 3.127. Доступные параметры в схеме компоновки данных
Если в запросе указано и выражение параметра (&Начало), и параметр компоновки данных ({&НачалоПериода}), то значение параметра компоновки данных используется, если значение данного параметра установлено в настройках компоновки. В противном случае в качестве значения параметра используется результат выражения, указанного в параметре виртуальной таблицы (листинг 3.31).
Листинг 3.31. Текст запроса
ВЫБРАТЬ
ПродажиОбороты.ПериодДень,
ПродажиОбороты.ПериодМесяц,
ПродажиОбороты.Контрагент,
ПродажиОбороты.КоличествоОборот КАК Количество,
ПродажиОбороты.СтоимостьОборот КАК Стоимость
ИЗ
РегистрНакопления.Продажи.Обороты(&Начало {&НачалоПериода}, {&КонецПериода}, Авто, )
КАК ПродажиОбороты
В этом примере, если в настройках установлено значение параметра НачалоПериода, будет использоваться его значение. В противном случае в сгенерированном тексте запроса останется исходное выражение, т. е. &Начало, и в качестве значения параметра виртуальной таблицы будет использоваться значение этого параметра (рис. 3.128).
Рис. 3.128. Доступные параметры в схеме компоновки данных
Все параметры, явно указанные в запросе, также становятся доступными (листинг 3.32).
Листинг 3.32. Текст запроса
ВЫБРАТЬ
СобранныеСБ.СБ КАК СистемныйБлок,
СобранныеСБ.Количество,
СобранныеСБ.Стоимость,
СобранныеСБ.Мастер,
СобранныеСБ.Регистратор
ИЗ
РегистрНакопления.СобранныеСБ КАК СобранныеСБ
ГДЕ
СобранныеСБ.ВидДвижения = &ВидДвижения
И СобранныеСБ.Период >= &НачалоПериода
И СобранныеСБ.Период <= &КонецПериода
На основе приведенного выше запроса доступными будут параметры НачалоПериода, КонецПериода и ВидДвижения (рис. 3.129).
Рис. 3.129. Доступные параметры в схеме компоновки данных