gifts2017

Установка Oracle OLE DB Provider 32 бит в Win Server 2012 для работы с 1С:8

Опубликовал Александр Биттиров (alex_bitti) в раздел Администрирование - Системное

В статье приводится описание установки драйвера Oracle OLE DB(OraOLEDB11.dll) для подключения к базе из 1С8.

Идея написать краткую статью про установку драйвера на данном ресурсе возникла после того, как, столкнувшись с необходимостью подобной установки, не нашел четкого описания возможных проблем при установке ни на профильных сайтах по базам данных, ни на 1С-ных. Я специализируюсь на 1С и, при наличии базовых знаний по администрированию, оказался в сложной жизненной ситуации, решение которой обнаружилось неожиданно. Целью данной статьи ставлю сэкономить пару тройку часов жизни своим коллегам, оказавшимся также, как и я, без поддержки грамотного админа.

Итак, постановка задачи: через внешний драйвер OLE DB кодключиться к базе Oracle по ADO.  

  Соединение = Новый  COMObject("ADODB.Connection");
    СтрокаПодключения  = "Provider=OraOLEDB.Oracle.1;Password=;Persist Security Info=TRUE;User ID=;Data Source=;";    
    
    Попытка
        Соединение.Open(СтрокаПодключения);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

Данный код в 1С работает только в случае правильно установленного драйвера. В противном случе получите описание ошибки в исключении, если заранее об этом позаботитесь в коде 1С.

Я воздержусь от комментария способа распространения мировой корпорацией своих драйверов, остановлюсь лишь на том, что в итоге, распаковав архив, Вы получите папку с OraOLEDB11.dll, шаблоном ключа реестра, конфигурационным батником и еще несколькими dll, насторойками tnsnames (выкладывать здесь не буду, чтобы не нарушить ничьих авторских прав).  Далее опишу последовательность своих действий.

Настраиваю tnsnames, открыв в текстовике, громко сказано, так как нужно указать только имя экземляра (я пользуюсь неправильной терминологией из MS, что не меняет сути), протокол TCP, HOST - не обязательно по IP, в интернете все врут, достаточно доменного имени. SID -обязательно он копируется в реестр (я ничего руками в regedit не писал, на форумах адимны пишут чего-то там ручками, отчего я стараюсь воздерживаться),  копируется сам (в моем случае) при помощи запуска батника configure с ключом oledb и <мой HOME>(он же SID из tnsnames) , шаблон ключа реестра называется key.reg.

В самом конце я через regsvr32 зарегал сам OraOLEDB11.dll.

Казалось бы, о чем очерк? Не все админы знают одну особенность, и те, кто знает, часто путаются,  в частности, многие, наверно, сталкивались с "известным" багом драйверов сетевых принтеров (в частности, при печати из Толстого клиента 1С), ну это так, отступление ,и решив проблему с Oracle, для меня все открылось, хоть я никогда не испытывал тяги к подобным вещам.

Инфу нашел на оф. сайте майкрософта, кстати, делалось все на Windows Server 2012 R2. Итак, проблема того, что у меня ничего не получалось и стоило мне сна в середине ночи, крылась в том, что это драйвер 32 бит, и Толстый 1С тоже, а вот нажав WIN+R, вы откроете совсем не ту консоль, которая вам нужна, это злая 64 битная консоль, которая вносит изменения в 64 битный REGEDIT(!) шах и мат, скептики. Многие знают, что консоль 64 бита и 32 уже лет 10 как, но что REGEDIT тоже бывает двух видов, для меня было откровением, т.к. это по сути по нашему 1С-ному тоже клиент и фактически смотрит совсем не в ТОТ реестр, в который надо. Правильная наша 32 битная консоль находится C:\Windows\SysWOW64\cmd.exe, и только из нее нужно смотреть regedit, должна появиться ветка в HKEY_LOCAL_MACHINE SOFTWARE Oracle KEY <ваш ключ> (внутри всякие нужные ORACLE HOME ). 

Надеюсь, статья найдет своего читателя, потому что я всего этого собранного в одном месе не нашел. Спасибо.

p.s. Просьба хейтеров понимать разницу между флудом и рабочей заметкой человека и парохода. С уважением Иван Федорович Крузенштерн.

p.s. p.s. в 32 битной системе была возможность хитрым админам протестировать соединение через udl, локально на 32 биной винде все есть, в 2012 r2 так и не нашел, как он появляется в списке, через консольадминистрирования пробовал руками искать, но не нашел, так как для меня это было неважно, в рамках моей задачи все работало.

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Иванчура (Dmitryiv) 30.11.16 10:18
...и не только редактор реестра двухформатный. Оснстка ODBC - аналогично. Интерпретатор VBS тоже.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа