Имя: Пароль:
1C
1С v8
Программно открыть форму внешней обработки
0 Sun125
 
29.11.17
11:09
Пытаюсь из произвольной формы открыть форму внешней обработки:
&НаСервере
Процедура ОткрытьНаСервере(ИмяФайла)

    ОбработкаНоменклатуры = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта", "ОбработкаНоменклатуры");
    
    ИмяФайла = ПолучитьИмяВременногоФайла("epf");
    ОбъектОбработкаНоменклатуры = ОбработкаНоменклатуры.ПолучитьОбъект();
    ДвоичныеДанные = ОбъектОбработкаНоменклатуры.ХранилищеОбработки.Получить();
    Попытка
        ДвоичныеДанные.Записать(ИмяФайла);
    Исключение
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        Возврат;
    КонецПопытки;
    
    ТекОбработка = ВнешниеОбработки.Подключить(ИмяФайла,,Ложь);

    
КонецПроцедуры // ОткрытьНаСервере()

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ИмяФайла = "";
    ОткрытьНаСервере(ИмяФайла);
    
    
КонецПроцедуры

При подключении внешней обработки выходит ошибка:
Неправильный путь к файлу.
Подскажите,пожалуйста, что не так делаю?
1 ambrozii-fadeevich-s
 
29.11.17
11:14
ВнешниеОбработкиМенеджер.Создать (ExternalDataProcessorsManager.Create)
ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)
Создать (Create)
Вариант синтаксиса: По имени файла

Синтаксис:

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

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

Тип: Строка.
Полное имя файла внешней обработки.
<БезопасныйРежим> (необязательный)

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

Синтаксис:

Создать(<Имя>)
Параметры:

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

Тип: Строка.
Имя внешней обработки, полученное после подключения.
Описание варианта метода:

Предварительно обработка должна быть подключена методом Подключить.
Возвращаемое значение:

Тип: ВнешняяОбработка.

Описание:

Создает объект внешней обработки по указанному файлу или имени внешней обработки.

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

Сервер, толстый клиент, внешнее соединение.
Пример:

ВнешняяОбработка = ВнешниеОбработки.Создать(ПолноеИмяФайла);
ВнешняяОбработка.ПолучитьФорму().Открыть();
2 ambrozii-fadeevich-s
 
29.11.17
11:16
Пример в синтаксисе, разумеется, для толстого клиента. На сервере открыть не сработает.

А вот в методе ВнешниеОбработки.Получить
Путь - это не имя файла

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

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

Тип: Строка.
Ссылка на реквизит объекта конфигурации, который содержит данные внешней обработки. Ссылка может быть получена методом ПолучитьНавигационнуюСсылку.
3 Sun125
 
29.11.17
20:20
Сделал так:

&НаСервере
ТекОбработка = ВнешниеОбработки.Создать(ИмяФайла);

&НаКлиенте
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("БезопасныйРежим", Ложь);
ОткрытьФорму("ВнешняяОбработка.ОбработкаНоменклатуры.Форма",ПараметрыФормы, ЭтаФорма);

Теперь обработка открывается, но возникла проблема, автоматически устанавливается БезопасныйРежим, и соответственно обработка не работает.
Как передать признак БезопасныйРежим=Ложь?
4 mehfk
 
29.11.17
20:25
(3) Начни еще раз, прочитав внимательно (1) или, что лучше, СП.
5 Sun125
 
29.11.17
20:26
(4) Все спасибо, разобрался)глупый вопрос был, снят
6 France
 
30.11.17
02:59
а спросить что за конфа и навести на мысль про доп.отчеты\обработки - уже не комильфо?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.