Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 14:58

При попытке соединения с COM-сервером произошла следующая ошибка

Автор Sheriff, 11 июл 2018, 10:09

0 Пользователей и 1 гость просматривают эту тему.

Alex26

Заклментируй их             Соединение = "";
            В8 = ""; и напиши в самом конце после них Возврат соединение;

Sheriff

Цитата: Alex26 от 17 июл 2018, 14:34
Заклментируй их             Соединение = "";
            В8 = ""; и напиши в самом конце после них Возврат соединение;
В общем, нихрена не срабатывает, базу он не видит.
Буду в дальнейшем на сервере переустанавливать платформу для начала, а там видно будет.
Спасибо за помощь!

Alex26

Так ты напиши такой код, у тебя возвращается соединение с базой в другую процедуру я сразу не посмотрел, подключение есть значит другая процедура не отрабатывает

  В8 = Новый COMОбъект("V83.COMConnector.1");
       ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
            Попытка
                Соединение = В8.Connect(ПутьКБазе);
            Исключение
                Сообщить("" + ТекущаяДата() + " " +"Ошибка " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()) + " база ", СтатусСообщения.Важное);
            КонецПопытки;
Возврат Соединение;

ты конечно приколист зачем ты в свой код, мою строчку подключения с базой засунул, посмотри что ты выше писал там к моей базе ты подключался, напиши свою базу "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";" а не мою

Sheriff

Цитата: Alex26 от 18 июл 2018, 08:19
Так ты напиши такой код, у тебя возвращается соединение с базой в другую процедуру я сразу не посмотрел, подключение есть значит другая процедура не отрабатывает

  В8 = Новый COMОбъект("V83.COMConnector.1");
       ПутьКБазе = "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";";
            Попытка
                Соединение = В8.Connect(ПутьКБазе);
            Исключение
                Сообщить("" + ТекущаяДата() + " " +"Ошибка " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()) + " база ", СтатусСообщения.Важное);
            КонецПопытки;
Возврат Соединение;

ты конечно приколист зачем ты в свой код, мою строчку подключения с базой засунул, посмотри что ты выше писал там к моей базе ты подключался, напиши свою базу "File=""E:\Distr\Базы1С\блокировка документа"";Usr=""Администратор"";Pwd=""19911972"";" а не мою
Да, я это уже тоже увидел потом и исправил.
Уже всяко пробовал.
Толку нет.

Sheriff

Проблема актуальна
При попытке соедиения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): {МодульВнешнегоСоединения(13)}: Ошибка при вызове конструктора (ComОбъект)

Sy4a

Вы выше писали, что у вас на вашем компьютере всё прошло без проблем а на сервере ругается.
скажу сразу к файлов базе не пробовал писать соединения. Но исходя из ошибки могу предположить несколько вариантов:
1. на сервере было несколько платформ, возможно при переустановке старая библиотека отвечающая за ком конектор не перезаписалась на новую, вопрос как вы переустанвливали платформу? если просто ставили заного не удаляя предыдущею, то советую удалить все платформы что сейчас там стоят полностью, затем установить по новой.
2. Ещё один вариант который помогает решить проблему очень часто, это почистить кэш на сервере.
Также советую чтобы в пути к базе не было русских букв и пробелов.
И самый интригующий меня вопрос, почему имея sql не перевести файловую базу в клиент серверную? просто в клиент серверном варианте проблем я думаю не возникнет да и с клиентских компьютеров можно будет легче использовать обработчики с ком соединениями.
Ну и скиньте ваш текущий код com-соединения.
мой код соединения выглядит как то так
База = Неопределено;
cntr= Новый COMObject("V83.COMConnector");
// создается объект COM-соединение
Попытка
База = cntr.Connect("Srvr="""+"99.99.99.999"+""";Ref="""+"WMS_SQL"+""";Usr="""+"ыыыы"+""";Pwd="""+"123"+""";");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Весь данный код выполняется &НаКлиенте

Sheriff

Цитата: Sy4a от 12 сен 2018, 15:18
Вы выше писали, что у вас на вашем компьютере всё прошло без проблем а на сервере ругается.
скажу сразу к файлов базе не пробовал писать соединения. Но исходя из ошибки могу предположить несколько вариантов:
1. на сервере было несколько платформ, возможно при переустановке старая библиотека отвечающая за ком конектор не перезаписалась на новую, вопрос как вы переустанвливали платформу? если просто ставили заного не удаляя предыдущею, то советую удалить все платформы что сейчас там стоят полностью, затем установить по новой.
2. Ещё один вариант который помогает решить проблему очень часто, это почистить кэш на сервере.
Также советую чтобы в пути к базе не было русских букв и пробелов.
И самый интригующий меня вопрос, почему имея sql не перевести файловую базу в клиент серверную? просто в клиент серверном варианте проблем я думаю не возникнет да и с клиентских компьютеров можно будет легче использовать обработчики с ком соединениями.
Ну и скиньте ваш текущий код com-соединения.
мой код соединения выглядит как то так
База = Неопределено;
cntr= Новый COMObject("V83.COMConnector");
// создается объект COM-соединение
Попытка
База = cntr.Connect("Srvr="""+"99.99.99.999"+""";Ref="""+"WMS_SQL"+""";Usr="""+"ыыыы"+""";Pwd="""+"123"+""";");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Весь данный код выполняется &НаКлиенте
1. Платформа одна была, её удалил и установил другую (8.3.9.2170)
2. Пробелов и русских букв - НЕТ, Серверная или файловая она будет, без разницы, ошибка та же.
3. Вчера пока ковырял, увидел в системе такую ошибку, но, сейчас после всех переустановок, такая ошибка уже не выходит, только та, которую описал выше.
Параметры разрешений для конкретного приложения не дают разрешения Локальный Активация для приложения COM-сервера с CLSID
{181E893D-73A4-4722-B61D-D604B3D67D47}
и APPID
{2DB04299-49C6-45D0-97F2-A19C9D34E825}
пользователю SQL_RZV\USR1CV8 с SID (S-1-5-21-3497661425-3539464735-4284299391-1006) и адресом LocalHost (с использованием LRPC). Это разрешение безопасности можно изменить с помощью служебной программы управления службами компонентов.
Перем СтрокаПодключения;

Если СтруктураПараметров = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;

ПараметровДостаточно = МодульЦемзавод.ОпределитьДостаточностьПараметровДляПодключенияКИнформационнойБазе(СтруктураПараметров, СтрокаПодключения, СтрокаСообщенияОбОшибке);

Если Не ПараметровДостаточно Тогда
Возврат Неопределено;
КонецЕсли;

Если СтруктураПараметров.СерверныйРежим Тогда
ПараметрыПодключения = "Srvr=""" + СокрЛП(СтруктураПараметров.ИмяСервера) + """; Ref=""" + СокрЛП(СтруктураПараметров.ИмяБазы) + """; Usr=""" + СокрЛП(СтруктураПараметров.Пользователь) + """; Pwd=""" + СокрЛП(СтруктураПараметров.Пароль) + """;";
Иначе
ПараметрыПодключения = "File=""" + СокрЛП(СтруктураПараметров.ПутьКБазе) + """; Usr=""" + СокрЛП(СтруктураПараметров.Пользователь) + """; Pwd=""" + СокрЛП(СтруктураПараметров.Пароль) + """;";
КонецЕсли;


Попытка
//#Если Клиент Тогда
//Состояние("Идет процесс соединения ...");
Сообщить("Идет процесс соединения ...");
//#КонецЕсли


Попытка
Если СтруктураПараметров.Платформа = Перечисления.Платформы.Платформа82 Тогда
Обработчик = Новый COMОбъект("V82.COMConnector.1");
Иначе
Обработчик = Новый COMОбъект("V83.COMConnector.1");
КонецЕсли;
Исключение
Сообщить("Ошибка создания объекта "+Обработчик+" !") ;
Сообщить(ОписаниеОшибки()) ;
КонецПопытки;


ТекCOMОбъект = Обработчик.Connect(ПараметрыПодключения);

//#Если Клиент Тогда
//Состояние("Соединение установлено");
Сообщить("Соединение установлено");
//#КонецЕсли

Исключение

СтрокаСообщенияОбОшибке = "При попытке соедиения с COM-сервером произошла следующая ошибка:" + Символы.ПС
+ ОписаниеОшибки();
//#Если Клиент Тогда
Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Важное);
    //Состояние("Соединение установить не удалось");
//Состояние();
    Сообщить("Соединение установить не удалось");
//#КонецЕсли

Возврат Неопределено;

КонецПопытки;

Возврат ТекCOMОбъект;

Добавлено: 14 сен 2018, 11:11


Получается ещё такой момент, делал вот так -
1. Установка ОС на чистовую
2. Установка SQL
3. Установка Платформы под текущим пользователем (Администратор)
-----Результат тот же--------
4. Регистрация comcntr.dll через командную строку
-----Результат тот же--------
5. Делаю аналогично описанной статьи тут https://infostart.ru/public/197627/
-----Результат тот же--------
6. Регистрация компоненты в папка System32 и SysWow64
7. Переустановил Платформу и создал пользователя, который предлагает платформа (UserV8) и добавил роли, как описано тут http://1centerprise8.blogspot.com/2018/02/agent-1s-domennyj-polzovatel.html
-----Ошибка {ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(407)}: Ошибка при вызове конструктора (COMОбъект): -2147024891(0x80070005): Отказано в доступе.
При попытке соедиения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Значение не является значением объектного типа (Connect)-----
8. Настройка локальных политик безопасности согласно инструкции от сюда http://1centerprise8.blogspot.com/2018/02/agent-1s-domennyj-polzovatel.html
в последние 3 пункта, раздела 5, добавил пользователя UserV8
-----Результат - Отказано в доступе-------
9. Добавили сервер в домен
-----Результат тот же-------- Ошибка как и прежде.
10. Установил платформу 8.3.12 и повторил заново пункт 4 и 5
Что по итогу имеем. Непосредственно на самом сервере подключение не проходит никак.
Подключение проходит на клиентских (пользовательских) компах, НО, тоже не во всех режимах.
Из файловой в файловую есть коннект, а вот из серверной в файловую нет (нужен как раз последний вариант подключения).
Выручайте, господа, очень нужна помощь!

Sheriff

Тут походу ответа не дождусь....
Добавлено: 17 сен 2018, 12:13


Проблему решил, спасибо за "помощь"!)
Тему закрыть можно...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск