Ребят, возник вопрос, нужно взять типовой контекстный отчет УТ и сделать его внешним (или в расширении), причем, чтобы сохранить его контекстность, кто подскажет как это сделать? Сейчас в типовом варианте в отчете есть 4 команды, которые я перенес, а в модуле менеджера код по их добавлению (тоже типовой):

```1c
    // Добавляет команду отчета в список команд.
    //
    // Параметры:
    // КомандыОтчетов - ТаблицаЗначений - состав полей см. в функции МенюОтчеты.СоздатьКоллекциюКомандОтчетов.
    //
    Функция ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт

    Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ТоварыВЯчейках) Тогда

    КомандаОтчет = КомандыОтчетов.Добавить();

    КомандаОтчет.Менеджер = Метаданные.Отчеты.ТоварыВЯчейкахСТипомОперации.ПолноеИмя();
    КомандаОтчет.Представление = НСтр("ru= 'Товары в ячейках с типом операции'");

    КомандаОтчет.Важность = "Обычное";
    КомандаОтчет.МножественныйВыбор = Ложь;

    КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "ПоНоменклатуре");

    КомандаОтчет.КлючВарианта = "ПоНоменклатуреКонтекст";

    Возврат КомандаОтчет;

    КонецЕсли;

    Возврат Неопределено;

    КонецФункции

    // Добавляет команду отчета в список команд.
    //
    // Параметры:
    // КомандыОтчетов - ТаблицаЗначений - состав полей см. в функции МенюОтчеты.СоздатьКоллекциюКомандОтчетов.
    //
    Функция ДобавитьКомандуОтчетаДвиженияТовара(КомандыОтчетов) Экспорт

    Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ТоварыВЯчейках) Тогда

    КомандаОтчет = КомандыОтчетов.Добавить();

    КомандаОтчет.Менеджер = Метаданные.Отчеты.ТоварыВЯчейкахСТипомОперации.ПолноеИмя();
    КомандаОтчет.Представление = НСтр("ru= 'Движения товара в ячейках с типом операции'");

    КомандаОтчет.Важность = "Обычное";
    КомандаОтчет.МножественныйВыбор = Ложь;

    КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "ПоНоменклатуре");

    КомандаОтчет.КлючВарианта = "ДвиженияТоваровВЯчейкеКонтекст";

    Возврат КомандаОтчет;

    КонецЕсли;

    Возврат Неопределено;

    КонецФункции
```

Но как бы я не менял код в этом модуле - ничего не меняется, делал так же как в этой статье: https://infostart.ru/public/1016791/ но не сработало, моя команда не отображается в списке. Пытался добавить как внешний, но там не смог подобрать нужные СведенияОВнешнейОбработке, может кто сталкивался, у кого-то есть пример?
---
Функция СведенияОВнешнейОбработке()

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.4.5.33");
    ПараметрыРегистрации.Назначение.Добавить("Документ.Документ");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;

Сначала указать, что ты собираешься что-то менять

далее добавить процедуры в модуле внешнего отчета

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт

 Настройки.ФормироватьСразу = Истина;
 Настройки.РазрешеноИзменятьСтруктуру = Ложь;
 Настройки.РазрешеноИзменятьВарианты = Ложь;
 Настройки.События.ПриСозданииНаСервере = Истина;

КонецПроцедуры

Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт

 КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
 Параметры = ЭтаФорма.Параметры;

 Если Параметры.Свойство("ОбъектыНазначения") Тогда

  ДокументыДляОтбора= Параметры.ОбъектыНазначения[0];
  Период = Новый СтандартныйПериод;
                //тут любые проверки
                //А далее установка отборов и параметров (в приоритете параметры)
                //Думаю вам достаточно скопипастить типовое
  ЭтаФорма.ФормаПараметры.Отбор.Вставить("ПериодОтчета", Период);
                ЭтаФорма.ФормаПараметры.Отбор.Вставить("ДокументДляОтбора", ДокументДляОтбора);

 КонецЕсли;

КонецПроцедуры
---
чтобы сохранить его контекстность - это как ?
---
это чтобы его можно было открыть из справочников, например из номенклатуры (в этом отчете 4 места откуда он открывается, для каждого своя команда):
---
Добрый день, эту обработку бросал на форму справочника. Посмотрите в модуле.
---
ну уже неплохо, отчет хотя бы появился в контекстных отчетах, осталось только понять как в зависимости от того из какого справочника он был вызван установить нужный вариант отчета и как передать в отчет ссылку, чтобы сделать отбор. Для типового отчета используется вот такой код:

```1c
    КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
    Параметры = ЭтаФорма.Параметры;

    Если Параметры.Свойство("ПараметрКоманды")
    И Параметры.Свойство("ОписаниеКоманды")
    И Параметры.ОписаниеКоманды.ДополнительныеПараметры.Свойство("ИмяКоманды") Тогда

    Если Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ПоЯчейке" Тогда
    ЭтаФорма.ФормаПараметры.Отбор.Вставить("Ячейка", Параметры.ПараметрКоманды);
    ИначеЕсли Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ПоНоменклатуре" Тогда
    ЭтаФорма.ФормаПараметры.Отбор.Вставить("Номенклатура", Параметры.ПараметрКоманды);
    ИначеЕсли Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ПоОбластиХранения" Тогда
    ЭтаФорма.ФормаПараметры.Отбор.Вставить("ОбластьХранения", Параметры.ПараметрКоманды);
    ИначеЕсли Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "ПоСкладскойГруппеНоменклатуры" Тогда
    ЭтаФорма.ФормаПараметры.Отбор.Вставить("СкладскаяГруппаНоменклатуры", Параметры.ПараметрКоманды);
    КонецЕсли;

    КонецЕсли;
```

Он при создании на сервере запускается, но у меня не отрабатывает и открывается без отбора отчет, причем и вариант отчета открывается всегда один и тот же. Как в этом случае сделать?
---
Функция СведенияОВнешнейОбработке()

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.4.5.33");
    ПараметрыРегистрации.Назначение.Добавить("Документ.Документ");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
ПараметрыРегистрации.ОпределитьНастройкиФормы = Истина;

Сначала указать, что ты собираешься что-то менять

далее добавить процедуры в модуле внешнего отчета

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт

 Настройки.ФормироватьСразу = Истина;
 Настройки.РазрешеноИзменятьСтруктуру = Ложь;
 Настройки.РазрешеноИзменятьВарианты = Ложь;
 Настройки.События.ПриСозданииНаСервере = Истина;

КонецПроцедуры

Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт

 КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
 Параметры = ЭтаФорма.Параметры;

 Если Параметры.Свойство("ОбъектыНазначения") Тогда

  ДокументыДляОтбора= Параметры.ОбъектыНазначения[0];
  Период = Новый СтандартныйПериод;
                //тут любые проверки
                //А далее установка отборов и параметров (в приоритете параметры)
                //Думаю вам достаточно скопипастить типовое
  ЭтаФорма.ФормаПараметры.Отбор.Вставить("ПериодОтчета", Период);
                ЭтаФорма.ФормаПараметры.Отбор.Вставить("ДокументДляОтбора", ДокументДляОтбора);

 КонецЕсли;

КонецПроцедуры