Имя: Пароль:
1C
 
Как открыть внешнюю обработку с параметром
0 keen11
 
18.12.15
16:25
есть внешняя обработка, добавил кнопку на форму списка документов

выполняю команду

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

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

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

    // Откроем форму подключенной внешней обработки
    ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");
КонецПроцедуры

вопрос в следующем необходимо чтобы в открытой обработке заполнился реквизит ссылка на документ как сделать?
1 Cyberhawk
 
18.12.15
16:27
Ну, параметры метода ОткрытьФорму тебе в помощь
2 keen11
 
18.12.15
16:28
можно подробнее
3 Cyberhawk
 
18.12.15
16:28
Подробнее - в СП
4 keen11
 
18.12.15
16:31
я понимаю что надо передать структуру, а что указывать в ключе:? реквизит на обработке?
5 Lexey_
 
18.12.15
16:35
(4) СП-то почитай:
<Параметры> (необязательный)
Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
6 DmitriyDI
 
18.12.15
16:36
(0) указываешь структуру, и в при создании на сервере, посмотри что находится у тебя в праметре "Параметры"
7 keen11
 
18.12.15
16:41
па = ЭтаФорма.Элементы.списокдок.ТекущиеДанные.Ссылка;
    П = Новый Структура("Заявка", па);

    ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма",п);

при открытии обработки


сообщить(Объект.заявка);

пусто, что не так
8 DmitriyDI
 
18.12.15
16:43
(7) при открытии обработки


сообщить(Параметры.заявка);
9 keen11
 
18.12.15
16:45
Поле объекта не обнаружено заявка
10 DmitriyDI
 
18.12.15
16:49
(9) При создании на сервере напиши

Если Параметры.Свойство("Заявка") Тогда
СообщениеП =  новый сообщениепользователю;
СообщениеП.текст = СокрЛП(Параметры.Заявка);
СообщениеП.Сообщить();
КонецЕсли;

Неужели не получается?
11 keen11
 
18.12.15
16:55
Получилось
12 keen11
 
18.12.15
16:56
(10) Спасибо огромное
13 keen11
 
18.12.15
20:09
В продолжении темы
получил ссылку на документ на сервере делаю дальше

объект.Заявка = параметры.заявка;

присваиваю реквизиту формы документ

но при обращении к реквизитам документа на клиенте пишет поле объекта не обнаружено, что не так?
14 keen11
 
18.12.15
20:16
не понимаю пытаюсь прочитать в процедуре при открытии похоже реквизит еще не доступен, а нет ли типа послеоткрытия?
15 Cyberhawk
 
19.12.15
08:42
"при обращении к реквизитам документа на клиенте пишет поле объекта не обнаружено, что не так" // Данные ссылочных реквизитов формы через точку в тонком клиенте недоступны - получай все нужное на сервере
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший