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

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

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

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

Sheriff

Всем доброго времени суток!
1С:Предприятие 8.3 (8.3.9.2170)
Бухгалтерия для Казахстана, редакция 3.0
WindowsServer 2012 R2 Standart
64-х битный
Клиент-Серверная база (ms sql)
При попытке соединения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Ошибка доступа к файлу '\\172.16.10.244\bases\автовесовая завода\1Cv8.cdn'. 5(0x00000005): Отказано в доступе.
При файловом варианте, всё норм! Соединение устанавливается.
Серверная база на своём серваке, а фалойловая, к котором подключаемся на своём серваке. Пусть к базе прописан.
Что делать? Как получить доступ?

Sheriff

Попробовал ещё сделать так:
На самом сервере, создал в ФАЙЛОВОМ варианте базу и результат тот же, ошибка та же.
Хотя к самой папке доступ есть ,т.е я по сети с сервера, могу там создать какой-либо файл и удалить без проблем.

ДмитрийФ

Цитата: Sheriff от 11 июл 2018, 10:48
Хотя к самой папке доступ есть ,т.е я по сети с сервера, могу там создать какой-либо файл и удалить без проблем.
Возможно пользователь под которым стартует 1С все-таки не имеет доступа к папке.

Sheriff

Цитата: ДмитрийФ от 11 июл 2018, 11:54
Цитата: Sheriff от 11 июл 2018, 10:48
Хотя к самой папке доступ есть ,т.е я по сети с сервера, могу там создать какой-либо файл и удалить без проблем.
Возможно пользователь под которым стартует 1С все-таки не имеет доступа к папке.
Запуски под админом тоже не помогают. Да и на самом сервере, пользователь Администратор и USERSV8, под которым агент сервера работает

wise

(1) ЕСЛИ { Отказано в доступе } значит проблема с ПРАВАМИ.!!
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Sheriff

Цитата: wise от 11 июл 2018, 11:58
(1) ЕСЛИ { Отказано в доступе } значит проблема с ПРАВАМИ.!!
Нет проблем с ПРАВАМИ, всем доступ открыт.
расположили обе базы на сервер, обе в файловый вариант, к базе, которой подключаемся ,полные права на папку и всё содержимое.
Итог При попытке соедиения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): {МодульВнешнегоСоединения(13)}: Ошибка при вызове конструктора (ComОбъект)

wise

(5) А вот ЭТО уже ИНТЕРЕСНЕЕ: { Ошибка при вызове конструктора (ComОбъект) }

напишите тестовый отчёт, который будет &наКлиенте создавать ComОбъект и подключаться туда.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Sheriff

Цитата: wise от 11 июл 2018, 13:43
(5) А вот ЭТО уже ИНТЕРЕСНЕЕ: { Ошибка при вызове конструктора (ComОбъект) }

напишите тестовый отчёт, который будет &наКлиенте создавать ComОбъект и подключаться туда.
Теперь другая странность
При попытке соедиения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Информационная база не обнаружена
Отсутствует файл базы данных 'E:\Distr\Базы1С\блокировка документа/1Cv8.1CD'
Файл есть и доступ к нему есть.

Alex26

Цитата: Sheriff от 16 июл 2018, 13:12(5) А вот ЭТО уже ИНТЕРЕСНЕЕ: { Ошибка при вызове конструктора (ComОбъект) }

    напишите тестовый отчёт, который будет &наКлиенте создавать ComОбъект и подключаться туда.

Теперь другая странность
При попытке соедиения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Информационная база не обнаружена
Отсутствует файл базы данных 'E:\Distr\Базы1С\блокировка документа/1Cv8.1CD'
Файл есть и доступ к нему есть.

Скинь фрагмент кода как ты к базе подключаешься, и у тебя на сервере установлен компонент V83.COMConnector.1 ?

Sheriff

Цитата: Alex26 от 17 июл 2018, 09:32
Цитата: Sheriff от 16 июл 2018, 13:12(5) А вот ЭТО уже ИНТЕРЕСНЕЕ: { Ошибка при вызове конструктора (ComОбъект) }

    напишите тестовый отчёт, который будет &наКлиенте создавать ComОбъект и подключаться туда.

Теперь другая странность
При попытке соедиения с COM-сервером произошла следующая ошибка:
{ОбщийМодуль.МодульРегламентныхЗаданий.Модуль(415)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Информационная база не обнаружена
Отсутствует файл базы данных 'E:\Distr\Базы1С\блокировка документа/1Cv8.1CD'
Файл есть и доступ к нему есть.

Скинь фрагмент кода как ты к базе подключаешься, и у тебя на сервере установлен компонент V83.COMConnector.1 ?
Тут код при открытии списка Реализации
&НаСервере
Процедура ПриОткрытииНаСервере()
///////////////////////////////////////////////////////////// поключение к базе
///-- если константа заполнена то создаем соеденение
//ПутьКБазе = Константы.ЦЗС_АдресБазыАвтовесовой.Получить();
//Если  ЗначениеЗаполнено(Константы.ЦЗС_АдресБазыАвтовесовой.Получить()) Тогда

  //Если глV21Object = Неопределено Тогда
//ПутьКБазе = Константы.ЦЗС_АдресБазыАвтовесовой.Получить();
СтруктураПодключения = МодульРегламентныхЗаданий.ПолучитьСтруктуруПодключения_Авто() ;
глV21Object = МодульРегламентныхЗаданий.ПодключитсяКИнформационнойБазе2(СтруктураПодключения);
Если глV21Object = Неопределено Тогда
Сообщить( "Ошибка подключения к базе данных!!!", СтатусСообщения.Важное ) ;
Возврат ;
КонецЕсли;
Сообщить( ""+ТекущаяДата() + " - Подключение к конфигурации "+глV21Object.Метаданные.Synonym+" выполнено успешно!" ) ;
//КонецЕсли;
//КонецЕсли;

КонецПроцедуры

Тут уже модуль
Функция ПолучитьСтруктуруПодключения_Авто(КаталогИБДляПодключения="") Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| НастройкаАвтовесовой.ПутьКБазе,
| НастройкаАвтовесовой.Платформа,
| НастройкаАвтовесовой.Серверная,
| НастройкаАвтовесовой.ИмяСервера,
| НастройкаАвтовесовой.ИмяБазы,
| НастройкаАвтовесовой.Пользователь,
| НастройкаАвтовесовой.Пароль
|ИЗ
| РегистрСведений.НастройкаАвтовесовой КАК НастройкаАвтовесовой
|ГДЕ
| НастройкаАвтовесовой.База = &База";

Запрос.УстановитьПараметр("База", Перечисления.УдаленныеБазы.АвтоВесовая);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Если ВыборкаДетальныеЗаписи.Следующий() Тогда
СтруктураПодключения = Новый Структура();
СтруктураПодключения.Вставить("ПутьКБазе" , ВыборкаДетальныеЗаписи.ПутьКБазе);
СтруктураПодключения.Вставить("Платформа" , Строка(ВыборкаДетальныеЗаписи.Платформа));
СтруктураПодключения.Вставить("СерверныйРежим", ВыборкаДетальныеЗаписи.Серверная);
СтруктураПодключения.Вставить("ИмяСервера" , ВыборкаДетальныеЗаписи.ИмяСервера);
СтруктураПодключения.Вставить("ИмяБазы" , ВыборкаДетальныеЗаписи.ИмяБазы);
СтруктураПодключения.Вставить("Пользователь" , ВыборкаДетальныеЗаписи.Пользователь);
СтруктураПодключения.Вставить("Пароль" , ВыборкаДетальныеЗаписи.Пароль);
Возврат СтруктураПодключения;
КонецЕсли;

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

КонецФункции // ПолучитьСтруктуруПодключения()


//=== ФУНКЦИИ ОБРАБОТКИ ПОДКЛЮЧЕНИЯ К УДАЛЕННО БАЗЕ ДАННЫХ ======================
// их можно вставить в общий модуль, и обращаться из рахных объектов
Функция ПодключитсяКИнформационнойБазе2(СтруктураПараметров, СтрокаСообщенияОбОшибке = "") Экспорт

Перем СтрокаПодключения;

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

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

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

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


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


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


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

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

Исключение

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

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

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

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

КонецФункции

Компонента установлена и зарегистрирована.
Вообще на сервере стоит только одна платформа 8.3
Обе базы работают на этой платформе, просто одна серверная, а другая файловая.
Я установил SQL и платформу на обычную винду, чистую и сделал всё так же, как на рабочем сервере и у меня с этим кодом всё работает на моём компе, а на рабочем сервере НЕТ.
Каждый раз пишет разные ошибки.

Теги:

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

Рейтинг@Mail.ru

Поиск