Короткий ответ

Пока клиент 1С на SRV-1C не устанавливает TDS-сессию к SQL01, база Accounting ни при чём. Проверьте: служба экземпляра MSSQLSERVER Running, TCP 1433 слушает, с SRV-1C Test-NetConnection SQL01 -Port 1433 успешен, в Configuration Manager включён протокол TCP/IP, для доменной учётки — SPN. Не переустанавливайте SQL и не пересоздавайте инфобазу 1С.

Ошибка 18456 — уже сеть жива, это логин. Error 40/26/53 — сеть, имя экземпляра, Browser.

Симптомы и как отличить

Типичная картина:

  • 1С: ошибка СУБД, Microsoft SQL Server Native Client / MSOLEDBSQL;
  • SSMS с вашей станции не подключается к SQL01;
  • служба Stopped или слушает только Shared Memory.

Отличия:

СимптомСлой
ragent Downкластер 1С
1433 с SRV-1C закрыт, служба Upfirewall/протокол — удалённое подключение
Служба не стартуетслужба не запускается
База Accounting Suspectsuspect
18456логин/права, не порт

Возможные причины

  1. Служба MSSQLSERVER не запущена после патча.
  2. TCP/IP выключен, остался Shared Memory — локально SSMS на SQL01 работает, с SRV-1C нет.
  3. Firewall на 1433.
  4. Клиент 1С ходит на SQL01\MSSQLSERVER как на named instance без Browser (UDP 1434), хотя это default — лучше SQL01.
  5. SPN не на той учётке службы — Kerberos падает, NTLM может спасти или нет в зависимости от политики.
  6. Служба слушает другой порт.
  7. Редко: IP шаблона VM сменился, клиент кэширует старый.

Диагностика

Хост SQL01, экземпляр MSSQLSERVER, база Accounting, приложение SRV-1C.

1. Служба

Get-Service MSSQLSERVER, SQLSERVERAGENT, SQLBrowser |
  Format-Table Name, Status, StartType

Stopped — не крутите 1С, идите в ERRORLOG: служба.

2. Порт с SRV-1C

Test-NetConnection SQL01 -Port 1433
Resolve-DnsName SQL01

На самом SQL01:

Get-NetTCPConnection -LocalPort 1433 -State Listen -ErrorAction SilentlyContinue |
  Format-Table LocalAddress, LocalPort, OwningProcess

Пусто — TCP/IP не слушает или другой порт.

3. ERRORLOG: на каком порту старт

Пути по умолчанию:

  • 2019: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG
  • 2022: C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Log\ERRORLOG

Строка вида Server is listening on [ 'any' <ipv4> 1433]. Если 1434/динамический — поправьте клиент 1С или верните 1433.

4. SPN

setspn -Q MSSQLSvc/SQL01
setspn -Q MSSQLSvc/SQL01:1433
setspn -Q MSSQLSvc/SQL01.contoso.example
setspn -Q MSSQLSvc/SQL01.contoso.example:1433

Дубли SPN на двух учётках — типичный Kerberos fail. Служба SQL должна бежать под той учёткой, на которую зарегистрирован SPN (или Local System/Network Service с корректной регистрацией компьютера).

5. Проверка логином не из 1С

С SRV-1C SSMS или sqlcmd:

sqlcmd -S SQL01 -E -Q "SELECT @@SERVERNAME, @@VERSION;"

Если sqlcmd ок, а 1С нет — строка инфобазы, драйвер, учётка 1С в SQL. Если sqlcmd тоже 40 — сеть/протокол.

Решение

Сценарий A. Служба Stopped

Старт MSSQLSERVER, если ERRORLOG не орёт на master. Иначе — статья про старт службы.

Start-Service MSSQLSERVER

Сценарий B. TCP выключен

SQL Server Configuration Manager на SQL01: Protocols for MSSQLSERVER → TCP/IP Enabled, IPAll TCP Port 1433, TCP Dynamic Ports пусто для default. Рестарт службы — окно простоя. Firewall: разрешить 1433 с SRV-1C, не «выключить firewall».

Сценарий C. SPN

Снимите дубли, зарегистрируйте SPN на учётку службы. Не раздавайте NT AUTHORITY\SYSTEM вперемешку с доменной учётой без чистки SPN.

Сценарий D. Строка в 1С

Для default instance в свойствах инфобазы: сервер СУБД SQL01, база Accounting. Лишний \MSSQLSERVER иногда ломает разрешение имени. Драйвер: тот, что поддерживает ваш SQL 2019/2022.

Контур SRV-1C → SQL01: типичные ловушки 1С

Кластер хранит параметры СУБД в свойствах инфобазы, не в ibases.v8i. После смены IP у SQL01 клиенты 1С могут «работать», пока живы старые соединения rphost, а новые сеансы падают. Перезапуск рабочих процессов кластера после правки строки СУБД — осознанное короткое окно, не kill all.

Проверьте драйвер: устаревший SQL Native Client на SRV-1C против SQL 2022 иногда даёт странные TLS/TLS1.2 ошибки, похожие на «сервер недоступен». Обновляйте провайдер по документации 1С для вашей 8.3, не «снятием галочки Encrypt» навсегда в алиасе, если политика требует шифрования: поставьте нормальный сертификат и актуальное имя хоста в SPN.

Если 1С и SQL на одном хосте, Shared Memory может маскировать выключенный TCP: локальный SSMS работает, отдельный SRV-1C (после разъезда VM) внезапно нет. Перед разъездом ролей включите TCP и проверьте TNC с другого хоста.

Алиасы cliconfg / SQL Alias на SRV-1C, указывающие на старый IP, переживают DNS. Снесите мёртвый алиас, не плодите второй SQL01 в hosts.

Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo' -ErrorAction SilentlyContinue
Get-ItemProperty 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\MSSQLServer\Client\ConnectTo' -ErrorAction SilentlyContinue

Пустые ключи — норма. Если видите SQL01=DBMSSOCN,10.x.x.x,1433 на старый адрес — вот ваш error 40 при живом DNS.

Как проверить, что проблема устранена

sqlcmd -S SQL01 -E -Q "SELECT name, state_desc FROM sys.databases WHERE name = N'Accounting';"
Test-NetConnection SQL01 -Port 1433

Тонкий клиент открывает Accounting с SRV-1C. Новый сеанс, не «старый, который ещё жил в пуле».

Если не помогло

  • Слушает только 127.0.0.1 — смотрите IP-адреса в TCP/IP properties.
  • 18452 trusted domain — 1С на SQL auth vs Windows, политика.
  • Always On / alias — другое имя слушателя, не SQL01.
  • Кластер 1С Up, SQL ок, база offline — state_desc, не порт.

Профилактика

  • Мониторинг службы и 1433 с SRV-1C.
  • Документ: порт, учётка службы, SPN.
  • Не меняйте порт в прайм без правки клиентов 1С.
  • Патч SQL отдельно от обновления конфигурации 1С.

FAQ

Ping SQL01 есть, 1С не коннектится.

Так и бывает. Смотрите 1433 и TCP/IP.

Нужен ли SQL Browser для MSSQLSERVER?

Для default на 1433 — обычно нет. Browser нужен named instances. Если включили динамический порт — либо верните 1433, либо настройте Browser и firewall UDP 1434.

Можно ли оставить только Named Pipes?

Не для SRV-1C на другом хосте. TCP/IP.

sqlcmd с SQL01 работает, с SRV-1C нет.

Классика firewall или TCP только localhost. Не переустанавливайте Native Client на SQL01 первым делом.

Нужно ли открывать 1433 бухгалтерам?

Нет. Только SRV-1C (и админские jump-хосты).