Имя: Пароль:
1C
 
Странное поведение управляемой формы
, ,
0 SFilchakov
 
22.02.16
23:52
В УФ заказ покупателя (УНФ) добавил кнопку, по которой открывается внешняя обработка:
    Попытка
            СтруктураПараметровВозврат = ОткрытьФорму("ВнешняяОбработка.КомплектацияЗаказа.Форма.Форма",СтруктураПараметров,ЭтаФорма);
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;

///
Но что странно. Когда только запустил клиентское приложение и нажимаю кнопку, выдает такое сообщение:

Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(4942)}: Ошибка при вызове метода контекста (ОткрытьФорму): Неизвестное имя формы. Имя: "ВнешняяОбработка.КомплектацияЗаказа.Форма.Форма"

Но тут же открываю эту внешнюю обработку через файл-Открыть она открывается. И после этого открывается и по кнопке из форма заказа.

Что за ...? Подскажите.
1 Drac0
 
22.02.16
23:54
(0) пока ты не загрузил файл внешней обработки, как 1С тебе найдет ее сама?
2 SFilchakov
 
22.02.16
23:57
Файл загружен в справочник внешних обработок, в том то и дело. Кроме того я так сделал, что кнопка не появится, если нет нужной обработки в справочнике внешних.

Но работать начинает после открытия внешней обработки через открыть.
3 Drac0
 
23.02.16
00:01
(2) в справочнике лежит ссылка на хранилище значений, а когда ты открываешь ее, то создается объект ВнешняяОбьработка, с которым и работает уже система.
4 SFilchakov
 
23.02.16
00:06
(3) Эту обработку предварительно нужно как то открыть?
5 Drac0
 
23.02.16
00:08
(4) Типо того. Как именно - хз, а лезть в конфигуратор и выяснять сейчас точно не по лезу.
6 H A D G E H O G s
 
23.02.16
00:08
(4) подключить.

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

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

<Путь> (обязательный)
7 SFilchakov
 
23.02.16
00:19
(6) Спасибо! Понял, пробую...
8 SFilchakov
 
23.02.16
00:38
Всё получилось спасибо!

Процедура ПодключитьВнешнююОбоработку();
    
    ВнешняяОбработка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Комплектация заказа покупателя",Истина);    
    
    ВнешняяОбработкаОбъект = ВнешняяОбработка.ПолучитьОбъект();
    ДвоичныеДанныеОбработки = ВнешняяОбработкаОбъект.ХранилищеОбработки.Получить();
    АдресХранилища = ПоместитьВоВременноеХранилище(ДвоичныеДанныеОбработки);
    ИмяОбработки = Строка(ВнешняяОбработкаОбъект.Ссылка.УникальныйИдентификатор());
    
    ВнешниеОбработки.Подключить(АдресХранилища, ВнешняяОбработка.ИмяОбъекта , Ложь);
    
КонецПроцедуры
9 SFilchakov
 
23.02.16
00:39
//Лишнее
ИмяОбработки = Строка(ВнешняяОбработкаОбъект.Ссылка.УникальныйИдентификатор());
10 zak555
 
23.02.16
00:55
разве обработку заполнения без рисовая кнопок не добавить ?