Отчеты и Аналитика · 11 мин
Как добавить вариант отчета в справочник вариантов отчетов в 1С
Как добавить вариант отчета в справочник «Варианты отчетов» в 1С: через конфигуратор, программно и через настройки отчета. Разбор ошибок и проверка результата.
Справочник «Варианты отчетов» — центральный элемент подсистемы «Варианты отчетов» из Библиотеки стандартных подсистем (БСП), которая используется практически во всех типовых конфигурациях: УТ, ERP, Бухгалтерия предприятия, ЗУП. Именно в этом справочнике хранятся пользовательские и предопределенные варианты отчетов, которые отображаются в панелях отчетов и доступны пользователям через интерфейс.
Добавить вариант в этот справочник можно тремя способами: сохранением настроек из формы отчета в пользовательском режиме, описанием вариантов в модуле объекта отчета в конфигураторе и программным созданием элемента справочника через встроенный язык. Выбор способа зависит от того, кто выполняет задачу — пользователь, администратор или разработчик — и должен ли вариант быть доступен всем или только конкретному человеку.
Ниже разобраны все три подхода, условия их применения, типичные ошибки и способы проверить, что вариант действительно появился в справочнике и в панели отчетов.
Как устроен справочник «Варианты отчетов»
Справочник «Варианты отчетов» хранит связку из трех ключевых полей: ссылка на отчет (реквизит «Отчет»), строковый ключ варианта (реквизит «КлючВарианта») и наименование, которое видит пользователь. Сами настройки СКД хранятся отдельно — в реквизите «Настройки» типа ХранилищеЗначения, поэтому элемент справочника занимает мало места, но содержит полный слепок настроек.
Элементы справочника делятся на предопределенные (создаются при обновлении конфигурации по описанию из модуля отчета) и пользовательские (создаются в режиме 1С:Предприятие). Предопределенные варианты помечаются признаком «Предопределенный» и пересоздаются при обновлении, поэтому вручную править их настройки бессмысленно — изменения будут перезаписаны.
Дополнительно работает регистр сведений «Предопределенные варианты отчетов», где хранятся настройки предопределенных вариантов для быстрого доступа. Если справочник и регистр рассинхронизировались, варианты могут «пропадать» из панели отчетов — это одна из типичных проблем, разобранная ниже.
Добавление варианта из формы отчета в пользовательском режиме
Самый простой способ не требует доступа к конфигуратору. Откройте отчет, настройте нужные отборы, группировки и поля через кнопку «Настройки», затем нажмите «Еще» → «Сохранить вариант отчета» (в некоторых конфигурациях — «Сохранить настройки» или «Сохранить как»). В диалоге укажите наименование и доступность: «Только для меня» или «Для всех пользователей».
После сохранения система автоматически создает элемент справочника «Варианты отчетов» с уникальным ключом, сгенерированным на основе наименования или GUID. Проверить это можно через раздел «Администрирование» → «Печатные формы, отчеты и обработки» → «Варианты отчетов» либо через функции «Все функции» → «Справочники» → «Варианты отчетов» (пункт «Все функции» включается в параметрах программы).
Важный нюанс: чтобы вариант был виден в панели отчетов, он должен быть включен в конкретный раздел. Это делается через команду «Разместить в разделах» в карточке варианта или через общую команду панели отчетов. Если вариант сохранен, но в меню не появился — почти всегда дело именно в размещении.
- 1Откройте отчет и задайте нужные отборы и структуру через «Настройки»
- 2Нажмите «Еще» → «Сохранить вариант отчета»
- 3Введите наименование и выберите доступность: только для себя или для всех
- 4Откройте карточку варианта и командой «Разместить в разделах» укажите нужные разделы панели отчетов
- 5Проверьте, что вариант появился в панели отчетов и открывается с сохраненными настройками
Добавление предопределенного варианта в конфигураторе
Разработчику предопределенные варианты описываются в модуле объекта отчета в процедуре НастроитьВариантыОтчета(Настройки, НастройкиОтчета). Внутри процедуры через ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "КлючВарианта") получают описание существующего варианта СКД и задают ему наименование, описание, видимость по умолчанию и размещение по разделам.
Если нужный вариант отсутствует в схеме компоновки данных отчета, сначала его добавляют в саму СКД: открывают основную схему отчета, на закладке «Настройки» создают новый вариант и задают ему имя — оно и станет ключом варианта. Без варианта в СКД описать его в модуле не получится: функция ОписаниеВарианта вернет пустое значение.
После обновления конфигурации базы при первом запуске подсистема «Варианты отчетов» выполнит обработчик обновления и создаст предопределенные элементы справочника автоматически. Если база файловая и обновление выполняется вручную, убедитесь, что обработчики обновления отработали без ошибок — иначе варианты не появятся.
Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
НастройкиОтчета.ОпределитьНастройкиФормы = Истина;
ОписаниеВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ПродажиПоМесяцам");
ОписаниеВарианта.Наименование = НСтр("ru = 'Продажи по месяцам'");
ОписаниеВарианта.Описание = НСтр("ru = 'Динамика продаж в разрезе месяцев'");
ОписаниеВарианта.Включен = Истина;
КонецПроцедурыПрограммное создание элемента справочника
Программное создание нужно редко — обычно при миграции настроек между базами или в обработчиках первоначального заполнения. Создается объект Справочники.ВариантыОтчетов.СоздатьЭлемент(), заполняются реквизиты: «Отчет» (для внешнего отчета — ссылка на элемент справочника «Дополнительные отчеты и обработки», для встроенного — строковый ключ объекта метаданных), «КлючВарианта», «Наименование», «Пользовательский» = Истина и «Настройки» — значение типа ХранилищеЗначения с объектом настроек компоновщика.
Реквизит «Отчет» для встроенных отчетов в типовых механизмах хранится через строковое представление ключа объекта (например, «Отчет.ПродажиПоМесяцам»), а не через ссылку на метаданные. Проще всего получить правильное значение через функцию ВариантыОтчетов.ОтчетОбъект() или посмотреть, как заполнен этот реквизит у существующего варианта того же отчета.
Перед программным созданием обязательно проверьте, нет ли уже варианта с таким ключом у этого отчета: дубли ключей приводят к тому, что отчет открывается с непредсказуемым вариантом. Проверка выполняется запросом к справочнику с отбором по реквизитам «Отчет» и «КлючВарианта».
Размещение варианта в панели отчетов
Сам факт наличия элемента в справочнике не гарантирует, что пользователь увидит вариант. Видимость в панели отчетов определяется размещением: вариант должен быть связан хотя бы с одним разделом (подсистемой командного интерфейса). В карточке варианта есть таблица размещения, где для каждого раздела задается флаг «Использование» и признак «Важный» или «Обычный».
Для массового размещения удобна команда «Разместить в разделах» из формы списка вариантов: она позволяет выделить несколько вариантов и назначить им разделы одним действием. Администратору также доступна настройка панели отчетов целиком — через меню «Настройка» в форме панели отчетов можно скрывать лишние варианты для всех пользователей раздела.
Если вариант должен быть недоступен части пользователей, ограничение настраивается не удалением из панели, а правами доступа к отчету или через функциональные опции. Вариант без прав на сам отчет пользователю просто не показывается.
Проверка результата и типичные проблемы
После добавления варианта проверьте три вещи: элемент есть в справочнике «Варианты отчетов» с правильной связкой «Отчет + КлючВарианта», вариант размещен в нужном разделе панели отчетов, отчет открывается по этому варианту именно с сохраненными настройками. Если хотя бы один пункт не выполняется — проблема локализуется быстро.
Наиболее частая жалоба — «вариант пропал после обновления». Причины: вариант был предопределенным, и его ключ изменили в конфигурации; обработчики обновления завершились с ошибкой; очистились служебные регистры. Вторая типичная ситуация — вариант есть в справочнике, но не виден пользователю: проверьте размещение, права на отчет и признак «ПометкаУдаления» у элемента справочника.
Если справочник и регистр предопределенных вариантов рассинхронизировались, в типовых конфигурациях помогает повторный запуск обработчика обновления подсистемы «Варианты отчетов» или перезаполнение регистра через стандартные средства диагностики. Ручное редактирование регистра — крайняя мера, к ней прибегают только на копии базы.
Как проверить результат
Заполнены Отчет, КлючВарианта, Наименование; нет пометки удаления
Дубли по ключу у одного отчета или пустой реквизит Отчет
Вариант есть в нужном разделе, открывается с сохраненными настройками
Вариант в справочнике есть, но в разделе не отображается
Предопределенный вариант не дублируется и не пропадает
После обновления появляются дубли или вариант исчезает
Часто задаваемые вопросы
Можно ли добавить вариант отчета без доступа к конфигуратору?
Да. Для этого достаточно прав на запуск отчета и сохранение вариантов: откройте отчет, настройте его и используйте команду «Сохранить вариант отчета» в меню «Еще». Элемент справочника создастся автоматически. Ограничить эту возможность можно настройкой прав профилей групп доступа.
Почему сохраненный вариант не виден другим пользователям?
Проверьте три условия: при сохранении выбрана доступность «Для всех пользователей», а не «Только для меня»; вариант размещен в разделе панели отчетов, доступном этим пользователям; у пользователей есть права на сам отчет. Чаще всего причина — доступность «только для автора».
Чем отличается пользовательский вариант от предопределенного?
Предопределенный вариант описан разработчиком в модуле отчета и создается обработчиком обновления конфигурации — его ключ и состав контролируются конфигурацией. Пользовательский вариант создается в режиме 1С:Предприятие, принадлежит автору и не пересоздается при обновлениях. Менять ключ предопределенного варианта вручную нельзя.
Что делать, если после обновления появились дубли вариантов?
Дубли возникают, когда изменился ключ предопределенного варианта или элемент справочника был создан вручную с ключом, который затем добавили в конфигурацию. Лишние элементы помечают на удаление, предварительно перенеся пользователям нужные настройки. Чтобы ситуация не повторялась, не создавайте вручную элементы с ключами предопределенных вариантов.
Как перенести вариант отчета в другую базу?
Надежный способ — открыть отчет в целевой базе, воспроизвести настройки и сохранить вариант заново. Для массового переноса используют выгрузку элементов справочника «Варианты отчетов» через обработку выгрузки-загрузки данных, но при этом реквизит «Отчет» и ключи метаданных в обеих базах должны совпадать, иначе варианты окажутся «бесхозными».
Можно ли добавить вариант для внешнего отчета?
Да. Внешний отчет сначала подключается через справочник «Дополнительные отчеты и обработки», после чего его варианты сохраняются стандартным способом — из формы отчета. В справочнике «Варианты отчетов» в реквизите «Отчет» для такого варианта будет стоять ссылка на элемент дополнительных отчетов.
Что важно запомнить
Вариант отчета попадает в справочник «Варианты отчетов» тремя путями: сохранением из формы отчета, описанием в процедуре НастроитьВариантыОтчета в конфигураторе или программным созданием элемента. Ключевые реквизиты — Отчет и КлючВарианта, дубли ключей недопустимы. Для видимости вариант нужно разместить в разделах панели отчетов, а предопределенные варианты не следует править вручную.