Как настроить работу 1С:Предприятие с MS SQL Server 2022 и решить проблему отсутствующего Native Client?

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

С выходом MS SQL Server 2022 многие системные администраторы и разработчики столкнулись с серьезным препятствием: Microsoft официально прекратила поддержку и удалила из дистрибутива SQL Server Native Client (SNAC). Поскольку платформа 1С:Предприятие исторически полагалась именно на этот драйвер для взаимодействия с базами данных, стандартная попытка подключения к новому SQL-серверу часто заканчивается ошибкой. В данной статье мы подробно разберем, как «подружить» эти системы, рассмотрим официальные способы решения и обходные пути для старых версий платформы.

Анализ проблемы: почему 1С не видит SQL Server 2022

Проанализируем ситуацию: при установке MS SQL 2022 компонента sqlncli больше не устанавливается автоматически. Платформа 1С (особенно версий до 8.3.22.1921 и 8.3.23.1688) при попытке создания информационной базы ищет именно этот драйвер. Если он не найден в системе, консоль администрирования выдает ошибку соединения. Выясним причину: Microsoft переходит на новый стандарт — Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL), а старый Native Client объявлен устаревшим (deprecated).

Рассмотрим два основных сценария решения: обновление платформы до актуальных версий с нативной поддержкой новых драйверов и настройка «костылей» через алиасы для тех, кто вынужден оставаться на более ранних релизах 1С. Для глубокой диагностики на любом этапе может понадобиться перенос логов технологического журнала в ClickHouse — есть готовая выгрузка технологического журнала 1С в ClickHouse.

Решение 1: Использование актуальных версий платформы (Официальный путь)

Первым делом проанализируем версию вашей платформы. Компания «1С» оперативно выпустила обновления, которые позволяют работать с SQL 2022 напрямую через современный драйвер MSOLEDBSQL. Официальная поддержка реализована в следующих сборках:

Если вы используете эти версии, алгоритм действий будет следующим:

  1. Установим на сервер 1С (именно на сервер, где работает служба кластера) драйвер Microsoft OLE DB Driver for SQL Server версии 18.x или 19.x.
  2. Обратим внимание на важный нюанс 19-й версии драйвера: в ней по умолчанию включено принудительное шифрование. Если у вас нет валидного SSL-сертификата на SQL-сервере, 1С не сможет подключиться. Чтобы обойти это, в настройках соединения необходимо будет указать доверие к сертификату сервера (Trust Server Certificate).
  3. В консоли администрирования 1С при создании базы указываем тип СУБД "Microsoft SQL Server" (поможет удобная консоль администрирования сеансов и баз 1С). Новые версии платформы сами распознают установленный MSOLEDBSQL и используют его.

Решение 2: Настройка алиаса через cliconfg (для старых версий платформы)

Если обновление платформы по каким-то причинам невозможно (например, конфигурация жестко привязана к конкретному релизу), разберем способ с использованием SQL Server Native Client 11 и механизма алиасов. Этот метод позволяет обмануть платформу, заставив ее думать, что она подключается к привычному серверу через стандартный драйвер.

Рассмотрим пошагово процесс настройки алиаса через утилиту cliconfg.exe:

  1. Скачаем и установим SQL Server Native Client 11 вручную. Его можно найти в составе дистрибутивов SQL Server 2012 или скачать как отдельный Feature Pack с сайта Microsoft (если ссылки еще доступны) или из архивов.
  2. Запустим утилиту настройки сетевого клиента SQL Server. Внимание: на 64-битной системе нужно настроить обе версии утилиты:
    • Для 64-битных приложений: C:\Windows\System32\cliconfg.exe
    • Для 32-битных приложений: C:\Windows\SysWOW64\cliconfg.exe
  3. В открывшемся окне перейдем на вкладку "Alias" (Псевдоним) и нажмем "Add" (Добавить).
  4. Выберем сетевой протокол Named Pipes (Именованные каналы). Это часто оказывается надежнее для локальных соединений в обход проблем с портами.
  5. В поле "Server alias" введем произвольное имя, например SQL2022_1C.
  6. В поле "Pipe name" укажем полный путь к инстансу. Посмотрим на пример правильного заполнения для именованного экземпляра:
    
    \\.\pipe\MSSQL$ИМЯ_ИНСТАНСА\sql\query
    
    Если у вас дефолтный инстанс (Default Instance), путь будет выглядеть так:
    
    \\.\pipe\sql\query
    
  7. Сохраним настройки и обязательно перезапустим службу 1C:Enterprise 8.3 Server Agent.

После этого в консоли администрирования 1С в поле "Сервер баз данных" вместо реального имени сервера WINSRV\SERVER_1C укажем наш алиас — SQL2022_1C.

Тонкости использования Named Pipes и сетевых протоколов

Проанализируем ситуацию, описанную пользователями на форуме: иногда стандартный путь вида \\ИМЯ_СЕРВЕРА\pipe\... не работает, в то время как локальный путь через точку \\.\pipe\... позволяет успешно установить соединение. Это связано с тем, как операционная система разрешает пути к именованным каналам внутри локальной сессии.

Посмотрим, как проверить правильный pipe name, а также выполнить замер производительности контура 1С:

  1. Откроем SQL Server Error Log через SQL Server Management Studio (SSMS).
  2. Найдем строку, содержащую "Server local connection provider is ready to accept connection on [ \\.\pipe\MSSQL$SERVER_1C\sql\query ]".
  3. Скопируем этот адрес и вставим его в настройки алиаса cliconfg.

Особенности производительности SQL Server 2022 для задач 1С

Разберем, почему все-таки стоит переходить на SQL 2022, несмотря на сложности с драйверами. В этой версии появились механизмы, которые крайне полезны для высоконагруженных систем 1С:

1. Parameter Sensitive Plan (PSP) Optimization. Рассмотрим проблему "parameter sniffing", когда 1С отправляет запрос, SQL строит план под конкретные параметры, а для других данных этот план оказывается катастрофически медленным. В версии 2022 оптимизатор умеет хранить несколько планов для одного и того же запроса, выбирая нужный в зависимости от объема данных.

2. Улучшения TempDB. Проанализируем работу с временными таблицами, которые 1С создает в огромных количествах. В SQL 2022 минимизированы задержки при обновлении системных страниц в tempdb (latch contention), что дает прирост скорости на тяжелых операциях закрытия месяца или расчете себестоимости.

3. Query Store (Хранилище запросов). Выясним, почему это важно: теперь хранилище включено по умолчанию. Это позволяет без сторонних инструментов (вроде сервисов Гилева) видеть деградацию планов запросов 1С и проводить анализ SQL сервера глазами 1С-ника — для этого подойдёт инструмент анализа производительности СУБД и планов запросов.

Итоговые рекомендации

Подводя итог, при использовании связки 1С и MS SQL 2022 рекомендуем придерживаться следующей стратегии:

Соблюдение этих инструкций, а также правильная настройка регламентных операций MS SQL, позволит вам успешно эксплуатировать современную СУБД в связке с экосистемой 1С, обеспечивая стабильность и высокую производительность системы.

← На главную