Как известно, подключаемый внешний отчет, если не указывать свою форму отчета, будет использовать общую формуОтчета из конфигурации,
Всем она хороша,но вот добавить свою расшифровку в такой отчет как я думал затруднительно, но разработчики позаботились и об этом.
Ниже предоставлен код который можно добавить в расширение либо в сам общий модуль "ОтчетыКлиентПереопределяемый", Он снабжен комментариями поэтому понять сто к чему можно будет из кода.
&После("ОбработкаДополнительнойРасшифровки")
Процедура NF_ОбработкаДополнительнойРасшифровки(ЭтаФорма, Элемент, Расшифровка, СтандартнаяОбработка)
ПолноеИмяОтчета = ЭтаФорма.НастройкиОтчета.ПолноеИмя;
КлючТекущегоВарианта = ЭтаФорма.КлючТекущегоВарианта;
МенюОтчетов = Новый Массив;
МенюДействий = Новый Массив;
Если ПолноеИмяОтчета = "ВнешнийОтчет.РеестрОригиналов" Тогда
СтандартнаяОбработка = Ложь;
Если КлючТекущегоВарианта = "РеестОригиналов" Тогда
// Расшифровать отчетом -> Себестоимость продаж
#Область АнализСебестоимостиТоваровРасширенный
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Имя", "РеестрОригиналов");
ПараметрыОтчета.Вставить("Заголовок", НСтр("ru = 'История документа'"));
ПараметрыОтчета.Вставить("ИмяОтчета", "ВнешнийОтчет.РеестрОригиналов");
ПараметрыОтчета.Вставить("КлючВарианта", "ИсторияОригиналов");
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Указываются поля расшифровки которые могут быть переданы в открываемый отчет как отбор
// а так же для отбора показывать меню на данной строке или нет,
// или для замены параметров см ниже комментарии
ПоляРасшифровки = Новый Массив;
ПоляРасшифровки.Добавить("Документ");
//ПоляРасшифровки.Добавить("СостояниеДокумента");
ПараметрыОтчета.Вставить("ПоляРасшифровки", ПоляРасшифровки);
//---------------------------------------------------------------------------------------
//++++++++++++++++++++++++++++++++++++++Параметры открываемого отчета++++++++++++++++++++++++++++++++++++++++++++++++
// В данном массиве указываются параметры текущего отчета которые будут переданы как параметр в открываемый отчет
// а так же для отбора показывать меню на данной строке или нет,
// или для замены параметров см выше комментарии
СписокПараметров = Новый Массив;
СписокПараметров.Добавить("Период");
СписокПараметров.Добавить("Тип");
ПараметрыОтчета.Вставить("СписокПараметров", СписокПараметров);
//----------------------------------------Параметры открываемого отчета------------------------------------------------
// В выше приведенных структурах нужно указать параметры отчета и поля расшифровки по которым будет анализироваться поведение
// расшифровки ( показывать доп меню или нет ), для замены параметров, ну и соответственно то что будет передано в открыаемый отчет как отборы
// и параметры
//+++++++++++++++++++++++++Замена параметров++++++++++++++++++++++++++++++++++++++++
//"ЗаменяющиеПараметры" Соответствие где ключ это значение заменяемого параметра, значение Структура
// в котором указывается "ключ" это имя и "значение" значение параметра текущего запроса
//"ЗаменаПараметров" - Структура Где ключ это имя параметра который будет передан в открываемый отчет
// Значение данной структура может быть либо строкой, либо соответствием см.выше "ЗаменяющиеПараметры" или Неопределено
// если значение Неопределено то параметр будет удален из отборов, если строка то значение параметра будет искаться в отборах текущего отчета по имени
// т.е "Значение элемента структуры = "Документ", тогда значение параметра будет получено "ПараметрыОтбора[Элемент.Значение]" Где "ПараметрыОтбора"
// то что мы указали выше в структурах расшифровки и параметров ( важное замечание, они обязательно дожны присутствовать или в строке расшифровки или в параметрах,
// иначе они не попадут "ПараметрыОтбора"
// Помледний вариант соответствие, тут просто помимо проверки что есть такой элемент в параметрах отбора, он заменяется на то что указано в самом соответствии
ЗаменаПараметров = Новый Структура;
ЗаменяющиеПараметры = Новый Соответствие;
ЗаменяющиеПараметры.Вставить(0,Новый Структура("Тип",1));
ЗаменаПараметров.Вставить("Тип", ЗаменяющиеПараметры);
//ЗаменаПараметров.Вставить("Показатель_Родитель", Неопределено);
//ЗаменаПараметров.Вставить("ДинамическаяГруппировкаПоТипуАнализа", "СтруктураПредприятия_Организация");
ПараметрыОтчета.Вставить("ЗаменаПараметров", ЗаменаПараметров);
//-------------------------Замена параметров------------------------------------------------------------------
//++++++++++++++++++++++++++Блок для отбора показа меню+++++++++++++++++++++++++++++++++++++++++++++++++++
// Данный блок служит для отбора показывать меню или нет по выбранной расшифровке ,
// ключ структуры "Необходимые параметы" должен быть так же добавлен в массив "ПоляРасшифровки" если параметр идет в самой расшифровке.
// "НеобходимыеЗначенияПараметра" Массив - перечисляются значения параметров при которм будет показано меню.
// "НеобходимыеПараметры" Структура;Ключи - Имена параметров, Значения-Неопределено( тогда значения параметра не проверяется, главное что бы он присутсвовал),
// ИЛИ массив "НеобходимыеЗначенияПараметра" ( тогда помимо того что параметр присутвовать должен но и значение должно быть одним из тех что будут в данном массиве)
НеобходимыеЗначенияПараметра = Новый Массив;
НеобходимыеЗначенияПараметра.Добавить(0);
НеобходимыеПараметры = Новый Структура;
НеобходимыеЗначенияПараметра1 = Новый Массив;
НеобходимыеЗначенияПараметра1.Добавить(ПредопределенноеЗначение("Перечисление.NF_ВариантыПолученияДокументовОтПоставщика.ДокументыПолучены"));
НеобходимыеПараметры = Новый Структура;
НеобходимыеПараметры.Вставить("Тип", НеобходимыеЗначенияПараметра);
НеобходимыеПараметры.Вставить("Документ");
ПараметрыОтчета.Вставить("НеобходимыеПараметры", НеобходимыеПараметры);
//---------------------------------------Блок для отбора показа меню--------------------------------------------------
МенюОтчетов.Добавить(ПараметрыОтчета);
#КонецОбласти
КонецЕсли;
КонецЕсли;
Если МенюОтчетов.Количество() > 0
ИЛИ МенюДействий.Количество() > 0 Тогда
ПараметрыРасшифровки = Новый Структура;
ПараметрыРасшифровки.Вставить("МенюОтчетов", МенюОтчетов);
ПараметрыРасшифровки.Вставить("МенюДействий", МенюДействий);
ПараметрыРасшифровки.Вставить("Расшифровка", Расшифровка);
КомпоновкаДанныхКлиент.ОбработкаРасшифровкиСДополнительнымМеню(ЭтаФорма, ПараметрыРасшифровки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
Все тестировалось на 1С ERP 2.2.4
Платформа 8.3.10