30.07.2026 Игорь Лешин 17
Как использовать двух компоновщиков настроек ...

Содержание:

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С.


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

Игорь Лешин

Наши проекты

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

Отрасль:
Оптовая торговля

Внедренное типовое решение:
1С:Комплексная автоматизация

- Оперативный учет...

ОАО «Фаберлик»
ОАО «Фаберлик»

Отрасль:

Внедренное типовое решение:
1С:ERP. Управление производственным предприятием 2

- Регламентированный учет;
- Кадровый учет;...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

ФГОУ ВПО «Горский государственный аграрный университет»
ФГОУ ВПО «Горский государственный аграрный университет»

Отрасль:
Образование

Внедренное типовое решение:
1С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление об...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Много Плитки»
ООО «Много Плитки»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление ...

МГК "Световые Технологии"
МГК "Световые Технологии"

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом треб...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Уче...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение