1. Общие модули
В общий модуль ВариантыОтчетовПереопределяемый или ВариантыОтчетовУТПереопределяемый в процедуру НастроитьВариантыОтчетов добавляем
Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.НовыйОтчет);
КонецПроцедуры
В общий модуль ВариантыОтчетовПереопределяемый в процедуру ОпределитьОбъектыСКомандамиОтчетов добавляем
Процедура ОпределитьОбъектыСКомандамиОтчетов(Объекты) Экспорт
Объекты.Добавить(Метаданные.Документы.НовыйДокумент);
КонецПроцедуры
2. Документ
В модуль менеджера нового документа добавляем
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.НовыйОтчет.ДобавитьКомандыОтчетов(КомандыОтчетов);
КонецПроцедуры
В модуль формы нового документа добавляем
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
В форму списка нового документа добавляем (так же в форме списка должна быть добавлена Ссылка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
3. Отчет
В модуль менеджера отчета добавляем
Функция ДобавитьКомандыОтчетов(КомандыОтчетов) Экспорт
КомандаОтчет = КомандыОтчетов.Добавить();
КомандаОтчет.Менеджер = Метаданные.Отчеты.НовыйОтчет.ПолноеИмя();
КомандаОтчет.Представление = НСтр("ru = 'Новый отчет'");
КомандаОтчет.Важность = "Обычное";
КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "НовыйОтчет");
КомандаОтчет.КлючВарианта = "НовыйОтчет";
Возврат КомандаОтчет;
КонецФункции
Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
НастройкиВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "НовыйОтчет");
НастройкиВарианта.Описание = НСтр("ru = 'Новый отчет'");
КонецПроцедуры
В модуль формы отчета добавляем.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ЭтаФорма.Параметры.Свойство("ПараметрКоманды") Тогда
Результат = СформироватьОтчет(ЭтаФорма.Параметры.ПараметрКоманды);
КонецЕсли;
КонецПроцедуры
Свойство ПараметрКоманды содержит массив документов. Если отчет был вызван из формы документа, то там один элемент. Если отчет был вызван из формы списка и было выделено несколько документов, то там будет несколько элементов.
Тестировал:
- Библиотека стандартных подсистем, редакция 3.1 (3.1.9.337)
- Библиотека стандартных подсистем, редакция 3.0 (3.0.3.341)
- Библиотека стандартных подсистем, редакция 2.4 (2.4.6.241)
- 1С:Комплексная автоматизация 2 (2.4.13.209)
- Платформа 1С:Предприятие 8.3 (8.3.24.1342)