Имя: Пароль:
1C
1С v8
8.2 Открыть форму из внешней обработки.
0 wraithik
 
22.12.11
02:15
Есть внешняя обработка. У нее две формы: основная и настройка.
Как из основной формы открыть форму настройки.
прочитал что надо через ВнешниеОбработки.Подключить. Но подключить не получается.
Есть у кого пример кода?
1 ProProg
 
22.12.11
02:22
2 ProProg
 
22.12.11
02:23
короче строка
ОткрытьФорму("ВнешняяОбработка."+ИмяОбработки+".Форма.ФормаУстановкаЦенНоменклатуры",СтрутураПараметров,ЭтаФорма);
3 antgrom
 
22.12.11
02:32
(0)  Отмечусь , т.к. тема интересна.
Завтра проверю -  отпишусь.
4 wraithik
 
22.12.11
02:35
спасибо помогло
5 wraithik
 
22.12.11
02:37
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Путь = РеквизитФормыВЗначение("Объект").ИспользуемоеИмяФайла;
   // Путь, это реквизит формы, чтобы виден был клиенту и серверу
КонецПроцедуры

&НаСервере
Функция ПодключитьВнешнююОбработку(ХранилищеОбработки)
   Возврат ВнешниеОбработки.Подключить(ХранилищеОбработки);
КонецФункции


&НаКлиенте
Процедура Настройка(Команда)
   
   ХранилищеОбработки = "";
   ПоместитьФайл(ХранилищеОбработки, Путь, , Ложь);
   
   ИмяОбработки = ПодключитьВнешнююОбработку(ХранилищеОбработки);
   
   ОткрытьФормуМодально("ВнешняяОбработка."+ИмяОбработки+".Форма.Настройка");
КонецПроцедуры
6 wraithik
 
22.12.11
02:38
И сразу вопрос, как в новой форме поле "Объект" подменить, на тот который меня уже есть.
7 wraithik
 
22.12.11
02:50
исправил ошибку, чтобы форму открывало второй раз

&НаКлиенте
Процедура Настройка(Команда)
   
   Если Путь<>"" тогда
       ХранилищеОбработки = "";
       ПоместитьФайл(ХранилищеОбработки, Путь, , Ложь);
       
       ИмяОбработки = ПодключитьВнешнююОбработку(ХранилищеОбработки);
       Путь = "";
   КонецЕсли;
   
    Фрм = ПолучитьФорму("ВнешняяОбработка.РМОператорАвтомойки.Форма.Настройка");
    ЗаполнитьЗначенияСвойств(Фрм.Объект,Объект);
    Фрм.ОткрытьМодально();
    ЗаполнитьЗначенияСвойств(Объект,Фрм.Объект);
КонецПроцедуры
8 Alex375
 
22.12.11
03:58
А через "ПолучитьФорму" не прокатывает?
9 Alex375
 
22.12.11
03:59
У тебя ведь объект обработки на сервере уже есть. Из основной формы вызови серверную процедуру в которой и получи форму этого объекта. Дальше открывай ее.
10 wraithik
 
22.12.11
11:59
(9)
У меня это внешняя обработка.
ПолучитьФорму в управляемых формах у объекта форму не доступно.
РеквизитФормыВЗначение("Объект").ПолучитьФорму(...) не прокатит.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший