8.х Метод объекта не обнаружен (ConnectServer)

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем observer, 26 июн 2008.

  1. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    В 1С 8 такой вот код работал просто отлично
    Код:
     
    // Как принудительно завершить работу всех пользователей информационной базы в клиент-серверном варианте работы? 
    Коннектор = Новый COMОбъект("V8.COMConnector"); 
    Сервер = Коннектор.ConnectServer("XXX"); 
    // Аутентифицироваться с административными правами в нужной базе. 
    Сервер.AddAuthentication("XXX",""); 
    // Создать объект нужной информационной базы. 
    ИнформационнаяБаза = Сервер.CreateInfoBaseInfo(); 
    ИнформационнаяБаза.Name = "XXX"; 
    // Получить соединения базы. 
    СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза); 
    // Разорвать соединения клиентских приложений. 
    Для Каждого Соединение Из СоединенияБазы Цикл 
    Сервер.Disconnect(Соединение); 
    КонецЦикла;
    
    
    Переехали на 1С 8.1
    Написал вот так
    Код:
     
    // Как принудительно завершить работу всех пользователей информационной базы в клиент-серверном варианте работы? 
    Коннектор = Новый COMОбъект("V81.COMConnector"); 
    Сервер = Коннектор.ConnectServer("XXX"); 
    // Аутентифицироваться с административными правами в нужной базе. 
    Сервер.AddAuthentication("XXX",""); 
    // Создать объект нужной информационной базы. 
    ИнформационнаяБаза = Сервер.CreateInfoBaseInfo(); 
    ИнформационнаяБаза.Name = "XXX"; 
    // Получить соединения базы. 
    СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза); 
    // Разорвать соединения клиентских приложений. 
    Для Каждого Соединение Из СоединенияБазы Цикл 
    Сервер.Disconnect(Соединение); 
    КонецЦикла;
    
    
    Пишет ошибку
    {Обработка.ОтключениеВсехОтБазы.Форма.Форма(6)}: Метод объекта не обнаружен (ConnectServer)
    Сервер = Коннектор.ConnectServer("XXX");
    Подскажите что не так!
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
  3. TopicStarter Overlay
    observer
    Offline

    observer Опытный в 1С

    Регистрация:
    12 мар 2008
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Вот поменял на ConnectServer на Connect и вот что получилось!
    {Обработка.ОтключениеВсехОтБазы.Форма.Форма(5)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V81.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой
    Сервер = Коннектор.Connect("XXX");
    по причине:
    Произошла исключительная ситуация (V81.COMConnector.1): Неверные или отсутствующие параметры соединения с информационной базой
    Я вот понять не могу если 1С гарантированно обеспечивает идентичность 1С 8 и 8.1 в чем тогда проблема?
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    А что такое V81.COMConnector.1)
  5. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Почитай статью - нужна строка соединения с сервером.

    Вида вот так:
    Код:
    	V8 = Новый COMObject ("V8.COMConnector");
    Состояние("Подключение к базе данных ("+Формат(ТекущаяДата(),"ДЛФ=T")+")...");
    Соединение = V8.Connect ("Srvr="+ИмяСервера+"; Ref  ="+ИмяБазы+"; Usr ="+ИмяПользователя+"; Pwd ="+Пароль+"; ");
    
  6. lip
    Offline

    lip

    Регистрация:
    11 ноя 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    У вас получилось?
    Пытались проделать тоже самое... соединение устанавливается с помощью:
    Соединение = V8.Connect ("Srvr="+ИмяСервера+"; Ref ="+ИмяБазы+"; Usr ="+ИмяПользователя+"; Pwd ="+Пароль+"; ");
    А дальше не один метод не работает....
    ни
    Сервер.AddAuthentication("XXX","");
    метод объекта не обнаружен (AddAuthentication)
    ни
    ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
    Метод объекта не обнаружен (CreateInfoBaseInfo)
    ни следовательно...
    Сервер.GetIBConnections(ИнформационнаяБаза);
  7. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Вам бы не КомКоннектор использовать лучше
    Завтра выложу код, который 100% в 8.1 работает, если не разберетесь.
  8. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    В случае 8.1 надо V81.Application использовать.
    Так соединение проходит.

    Если ИмяСервера не указано - подключение идет к файловой базе (в качестве параметра База просто путь передается.

    Код:
    // Подключиться к базе через OLE
    Функция Подключиться(Узел, ИмяСервера = "", База, Пользователь, Пароль) Экспорт
    Узел     = Новый COMОбъект("V8.Application");
    Попытка
    Если ПустаяСтрока(ИмяСервера) Тогда
    Результат  = Узел.Connect("File="""+База+""";USR="""+Пользователь+""";PWD="""+Пароль+"""");
    Иначе
    Результат  = Узел.Connect("Srvr="""+ИмяСервера+""";"+"Ref="""+База+""";USR="""+Пользователь+""";PWD="""+Пароль+"""");
    КонецЕсли;
    Возврат Истина;
    Исключение
    Возврат Ложь;
    КонецПопытки;
    КонецФункции
    
    
  9. lip
    Offline

    lip

    Регистрация:
    11 ноя 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное!!!!!

Поделиться этой страницей