Ошибка при выполнении com соединения.

1. IrinaBasova 13.08.18 10:08 Сейчас в теме
(10)Добрый день. Пытаюсь выполнить соединение к базе. Две базы локальные.
При попытке соединения с COM-сервером произошла следующая ошибка: ОбщийМодуль.ЦЗС_ОбщегоНазначения.Модуль(81). Ошибка при вызове метода контекста (Connect).
ТекСомОбъект=ТекСомПодключение.Connect(СтрокаПодключения);
по причине Произошла исключительная ситауция (v83.comconnector.1). Ошибка при вызове конструктора ComОбъект.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DarkUser 13.08.18 10:15 Сейчас в теме
Делайте лучше через HTTP сервисы, оно проще будет.
Если через ком, то необходимо проверить что у вас зарегистрирована компонента comcntr.dll, с соответствием версии используемой платформы.
3. IrinaBasova 13.08.18 10:22 Сейчас в теме
4. Doreng 28 13.08.18 10:26 Сейчас в теме
(3)
Там где обрабатывается подключение, если на сервере, то смотреть на сервере
Панель управления - администрирование - службы компонентов - приложения com + - V83COMConnector есть такое?
Если есть, разворачиваем и заходим в свойства V83.COMConnector.1, там проверяем на вкладке общие, что путь DLL указать к используемой версии платформы, на вкладке безопасность - не стоит галочка "принудительная проверка доступа"
5. IrinaBasova 13.08.18 10:33 Сейчас в теме
6. Doreng 28 13.08.18 10:35 Сейчас в теме
(5)Платформу поставили посвежее?
9. IrinaBasova 13.08.18 10:42 Сейчас в теме
(4)все проверила, галочка "принудительная проверка доступа не стоит",на CreatorOwner стоит,
11. Doreng 28 13.08.18 10:45 Сейчас в теме
(9)Снимите галочку, если не поможет, то установите заново используя инструкцию тут -
http://novichok1c.ru/ustranenie-oshibki-pri-podklyuchenii-k-baze-dannyh-1s-cherez-com-soedinenie
Думаю понятно, что инструкция для 82 и все слова нужно заменить на 83
13. IrinaBasova 13.08.18 10:47 Сейчас в теме
(11)удалить объект можно без проблем?
14. Doreng 28 13.08.18 10:47 Сейчас в теме
(13)Можно не удалять, он сам заменится
10. IrinaBasova 13.08.18 10:44 Сейчас в теме
(4)Могу я Вам скрин реестра отправить мне не пойму некоторое пункты. И еще вопрос приложение сом+ при установке сервера 1с установилось? у меня на моем компе такого объекта не устанавливается
7. IrinaBasova 13.08.18 10:41 Сейчас в теме
8. Doreng 28 13.08.18 10:42 Сейчас в теме
(7)я имел ввиду - ошибка появилась после установки свежей платформы?
12. IrinaBasova 13.08.18 10:45 Сейчас в теме
(8)нет, тестируется переход на 3.0 бухгалтерии, поэтому переписалось подключение наСервере, и теперь такая ошибка. Текущая рабочая база пока на обычном приложении работает
15. Doreng 28 13.08.18 10:52 Сейчас в теме
(12)База файловая или серверная? неплохо увидеть весь код подключения
16. IrinaBasova 13.08.18 10:55 Сейчас в теме
вообще базы файловые, лежат локально на сервере 1с. (тестирую пока так, планируется выполнять на серверном варианте, но т.к. там тоже ошибки вывалились, пока локально проверяю).в файловом варианте на моем компе все работает.
17. IrinaBasova 13.08.18 10:56 Сейчас в теме
уже голову сломала, что может быть
18. DarkUser 13.08.18 11:00 Сейчас в теме
(17) Скорее всего у вас в системе только COM коннектор для 8.2 есть
19. IrinaBasova 13.08.18 11:06 Сейчас в теме
как это проверить, могу скрин реестра показать
Прикрепленные файлы:
20. IrinaBasova 13.08.18 11:08 Сейчас в теме
(19)Во вкладке COM3,несколько раз упоминается v83.comconnector, но данные о библиотеке есть только в одном, это правильно?
21. Fox-trot 163 13.08.18 11:11 Сейчас в теме
22. IrinaBasova 13.08.18 11:12 Сейчас в теме
винда 64 бит, приложение 32 бит
24. Doreng 28 13.08.18 11:21 Сейчас в теме
(22)Код подключения к базе плиз
23. Fox-trot 163 13.08.18 11:16 Сейчас в теме
это не должно влиять, если все прально установлено
25. IrinaBasova 13.08.18 11:26 Сейчас в теме
Функция ПолучитьСтруктуруПодключения_Авто(КаталогИБДляПодключения="") Экспорт 

	КаталогИнформационнойБазыДляПодключения = КаталогИБДляПодключения ;  // (Для серверного подключения = "")
	
	АутентификацияWindowsИнформационнойБазыДляПодключения 	= Ложь;
	//ВерсияПлатформыИнформационнойБазыДляПодключения 		= "V82";
	ВерсияПлатформыИнформационнойБазыДляПодключения 		= "V83";


	Если ПустаяСтрока(КаталогИБДляПодключения) Тогда
		ТипИнформационнойБазыДляПодключения	= ЛОЖЬ ; //Истина; //(Для серверного подключения = ЛОЖЬ)
		ИмяСервераИнформационнойБазыДляПодключения 		= "server_1c" ;
		ИмяИнформационнойБазыНаСервереДляПодключения 	= "zupczs" ;

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

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

