Как добавить отчет в расширение так, чтобы он отображался в меню стандартных отчетов для пользователей? Если что, пример в целом описан в демо-конфигурации БСП. Здесь же опишу по шагам, вдруг будет кому полезным.
1. Добавление отчета в расширение
Тут все просто, вставляем свой отчет в расширение. Для примера простой отчет "Отчет по номенклатуре".
2. Настройка свойств отчета
Необходимо убрать флаг "Использовать стандартные команды", и добавить его в подсистему "Подключаемые отчеты и обработки" (для этого данную подсистему необходимо добавить в расширение):
Также не забываем дать необходимые права на отчет (либо на типовые заимствованные в расширение роли), либо в собственную роль.
3. Модуль менеджера отчета
В модуле менеджера отчета необходимо добавить процедуру ПриОпределенииНастроек, и НастроитьВариантыОтчета
Здесь, в процедуре НастроитьВариантыОтчета указываем необходимую подсистему, а также добавляем описание отчета.
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.НастроитьВариантыОтчета = Истина;
//Настройки.ОпределитьНастройкиФормы = Истина;
Настройки.ДобавитьКомандыОтчетов = Истина;
КонецПроцедуры
#Область КомандыПодменюОтчеты
// Добавляет команду отчета в список команд.
//
// Параметры:
// КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//
// Возвращаемое значение:
// Неопределено, СтрокаТаблицыЗначений - Добавить команду отчета
Функция ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ОтчетПоНоменклатуре) Тогда
КомандаОтчет = КомандыОтчетов.Добавить();
КомандаОтчет.Менеджер = Метаданные.Отчеты.ОтчетПоНоменклатуре.ПолноеИмя();
КомандаОтчет.Представление = "Отчет по номенклатуре (Пример отчета)";
КомандаОтчет.КлючВарианта = "Основной";
КомандаОтчет.МножественныйВыбор = Ложь;
КомандаОтчет.Важность = "Важное";
Возврат КомандаОтчет;
КонецЕсли;
Возврат Неопределено;
КонецФункции
// См. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.
//
Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
НастройкиВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Основной");
НастройкиВарианта.Описание = НСтр("ru = 'Тестовый отчет по номенклатуре'");
ПодсистемаОтчета = Метаданные.НайтиПоПолномуИмени("Подсистема.Продажи.Подсистема.ОптовыеПродажи");
НастройкиВарианта.Размещение.Вставить(ПодсистемаОтчета, "Важный");
НастройкиВарианта.ВидимостьПоУмолчанию = Истина;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли
4. Обновление вспомогательных данных
Для обновления вариантов отчетов, можно запустить 1С предприятие с ключом запуска "/C ЗапуститьОбновлениеИнформационнойБазы", либо воспользоваться обработкой Обновления вспомогательных данных подсистемы БСП.
Например, можно указать в конфигураторе в меню сервис - параметры на закладке "Запуск 1С:Предприятие" в параметрах запуска нужный ключ:
после чего запустить 1С:Предприятие в режиме отладки.
5. Настройка видимости отчета
По умолчанию отчет не отображается в списке отчетов, для отображения требуется открыть меню отчетов (в моем случае продажи - отчеты по продажам), открыть настройки и включить видимость отчета:
P.S. Кодом не получилось сделать автоматическую видимость отчета, если кто-то знает решение, буду благодарен.
В файлах - пример расширения, тестировалось на УТ 11.5.12.73 на платформе 8.3.23.1912.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.12.73