При развертывании баз данных 1С:Предприятие 7.7 на серверах под управлением MS SQL Server 2008 R2 часто возникает ситуация, когда локально на сервере информационная база открывается без сбоев, но при попытке подключиться с клиентских компьютеров по локальной сети система выдает ошибки соединения. Разберем детально причины такого поведения и пошагово настроим корректное сетевое взаимодействие между клиентами 1С 7.7 и сервером СУБД.
Проблема кроется в сочетании сетевых параметров разрешения имен, устаревших механизмов работы платформы 1С 7.7 и встроенных ограничений проверки версий СУБД. Рассмотрим основные факторы, препятствующие нормальному соединению:
SQL Server (sqlsrv32.dll), который при передаче сетевых запросов строго опирается на сопоставление NetBIOS- или DNS-имени сервера баз данных с его реальным IP-адресом. Если локальный DNS-сервер не может разрешить короткое имя сервера, подключение завершается ошибкой тайм-аута.BkEnd.dll реализована проверка ответа команды SELECT @@VERSION. При подключении к MS SQL Server 2005, 2008 и новее платформа выдает критическую ошибку «Для работы с базой данных требуется MS SQL Server 6.5 + Service Pack 5а или более старшая версия» даже при успешном сетевом рукопожатии.Выясним причину первой ошибки: когда клиент 1С обращается к серверу по имени, он не находит соответствующий IP-адрес. Решим эту задачу двумя путями.
Вариант 1. Локальная правка файла hosts (для отдельных компьютеров):
C:\Windows\System32\drivers\etc\hosts (обратите внимание, что файл не имеет расширения).Например, если сервер имеет адрес 192.168.3.25, а его имя в сети — srv-1c7, строка будет выглядеть так:
192.168.3.25 srv-1c7
Вариант 2. Централизованная настройка на DNS-сервере (рекомендуемый способ):
Чтобы не редактировать файл hosts вручную на каждом клиентском компьютере, добавим на корпоративном DNS-сервере запись типа A или псевдоним CNAME, который свяжет имя сервера баз данных с его статическим IP-адресом.
Проверим параметры самого экземпляра SQL Server, чтобы убедиться, что удаленные сеансы разрешены на уровне СУБД:
После того как сетевой доступ настроен и платформа смогла достучаться до сервера баз данных, возникает следующая ошибка — несовместимость версии MS SQL Server 2008 R2 с проверкой внутри 1С 7.7.
Для устранения этой проблемы необходимо адаптировать файл BkEnd.dll, расположенный в каталоге установки платформы (по умолчанию C:\Program Files (x86)\1Cv77\BIN\BkEnd.dll):
BkEnd.dll.SELECT @@VERSION.BkEnd.dll в папку BIN на клиентском компьютере и на сервере.Разберем дополнительные параметры, гарантирующие стабильное подключение 1С 7.7 по протоколу TCP/IP:
C:\Windows\SysWOW64\cliconfg.exe. На вкладке Псевдоним (Alias) создадим алиас с именем сервера, выберем протокол TCP/IP, укажем IP-адрес сервера и снимем галочку динамического порта, явно указав порт 1433.SQL Server Browser запущена, а в брандмауэре Windows на сервере открыты входящие порты: TCP 1433 для самого SQL Server и UDP 1434 для SQL Server Browser.1Cv7.MD, USRDEF\users.usr), сетевая папка с информационной базой должна быть открыта с полными правами (NTFS и общий доступ SMB) для всех работающих пользователей.После выполнения указанных шагов сетевое подключение 1С:Предприятие 7.7 к базе данных на MS SQL Server 2008 R2 будет полностью восстановлено.