Содержание:
1. Как работает второй компоновщик
2. Как оценить преимущества второго компоновщика в учетной системе 1С
3. Как реализовать второй компоновщик в системах 1C:Предприятие
4. Как учитывать особенности работы в программе 1C:Предприятие
Когда стандартных отчетов в 1С становится недостаточно, возникает необходимость использовать систему компоновки данных — СКД, основной инструмент для создания отчетов. А «второй компоновщик настроек» — это мощный механизм внутри СКД, который позволяет разработчику предоставить пользователю невероятную свободу в настройке отчета без единой строчки дополнительного кода в форме программы 1C:Предприятие.
Если первый, базовый, компоновщик — это стандартный диалог с выбором полей и отборов, то второй компоновщик — это конструктор, где пользователь может собрать макет отчета практически с нуля.
1. Как работает второй компоновщик
Что такое второй компоновщик настроек?
Это специальный режим работы диалога настройки отчета, в котором пользователь имеет возможность самостоятельно:
Выбирать и перетаскивать поля для строк, колонок и группировок.
Настраивать иерархию.
Добавлять отборы, сортировки, условное оформление.
Создавать сложные структуры отчетов типа кросс-таблиц или многоуровневых группировок.
При этом разработчик не программирует эту форму вручную. Он лишь описывает доступные для использования поля, параметры и ресурсы в схеме компоновки данных. Всю логику построения интерфейса «перетаскивания» берет на себя платформа 1С.
2. Как оценить преимущества второго компоновщика в учетной системе 1С
Зачем он нужен? Преимущества
Для пользователя:
Максимальная гибкость. Пользователь сам решает, как будет выглядеть отчет. Нужна поквартальная выручка по менеджерам в разрезе регионов? Легко. А завтра — остатки товаров на складах в виде сводной таблицы? Тоже без проблем.
Самостоятельность. Не нужно каждый раз обращаться к программисту за новым вариантом отчета. Бизнес-аналитик или продвинутый пользователь может настроить все сам.
Интуитивность. Интерфейс перетаскивания drag-and-drop понятен и не требует специальных знаний.
Для разработчика:
Экономия времени. Не нужно создавать десятки однотипных отчетов под каждый мелкий запрос.
Универсальность. Один хорошо спроектированный универсальный отчет заменяет множество специализированных.
Снижение нагрузки на поддержку. Пользователи сами удовлетворяют свои потребности в данных учетной системы 1С.
3. Как реализовать второй компоновщик в системах 1C:Предприятие
Как это реализовать? Практические шаги
Реализация происходит в два этапа: настройка схемы компоновки данных и включение компоновщика в форму.
Шаг 1. Настройка макета схемы компоновки данных
Открываем макет отчета, например «МакетКомпоновкиДанных», в Конфигураторе.
Настраиваем наборы данных.
Обычно это один или несколько запросов, которые возвращают все возможные данные для отчета.
Важно: поля, которые пользователь сможет использовать в отчете, должны быть описаны здесь.
Настраиваем ресурсы.
Ресурсы — это поля, которые будут суммироваться, например «Сумма», «Количество», «Процент».
Во втором компоновщике пользователь может сам выбирать, какие поля будут отображаться как ресурсы.
Настраиваем доступные поля.
Во вкладке «Настройки» макета найдите ветку «Доступные поля».
Здесь вы можете управлять тем, какие поля из наборов данных видны пользователю. Вы можете:
Добавлять поля вручную.
Скрывать технические поля, не нужные пользователю.
Задавать для полей понятные заголовки, например «Выручка» вместо Amount.
Группировать поля в папки для удобства, например «Финансы», «Склад», «Документы».
Шаг 2. Программное включение второго компоновщика на форме
Это ключевой момент. По умолчанию в отчете используется первый компоновщик. Чтобы включить второй, нужно в модуле формы отчета установить соответствующий режим системы 1C:Предприятие.
Код обычно пишется в событии ПриСозданииНаСервере или при нажатии на кнопку «Настройка».
&НаКлиенте
Процедура НастройкаОтчета(Команда)
// Получаем текущие настройки отчета
Настройки = Отчет.КомпоновщикНастроек.Настройки;
// Получаем макет схемы компоновки данных
Макет = Отчет.КомпоновщикНастроек.ПолучитьМакет();
// Создаем структуру параметров для вызова компоновщика
ПараметрыНастроек = Новый Структура;
ПараметрыНастроек.Вставить("Настройки", Настройки);
ПараметрыНастроек.Вставить("Макет", Макет);
// Включаем второй компоновщик
ПараметрыНастроек.Вставить(
"РежимНастройки",
РежимНастройкиКомпоновкиДанных.ВызовДиалогаНастроекКомпоновкиДанных);
// Вызываем стандартный диалог настройки компоновки данных
Отчет.КомпоновщикНастроек.ВызватьДиалогНастроек(ПараметрыНастроек);
// После закрытия диалога обновляем отчет
Отчет.СкомпоноватьРезультат(Настройки);
КонецПроцедуры
Важные нюансы кода:
РежимНастройкиКомпоновкиДанных.ВызовДиалогаНастроекКомпоновкиДанных — это константа, которая и включает второй компоновщик.
Если не установить этот режим, откроется стандартный первый компоновщик.
4. Как учитывать особенности работы в программе 1C:Предприятие
Особенности и лучшие практики
Производительность. Так как отчет универсальный, запрос часто бывает тяжелым. Используйте виртуальные таблицы, тщательно продумывайте индексы и предлагайте пользователям устанавливать разумные отборы.
Ограничение прав. С помощью ролевой безопасности можно ограничивать доступ к определенным полям на уровне конфигурации.
Сохранение настроек. Система компоновки данных автоматически умеет сохранять варианты отчетов. Поощряйте пользователей сохранять успешные настройки, чтобы не настраивать все заново.
Тестирование. Обязательно протестируйте отчет, пытаясь построить бессмысленные с точки зрения базы данных конструкции, например группировку по сумме. Платформа обычно корректно обрабатывает такие ситуации, но лучше проверить работу программы 1C:Предприятие.
Второй компоновщик настроек — это мощнейший инструмент в арсенале разработчика 1С, который переводит отчеты из разряда статичных «списков» в категорию динамичных аналитических инструментов. Он расширяет возможности пользователей и освобождает время разработчиков.
Потратьте время на создание одного-двух качественных универсальных отчетов со вторым компоновщиком, и вы увидите, как сократится поток мелких запросов на новые отчеты, а пользователи получат именно те данные, которые им нужны, в удобном для них представлении в системе учета 1С.
Специалист компании ООО "Кодерлайн"
Игорь Лешин