Добрый день, всем.
Буду признателен за советы, мысли, как решить неожиданно возникшую проблему с 1С 8.3. Имеем 1С 8.3.5.15.17, через MSSQL2008, MSOffice 2007. Всё лицензионное.
Недавно перешли с 8.2 на 8.3 . До переход использовалась специальная процедура: записать в file MSAccess2007 некоторую информацию, выглядело это так:
1C | ||
|
И всё работало на ура без всяких проблем.
После перехода на 8.3 столкнулся с проблемою, что Open не даёт соединения — просто упорно выдаёт ошибку.
Ошибка подключения к Access: {ОбщийМодуль.АС_ОСЧ.Модуль(212)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Access Database Engine): ‘E:MyDBMyFile.accDB’ is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Ошибки на создания ComObject нет. Появляется на любой машине с любыми правами.
Естественно (для тестов) диск Е взят локальный (не сетевой) к базе вообще (MyFile.accDB) вообще никто не подключен; запускается от имени администратора — т.е. все полные права. Если взять запустить через WIndows->RUN «E:MyDBMyFile.accDB», то всё открывается, всё видно. Для тестов вообщен сделал E:MyDBMyFile.accDB как простой file без каких-либо ограничений.
Пробовал совершенно разные варианты команды «СтрокаПодключения» в различных исполнениях — ничего, всё в одном и том же: не открвает accDB никак.
Пробовал установить с Microsoft’а «AccessDatabaseEngine» — не помогает.
Самое интересное… При этом код
1C | ||
|
работает успешно.
Большое спасибо за комментарии.
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Ранее работало, что-то изменилось в компе, уже не припомню .. Что пробовал:
1. разные строки подключения —
Connection = Новый COMОбъект(«ADODB.Connection»);
СтрокаПодключения = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source = » + Файл +
«; Extended Properties = «»Excel $ver$.0;HDR=YES;IMEX=1″»;»;
СтрокаПодключения12 = «Provider=Microsoft.Jet.OLEDB.4.0; Data Source = » + Файл +
«; Extended Properties=»»Excel 12.0 Xml;HDR=YES;IMEX=1″»;»;
СтрокаПодключенияACE = «Provider=Microsoft.ACE.OLEDB.12.0;Data Source= » + Файл +
«;Extended Properties=»»Excel 12.0;HDR=YES;IMEX=1;»»»;
Попытка
Connection.Open(СтрокаПодключения12);
Исключение
Попытка
Connection.Open(СтрокаПодключенияACE);
Исключение
Для Версия = 8 По 16 Цикл
//подключение к источнику данных
ТекСтрокаПодключения = СтрЗаменить(СтрокаПодключения, «$ver$», Строка(Версия));
Попытка
Connection.Open(ТекСтрокаПодключения);
Исключение
ОписаниеОшибки = ОписаниеОшибки();
КонецПопытки;
КонецЦикла;
КонецПопытки;
КонецПопытки;
2. переустанавливал OFFICE 32/64 бит
что за «Не удается найти указанный поставщик. Вероятно, он установлен неправильно.» ???
- Remove From My Forums
-
Вопрос
-
Доброго времени суток!
Ситуация следующая. Имеем MS Server 2008 Standart x64 SP1, MS SQL 2008 Standart x64 SP3, 1С предприятие 8.2.14.540 x64 (клиент серверный вариант). Сервер в домен не входит.
Соответственно в 1с идет загрузка накладных из файла xls. На сервере установлен MS Office 2010 x64. Ошибка идет при загрузке excel файла «Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанного
поставщика. Вероятно, он установлен неправильно.»В логах винды ошибок нет. Делал настройку dcomcnfg, чтобы пользователь usr1cv82, под которым запускается «Агент сервера 1с», имел доступ к com объектам. Также его добавил в группу Пользователи DCOM. Причем для тестирования то же самое делал на Server 2008 Standart
R2 SP1 — там все работало.-
Перемещено
20 апреля 2012 г. 9:34
merge forums (От:Windows Server 2008)
-
Перемещено
Ответы
-
-
Помечено в качестве ответа
Yuriy Lenchenkov
27 февраля 2012 г. 12:54
-
Помечено в качестве ответа
-
Спасибо за ответ, но самое интересное, что у меня получилась загрузка на windows 2008 r2 (и sql 2008r2). И еще я заметил, что в dcomcnfg
на 2008 Standart x64 в Настройках DCOM нет пункта Приложение Excel, а в R2 есть….-
Помечено в качестве ответа
Yuriy Lenchenkov
27 февраля 2012 г. 12:54
-
Помечено в качестве ответа
-
Доброго времени суток!
Пытаюсь подключиться к БД oracle:
СтрокаПодключения = "Driver=OraClient11g_home1_32bit;Server=Serv;DataBase=DEMO;Uid=usr;Password=pass;"; Connection = Новый COMОбъект("ADODB.Connection"); Попытка Connection.Open(СтрокаПодключения); Сообщить("Подключился"); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки;
Получаю ошибку:
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.901
- Симпатии:
- 1.035
- Баллы:
- 204
-
stringConnect1 = "Provider=OraOLEDB.Oracle;Data Source=NameBD;User Id=usr;Password=123;";
Ту же ошибку выдает.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.901
- Симпатии:
- 1.035
- Баллы:
- 204
NameBD — это у вас что?
Нужно название в файле TNSnames.ora -
Имя моей БД. А что должно быть?
Вот в файле как:
CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = NameBD)
— Объединение сообщений, 24 мар 2017 —
Правда теперь изменилась ошибка:
{ВнешняяОбработка.Загрузка.Форма.Форма.Форма(392)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Provider cannot be found. It may not be properly installed.
-
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.901
- Симпатии:
- 1.035
- Баллы:
- 204
В файле все остальное прописано: IP адрес, порт, имя базы?
Провайдер именно так называется в списке провайдеров: OraClient11g_home1_32bit?
Переменные окружения настраивали?
-
Дело в том, что мне всё настраивал админ.
Но точно знаю, в файле всё прописано, я посмотрел. Более того мы, успешно, подключались через командную строку. И в списках(клиента) есть все нужные мне БД, в том числе и так к которой я пытаюсь подключиться. Про провайдера затрудняюсь ответить. После того как админ мне клиента поставил я посмотрел в некий файл:
Но если создать текстовый файл udl.ПолучимПричём, если кликнуть первый или третий, то выскакивает ошибка, поставщики более не доступны
— Объединение сообщений, 24 мар 2017 —
Но я так понимаю, если я конечно правильно понимаю. В моём первом варианте я использовал не провайдера, а драйвер:
СтрокаПодключения = "Driver=OraClient11g_home1_32bit;Server=Serv;DataBase=DEMO;Uid=usr;Password=pass;";
А во втором как раз через провайдера:
stringConnect1 = "Provider=OraOLEDB.Oracle;Data Source=NameBD;User Id=usr;Password=123;";
-
Offline
TrasserZero
Опытный в 1С- Регистрация:
- 26 окт 2016
- Сообщения:
- 69
- Симпатии:
- 4
- Баллы:
- 29
должен стоять провайдер (оракл-клиент). его можно тупо скопировать в любую папку. скачать можно на сайте оракла. Далее идем в системные переменные среды и там рисуем следующее (корректируя пути, ессно):
LD_LIBRARY_PATH=C:instantclient_11_2
ORACLE_HOME=C:instantclient_11_2
SQL_PATH=C:instantclient_11_2
TNS_ADMIN=C:instantclient_11_2networkadmin
Path=;C:instantclient_11_2
NLS_LANG= american_america.cl8mswin1251на стороне базы должен быть настрое листенер (прослушивальщик). ннада знать айпишник сервака и порт (по дефолту 1521). Пихаем эти знания в tnsnames.ora в таком примерно виде:
имя =
(DESCRIPTION =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = хх.хх.х.ххх)
(PORT = 1521)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = имя)
)
)как-то так..
-
Вот всё выше перечисленное мне админ и делал.( -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.901
- Симпатии:
- 1.035
- Баллы:
- 204
Переменных сред достаточно:
ORACLE_HOME=C:instantclient_11_2
NLS_LANG= RUSSIAN_CIS.CL8MSWIN1251Судя по скриншоту со списком установленных ODBC драйверов, нужного нет.
Строка соединения:
100% рабочая при условии корректности остальных настроек.
Список драйверов ODBC при этом:
-
Offline
nickpugachev
Профессионал в 1С
Команда форума- Регистрация:
- 28 май 2012
- Сообщения:
- 3.398
- Симпатии:
- 156
- Баллы:
- 104
вот такое работает у нас
DRIVER={Oracle in OraClient11g_home1};UID=***;PWD=***;DBQ=dbserver.dns.name:1530/DATABASE.dns.nameэто прямое подключение к конкретному серверу
Клиент оракла нужен той же разрядности что и сервер
-
И снова, доброго времени суток, коллеги!
И так. Администратор БД, мне сказал, что технология ODBC надежная, но старая и через неё подключаться не айс. Надо подключаться через Ole провайдера.
Моя ошибка, что я настраивал провайдеров, драйвера и клиента для Оракла, на машине, где стоит клиент, а директива была &НаСервере. Т.е. всё это надо было поставить на сервер 1С-ки. Что я и сделал. И ура! У меня появился Ole провайдер Оракла:Дальше, добавляем среду «ORACLE_HOME=путь к клиенту» делаем тест:
Видим, что тест «Ok». Значит делаем вывод, что на сервере все установлено и настроено верно.
Строка соединения:
stringConnect1 = "Provider=OraOLEDB.Oracle;Data Source=DEMO;User Id=login;Password=123;";
И в результате всё равно получаем ошибку:
P.S.
Статья которая мне помогла:
http://info-comp.ru/sisadminst/551-linked-server-oracle-in-ms-sql-server.html
Может кому пригодится -
Через отладчик посмотрел, что строка коннекта какая-то лажа. Делаю так:
Connection = Новый COMОбъект("ADODB.Connection"); Connection.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=DEMO;User Id=login;Password=123;";
Т.е. задаю напрямую значение ConnectionString, но в отладчике вижу что ConnectionString =
Почему провайдер подставляется другой?— Объединение сообщений, 29 мар 2017 —
Если явно указать:
Connection.Provider ="OraOLEDB.Oracle";
Получаю ошибку:
Последнее редактирование: 29 мар 2017 -
Offline
nomad_irk
Гуру в 1С- Регистрация:
- 20 окт 2008
- Сообщения:
- 9.901
- Симпатии:
- 1.035
- Баллы:
- 204
Вам уже 2 человека написали 100% рабочие строки соединения, которые работают годами, но вы дальше можете экспериментировать…..
-
Если бы эти строки работали, то я бы наверное не писал бы и не экспериментировал.
Плюс ко всему я уже писал выше, что админ «КРАЙНЕ» не рекомендует подключаться через ODBC, т.е. как раз через драйвер никак. -
Ура заработало!!! Всё было элементарно: надо было не так:
Connection.Open(ConnectString);
а вот так:
Connection.ConnectionString = stringConnect1; Connection.Open();
Чёрт. Наврал и первый вариант работает, ошибка валится если идти пошагово, в отладчике. Почему так я не знаю.
Последнее редактирование: 29 мар 2017 -
Offline
nickpugachev
Профессионал в 1С
Команда форума- Регистрация:
- 28 май 2012
- Сообщения:
- 3.398
- Симпатии:
- 156
- Баллы:
- 104
Посоветуйте админу почитать сайт микрософта
Они таки решили уходить от OLEDB
Либо odbc как универсальная технология доступа и для windows и для linux, либо native библиотеки, что для 1С никакНа самом деле без разницы как вы будете подключаться, через OLEDB или через ODBC, вы получите одни и те же библиотеки доступа к Oracle, просто через разные прокладки.
-
Я не думаю, что мне стоит что-то советовать админу. Тем более что после его прихода, в эту компанию, 1С стала хоть более менее нормально работать.
Человек уже много лет работает админом БД, причём разных и Oracle и MSSQL и др.
Этот человек оптимизировал работу MSSQL серверов, с БД в довольно больших объемов, а значит я ему склонен доверять.
Потом, в работе админов, не мне им советовать что и как дело и что читать.
mov68 |
|
||
---|---|---|---|
|
Есть файл для загрузки Excel 2007: |
Yandex |
|
||
---|---|---|---|
|
E_Migachev |
|
||
---|---|---|---|
|
1. Не совсем понятен вопрос!? что значит — описанные на сервере методы работы с Exсel?
2. объект всегда один: Код 1C v 8.х
|
mov68 |
|
||
---|---|---|---|
|
Да, именно так Exсel и открывают, если на компе 2 версии Exсel, какая откроется? как задать чтобы открылась нужная? |
mov68 |
|
||
---|---|---|---|
|
Например работа через ADO DB, взятая с этого сервера прекрасно работает с 2003 версией и не работает с 2007, сейчас разбираюсь… |
E_Migachev |
|
||
---|---|---|---|
|
(2) никак, объект Excel.Application — одни, от последней устатовки |
mov68 |
|
||
---|---|---|---|
|
Код 1C v 8.х
влетает с 2007 в исключение с ошибкой: С форматом 2003-го все нормально грузится |
mov68 |
|
||
---|---|---|---|
|
Должны быть другие реквизиты для 2007 в строке подключения? обшариваю иннет, пока не нашел. |
E_Migachev |
|
||
---|---|---|---|
|
(5) При использовании Office 2007 необходимо заменить в примере следующую строку кода: |
mov68 |
|
||
---|---|---|---|
|
А Extended Properties оставляем Excel 8.0? |
E_Migachev |
|
||
---|---|---|---|
|
(8) тоже меняется на: |
E_Migachev |
|
||
---|---|---|---|
|
Код 1C v 8.х
|
mov68 |
|
||
---|---|---|---|
|
СПАСИБО, сработало, и как ни странно даже при Extended Properties=Excel 8.0
Вопрос закрыт. Еще раз спасибо. |
E_Migachev |
|
||
---|---|---|---|
|
|
andogskiy |
|
||
---|---|---|---|
|
А для серверного варианта базы на управляемых формах не подскажете код? |
DJ_Serega |
|
||
---|---|---|---|
|
а я подключаю Excel вот таким образом:Код 1C v 8.х
|
Подсказка: Для редактирования своего ответа щелкните по значку |