//++ BIK:CSZ 31.12.2018 подключение к информационной базе с помощью COM соединения
Функция ПодключитсяКИнформационнойБазе(СтруктураПодключения, СтрокаСообщенияОбОшибке = "") Экспорт 
	
	Перем СтрокаПодключения;
	
	ПараметровДостаточно = ОпределитьДостаточностьПараметровДляПодключенияКИнформационн­ойБазе(СтруктураПодключения, СтрокаПодключения, СтрокаСообщенияОбОшибке);
	
	Если Не ПараметровДостаточно Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Если Не СтруктураПодключения.АутентификацияWindows Тогда
		Если НЕ ПустаяСтрока(СтруктураПодключения.Пользователь) Тогда
			СтрокаПодключения = СтрокаПодключения + ";Usr = """ + СтруктураПодключения.Пользователь + """";
		КонецЕсли;
		Если НЕ ПустаяСтрока(СтруктураПодключения.Пароль) Тогда
			СтрокаПодключения = СтрокаПодключения + ";Pwd = """ + СтруктураПодключения.Пароль + """";
		КонецЕсли;
	КонецЕсли;
	
		
	//"V8" или "V81"
	ОбъектПодключения = СтруктураПодключения.ВерсияПлатформы;
	
	СтрокаПодключения = СтрокаПодключения + ";";
	
	Попытка
		
		//#Если Клиент Тогда
		//Состояние("Идет процесс соединения ...");
		//#КонецЕсли
	
		ОбъектПодключения = ОбъектПодключения +".COMConnector";
		
		Попытка
			ТекCOMПодключение = Новый COMОбъект(ОбъектПодключения);
		Исключение
			Сообщить("Ошибка создания объекта "+ОбъектПодключения+" !") ;
			Сообщить( ОписаниеОшибки()  ) ;
		КонецПопытки;

		
		ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения);
					
		//#Если Клиент Тогда
		//Состояние("Соединение установлено");
		//#КонецЕсли		
			
	Исключение
		
		СтрокаСообщенияОбОшибке = "При попытке соедиения с COM-сервером произошла следующая ошибка:" + Символы.ПС 
						+ ОписаниеОшибки();
		//#Если Клиент Тогда
			Сообщить(СтрокаСообщенияОбОшибке, СтатусСообщения.Важное);
			//Состояние("Соединение установить не удалось");
			//Состояние();
		//#КонецЕсли
							
		Возврат Неопределено;
		
	КонецПопытки;
	
	Возврат ТекCOMОбъект;
	
Показать
27. Doreng 28 13.08.18 12:01 Сейчас в теме
(25)Круто :-)
Попробуйте так
СоединениеСБазой = Новый COMObject("V83.COMConnector");
ПараметрыДоступа = "Srvr="+ Объект.Сервер +";Ref=" + Объект.База +";Usr=" + Объект.Пользователь + ";Pwd=" + Объект.Пароль +";";// если серверный
ПараметрыДоступа = "File=""E:\users\InfoBase"";Usr=" + Объект.Пользователь + ";Pwd=" + Объект.Пароль +";"; // если файловый
Попытка
База = СоединениеСБазой.Connect(ПараметрыДоступа);
Возврат База;
Исключение
Сообщить(ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
Показать



(25)
//"V8" или "V81"
ОбъектПодключения = СтруктураПодключения.ВерсияПлатформы;

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

Может ошибка тут
28. IrinaBasova 13.08.18 12:05 Сейчас в теме
(27)все работает на файловом варианте, на моем компе
29. Doreng 28 13.08.18 12:07 Сейчас в теме
(28)Что то я запутался, не работает на сервере? и на сервере Вы все проверили и зарегистрировали как на своем компе?
30. IrinaBasova 13.08.18 12:08 Сейчас в теме
31. Doreng 28 13.08.18 12:12 Сейчас в теме
(30)Попробуйте мой код из (27), если не поможет еще раз проверяйте настройки com на сервере, не забывайте , что подключение обрабатывается на сервере и в случае с локальной базой, локальный комп и есть сервер.
26. Aitbay 13.08.18 11:58 Сейчас в теме
сначала запускаем командную строку от администратора
пишем regsvr32 comcntr.dll -u
потом
cd c:\windows\SysWOW64\
regsvr32 c:\progra~2\1cv8\номерПлатформы\bin\comcntr.dll
если платформа 64битная тогда
regsvr32 c:\progra~1\1cv8\номерПлатформы\bin\comcntr.dll
VyacheslavShilov; SoLRoN; +2 Ответить
32. uri1978 137 13.08.18 17:46 Сейчас в теме
Немного не тот случай, но можете глянуть мою тему одним глазком. Тоже в свое время мучился почему не подключается по COM, а вдруг.
https://forum.infostart.ru/forum9/topic115602/#message1197631
33. dj_tol 104 14.08.18 09:56 Сейчас в теме
Должно быть все просто главное соблюдать правила:
1.Версия платформ должна совпадать
2.Если 1С сервер на виртуальной машине. Одна база локально вторая на сервере, то перенести локальную базу на сервер.
3.Проверить разрядность 1С Предприятия.
4.Не использовать БЕТА версии платформ. На мой взгляд отлично работают с СОМ 8.3.10.2772 на сервере и локально 64 бит и 32 бит.
34. Vitaly1C8 14.08.18 10:35 Сейчас в теме
Смутно помню детали но ... На сервере при инсталляции платформы нужно установить "какую-то галочку" для COM коннектора. Если её не поставили при инсталляции, ничего не получится;
35. IrinaBasova 14.08.18 19:48 Сейчас в теме
(34)даже если вручную зарегистрировал библиотеки?
36. SoLRoN 15.08.18 11:38 Сейчас в теме
(35) вам правильно ответил (26), даже если библиотеки зарегистрировали вручную - они должны по битности соответствовать платформе, иначе платформа даже зареганные вручную использовать не будет. Регистрация х32 и х64 происходит немного по-разному (пути разные).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот