Имя: Пароль:
1C
 
Асинхронный режим и обращение к внешней компоненте
0 Грызлик
 
20.07.16
07:50
Добрый день. Ситуация такая. Есть база. В ней настройка "Режим использования синхронных вызовов" стоит не использовать. И при обращение к компоненте выдется ошибка на запрет использования синхронных методов.

Далее. Пишу код.

        АдресКомпоненты = ПолучитьКомпонентуНаСервере(); //вытягиваю компоненту из макета с сервера на клиент
    Если ВКУспешноПодключена = Неопределено Тогда
        Оповещение = Новый ОписаниеОповещения("ПодключитьВКНаКлиентеВесы1", ЭтаФорма, АдресКомпоненты);
                т.е. стоит аинхронный режим, то использую не ПодключитьВнешнююКомпоненту, а НачатьПодключениеВнешнейКомпоненты
        НачатьПодключениеВнешнейКомпоненты(Оповещение, АдресКомпоненты, "ServerAuto", ТипВнешнейКомпоненты.Native);     
    Иначе
        глВесы1 = Новый ("AddIn.ServerAuto.Add1CServerVesy");
        глВесы1.ОткрытьСерверВесы("");
    КонецЕсли;

Код такой, сначала из макета с сервера вытаскиваю на клиент саму компоненту, потом я ее подключаю. т.к. стоит асинхронный режим, то использую метод не ПодключитьВнешнююКомпоненту, а НачатьПодключениеВнешнейКомпоненты. На этом этапе все отрабатывает.

Далее, делаю следующую строку кода глВесы1 = Новый ("AddIn.ServerAuto.Add1CServerVesy"); И вот тут мне 1с говорит что глВесы1 использовать синхронный метод запрещено.
Если я включаю в настройках конфигурации синхронный режим, то работает как нужно.

Вопрос, а как теперь открыть саму компоненту после подключения в асинхронном режиме???
1 hhhh
 
20.07.16
08:07
а где процедура

ПодключитьВКНаКлиентеВесы1  ???
2 Грызлик
 
20.07.16
08:15
(1) Там просто ничего полезного нет. Поэтому не стал выкладывать.  Ниже код этой процедуры


        &НаКлиенте
        Процедура ПодключитьВКНаКлиентеВесы1(Результат, ДопПараметры) Экспорт

            Если Результат Тогда
                ВКУспешноПодключена = Истина;
                НачатьОперациюВзвешиванияВесов1();
            Иначе
                Попытка
                 АдресКомпоненты = ДопПараметры;
                 НачатьУстановкуВнешнейКомпоненты(, АдресКомпоненты);
                             //И далее возвращаемся в процедуру из топика в пункте (0)
                             ВКУспешноПодключена = Истина; //глобальная переменная в модуле формы документа
                     НачатьОперациюВзвешиванияВесов1();
                Исключение
                 ВКУспешноПодключена = Ложь;
                 Сообщение = Новый СообщениеПользователю;
                 Сообщение.Текст = "Не удалось подключить внешнюю компоненту. Обратитесь к администратору. Или                       запустите из под администратор";
                 Сообщение.Сообщить();     
               КонецПопытки;
          КонецЕсли;
    
       КонецПроцедуры // ПодключитьВКНаКлиенте()
3 DrZombi
 
гуру
20.07.16
08:18
4 Грызлик
 
20.07.16
08:34
(3) Читал, там нет примера. Все рекомендации которые описаны я выполнил. Но вот само чтение компоненты...
Заметил в статье, что в БСП реализованы такие процедуры. Буду скачивать. Смотреть.
5 Грызлик
 
20.07.16
10:36
Скачал БСП. У них процедуры написаны как у меня. Но включен синхронный режим