Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

1С УФ как программно две разные формы вместе ?

1С УФ как программно две разные формы вместе ?
Я
   Холст
 
08.09.20 - 17:35
Сабж. Допустим, открываю обработку и к ней нужно вместе вывести форму справочника . Как это сделать программно ?
   TormozIT
 
1 - 08.09.20 - 17:42
Если управляемое приложение, то есть только костыль ирОбщий.УстановитьПрикреплениеФормыВУправляемомПриложенииЛкс (подсистема ИР).
Процедура УстановитьПрикреплениеФормыВУправляемомПриложенииЛкс(Этаформа, ПроверитьДоступностьВвода = Ложь, ПоложениеПрикрепленногоОкна = Неопределено) Экспорт 
    
    
        Если ПроверитьДоступностьВвода И Не Этаформа.ВводДоступен() Тогда// При открытии формы ВводДоступен() всегда равно Ложь

            Возврат;
        КонецЕсли; 
        Если ПоложениеПрикрепленногоОкна = Неопределено Тогда
            Если ЭтаФорма.СостояниеОкна = ВариантСостоянияОкна.Прикрепленное Тогда  
                ПоложениеПрикрепленногоОкна = ЭтаФорма.ПоложениеПрикрепленногоОкна;
            КонецЕсли; 
        КонецЕсли; 
        Если ПоложениеПрикрепленногоОкна <> Неопределено Тогда
            WSHShell = Новый COMОбъект("WScript.Shell");
            Если ирКэш.НомерВерсииПлатформыЛкс() >= 803017 Тогда 
                Если ТипЗнч(ЭтаФорма) = Тип("Форма") Тогда
                    КомандаАктивацииПунктаОкна = "{UP 2}";
                Иначе
                    КомандаАктивацииПунктаОкна = "{UP 4}";
                КонецЕсли; 
                WSHShell.SendKeys("%-");// Такой вызов меню окна не работает в 8.3.15-16

                WSHShell.SendKeys(КомандаАктивацииПунктаОкна);
                WSHShell.SendKeys("{ENTER}");
                Если ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Верх Тогда
                    WSHShell.SendKeys("{Down 4}");
                ИначеЕсли ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Низ Тогда
                    WSHShell.SendKeys("{Down 5}");
                ИначеЕсли ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Лево Тогда
                    WSHShell.SendKeys("{Down 2}");
                ИначеЕсли ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Право Тогда
                    WSHShell.SendKeys("{Down 3}");
                КонецЕсли; 
                WSHShell.SendKeys("{ENTER}");
            ИначеЕсли ирКэш.НомерВерсииПлатформыЛкс() >= 803015 Тогда 
                // WSHShell.SendKeys("%-"); // Такой вызов меню окна не работает в 8.3.15-16

            Иначе
                WSHShell.SendKeys("%");
                WSHShell.SendKeys("{Down 1}");
                WSHShell.SendKeys("{О}");
                Если ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Верх Тогда
                    WSHShell.SendKeys("{UP 4}");
                ИначеЕсли ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Низ Тогда
                    WSHShell.SendKeys("{UP 3}");
                ИначеЕсли ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Лево Тогда
                    WSHShell.SendKeys("{UP 6}");
                ИначеЕсли ПоложениеПрикрепленногоОкна = ВариантПрикрепленияОкна.Право Тогда
                    WSHShell.SendKeys("{UP 5}");
                КонецЕсли; 
                WSHShell.SendKeys("{ENTER}");
            КонецЕсли; 
        КонецЕсли; 
    
КонецПроцедуры
   mikecool
 
2 - 08.09.20 - 18:48
еще Маньяк хз в каком году это хотел...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.