Свой отчет в расширении конфигурации 1С 8.3: от СКД до команды в разделе
Содержание
Чтобы добавить отчет из расширения в 1С 8.3, откройте Конфигуратор, выберите Конфигурация → Расширения конфигурации, создайте или откройте расширение и добавьте в ветку «Отчеты» новый объект. Дальше нужны четыре вещи: схема компоновки данных, место в командном интерфейсе (через заимствованную подсистему), роль с правом на отчет и обновление конфигурации
базы данных. Готовое расширение сохраняют в файл .cfe и подключают в рабочей базе.
Есть два способа дать пользователям свой отчет без снятия конфигурации с поддержки: внешний отчет
(.erf) и отчет в расширении. Внешний отчет проще раздать, но он живет вне метаданных: его не встроить в раздел так же естественно, как типовой. Отчет в расширении выглядит и ведет себя как родной: стоит в панели раздела, управляется ролями, переживает обновления типовой конфигурации.
| Способ | Когда выбирать | Ограничения |
|---|---|---|
Внешний отчет .erf | Разовая выборка, быстрый обмен файлом между базами | Подключается через «Дополнительные отчеты и обработки», не встраивается в раздел как объект метаданных |
Отчет в расширении .cfe | Отчет нужен постоянно, должен стоять в разделе и управляться правами | Нужен Конфигуратор для разработки; расширение проверяется на совместимость после каждого обновления |
| Доработка основной конфигурации | Почти никогда | Снимает поддержку, усложняет каждое обновление |
1. Подготовка: расширение и объект отчета
Расширения конфигурации появились в платформе 8.3.6. Для отчета подойдет любая актуальная платформа 8.3.2x.
Создаем расширение
- Запустите базу в режиме Конфигуратора и откройте конфигурацию (
Конфигурация → Открыть конфигурацию). - Выберите
Конфигурация → Расширения конфигурации. Откроется список расширений. - Нажмите «Добавить». Укажите имя (например,
ОтчетыОтдела) и префикс имен — по умолчаниюРасш1_. - Назначение — «Дополнение»: так обозначают расширения, которые добавляют новую функциональность.
- Нажмите «Открыть» (или кнопку «Конфигурация» в строке расширения) — появится отдельное дерево метаданных расширения.
Сразу задайте осмысленный префикс, например Отд_. Он подставляется ко всем новым объектам и спасает от конфликта имен, если в будущем релизе типовой конфигурации появится объект с тем же названием.
Добавляем отчет
- В дереве расширения найдите ветку «Отчеты», щелкните правой кнопкой → «Добавить».
- Имя:
Отд_ПродажиПоМенеджерам, синоним — человеческое название, которое увидит пользователь. - На вкладке «Основные» нажмите «Открыть схему компоновки данных». Платформа создаст макет
ОсновнаяСхемаКомпоновкиДанныхи сразу назначит его основной схемой отчета.
Форму отчета создавать не обязательно. Без собственной формы платформа построит стандартную, а в конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) подхватит общую форму отчета с панелью настроек, как у типовых.
Проверьте свойство расширения «Режим совместимости». Оно не должно быть новее режима совместимости основной конфигурации, иначе расширение не применится.
2. Схема компоновки данных для отчета в расширении
Расширение видит все объекты основной конфигурации в запросах. Заимствовать регистры и справочники ради запроса не нужно: в тексте запроса к ним обращаются как обычно.
Набор данных
- В конструкторе схемы добавьте набор данных — запрос.
- Откройте конструктор запроса и соберите выборку. Пример для типовой базы с регистром «Продажи»:
ВЫБРАТЬ
Продажи.Номенклатура КАК Номенклатура,
Продажи.Контрагент КАК Контрагент,
СУММА(Продажи.Стоимость) КАК Сумма
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура,
Продажи.Контрагент
Имена регистра и полей подставьте из своей конфигурации: откройте нужный регистр в дереве основной конфигурации и посмотрите его ресурсы и измерения.
Ресурсы и настройки
- 📊 На вкладке «Ресурсы» перенесите
Суммаи задайте выражениеСумма(Сумма)— иначе в группировках не будет итогов. - 🧩 На вкладке «Настройки» нажмите «Открыть конструктор настроек», выберите тип «Список» или «Таблица», добавьте группировки и поля.
- 🎯 Если отчет простой, удобнее собрать структуру руками: группировка «Детальные записи» → поля → отбор.
Проверка без интерфейса
До настройки команд отчет можно открыть через Функции для технического специалиста → Отчеты. Если пункта нет в главном меню, включите его в параметрах: Сервис и настройки → Параметры → Отображать команду «Все функции». Так быстро видно, собирается ли запрос.
3. Как вывести отчет из расширения в раздел программы
Новый объект расширения сам в интерфейсе не появляется. Его нужно включить в подсистему, а подсистему — заимствовать.
Через заимствованную подсистему
- В дереве основной конфигурации найдите подсистему раздела, где должен стоять отчет (например, «Продажи»).
- Правой кнопкой → «Добавить в расширение». В дереве расширения она появится с пометкой заимствования.
- Откройте свойства отчета → вкладка «Подсистемы» → отметьте заимствованную подсистему.
- Откройте командный интерфейс подсистемы в расширении и проверьте видимость команды отчета в группе «Панель навигации » или «Панель действий».
Для конфигураций без БСП этого достаточно: после обновления базы команда отчета появится в разделе.
В типовых конфигурациях на БСП
В Бухгалтерии 3.0, ЗУП 3.1 и УТ 11 отчеты раздела выводятся через подсистему «Варианты отчетов» — на панели «Отчеты» внутри раздела. Чтобы отчет туда попал, его регистрируют в общем модуле ВариантыОтчетовПереопределяемый.
- Заимствуйте общий модуль
ВариантыОтчетовПереопределяемый(правой кнопкой → «Добавить в расширение»). - В модуле расширения добавьте процедуру-обработчик с аннотацией
&После:
&После("НастроитьВариантыОтчетов")
Процедура Отд_НастроитьВариантыОтчетов(Настройки)
ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.Отд_ПродажиПоМенеджерам);
КонецПроцедуры
- В модуле менеджера отчета опишите экспортную процедуру
НастроитьВариантыОтчета(Настройки, НастройкиОтчета). Через нее задают описание отчета и вариантов, видимое на панели.
Точную сигнатуру процедур сверьте с комментариями в модуле ВариантыОтчетовПереопределяемый вашей конфигурации: в нем описан пример регистрации для текущей версии БСП.
Если отчет не регистрировать, он все равно будет работать через заимствованную подсистему, но в «панели отчетов» раздела его не будет — только отдельной командой.
4. Права доступа к отчету из расширения
Роли основной конфигурации не дают прав на новые объекты расширения. Без отдельной роли пользователь не увидит отчет в интерфейсе или получит ошибку «Нарушение прав доступа» при открытии.
Роль в расширении
- В ветке «Общие → Роли» расширения добавьте роль
Отд_ИспользованиеОтчетаПродажи. - В редакторе прав найдите отчет и включите права «Использование» и «Просмотр».
- Если запрос читает регистры, на которые у пользователя нет прав в основной конфигурации, отчет упадет при формировании. Обычно у бухгалтера и менеджера чтение нужных регистров уже есть.
Как выдать роль пользователям
| Тип конфигурации | Где назначить |
|---|---|
| На БСП (БП 3.0, ЗУП 3.1, УТ 11) | Администрирование → Настройки пользователей и прав → Профили групп доступа: скопируйте нужный поставляемый профиль, отметьте роль расширения, назначьте профиль группе доступа |
| Без БСП | Конфигуратор: Администрирование → Пользователи → карточка пользователя → вкладка «Прочие» → отметить роль |
| Отчет нужен всем | Свойство расширения «Основные роли» + флаг «Использовать основные роли для всех пользователей» |
Поставляемые профили на БСП не редактируются — их копируют и правят копию. Это частый тупик: роль расширения в профиле есть, но галочку поставить нельзя.
Проверяйте отчет под обычным пользователем, а не под администратором: в Конфигураторе вы часто входите под учетной записью с полными правами, и проблемы с ролями не увидите.
5. Параметры и варианты отчета из расширения
Период и другие параметры
Параметры &НачалоПериода и &КонецПериода из запроса автоматически появятся на вкладке «Параметры» схемы. Удобнее заменить их одним параметром Период типа СтандартныйПериод:
- 📅 добавьте параметр
Периодтипа «Стандартный период»; - 🔗 для
НачалоПериодазадайте выражение&Период.ДатаНачала, дляКонецПериода—&Период.ДатаОкончания; - 🙈 у технических параметров снимите флажок «Доступен» — пользователь увидит только
Период.
Быстрые настройки
Чтобы период и отборы были в шапке отчета, а не спрятаны в «Настройках»:
- В конструкторе настроек на вкладке «Параметры» выделите
Период. - Нажмите кнопку свойств пользовательской настройки и включите «Включать в пользовательские настройки».
- Режим редактирования — «Быстрый доступ».
То же делают с отборами: например, отбор по Контрагент с флагом пользовательской настройки появится полем над отчетом.
Несколько вариантов
На вкладке «Варианты» схемы создайте 2–3 варианта: «По номенклатуре», «По контрагентам», «Сводная таблица». Каждый вариант — своя структура группировок на одном запросе. В конфигурациях на БСП варианты появятся на панели отчетов отдельными строками, если описать их в НастроитьВариантыОтчета.
Пользовательские варианты, которые сотрудники сохраняют сами, хранятся в базе, а не в расширении. При замене .cfe они не теряются, пока не меняется имя отчета.
Когда нужен программный код
Большинству отчетов на СКД код не нужен вовсе. Он понадобится, если данные надо подготовить заранее: собрать из нескольких источников, посчитать что-то в цикле или подставить параметр по умолчанию.
Для этого в модуле объекта отчета используют обработчик ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка). Если установить СтандартнаяОбработка = Ложь, компоновку выполняете сами: макет, процессор компоновки, вывод в табличный документ. Это больше работы, зато полный контроль.
Более простой вариант — набор данных «Объект»: код заполняет таблицу значений, а СКД группирует и выводит ее как обычно.
6. Отладка и подключение расширения в рабочей базе
Отладка в Конфигураторе
- В окне расширения выполните
Конфигурация → Обновить конфигурацию базы данных(F7). - Запустите отладку (F5). Отчет должен появиться в разделе или в «Функциях для технического специалиста».
- Точки останова ставьте в модуле менеджера и модуле объекта отчета — например, в обработчике
ПриКомпоновкеРезультата, если вы его используете.
Перенос в рабочую базу
- Сохраните расширение: в окне расширения
Конфигурация → Сохранить конфигурацию в файл→ файл.cfe. - Сделайте резервную копию рабочей базы.
- В рабочей базе на БСП откройте
Администрирование → Печатные формы, отчеты и обработки → Расширения→ «Добавить из файла». Альтернатива — Конфигуратор, список расширений, «Конфигурация → Загрузить конфигурацию из файла », затем отдельно «Обновить конфигурацию базы данных». - Перезапустите сеансы пользователей: изменения расширения применяются при новом входе.
При загрузке через режим 1С:Предприятие у расширения обычно включен «Безопасный режим». Отчету на СКД с обычным запросом он не мешает. Но если в модуле есть работа с файлами, COM или внешними компонентами, в безопасном режиме это не выполнится.