Имя: Пароль:
1C
1С v8
1С УФ как программно две разные формы вместе ?
0 Холст
 
08.09.20
17:35
Сабж. Допустим, открываю обработку и к ней нужно вместе вывести форму справочника . Как это сделать программно ?
1 TormozIT
 
гуру
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}");
            КонецЕсли;
        КонецЕсли;
    
КонецПроцедуры
2 mikecool
 
08.09.20
18:48
еще Маньяк хз в каком году это хотел...
Независимо от того, куда вы едете — это в гору и против ветра!