Ресурсы соответствующие параметрам выбора не найдены
Параметры выбора и связи параметров выбора в панели быстрых настроек отчета СКД
При разработке отчета на СКД часто требуется указать связь между параметрами этого отчета. Например если в отчете имеется параметры «Номенклатура» и «Серия», при выборе серии показывать только серии данной номенклатуры. Или нужно отображать в списке выбора элементов справочника «ЗначенияСвойствОбъектов» только значения, принадлежащие определенному элементу плана видов характеристик «ДополнительныеРеквизитыИСведения». Несмотря на то, что в полях и параметрах СКД есть возможность указать параметры выбора и связи параметров выбора, этот механизм не работает (по крайней мере, так обстоит дело в ERP 2.4.9.98).
Можно написать свою форму отчета, разместить на ней элементы отбора и сделать в ней все, что угодно. Но не хотелось бы терять мощные механизмы общей формы «ФормаОтчета» или копипастить их в свой отчет.
Можно модифицировать общую форму «ФормаОтчета» под свои задачи. Но не хотелось бы это делать каждый раз при разработке нового отчетов.
Предлагаю пример решения этой задачи для двух вариантов:
1. Фиксированный параметр выбора для поля «Отбор». В отчете сделан отбор по полю с типом «Справочник.ЗначенияСвойствОбъектов». При выборе значения отбора требуется показать пользователю только элементы с заданным владельцем.
2. Связи параметров выбора для поля «Параметр». В отчете имеется 2 параметра: Номенклатура и Серия. При выборе серии, показывать пользователю только серии выбранной номенклатуры
1. Фиксированный параметр выбора
Создаем отчет (файл ВнешнийОтчет_ФиксированныеПараметрыОтбора.erf).
Если отчет встроен в расширение, то необходимо:
1. Добавить в расширение подсистему ПодключаемыеОтчетыИОбработки
2. Добавить отчет в эту подсистему
3. В модуле менеджера отчета написать код:
В 1С добавить дополнительный реквизит справочника Номенклатура «Раздел комплектации» с типом значений «Дополнительное значение». Указать или сгенерировать имя реквизита, в моем случае это «РазделКомплектации_c7a03c267bb64e0eb58489873f24c25e»
В отчете составляем текст запроса:
Для поля «РазделКомплектации» нужно указать тип значения СправочникСсылка.ЗначенияСвойствОбъектов
На вкладке «Параметры» укажем выражение для параметра «Свойство»: ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту(«Имя», «РазделКомплектации_c7a03c267bb64e0eb58489873f24c25e», Истина)
Включим отбор по полю «РазделКомплектации» в пользовательские настройки: на вкладке «Настройки», «Отбор» добавими отбор «РазделКомплектации», щелкнем на нем правой кнопкой мыши, «Свойства элементов пользовательских настроек», установим флажок «Включать в пользовательские настройки».
В модуле отчета указываем, что мы перехватываем событие «ПослеЗаполненияПанелиБыстрыхНастроек»:
2. Связи параметров выбора
Создаем отчет (файл ВнешнийОтчет_СвязиПараметровВыбора.erf).
Как и в предыдущем примере, если отчет встроен в расширение, то необходимо:
1. Добавить в расширение подсистему ПодключаемыеОтчетыИОбработки
2. Добавить отчет в эту подсистему
3. В модуле менеджера отчета написать:
В отчете составляем текст запроса:
Параметры «Номенклатура» и «Серия» включим в пользовательские настройки (см. выше).
В модуле отчета указываем, что мы перехватываем событие «ПослеЗаполненияПанелиБыстрыхНастроек»:
В обработчике этого события:
2. Добавляем в форму новый реквизит «МойРеквизит_Номенклатура». Добавить элемент формы для этого реквизита.
Элементу формы указать обработчик события «ПриИзменении» (обработчик этого события и будет то единственным изменением общей формы «ФормаОтчета»).
3. Скрываем старый элемент формы «Номенклатура».
4. Для элемента формы «Серия» задаем связи параметров выбора.
5. Сохраняем необходимую в дальнейшем информацию в дополнительных свойствах пользовательских настроек компоновщика настроек: