Отчет на СКД, программный отбор по списку значений
-

Отчет на СКД, программный отбор по списку значений

0
4505
15.02.2025 Елена Дубровина

Содержание:

1.     Настройка структуры СКД

2.     Реализация программного отбора в учетной программе 1С

3.     Настройка интерфейса 1С  

    

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


1. Настройка структуры СКД


Создание набора данных
В конфигураторе откройте объект отчета и перейдите на вкладку «Наборы данных» в настройках СКД. Добавьте новый источник данных, например, запрос к базе данных. Пример запроса:

ВЫБРАТЬ

    Товары.Ссылка КАК Товар,

    Товары.Наименование,

    Товары.Цена

ИЗ

    Справочник.Товары КАК Товары


Настройка параметров отчета  
В СКД создайте параметр для передачи списка значений. Например, назовите его СписокТоваров. 

2. Реализация программного отбора в учетной программе 1С


Для передачи списка значений и фильтрации данных создадим программный отбор.

Добавление условия в запрос
Скорректируйте текст запроса, чтобы использовать параметр. Пример:

ВЫБРАТЬ

    Товары.Ссылка КАК Товар,

    Товары.Наименование,

    Товары.Цена

ИЗ

    Справочник.Товары КАК Товары

ГДЕ

    Товары.Ссылка В (&СписокТоваров)


Обработка параметра в модуле отчета
В модуле объекта отчета обработаем передачу списка значений в параметр СписокТоваров:

Процедура ПередФормированиемОтчета(Настройки, Параметры) Экспорт

    // Пример списка значений

    СписокТоваров = Новый Массив;

    СписокТоваров.Добавить(Справочники.Товары.НайтиПоКоду("00001"));

    СписокТоваров.Добавить(Справочники.Товары.НайтиПоКоду("00002"));

 

    // Передаем список в параметр

    Параметры.Вставить("СписокТоваров", СписокТоваров);

КонецПроцедуры


Обработка ситуаций с пустым списком
Если список значений пуст, нужно предусмотреть поведение запроса. Например:

ИЛИ &СписокТоваров = НЕОПРЕДЕЛЕНО


3. Настройка интерфейса 1С


Добавление интерфейсных элементов
Реализуйте ввод данных в форме отчета, позволяя пользователю указать интересующие элементы, например, через поле выбора или таблицу значений.


Связь интерфейса с параметром
Передайте данные, указанные пользователем, в параметр СписокТоваров. Например:

Процедура ЗаполнитьСписокТоваров(ЭлементыФормы, Значение)

    СписокТоваров = Новый Массив;

    Для Каждого Товар Из Значение Цикл

        СписокТоваров.Добавить(Товар);

    КонецЦикла;

   

    Параметры.Вставить("СписокТоваров", СписокТоваров);

КонецПроцедуры

 

Специалист компании ООО "Кодерлайн"

Елена Дубровина

Обсудить статью в Telegram Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.