БСП. Разместить внешнюю обработку в подсистеме.
Конфа на основе БСП. Добавил внешнюю обработку в справочник "Дополнительные отчеты и обработки". Требуется разместить эту обработку в меню подсистемы для интерактивного открытия. Как это правильно сделать? Добавил 2 команды: одна для регламентного задания, другая для открытия формы, но не пойму как её разместить:
ДобавитьКоманду(ТаблицаКоманд,
"Сформировать", //представление команды в пользовательском интерфейсе
"Сформировать", //идентификатор команды; любая строка, уникальная в пределах данной обработки
"ВызовСерверногоМетода");
ДобавитьКоманду(ТаблицаКоманд,
"Отрыть форму обработки", //представление команды в пользовательском интерфейсе
"ОткрытьФормуОбработки", //идентификатор команды; любая строка, уникальная в пределах данной обработки
"ОткрытиеФормы");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
ПоказатьНайденные решения
Если делать так, как сделали вы, то обработка появится в Сервис - Дополнительные обработки нужного вам раздела.
На мой взгляд, это не очень удобно. Если обработок немного, то логичнее их вынести на общую страницу раздела. Я сделал это так: в расширении добавил отчет-пускач с кодом
в форме добавил реквизит ОбработкаСсылка тип СправочникСсылка.ДополнительныеОтчетыИОбработки
Пускач разместил в нужный раздел.
На мой взгляд, это не очень удобно. Если обработок немного, то логичнее их вынести на общую страницу раздела. Я сделал это так: в расширении добавил отчет-пускач с кодом
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ДополнительнаяОбработкаСсылка", ОбработкаСсылка);
ПараметрыФормы.Вставить("ДополнительнаяОбработкаСсылка", ОбработкаСсылка);
ИмяОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ОбработкаСсылка);
ФормаОбработки = ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма", ПараметрыФормы);
Закрыть();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НаименованиеВСправочнике = "Печать этикеток коробок";
ОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(НаименованиеВСправочнике);
Если ОбработкаСсылка.Пустая() Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не найдена внешняя обработка """ + НаименованиеВСправочнике + """");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Показатьв форме добавил реквизит ОбработкаСсылка тип СправочникСсылка.ДополнительныеОтчетыИОбработки
Пускач разместил в нужный раздел.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Я не понял о чём речь. Я могу разместить справочник "Дополнительные отчеты и обработки" в меню, а оттуда иметь доступ к своей обработке, но интерактивно открыть оттуда я её не могу. Мне нужно разместить команду интерактивного открытия этой обработки в меню.
Размещение для этой обработки указал "Раздел "Администрирование"". Открываю подсистему Администрирование - там ничего не появляется. Нужно какую-то отдельную команду создавать для открытия обработки и размещать её в меню?
Если делать так, как сделали вы, то обработка появится в Сервис - Дополнительные обработки нужного вам раздела.
На мой взгляд, это не очень удобно. Если обработок немного, то логичнее их вынести на общую страницу раздела. Я сделал это так: в расширении добавил отчет-пускач с кодом
в форме добавил реквизит ОбработкаСсылка тип СправочникСсылка.ДополнительныеОтчетыИОбработки
Пускач разместил в нужный раздел.
На мой взгляд, это не очень удобно. Если обработок немного, то логичнее их вынести на общую страницу раздела. Я сделал это так: в расширении добавил отчет-пускач с кодом
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ДополнительнаяОбработкаСсылка", ОбработкаСсылка);
ПараметрыФормы.Вставить("ДополнительнаяОбработкаСсылка", ОбработкаСсылка);
ИмяОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ОбработкаСсылка);
ФормаОбработки = ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма", ПараметрыФормы);
Закрыть();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НаименованиеВСправочнике = "Печать этикеток коробок";
ОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(НаименованиеВСправочнике);
Если ОбработкаСсылка.Пустая() Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не найдена внешняя обработка """ + НаименованиеВСправочнике + """");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Показатьв форме добавил реквизит ОбработкаСсылка тип СправочникСсылка.ДополнительныеОтчетыИОбработки
Пускач разместил в нужный раздел.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот