Часто в процессе автоматизации в 1С:Комплексная автоматизация возникает необходимость добавить свою функциональную кнопку прямо в форму документа или форму списка. Разберем, как сделать это правильно, используя механизмы Библиотеки стандартных подсистем (БСП), не прибегая к прямому изменению конфигурации.
Для того чтобы система 1С «увидела» вашу обработку и добавила кнопку в интерфейс, необходимо реализовать в модуле объекта внешней обработки функцию СведенияОВнешнейОбработке. Именно эта функция сообщает БСП, как именно должна выглядеть команда, как она называется и где должна располагаться.
Основная логика заключается в заполнении структуры параметров, которая возвращается этой функцией. Ключевым полем является коллекция Команды, в которой мы описываем все будущие кнопки вашей обработки.
Рассмотрим пример реализации функции, которая позволяет зарегистрировать дополнительную команду:
Функция СведенияОВнешнейОбработке Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка;
ПараметрыРегистрации.Наименование = "Моя функциональная обработка";
ПараметрыРегистрации.БезопасныйРежим = Истина;
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = "Выполнить действие";
НоваяКоманда.Идентификатор = "Действие1";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы;
Возврат ПараметрыРегистрации;
КонецФункции
Разберем основные параметры команды:
ОткрытиеФормы (откроет форму обработки), ВызовСерверногоМетода (код отработает на сервере) или ЗаполнениеФормы (для кнопок в меню «Заполнить»).После того как вы написали код и сохранили файл внешней обработки (.epf), выполним следующие шаги:
Заявка на расходование ДС), где вы хотите видеть свою кнопку.После этих действий БСП автоматически добавит вашу команду в меню Дополнительно (или Заполнить, в зависимости от выбранного вида команды) в соответствующих формах.
Важно понимать разницу между видами обработок:
ЗаполнениеОбъекта, ваша команда автоматически попадет в меню Заполнить внутри документа. Это удобно, если вам нужно считать данные из текущего документа, обработать их и вернуть результат обратно.ДополнительнаяОбработка.Если вы хотите, чтобы доступ к кнопке имели не все пользователи, вы можете настроить ограничение доступа прямо в карточке дополнительной обработки, добавив нужных пользователей в список разрешенных. Это позволит гибко управлять видимостью функционала для различных ролей в вашей компании.