Всем привет, помогите, я туплю.
У меня есть обработка, которая добавлена в справочник Дополнительные отчеты и обработки с типом - ОткрытиеФормы.
Внутри основной формы этой обработки я открываю ее другие формы, как их открыть?
Знаю, что есть такой код:
но не могу понять, как в этом коде указать конкретную форму обработки (их всего 3 вообще, например, мне надо открыть ФормуВыбора).
У меня есть обработка, которая добавлена в справочник Дополнительные отчеты и обработки с типом - ОткрытиеФормы.
Внутри основной формы этой обработки я открываю ее другие формы, как их открыть?
Знаю, что есть такой код:
&НаКлиенте
Процедура ОтобратьНоменклатуру(Команда)
ПараметрыФормы = Новый Структура("КомпоновщикНастроек", КомпоновщикНастроек);
Обработка = ПолучитьВнешнююОбработкуСервер();
ВыполняемаяКоманда = Новый Структура();
ВыполняемаяКоманда.Вставить("ВариантЗапуска", ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ОткрытиеФормы"));
ВыполняемаяКоманда.Вставить("Вид", ПредопределенноеЗначение("Перечисление.ВидыДополнительныхОтчетовИОбработок.ДополнительнаяОбработка"));
ВыполняемаяКоманда.Вставить("Идентификатор", "");
ВыполняемаяКоманда.Вставить("Модификатор", "");
ВыполняемаяКоманда.Вставить("ОбъектыНазначения", Неопределено);
ВыполняемаяКоманда.Вставить("ПоказыватьОповещение", Истина);
ВыполняемаяКоманда.Вставить("Представление", Строка(Обработка));
ВыполняемаяКоманда.Вставить("Ссылка", Обработка);
ВыполняемаяКоманда.Вставить("ЭтоОтчет", Ложь);
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, Неопределено, ВыполняемаяКоманда.ОбъектыНазначения);
КонецПроцедуры
&НаСервере
Функция ПолучитьВнешнююОбработкуСервер()
ИмяОбъекта = "название_моей_обработки";
ЭлементСправочника = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", ИмяОбъекта);
Если ЭлементСправочника <> Неопределено Тогда
Возврат ЭлементСправочника;
Иначе
ТекстСообщения = СтрШаблон("В справочнике ""Дополнительные отчеты и обработки""
|по имени объекта ""%1"" не найдена внешняя обработка.", ИмяОбъекта);
ВызватьИсключение ТекстСообщения;
КонецЕсли;
КонецФункции
Показатьно не могу понять, как в этом коде указать конкретную форму обработки (их всего 3 вообще, например, мне надо открыть ФормуВыбора).
По теме из базы знаний
- Обработка отправки документов по почте напрямую из 1С7.7 в файле EXCEL
- [Расширение] Отладка модуля формы внешней обработки (печатной формы)
- Практика: Передаем произвольный параметр и открываем форму выбранной нами дополнительной обработки
- Способ хранения данных расширения или дополнительной обработки
- Шаблон дополнительной обработки, работающей по расписанию
Найденные решения
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, Неопределено, ВыполняемаяКоманда.ОбъектыНазначения);
Заменить на
СтруктураПараметровФормы = Новый Структура;
СтруктураПараметровФормы.Вставить("ИмяФормы", "ИмяФормыКоторуюНеобходимоОткрыть");
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, СтруктураПараметровФормы, ВыполняемаяКоманда.ОбъектыНазначения);
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
т.е. из уже открытой формы дополнительной обработки открыть другие формы этой же обработки?
Вместо ИмяОбработки и ИмяНужнойФормы подставить свои значения.
У меня есть обработка, которая добавлена в справочник Дополнительные отчеты и обработки с типом - ОткрытиеФормы.
Внутри основной формы этой обработки я открываю ее другие формы, как их открыть?
Внутри основной формы этой обработки я открываю ее другие формы, как их открыть?
т.е. из уже открытой формы дополнительной обработки открыть другие формы этой же обработки?
ОткрытьФорму("ВнешняяОбработка.ИмяОбработки.Форма.ИмяНужнойФормы", ....
Вместо ИмяОбработки и ИмяНужнойФормы подставить свои значения.
там, где-то, в модулях БСП есть подключение внешней обработки из справочника ДопОбработки
ту команду в своем коде тоже выполните, а потом вот это
так получите и откроете любую форму своей обработки
ту команду в своем коде тоже выполните, а потом вот это
Попытка
лкФорма = ПолучитьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма." + ИмяФормы, Параметры, ЭтаФорма, Новый УникальныйИдентификатор);
Если лкФорма <> Неопределено Тогда
лкФорма.Открыть();
КонецЕсли;
Возврат;
Исключение
лкОшибка = ОписаниеОшибки();
Сообщить(лкОшибка);
лкФорма = Неопределено;
КонецПопытки;
Показатьтак получите и откроете любую форму своей обработки
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, Неопределено, ВыполняемаяКоманда.ОбъектыНазначения);
Заменить на
СтруктураПараметровФормы = Новый Структура;
СтруктураПараметровФормы.Вставить("ИмяФормы", "ИмяФормыКоторуюНеобходимоОткрыть");
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, СтруктураПараметровФормы, ВыполняемаяКоманда.ОбъектыНазначения);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот