Modber Сообщество
профессионалов по 1С

Для доступа к базе данных требуется odbc-драйвер для ms sql server версии 3.50.0303 или старше



Платформы: 1С:Предприятие 7.7
Конфигурации: Все конфигурации
2014-06-11
6770 
di1di1di
0  
Не единожды в практике моей работы со старыми версиями 1С (как правило, это версия 7.7), на ОС Windows 7, сталкивался с проблемой следующего характера: при попытке 1С соединиться с сервером базы данных, программа выдает ошибку: «Для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше».

Стоит сразу сказать, что возникнуть такая ситуация может, только если база данных находится на SQL 2005. С версией 2008-го года все должно работать без проблем. Более глубоко локализовать ошибку я не смог – иногда одна и та же 1С-ка у меня начинала работать на компьютере, во всем повторяющая компьютер с возникающей проблемой (касательно версии ОС, СУБД и 1С).

Из своего личного опыта могу сказать, что Вам тут вряд ли помогут манипуляции с папкой  bin каталога 1С – создание файлов для отключения проверки, различного рода редактирование строчек, замена odbcbcp.dll, sqlsrv32.dll, sqlsrv32.rll на версии под ОС Windows XP. Потому, порекомендую не заморачиваться с подобного рода действиями, а попробовать выполнить проверенную и рекомендованную инструкцию.

Для этого Вам понадобится найти в сети так называемый «Секретный релиз платформы v77.27.1». Ссылку я тут приводить не буду, так как они очень быстро становятся битыми\не активными. Просто задайте в гугл одноименное название и скачайте из любого источника. Благо, их достаточно много. Далее следует установить эту платформу, и тут стоит рассказать про процесс установки поподробнее:

Во-первых, из оригинального установщика устанавливаем саму платформу.

Во-вторых, обязательно устанавливаем и настраиваем HASP-ключ.

Далее, находим оригинальный файл  BkEnd.dll, и переименовываем его в BkEnd0.dll, где 0 это ноль. В поставке находим файлы BkEnd.dll и BkEndUtls.dll и кладем их в папку нашей 1С-ки, а конкретно – в папку BIN.

Если Вы пользуетесь DBF версией базы, то инструкция не поменяется, если же SQL (с размещением в СУБД MS SQL 2005/2008), то требования для SQL-логина учетной записи 1С будут следующими: учетная запись должна обладать правами доступа не ниже db_owner, также, она должна обладать правами на VIEW SERVER STATE.

Что же такое этот «VIEW SERVER STATE»? В системе присутствует таблица под названием «sysprocesses». 1С обращается к ней с запросом на количество соединений с используемой в данный момент БД. Наличие у логина прав на VIEW SERVER STATE дают возможность увидеть ВСЕ соединения с текущей базой. В противном же случае будут видны только соединения под своей учетной записью, что является совсем верным, ведь невозможность увидеть все соединения с базой данных не дает возможность получить корректные сообщения об ошибках.

Начиная с MS SQL 2005 системная таблица «sysprocesses» помечена как устаревшая, и этот самый исправленный релиз, который мы скачали ранее, не использует ее для определения количества соединений. Потому мы и даем учетной записи права на VIEW SERVER STATE, выполняя следующий скрипт:

USE master
GO

GRANT VIEW SERVER STATE TO
GO

Больше ничего не меняем, оставляя все настройки «по умолчанию». Надеюсь, теперь у Вас все работает. Рад был помочь, удачи!



Бесплатная юридическая
консультация по телефону

8 (499) 350-80-26(Москва)
8 (812) 627-15-62(Спб)

звонок бесплатный

В центре внимания

Комментарии (0)