При определении команд подключенных объекту. См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
КомандыОтчетов = Команды.СкопироватьКолонки();
КомандыОтчетов.Колонки.Добавить("КлючВарианта", Новый ОписаниеТипов("Строка, Null"));
КомандыОтчетов.Колонки.Добавить("Обработана", Новый ОписаниеТипов("Булево"));
КомандыОтчетов.Индексы.Добавить("Обработана");
СтандартнаяОбработка = Источники.Строки.Количество() > 0;
НастройкиФормы.Вставить("Источники", Источники);
ИнтеграцияПодсистемБСП.ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка);
ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов(КомандыОтчетов, НастройкиФормы, СтандартнаяОбработка);
КомандыОтчетов.ЗаполнитьЗначения(Истина, "Обработана");
Если СтандартнаяОбработка Тогда
ОбъектыСКомандамиОтчетов = ОбъектыСКомандамиОтчетов();
Для Каждого Источник Из Источники.Строки Цикл
Для Каждого ДокументРегистратор Из Источник.Строки Цикл
Если ОбъектыСКомандамиОтчетов.Найти(ДокументРегистратор.Метаданные) <> Неопределено Тогда
ПриДобавленииКомандОтчетов(КомандыОтчетов, ДокументРегистратор, НастройкиФормы);
КонецЕсли;
КонецЦикла;
Если ОбъектыСКомандамиОтчетов.Найти(Источник.Метаданные) <> Неопределено Тогда
ПриДобавленииКомандОтчетов(КомандыОтчетов, Источник, НастройкиФормы);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Найденные = ПодключенныеОтчетыИОбработки.НайтиСтроки(Новый Структура("ДобавитьКомандыОтчетов", Истина));
Для Каждого ПодключенныйОбъект Из Найденные Цикл
ПриДобавленииКомандОтчетов(КомандыОтчетов, ПодключенныйОбъект, НастройкиФормы);
КонецЦикла;
ИменаКлючевыхПараметровКоманды = "Идентификатор,Представление,ФункциональныеОпции,Менеджер,ИмяФормы,КлючВарианта,
|ИмяПараметраФормы,ПараметрыФормы,Обработчик,ДополнительныеПараметры,ВидимостьВФормах";
ДобавленныеКоманды = Новый Соответствие;
Для Каждого КомандаОтчетов Из КомандыОтчетов Цикл
КлючевыеПараметры = Новый Структура(ИменаКлючевыхПараметровКоманды);
ЗаполнитьЗначенияСвойств(КлючевыеПараметры, КомандаОтчетов);
УникальныйИдентификатор = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(КлючевыеПараметры);
НайденнаяКоманда = ДобавленныеКоманды[УникальныйИдентификатор];
Если НайденнаяКоманда <> Неопределено И ЗначениеЗаполнено(НайденнаяКоманда.ТипПараметра) Тогда
Если ЗначениеЗаполнено(КомандаОтчетов.ТипПараметра) Тогда
НайденнаяКоманда.ТипПараметра = Новый ОписаниеТипов(НайденнаяКоманда.ТипПараметра, КомандаОтчетов.ТипПараметра.Типы());
Иначе
НайденнаяКоманда.ТипПараметра = Неопределено;
КонецЕсли;
Продолжить;
КонецЕсли;
Команда = Команды.Добавить();
ДобавленныеКоманды.Вставить(УникальныйИдентификатор, Команда);
ЗаполнитьЗначенияСвойств(Команда, КомандаОтчетов);
Команда.Вид = "Отчеты";
Если Команда.Порядок = 0 Тогда
Команда.Порядок = 50;
КонецЕсли;
Если Команда.РежимЗаписи = "" Тогда
Команда.РежимЗаписи = "ЗаписыватьТолькоНовые";
КонецЕсли;
Если Команда.МножественныйВыбор = Неопределено Тогда
Команда.МножественныйВыбор = Истина;
КонецЕсли;
Если ПустаяСтрока(Команда.ИмяФормы) И ПустаяСтрока(Команда.Обработчик) Тогда
Команда.ИмяФормы = "Форма";
КонецЕсли;
Если Команда.ПараметрыФормы = Неопределено Тогда
Команда.ПараметрыФормы = Новый Структура;
КонецЕсли;
Команда.ПараметрыФормы.Вставить("КлючВарианта", КомандаОтчетов.КлючВарианта);
Если ПустаяСтрока(Команда.Обработчик) Тогда
Команда.ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
Команда.ПараметрыФормы.Вставить("ВидимостьКомандВариантовОтчетов", Ложь);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////