Имя: Пароль:
1C
1С v8
получить форму во внешней обработке (8.2 управляемые формы)
, ,
0 Bober777
 
19.03.12
18:26
Как получить и открыть форму во внешней обработке.
1 Капитан О
 
19.03.12
18:27
кхм..
2 Bober777
 
19.03.12
18:28
(2) самый краткий ответ...
3 sanja26
 
19.03.12
18:28
ПолучитьФорму(), не?
4 Bober777
 
19.03.12
18:30
(3) не.
5 Bober777
 
19.03.12
18:31
&НаКлиенте
Процедура ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика(Команда)
   ОпределитьДляПозицийНоменклатурыНоменклатуруПоставщика();    
КонецПроцедуры

&НаСервере
Процедура ОпределитьДляПозицийНоменклатурыНоменклатуруПоставщика()    
   //ВнешниеОбработки.ПолучитьФорму("ВнешняяОбработка.АвтоматическийЗаказ.Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика").Открыть();
   //ВнешниеОбработки.Создать("D:\Проекты\Удаленная работа\Имя_Фамилия\Максим_Иванов\Релизы Обработок\Автозаказ\АвтоматическийЗаказ.epf").ПолучитьФорму("ВнешняяОбработка.АвтоматическийЗаказ.Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика").Открыть();
КонецПроцедуры
6 Bober777
 
19.03.12
18:32
так вот закоментированные строчки не проканали.
7 Bober777
 
19.03.12
18:33
Сначала попробовал:

ВнешниеОбработки.ПолучитьФорму("ВнешняяОбработка.АвтоматическийЗаказ.Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика").Открыть();

ПОТОМ

ВнешниеОбработки.Создать("D:\Проекты\Удаленная работа\Имя_Фамилия\Максим_Иванов\Релизы Обработок\Автозаказ\АвтоматическийЗаказ.epf").ПолучитьФорму("ВнешняяОбработка.АвтоматическийЗаказ.Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика").Открыть();
8 Fram
 
19.03.12
18:36
Для внешних отчетов и обработок имя формы задается следующим образом:
ВнешнийОтчет.<имя отчета>.Форма.<имя формы>;
ВнешнийОтчет.<имя отчета>.<имя стандартной формы>;
ВнешняяОбработка.<имя обработки>.Форма.<имя формы>;
ВнешняяОбработка.<имя обработки>.<имя стандартной формы>.
При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе.
9 Fram
 
19.03.12
18:37
регистрируются, как я понимаю, они вот так:

ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)
Подключить (Connect)
Синтаксис:

Подключить(<Путь>, <Имя>, <БезопасныйРежим>)
Параметры:

<Путь> (обязательный)

Тип: Строка.
Ссылка на реквизит объекта конфигурации, который содержит данные внешней обработки. Ссылка может быть получена методом ПолучитьНавигационнуюСсылку.
<Имя> (необязательный)

Тип: Строка.
Имя внешней обработки, с которым она будет зарегистрирована в системе.
Наличие одинаковых имен в процессе работы сеанса не допускается. Если имя не указано, будет использовано имя, содержащееся в самой обработке.
<БезопасныйРежим> (необязательный)

Тип: Булево.
Признак подключения внешней обработки в безопасном режиме. Если параметр не указан, подключение будет осуществлено в безопасном режиме.
Значение по умолчанию: Истина
Возвращаемое значение:

Тип: Строка.

Описание:

Выполняет подключение внешней обработки по указанному пути.
Возвращает имя подключенной внешней обработки.

Доступность:

Сервер, внешнее соединение.
10 Bober777
 
19.03.12
18:40
(8),(9) Спасибо. Конечно я мог бы написать да попробую и уйти. Но я мало что понял. Можно пример привести пож.
11 sanja26
 
19.03.12
18:44
(7) через двоичные данные делай
12 Fram
 
19.03.12
18:44
Я сам недавно варюсь в УФ, поэтому только предполагаю как это работает
Сначала

ИмяОбр = ВнешниеОбработки.Подключить(....

Потом

ОткрытьФорму("ВнешниеОбработки."+ИмяОбр+"Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика")
13 ll13
 
19.03.12
18:47
На клиенте:
ОткрытьФорму("ВнешняяОбработка.ИмяМоейОбработки.Форма.ИмяМоейФормы")
14 sanja26
 
19.03.12
18:49
ИмяВнешней = "C:\1C\DevBase\Бухгалтерия\ВыгрузкаДляУТ.epf";
   Внешняя = ВнешниеОбработки.Создать(ИмяВнешней);
   Внешняя.ПолучитьФорму().Открыть();
15 Fram
 
19.03.12
18:51
(14) на УФ не будет работать
16 Bober777
 
19.03.12
18:52
(13) покатило спасибо))

как не странно но сообщение с несчастливым числом мне помогло)
17 Bober777
 
19.03.12
18:53
ll13 - вот скажи честно ты всегда ждешь когда в теме появится последнее сообщение по счету 12 и даешь правильный ответ 13-м сообщением))))))
18 Fram
 
19.03.12
18:55
(16) а вместо ИмяМоейОбработки ты чего указал?
19 Bober777
 
19.03.12
19:55
(18)  
ОткрытьФорму("ВнешняяОбработка.АвтоматическийЗаказ.Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика");
20 Bober777
 
19.03.12
19:55
&НаКлиенте
Процедура ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика(Команда)
   ОткрытьФорму("ВнешняяОбработка.АвтоматическийЗаказ.Форма.ОпределитьДляПозицииНоменклатурыНоменклатуруПоставщика");
КонецПроцедуры
21 Fram
 
20.03.12
16:00
(20) а файл где прописал?
22 Fram
 
21.03.12
12:36
Из ИТС:

Как программно открыть внешнюю обработку?

В версии 8.2 приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.

Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:

   Передать файл внешней обработки на сервер
   Подключить внешнюю обработку
   Открыть форму внешней обработки

Чтобы передать файл на сервер, его нужно поместить во временное хранилище. Для этого сначала на клиенте, в обработчике команды открытия внешней обработки, методом глобального контекста ПоместитьФайл() мы помещаем файл из локальной файловой системы во временное хранилище.

В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.

При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.

Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.

Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки. Можно открыть также и неосновную форму обработки - об этом рассказывается в вопросе Как получить неосновную форму обработки?.
Копировать в буфер обмена

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

   //Помещаем обработку во временном хранилище
   АдресХранилища = "";
   Результат = ПоместитьФайл(АдресХранилища, "C:\ВнешняяОбработка.epf", , Ложь);          
   ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища);
   
   // Откроем форму подключенной внешней обработки
   ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");

КонецПроцедуры

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

   Возврат ВнешниеОбработки.Подключить(АдресХранилища);

КонецФункции      

При работе в внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.

Подробнее о режиме безопасного исполнения программного кода можно прочитать в документации: 1С:Предприятие 8.2. Руководство разработчика, Раздел 5.5.4.3: Объекты конфигурации - Ветвь конфигурации «Общие» - Роли и права доступа - Безопасный режим работы.

Подробнее об использовании метода ПоместитьФайл() можно прочитать в синтакс-помощнике: Глобальный контекст - Процедуры и функции работы с файлами.

Подробнее об использовании метода Подключить() можно прочитать в синтакс-помощнике: Прикладные объекты - Внешние обработки и отчеты - ВнешниеОбработкиМенеджер - Методы.
Программист всегда исправляет последнюю ошибку.