Свой отчет в расширении конфигурации 1С 8.3: от СКД до команды в разделе

· 9 мин

Содержание

Чтобы добавить отчет из расширения в 1С 8.3, откройте Конфигуратор, выберите Конфигурация → Расширения конфигурации, создайте или откройте расширение и добавьте в ветку «Отчеты» новый объект. Дальше нужны четыре вещи: схема компоновки данных, место в командном интерфейсе (через заимствованную подсистему), роль с правом на отчет и обновление конфигурации базы данных. Готовое расширение сохраняют в файл .cfe и подключают в рабочей базе.

Есть два способа дать пользователям свой отчет без снятия конфигурации с поддержки: внешний отчет (.erf) и отчет в расширении. Внешний отчет проще раздать, но он живет вне метаданных: его не встроить в раздел так же естественно, как типовой. Отчет в расширении выглядит и ведет себя как родной: стоит в панели раздела, управляется ролями, переживает обновления типовой конфигурации.

СпособКогда выбиратьОграничения
Внешний отчет .erfРазовая выборка, быстрый обмен файлом между базамиПодключается через «Дополнительные отчеты и обработки», не встраивается в раздел как объект метаданных
Отчет в расширении .cfeОтчет нужен постоянно, должен стоять в разделе и управляться правамиНужен Конфигуратор для разработки; расширение проверяется на совместимость после каждого обновления
Доработка основной конфигурацииПочти никогдаСнимает поддержку, усложняет каждое обновление

1. Подготовка: расширение и объект отчета

Расширения конфигурации появились в платформе 8.3.6. Для отчета подойдет любая актуальная платформа 8.3.2x.

Создаем расширение

  1. Запустите базу в режиме Конфигуратора и откройте конфигурацию (Конфигурация → Открыть конфигурацию).
  2. Выберите Конфигурация → Расширения конфигурации. Откроется список расширений.
  3. Нажмите «Добавить». Укажите имя (например, ОтчетыОтдела) и префикс имен — по умолчанию Расш1_.
  4. Назначение — «Дополнение»: так обозначают расширения, которые добавляют новую функциональность.
  5. Нажмите «Открыть» (или кнопку «Конфигурация» в строке расширения) — появится отдельное дерево метаданных расширения.

Сразу задайте осмысленный префикс, например Отд_. Он подставляется ко всем новым объектам и спасает от конфликта имен, если в будущем релизе типовой конфигурации появится объект с тем же названием.

Добавляем отчет

  1. В дереве расширения найдите ветку «Отчеты», щелкните правой кнопкой → «Добавить».
  2. Имя: Отд_ПродажиПоМенеджерам, синоним — человеческое название, которое увидит пользователь.
  3. На вкладке «Основные» нажмите «Открыть схему компоновки данных». Платформа создаст макет ОсновнаяСхемаКомпоновкиДанных и сразу назначит его основной схемой отчета.

Форму отчета создавать не обязательно. Без собственной формы платформа построит стандартную, а в конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) подхватит общую форму отчета с панелью настроек, как у типовых.

Проверьте свойство расширения «Режим совместимости». Оно не должно быть новее режима совместимости основной конфигурации, иначе расширение не применится.

2. Схема компоновки данных для отчета в расширении

Расширение видит все объекты основной конфигурации в запросах. Заимствовать регистры и справочники ради запроса не нужно: в тексте запроса к ним обращаются как обычно.

Набор данных

  1. В конструкторе схемы добавьте набор данных — запрос.
  2. Откройте конструктор запроса и соберите выборку. Пример для типовой базы с регистром «Продажи»:
ВЫБРАТЬ
    Продажи.Номенклатура КАК Номенклатура,
    Продажи.Контрагент КАК Контрагент,
    СУММА(Продажи.Стоимость) КАК Сумма
ИЗ
    РегистрНакопления.Продажи КАК Продажи
ГДЕ
    Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.Контрагент

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

Ресурсы и настройки

  • 📊 На вкладке «Ресурсы» перенесите Сумма и задайте выражение Сумма(Сумма) — иначе в группировках не будет итогов.
  • 🧩 На вкладке «Настройки» нажмите «Открыть конструктор настроек», выберите тип «Список» или «Таблица», добавьте группировки и поля.
  • 🎯 Если отчет простой, удобнее собрать структуру руками: группировка «Детальные записи» → поля → отбор.

Проверка без интерфейса

До настройки команд отчет можно открыть через Функции для технического специалиста → Отчеты. Если пункта нет в главном меню, включите его в параметрах: Сервис и настройки → Параметры → Отображать команду «Все функции». Так быстро видно, собирается ли запрос.

3. Как вывести отчет из расширения в раздел программы

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

Через заимствованную подсистему

  1. В дереве основной конфигурации найдите подсистему раздела, где должен стоять отчет (например, «Продажи»).
  2. Правой кнопкой → «Добавить в расширение». В дереве расширения она появится с пометкой заимствования.
  3. Откройте свойства отчета → вкладка «Подсистемы» → отметьте заимствованную подсистему.
  4. Откройте командный интерфейс подсистемы в расширении и проверьте видимость команды отчета в группе «Панель навигации » или «Панель действий».

Для конфигураций без БСП этого достаточно: после обновления базы команда отчета появится в разделе.

В типовых конфигурациях на БСП

В Бухгалтерии 3.0, ЗУП 3.1 и УТ 11 отчеты раздела выводятся через подсистему «Варианты отчетов» — на панели «Отчеты» внутри раздела. Чтобы отчет туда попал, его регистрируют в общем модуле ВариантыОтчетовПереопределяемый.

  1. Заимствуйте общий модуль ВариантыОтчетовПереопределяемый (правой кнопкой → «Добавить в расширение»).
  2. В модуле расширения добавьте процедуру-обработчик с аннотацией &После:
&После("НастроитьВариантыОтчетов")
Процедура Отд_НастроитьВариантыОтчетов(Настройки)
    
    ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.Отд_ПродажиПоМенеджерам);
    
КонецПроцедуры
  1. В модуле менеджера отчета опишите экспортную процедуру НастроитьВариантыОтчета(Настройки, НастройкиОтчета). Через нее задают описание отчета и вариантов, видимое на панели.

Точную сигнатуру процедур сверьте с комментариями в модуле ВариантыОтчетовПереопределяемый вашей конфигурации: в нем описан пример регистрации для текущей версии БСП.

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

4. Права доступа к отчету из расширения

Роли основной конфигурации не дают прав на новые объекты расширения. Без отдельной роли пользователь не увидит отчет в интерфейсе или получит ошибку «Нарушение прав доступа» при открытии.

Роль в расширении

  1. В ветке «Общие → Роли» расширения добавьте роль Отд_ИспользованиеОтчетаПродажи.
  2. В редакторе прав найдите отчет и включите права «Использование» и «Просмотр».
  3. Если запрос читает регистры, на которые у пользователя нет прав в основной конфигурации, отчет упадет при формировании. Обычно у бухгалтера и менеджера чтение нужных регистров уже есть.

Как выдать роль пользователям

Тип конфигурацииГде назначить
На БСП (БП 3.0, ЗУП 3.1, УТ 11)Администрирование → Настройки пользователей и прав → Профили групп доступа: скопируйте нужный поставляемый профиль, отметьте роль расширения, назначьте профиль группе доступа
Без БСПКонфигуратор: Администрирование → Пользователи → карточка пользователя → вкладка «Прочие» → отметить роль
Отчет нужен всемСвойство расширения «Основные роли» + флаг «Использовать основные роли для всех пользователей»

Поставляемые профили на БСП не редактируются — их копируют и правят копию. Это частый тупик: роль расширения в профиле есть, но галочку поставить нельзя.

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

5. Параметры и варианты отчета из расширения

Период и другие параметры

Параметры &НачалоПериода и &КонецПериода из запроса автоматически появятся на вкладке «Параметры» схемы. Удобнее заменить их одним параметром Период типа СтандартныйПериод:

  • 📅 добавьте параметр Период типа «Стандартный период»;
  • 🔗 для НачалоПериода задайте выражение &Период.ДатаНачала, для КонецПериода — &Период.ДатаОкончания;
  • 🙈 у технических параметров снимите флажок «Доступен» — пользователь увидит только Период.

Быстрые настройки

Чтобы период и отборы были в шапке отчета, а не спрятаны в «Настройках»:

  1. В конструкторе настроек на вкладке «Параметры» выделите Период.
  2. Нажмите кнопку свойств пользовательской настройки и включите «Включать в пользовательские настройки».
  3. Режим редактирования — «Быстрый доступ».

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

Несколько вариантов

На вкладке «Варианты» схемы создайте 2–3 варианта: «По номенклатуре», «По контрагентам», «Сводная таблица». Каждый вариант — своя структура группировок на одном запросе. В конфигурациях на БСП варианты появятся на панели отчетов отдельными строками, если описать их в НастроитьВариантыОтчета.

Пользовательские варианты, которые сотрудники сохраняют сами, хранятся в базе, а не в расширении. При замене .cfe они не теряются, пока не меняется имя отчета.

Когда нужен программный код

Большинству отчетов на СКД код не нужен вовсе. Он понадобится, если данные надо подготовить заранее: собрать из нескольких источников, посчитать что-то в цикле или подставить параметр по умолчанию.

Для этого в модуле объекта отчета используют обработчик ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка). Если установить СтандартнаяОбработка = Ложь, компоновку выполняете сами: макет, процессор компоновки, вывод в табличный документ. Это больше работы, зато полный контроль.

Более простой вариант — набор данных «Объект»: код заполняет таблицу значений, а СКД группирует и выводит ее как обычно.

6. Отладка и подключение расширения в рабочей базе

Отладка в Конфигураторе

  1. В окне расширения выполните Конфигурация → Обновить конфигурацию базы данных (F7).
  2. Запустите отладку (F5). Отчет должен появиться в разделе или в «Функциях для технического специалиста».
  3. Точки останова ставьте в модуле менеджера и модуле объекта отчета — например, в обработчике ПриКомпоновкеРезультата, если вы его используете.

Перенос в рабочую базу

  1. Сохраните расширение: в окне расширения Конфигурация → Сохранить конфигурацию в файл → файл .cfe.
  2. Сделайте резервную копию рабочей базы.
  3. В рабочей базе на БСП откройте Администрирование → Печатные формы, отчеты и обработки → Расширения → «Добавить из файла». Альтернатива — Конфигуратор, список расширений, «Конфигурация → Загрузить конфигурацию из файла », затем отдельно «Обновить конфигурацию базы данных».
  4. Перезапустите сеансы пользователей: изменения расширения применяются при новом входе.

При загрузке через режим 1С:Предприятие у расширения обычно включен «Безопасный режим». Отчету на СКД с обычным запросом он не мешает. Но если в модуле есть работа с файлами, COM или внешними компонентами, в безопасном режиме это не выполнится.

Если отчет не появился

Диагностика: выберите симптом

Частые вопросы об отчетах в расширении

Можно ли превратить готовый внешний отчет .erf в отчет расширения?
Да. Откройте внешний отчет в Конфигураторе, скопируйте схему компоновки данных и модули, затем вставьте их в новый отчет расширения. Прямой конвертации одной командой нет.
Нужно ли снимать типовую конфигурацию с поддержки?
Нет. Расширение для того и создано: основная конфигурация остается на поддержке и обновляется штатно.
Сохранится ли отчет после обновления типовой конфигурации?
Да, расширение подключается заново автоматически. Сломаться может только то, что опирается на заимствованные объекты или переименованные регистры — тогда расширение покажет ошибку применения.
Работает ли отчет из расширения в 1С:Фреш и других облаках?
Зависит от сервиса: многие облака разрешают загружать только расширения, прошедшие их проверку, или только в безопасном режиме. Уточните правила у провайдера.
Можно ли держать несколько отчетов в одном расширении?
Да, и так удобнее: одно расширение «Отчеты отдела» с общей ролью проще сопровождать, чем десять файлов .cfe.