Цитаты из книги автора Разработка сложных отчетов в «1С:Предприятии 8». Система компоновки данных, 4-е стереотипное переиздание
В случае, если пользовательские настройки отчета еще ни разу не сохранялись, их нужно задавать в обработчике события ПередЗагрузкойВариантаНаСервере (листинг 2.18).
Нажмем кнопку Свойства элемента пользовательских настроек, расположенную вверху, в командной панели окна настроек, и включим настройку Порядок в состав пользовательских настроек отчета (рис. 2.90).
Снимем флажок Ограничение доступности у этих параметров, так как они будут задаваться пользователем при формировании отчета. А также установим для них свойство Использование в значение Всегда. Так как параметры передаются в запрос всегда, то установка обязательного использования параметров позволит сформировать отчет без ошибки, даже если значения параметров не указаны
На закладке Связи наборов данных добавим новую строку. В поле Источник связи, то есть в качестве родительского набора данных, укажем РегистрСБ, в поле Приемник связи, то есть в качестве зависимого набора данных, укажем ДокументСБ. В поле Выражение источник выберем из полей родительского набора поле Регистратор, а в поле Выражение приемник – поле зависимого набора данных – Ссылка. В поле Параметр выберем из списка параметров параметр Ссылка родительского набора данных, в котором будет храниться значение связи (рис. 2.84).
ВЫБРАТЬ
СборкаКомпьютера.Дата,
СборкаКомпьютера.Номер,
СборкаКомпьютера.Ссылка
ИЗ
Документ.СборкаКомпьютера КАК СборкаКомпьютера
ГДЕ
СборкаКомпьютера.Ссылка В (&Ссылка)
СборкаКомпьютера.Дата,
СборкаКомпьютера.Номер,
СборкаКомпьютера.Ссылка
ИЗ
Документ.СборкаКомпьютера КАК СборкаКомпьютера
ГДЕ
СборкаКомпьютера.Ссылка В (&Ссылка)
В текст запроса добавим условие с параметром Ссылка, в который будет помещено значение связи набора данных – источника. В результате набор данных – приемник НаборДанных2 будет получать только те документы СборкаКомпьютера, которые произвели движения в регистре накопления СобранныеСБ (листинг 2.11).
В параметре Настройки в обработчик передаются настройки варианта отчета, имеющие тип ПользовательскиеНастройкиКомпоновкиДанных. Так как параметра всего два, то можно обращаться к ним по индексу (0, 1) в коллекции элементов пользовательских настроек. Мы устанавливаем значения параметров начала и конца отчетного периода и задаем для них признак использования. Эти настройки загружаются в компоновщик настроек, и отчет формируется с заданными параметрами
Однако если настройки являются пользовательскими (в нашем случае – это параметры отчетного периода) и пользователь хоть раз задавал их значения в форме отчета, то устанавливать их в этом обработчике бесполезно.
Сначала у формы отчета вызывается событие ПриСозданииНаСервере. В нем мы задаем необходимость формирования отчета сразу же при его открытии. Затем происходят четыре события, поставляемые расширением управляемой формы для отчета.
Сначала выполняется загрузка настроек варианта отчета (основного или выбранного пользователем при последнем формировании отчета) в компоновщик настроек. При этом вызываются события ПередЗагрузкойВариантаНаСервере и ПриЗагрузкеВариантаНаСервере. Очевидно, нам нужно создать обработчик события ПередЗагрузкойВариантаНаСервере, чтобы в нем изменить параметры настроек перед их загрузкой в компоновщик (листинг 2.9)
Сначала выполняется загрузка настроек варианта отчета (основного или выбранного пользователем при последнем формировании отчета) в компоновщик настроек. При этом вызываются события ПередЗагрузкойВариантаНаСервере и ПриЗагрузкеВариантаНаСервере. Очевидно, нам нужно создать обработчик события ПередЗагрузкойВариантаНаСервере, чтобы в нем изменить параметры настроек перед их загрузкой в компоновщик (листинг 2.9)
Чтобы исключить неоднозначность имен в запросе, переименуем таблицу Номенклатура в спрНоменклатура. Для этого выделим ее в списке Таблицы и вызовем ее контекстное меню (рис. 2.58).