КА-2.4 БСП Переопределяемые команды. Как добавить свою команду?

1. ne_en 81 30.06.20 17:17 Сейчас в теме
Есть задачка, в рамках которой нужно программно в каждый документ добавить кнопку (решено)
Кнопка использует Подключаемый_ВыполнитьКоманду в качестве действия.
Я, конечно, могу в расширении вписать вызов чего угодно по имени команды. Однако, подозреваю, что система позволяет подключать свои команды иным образом. Но я не смог найти как это делается (кроме печатных форм и отчетов).
Кто знает, подскажите вкратце, могу ли я и как добавить (или зарегистрировать) в качестве команды вызов либо команды обработки, либо процедуры из моего модуля, либо открытие общей формы?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. EVKash 14 02.07.20 09:57 Сейчас в теме
(1) самому интересно стало.
Если в расширении в ПодключаемыеКомандыПереопределяемый добавить такой код
&После("ПриОпределенииКомандПодключенныхКОбъекту")
Процедура Расш1_ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды)
	
	НоваяКоманда = Команды.Добавить();
	НоваяКоманда.Вид = "КоманднаяПанель";
	НоваяКоманда.Идентификатор = "Расш1_Команда1";
	// Настройки внешнего вида:
	НоваяКоманда.Представление = "Имя команды на форме";
	НоваяКоманда.Подменю = "";
	НоваяКоманда.Важность = "Важное";
	НоваяКоманда.Порядок = 50;
	//НоваяКоманда.Картинка = ; // Картинка.
	//НоваяКоманда.СочетаниеКлавиш = ; // СочетаниеКлавиш.
	//НоваяКоманда.ОтображениеКнопки = ;
	// Настройки видимости и доступность:
	//НоваяКоманда.ТипПараметра = ; // ОписаниеТипов.
	НоваяКоманда.ВидимостьВФормах = "ФормаДокумента";
	//НоваяКоманда.Назначение = ;
	//НоваяКоманда.ФункциональныеОпции = ;
	НоваяКоманда.УсловияВидимости = Новый Массив;
	НоваяКоманда.ИзменяетВыбранныеОбъекты = Ложь; // Булево или Неопределено.
	// Настройки процесса выполнения:
	НоваяКоманда.МножественныйВыбор = Ложь; // Булево или Неопределено.
	НоваяКоманда.РежимЗаписи = "Записывать"; // "Проводить", "ЗаписыватьТолькоНовые"
	//НоваяКоманда.ТребуетсяРаботаСФайлами = ;
	// Настройки обработчика:
	//НоваяКоманда.Менеджер = ;
	НоваяКоманда.Обработчик = "Расш1_ОбщийМодуль1.ОбработчикКоманды";
	НоваяКоманда.ДополнительныеПараметры = Новый Структура;
	//НоваяКоманда.ИмяФормы = ;
	//НоваяКоманда.ПараметрыФормы = ; // Структура или Неопределено.
	//НоваяКоманда.ИмяПараметраФормы = ;
	// Служебные:
	НоваяКоманда.ПорядокВажности = 3;
	//НоваяКоманда.ИмяВФорме = ;
	//НоваяКоманда.ЕстьУсловияВидимости = ;
	
КонецПроцедуры
Показать

то команда появится во всех формах документов и в обработчике Расш1_ОбщийМодуль1.ОбработчикКоманды в параметрах выполнения будет доступна форма из которой эту команду вызвали.
Если подправить, то и форму можно открыть вместо обработчика.
Прикрепленные файлы:
VyacheslavShilov; sergo89; +2 Ответить
2. VictorRGB2 13 01.07.20 11:03 Сейчас в теме
через бсп никак, если это не команда печати и что там еще бсп поддерживает
вот тут похожий вопрос решали
https://forum.infostart.ru/forum9/topic187447/
3. Teut_Vlad 187 02.07.20 02:53 Сейчас в теме
Обработкой заполнения, у меня есть что то похожее

Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.*");
	МассивНазначений.Добавить("Справочник.*");


    ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Вызов журнала регистрации из любого объекта с отбором по нему");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация", "Вызов журнала регистрации из справочников и документов с отбором по ним");

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд,
    "Открыть журнал регистрации с отбором по объекту",
    "Открыть журнал регистрации с отбором по объекту",
    ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода(),
    Истина);

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот