Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 сен 2021, 15:39

Как во внешней обработке по разным командам открывать разные формы

Автор Zeed, 31 янв 2017, 12:08

0 Пользователей и 1 гость просматривают эту тему.

Zeed

В Сведениях о внешней обработке добавляем команду открытия формы. ДобавитьКоманду(ТаблицаКоманд, "Заполнить документ", "Заполнить документ", "Открытие формы",  Истина);
Она открывает основную форму обработки. Как сделать так, чтобы в этой же обработке добавить ещё одну команду, которая открывала бы другую форму обработки?
ДобавитьКоманду(ТаблицаКоманд, "Заполнить документ 2", "Заполнить документ", "Открытие формы",  Истина);

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

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

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

    ДобавитьКоманду(ТаблицаКоманд,
    "Заполнить документ",
    "Заполнить документ",
    "Открытие формы",
    Истина);

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

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

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

Oldman06

В основной форме

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Отказ = Истина;
    ИмяФормы = "";
    Если Параметры.ИдентификаторКоманды = "Команда1" Тогда
        ИмяФормы = "Форма1";

    ИначеЕсли Параметры.ИдентификаторКоманды = "Команда2" Тогда
        ИмяФормы = "Форма2";

    КонецЕсли;
   
    Если ЗначениеЗаполнено(ИмяФормы) Тогда
        ОткрытьФорму("ВнешняяОбработка.[Имя обработки].Формы." + ИмяФормы);

    КонецЕсли;
   
КонецПроцедуры

Теги: команды 

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск