Как использовать двух компоновщиков настроек ...
-

Как использовать двух компоновщиков настроек в обработке для формирования отчета 1С: Гибкость и Контроль

0
54
30.07.2026 Игорь Лешин

Содержание:

1.    Как разделить отборы и поля

2.    Как подготовить обработку в учетной системе 1С

3.    Преимущества подхода при работе в системе 1С

 

При разработке сложных аналитических обработок в 1С часто встает дилемма: как дать пользователю максимальную свободу в настройке отчета, но при этом не позволить ему «сломать» логику данных или не затруднять его избыточными параметрами? Элегантным решением является использование двух компоновщиков настроек одновременно в программе 1C:Предприятие.


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


1.    Как разделить отборы и поля


Зачем это нужно? Концепция «Отборы и поля»

Представьте себе отчет «Анализ продаж». Его логика состоит из двух частей:

Какие данные анализировать? За какой период? По каким организациям? Какие товарные группы?

Как их представить? Группировать по менеджерам или по регионам? Вывести в разрезе месяцев или кварталов? Какие показатели отобразить?

Если выдать пользователю один большой компоновщик со всеми полями и отборами, новичок может запутаться, а опытный — потратить время на рутинный выбор одних и тех же базовых фильтров системы 1С.

Решение: разделить интерфейс на две отдельные вкладки или две кнопки:

Вкладка «Отборы» использует первый, стандартный, компоновщик. Он идеален для быстрой и понятной установки фильтров.

Вкладка «Поля и структура» использует второй, расширенный, компоновщик. Он позволяет гибко управлять макетом, перетаскивая поля.

Такой подход структурирует диалог с учетной системой 1С, делая его логичным и эффективным.


2.    Как подготовить обработку в учетной системе 1С


Техническая реализация

Рассмотрим пошаговую реализацию в обработке со схемой компоновки данных.


Шаг 1. Подготовка макета и структуры обработки

Создайте обработку. Добавьте:

Общую схему компоновки данных — СКД, где описаны все доступные поля, отборы и ресурсы.

Реквизиты формы для хранения двух отдельных наборов настроек:

НастройкиОтборов — тип НастройкиКомпоновкиДанных.

НастройкиПоля — тип НастройкиКомпоновкиДанных.

Соответствующие кнопки на форме: «Настроить отборы» и «Настроить поля и структуру».

Таким образом подготавливается структура обработки в учетной системе 1С.


Шаг 2. Реализация первого компоновщика для отборов

Цель: вызвать упрощенный компоновщик, который показывает только вкладку «Отборы» в системах 1C:Предприятие.


&НаКлиенте
Процедура НастроитьОтборы(Команда)
// Получаем настройки отборов или создаем новые
Если НастройкиОтборов = Неопределено Тогда
НастройкиОтборов = Новый НастройкиКомпоновкиДанных;
КонецЕсли;

Макет = КомпоновщикМакета.ПолучитьМакет();

 

ПараметрыНастроек = Новый Структура;

ПараметрыНастроек.Вставить("Настройки", НастройкиОтборов);

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

ПараметрыНастроек.Вставить("Заголовок", "Настройка отборов отчета");

 

// Ключевой момент: ограничиваем режим только отборами

ПараметрыНастроек.Вставить("РежимНастройки", РежимНастройкиКомпоновкиДанных.Ограниченный);

ПараметрыНастроек.Вставить("ИзвлекатьНастройки", НастройкиКомпоновкиДанных.Отбор);

 

// Вызываем диалог

Если КомпоновщикНастроек.ВызватьДиалогНастроек(ПараметрыНастроек) Тогда

    // Пользователь нажал «ОК» — сохраняем настройки

    НастройкиОтборов = ПараметрыНастроек.Настройки;

    // Можно сразу обновить предварительный просмотр

    ОбновитьОтчет();

КонецЕсли;

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


Что здесь важно:

РежимНастройкиКомпоновкиДанных.Ограниченный — включает ограниченный режим.

ИзвлекатьНастройки, НастройкиКомпоновкиДанных.Отбор — указывает, что мы хотим работать только с отборами. Пользователь не увидит вкладок «Группировки», «Сортировка» и т. д.


Шаг 3. Реализация второго компоновщика для структуры отчета

Цель: вызвать полноценный конструктор отчета, где можно управлять группировками, полями и ресурсами в программе 1C:Предприятие.


&НаКлиенте
Процедура НастроитьПоляИСтруктуру(Команда)
// Получаем настройки структуры или создаем новые
Если НастройкиПоля = Неопределено Тогда
НастройкиПоля = Новый НастройкиКомпоновкиДанных;
КонецЕсли;

Макет = КомпоновщикМакета.ПолучитьМакет();

 

ПараметрыНастроек = Новый Структура;

ПараметрыНастроек.Вставить("Настройки", НастройкиПоля);

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

ПараметрыНастроек.Вставить("Заголовок", "Настройка структуры отчета");

 

// Ключевой момент: включаем полный второй компоновщик

ПараметрыНастроек.Вставить("РежимНастройки", РежимНастройкиКомпоновкиДанных.ВызовДиалогаНастроекКомпоновкиДанных);

 

// Вызываем диалог

Если КомпоновщикНастроек.ВызватьДиалогНастроек(ПараметрыНастроек) Тогда

    НастройкиПоля = ПараметрыНастроек.Настройки;

    ОбновитьОтчет();

КонецЕсли;

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


Что здесь важно:

РежимНастройкиКомпоновкиДанных.ВызовДиалогаНастроекКомпоновкиДанных — это тот самый режим, который активирует расширенный интерфейс с перетаскиванием полей.


Шаг 4. Объединение настроек при формировании отчета

Это самый ответственный шаг. При компоновке результата необходимо объединить настройки из обоих компоновщиков системы учета 1С.


&НаСервере
Процедура ОбновитьОтчетНаСервере()
// Создаем общий объект настроек
ОбщиеНастройки = Новый НастройкиКомпоновкиДанных;

// 1. Переносим настройки структуры: поля, группировки, ресурсы

Если НастройкиПоля <> Неопределено Тогда

    ОбщиеНастройки.Структура = НастройкиПоля.Структура;

    ОбщиеНастройки.ВыбранныеПоля = НастройкиПоля.ВыбранныеПоля;

    ОбщиеНастройки.ПараметрыВывода = НастройкиПоля.ПараметрыВывода;

    // ... и другие необходимые свойства структуры

КонецЕсли;

 

// 2. Переносим настройки отборов

Если НастройкиОтборов <> Неопределено Тогда

    ОбщиеНастройки.Отбор = НастройкиОтборов.Отбор;

КонецЕсли;

 

// 3. Компоновщику на форме задаем объединенные настройки

КомпоновщикНастроек.Настройки = ОбщиеНастройки;

 

// 4. Запускаем компоновку

КомпоновщикМакета.СкомпоноватьРезультат(ОбщиеНастройки);

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

&НаКлиенте
Процедура ОбновитьОтчет()
ОбновитьОтчетНаСервере();
КонецПроцедуры


3.    Преимущества подхода при работе в системе 1С


Логичное разделение обязанностей: пользователь четко понимает: «Сначала я говорю системе, что меня интересует, а потом — как это показать».


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


Снижение порога входа: новичкам проще начать работу с простой формы отборов.


Производительность: разработчик может вынести тяжелые отборы на сервер в отдельные запросы, оптимизировав их, в то время как настройка полей остается быстрой клиентской операцией системы 1C:Предприятие.


Использование двух компоновщиков настроек — это не просто технический прием, а продуманный UX-подход к проектированию сложных отчетных обработок в 1С. Он сочетает в себе мощь и гибкость системы компоновки данных с удобством и контролем, что в конечном итоге приводит к созданию профессиональных, удобных и производительных инструментов для бизнес-анализа в конфигурациях системы 1С.


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

Игорь Лешин

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

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