Как исправить ошибку отсутствия Microsoft SQL Server Native Client при просмотре свойств базы в консоли 1С?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При администрировании кластера серверов «1С:Предприятие 8.3» системные администраторы нередко сталкиваются с ситуацией, когда при попытке открыть свойства информационной базы или удалить её из консоли возникает ошибка: «Ошибка получения параметров информационной базы. Возможной причиной является отсутствие установленного Microsoft SQL Server Native Client». При этом сама информационная база может успешно создаваться и функционировать, а требуемый драйвер Microsoft SQL Server Native Client нужной версии уже установлен в операционной системе. Разберем причины такого поведения платформы и детальные способы устранения неполадки.

Проанализируем природу этой проблемы. В большинстве случаев текст сообщения о драйвере является ложным диагностическим сообщением оснастки управления MMC. Когда графическая консоль пытается запросить параметры базы у рабочего процесса кластера rphost или диспетчера rmngr, при отсутствии предварительно подтвержденных прав администратора конкретной базы вызов завершается сбоем. Консоль кластера перехватывает исключение и выдает стандартную заготовку о недоступности интерфейсов СУБД, маскируя отсутствие авторизации.

Решение 1. Принудительная авторизация администратора через ветку соединений

Выясним самый быстрый способ инициализировать контекст авторизации в текущей сессии консоли администрирования без перезапуска служб и переустановки драйверов. Разберем процедуру по шагам:

  1. Откроем стандартную оснастку администрирования кластера серверов «1С:Предприятие» (MMC).
  2. Перейдем по дереву консоли к нужному кластеру, раскроем список информационных баз и выберем проблемную базу.
  3. Вместо открытия контекстного меню свойств развернем саму ветку информационной базы в дереве слева и перейдем в раздел «Соединения» (или «Сеансы»).
  4. В момент обращения к списку соединений консоль принудительно выведет диалоговое окно с запросом имени и пароля администратора информационной базы. Введем учетные данные пользователя, обладающего административными правами в 1С.
  5. После успешного отображения списка сеансов или соединений вернемся к самой информационной базе и снова откроем ее свойства либо выполним операцию удаления. Дескриптор авторизации сохранится в сессии оснастки, и окно параметров откроется без ошибок.

Решение 2. Проверка соответствия разрядности клиента Native Client и службы 1С

Если принудительная авторизация не помогла, проверим разрядность установленных компонентов. Распространенная ошибка заключается в проверке битности операционной системы вместо проверки разрядности процессов сервера 1С. Рассмотрим требования соответствия:

  1. Определим разрядность службы ragent. Если на 64-битной версии Windows Server установлена 32-разрядная платформа 1С (процессы rphost.exe и ragent.exe имеют признак 32-bit), то для взаимодействия с MS SQL Server необходим именно 32-разрядный драйвер sqlncli_x86.msi.
  2. Если используется 64-разрядная служба сервера 1С, потребуется 64-разрядный пакет sqlncli_x64.msi.
  3. На серверах с 64-битной ОС рекомендуется устанавливать оба дистрибутива драйвера: сначала x86, затем x64. Это исключает конфликты при работе 32-битной консоли MMC и разнородных служебных утилит.
  4. Убедимся, что Native Client установлен именно на том сервере, где функционирует служба сервера приложений 1С. Если MS SQL Server расположен на отдельном физическом хосте, рабочие процессы 1С всё равно обращаются к СУБД через клиентские библиотеки, установленные локально на сервере 1С.

Решение 3. Проверка параметров сети и учетной записи в SQL Server

Проанализируем конфигурацию на стороне СУБД, так как сбой чтения параметров может происходить из-за блокировки учетной записи SQL, от имени которой база зарегистрирована в кластере:

  1. Запустим SQL Server Configuration Manager на сервере СУБД. В разделе SQL Server Network Configuration для рабочего экземпляра убедимся, что протоколы TCP/IP и Named Pipes находятся в состоянии Enabled.
  2. В среде SQL Server Management Studio (SSMS) откроем свойства сервера и проверим, что на вкладке Connections включен параметр Allow remote connections to this server.
  3. Проверим состояние пользователя SQL Server, указанного в параметрах базы 1С. Учетная запись не должна быть заблокирована (свойства логина, флаг Login is locked out), а срок действия пароля не должен истечь. Для корректной работы кластера учетная запись должна обладать ролью db_owner в целевой базе данных.

Решение 4. Использование утилиты командной строки rac и COM-соединения

Если графическая оснастка MMC дает сбой из-за кэша или системных ограничений, разберем альтернативные инструменты прямого взаимодействия с кластером.

Для изменения настроек и управления базами данных задействуем консольную утилиту rac, работающую через службу ras. Пример команды для получения списка и свойств баз данных с явной передачей учетных данных администратора кластера и базы:


rac infobase --cluster=cluster-id summary --cluster-user=admin --cluster-pwd=pass
rac infobase --cluster=cluster-id info --infobase=ib-id --infobase-user=admin1c --infobase-pwd=pass1c

Аналогично можно выполнить программное чтение параметров через внешнее соединение на встроенном языке с использованием объекта V83.COMConnector:


Соединитель = Новый COMОбъект("V83.COMConnector");
Агент = Соединитель.ConnectAgent("ServerName");
Кластеры = Агент.GetClusters();
Кластер = Кластеры[0];
Агент.Authenticate(Кластер, "ClusterAdmin", "ClusterPass");

Базы = Агент.GetInfoBases(Кластер);
Для Каждого ИБ Из Базы Цикл
    Если ИБ.Name = "TestBase" Тогда
        Агент.AuthenticateInfoBase(Кластер, ИБ, "Admin1C", "Pass1C");
        // Чтение параметров и управление базой
    КонецЕсли;
КонецЦикла;

Обратим внимание на современные релизы платформы «1С:Предприятие 8.3». Библиотека Native Client 11.0 объявлена Microsoft устаревшей (deprecated). В современных версиях платформы поддерживается работа через актуальные драйверы Microsoft ODBC Driver for SQL Server (версий 17 и 18), а также MSOLEDBSQL, использование которых позволяет избежать подобных проблем совместимости.

← На главную