Разработка собственных отчетов — одна из ключевых задач программиста 1С:Предприятие. Стандартные механизмы не всегда покрывают специфические потребности бизнеса, и тогда на сцену выходит Конфигуратор. Создание отчета с нуля требует понимания архитектуры метаданных и принципов работы системы компоновки данных (СКД), но результат того стоит.
В отличие от простых обработок, отчет в 1С обладает уникальной структурой, позволяющей гибко управлять выводимой информацией. Вы сможете настроить различные варианты представления, добавить пользовательские настройки и обеспечить высокую производительность даже на больших объемах данных.
В этом руководстве мы разберем полный цикл создания отчета: от выбора объекта метаданных до первой публикации результата пользователю. Вам не потребуется глубоких знаний SQL, так как основной упор будет сделан на визуальные инструменты платформы.
Создание объекта метаданных и базовая настройка
Первым шагом является добавление нового объекта в дерево конфигурации. В ветке «Отчеты» необходимо создать новый элемент. Присвойте ему осмысленное имя, например, ОтчетПродажиПоМенеджерам. Это имя будет использоваться в коде, поэтому избегайте пробелов и специальных символов.
После создания объекта откроется форма редактирования свойств. Здесь важно определить основную схему компоновки данных. Именно она отвечает за то, как информация будет выбираться из базы и отображаться на экране. По умолчанию система создает пустую схему, которую предстоит наполнить.
Обратите внимание на реквизит Использовать макет компоновки данных. Если он установлен, отчет будет работать через современный механизм СКД. Это дает возможность пользователям самостоятельно настраивать отбор, группировки и сортировку без вмешательства программиста.
⚠️ Внимание: Не путайте старые отчеты на основе табличного документа с новыми отчетами на СКД. Для новых разработок всегда выбирайте механизм компоновки данных, так как поддержка устаревших форматов ограничена.
На этом этапе можно также задать синоним объекта, который будет видеть пользователь в интерфейсе. Например, «Анализ продаж». Это сделает работу с конфигурацией более дружелюбной для конечных сотрудников.
Используйте префиксы в именах объектов (например, Отч_), чтобы быстро находить нужные элементы в общем списке метаданных при масштабировании конфигурации.
Настройка наборов данных и источников информации
Сердцем любого отчета являются наборы данных. Они определяют, откуда именно будет браться информация. В редакторе схемы компоновки данных перейдите на вкладку «Наборы данных». Здесь вы можете добавить новый набор, выбрав тип источника.
Наиболее распространенным вариантом является использование запроса. При выборе этого типа открывается конструктор запросов или текстовый редактор. Вы можете выбирать поля из справочников, документов и регистров, формируя виртуальную таблицу для отчета.
- 📊 Запрос — основной способ получения данных из информационной базы с использованием языка запросов 1С.
- 📂 Объект — позволяет получить данные непосредственно из объекта метаданных без написания кода запроса.
- 🔗 Объединение — используется для соединения результатов нескольких других наборов данных в один поток.
При написании запроса важно использовать понятные псевдонимы для полей. Вместо стандартных Ссылка или ДатаРегистрации лучше задать Контрагент или ДатаСделки. Это упростит дальнейшую настройку полей вывода.
Если данные требуют сложной предварительной обработки, можно использовать временные таблицы в тексте запроса. Однако старайтесь не перегружать логику набора данных, вынося сложные вычисления в отдельные обработчики при необходимости.
Работа с полями и параметрами отчета
После того как наборы данных сформированы, необходимо настроить поля отчета. Перейдите на вкладку «Поля». Здесь система автоматически подтянет все доступные поля из подключенных наборов данных. Ваша задача — отфильтровать лишнее и настроить отображение.
Для каждого поля можно задать заголовок, который увидит пользователь. Также доступна настройка типа данных и формата вывода. Например, числовые поля можно отформатировать как валюту, а даты — в кратком или полном формате.
Особое внимание уделите параметрам. Они позволяют пользователю влиять на формирование отчета перед его запуском. Типичными параметрами являются период отчета, конкретный склад или группа товаров.
Параметр.НачалоПериода
Параметр.КонецПериода
Параметр.ОтветственныйМенеджер
В свойствах параметра можно установить значение по умолчанию. Часто используется выражение НачалоПериода(ТекущаяДата(), "Месяц"), чтобы отчет сразу открывался за текущий месяц. Это экономит время пользователя.
Как связать параметр с запросом?
В тексте запроса используйте конструкцию "ГДЕ Дата BETWEEN &НачалоПериода AND &КонецПериода". Знак амперсанда указывает на то, что это параметр схемы компоновки данных.
Конфигурирование настроек и вариантов отчета
Гибкость отчетов 1С заключается в возможности создания различных вариантов настроек. Вкладка «Настройки» позволяет определить, как именно будут группироваться и сортироваться данные. Вы можете создать несколько готовых вариантов, например, «По контрагентам» и «По номенклатуре».
В структуре настроек определяются уровни группировки. Это аналог оператора GROUP BY в SQL, но с визуальным интерфейсом. Вы можете перетаскивать поля между областями «Строки» и «Колонки», меняя вид отчета на лету.
| Элемент настройки | Назначение | Пример использования |
|---|---|---|
| Группировка | Объединение записей по значению поля | Группировка по складам |
| Отбор | Фильтрация данных по условию | Только товары с остатком > 0 |
| Сортировка | Упорядочивание строк или колонок | По убыванию суммы продажи |
| Условное оформление | Изменение цвета или шрифта ячеек | Красный цвет при отрицательной прибыли |
Не забывайте про условное оформление. Оно позволяет визуально выделять важные показатели. Например, можно настроить правило, чтобы ячейки с планом выполнения менее 80% подсвечивались желтым цветом.
Пользовательские настройки можно сохранить как вариант по умолчанию. Это означает, что при каждом открытии отчета будут применяться именно эти параметры, пока пользователь не решит их изменить.
Макеты и оформление выводимой формы
Внешний вид отчета определяется макетами. В свойстве объекта отчета можно указать основной макет компоновки данных. Однако для особых случаев, таких как печатные формы или специфические заголовки, используются дополнительные макеты.
Для создания сложного оформления часто применяется табличный документ. Вы можете создать макет с именем Основной и разместить в нем шапку отчета, логотип компании и итоговые строки, которые не зависят от данных запроса.
Область макета — это именованный диапазон ячеек, к которому обращается система. При формировании отчета данные заполняются в соответствующие области. Важно соблюдать именование областей, иначе данные не встанут на свои места.
⚠️ Внимание: Интерфейс и возможности макетов могут различаться в разных версиях платформы 1С:Предприятие. Всегда проверяйте документацию к конкретной версии, которую вы используете в проекте.
Если стандартных возможностей оформления недостаточно, можно использовать программный код в модуле объекта отчета. Метод КомпоновщикНастроек позволяет динамически менять структуру отчета перед его генерацией.
Правильно настроенные макеты и условное оформление превращают сухие цифры в понятную аналитику, удобную для принятия управленческих решений.
Программная доработка и модуль объекта
Несмотря на мощь декларативных настроек, иногда требуется код. Модуль объекта отчета содержит процедуры, которые вызываются в ключевые моменты жизни отчета. Самая важная из них — Сформировать.
В этой процедуре происходит инициализация компоновщика настроек. Здесь вы можете программно установить значения параметров, если они не были переданы пользователем. Также здесь часто реализуется проверка прав доступа к данным.
Процедура Сформировать()
Компоновщик = Новый КомпоновщикНастроекОтчета;
Компоновщик.Инициализировать(ЭтотОбъект);
// Программная установка параметра
Настройки = Компоновщик.Настройки;
Настройки.Параметры.Значения["МойПараметр"] = 100;
Результат = Компоновщик.СкомпоноватьРезультат();
Результат.Вывести(ТабДок);
КонецПроцедуры
Еще одна важная процедура — ПриКомпоновкеРезультата. Она вызывается непосредственно перед формированием результата и позволяет внести последние изменения в настройки или данные. Здесь часто реализуется сложная логика отборов, которую трудно описать в конструкторе.
Используйте отладчик для проверки работы кода. Вы можете установить точку останова в модуле и запустить отчет в режиме отладки, чтобы пошагово проанализировать значения переменных и параметры запроса.
☑️ Проверка перед запуском в продуктив
Публикация и права доступа пользователей
После того как отчет готов и протестирован в конфигураторе, его необходимо сделать доступным для пользователей. В режиме предприятия отчет появится в списке всех отчетов, но для удобства лучше добавить его в панель разделов или создать команду меню.
Для этого в конфигураторе нужно настроить роли. Создайте новую роль или отредактируйте существующую, добавив в нее право на использование созданного отчета. Без этого права пользователь просто не увидит объект в интерфейсе.
Также стоит проверить авторизационные ограничения (RLS). Если отчет содержит конфиденциальную информацию, убедитесь, что механизм ограничений доступа к данным корректно фильтрует строки для разных пользователей.
Финальным штрихом является обновление конфигурации базы данных. После выгрузки и обновления проверьте работу отчета в тонком клиенте и веб-клиенте, чтобы убедиться в кроссплатформенной совместимости.
Как добавить отчет в панель разделов?
Для этого в конфигураторе перейдите в свойства интерфейса. Найдите нужную панель разделов, создайте новую группу или выберите существующую, и добавьте туда команду, связанную с вашим отчетом. Не забудьте указать картинку для красоты.
Почему отчет работает медленно?
Частая причина — отсутствие индексов в базе данных для полей, используемых в отборах и соединениях. Также проверьте текст запроса: избегайте функций в условиях соединения и используйте временные таблицы для промежуточных расчетов.
Можно ли экспортировать отчет в Excel?
Да, система компоновки данных поддерживает вывод в различные форматы. Пользователь может нажать кнопку «Еще» в форме отчета и выбрать «Сохранить как», где будет доступен формат XLSX, PDF, CSV и другие.
Что делать, если изменилась структура базы?
Если вы добавили новые реквизиты в справочники, вам нужно обновить запрос в наборе данных отчета. Откройте схему компоновки данных, перейдите к запросу и добавьте новые поля в выборку. После этого обновите поля в списке полей отчета.
Как скрыть технические поля от пользователя?
В схеме компоновки данных, на вкладке «Поля», можно снять галочку «Включать в настройки» для тех полей, которые используются только для вычислений или сортировки, но не должны отображаться в списке доступных пользователю.