Короткий ответ
Пока клиент 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 закрыт, служба Up | firewall/протокол — удалённое подключение |
| Служба не стартует | служба не запускается |
| База Accounting Suspect | suspect |
| 18456 | логин/права, не порт |
Возможные причины
- Служба
MSSQLSERVERне запущена после патча. - TCP/IP выключен, остался Shared Memory — локально SSMS на
SQL01работает, сSRV-1Cнет. - Firewall на 1433.
- Клиент 1С ходит на
SQL01\MSSQLSERVERкак на named instance без Browser (UDP 1434), хотя это default — лучшеSQL01. - SPN не на той учётке службы — Kerberos падает, NTLM может спасти или нет в зависимости от политики.
- Служба слушает другой порт.
- Редко: IP шаблона VM сменился, клиент кэширует старый.
Диагностика
Хост SQL01, экземпляр MSSQLSERVER, база Accounting, приложение SRV-1C.
1. Служба
Get-Service MSSQLSERVER, SQLSERVERAGENT, SQLBrowser |
Format-Table Name, Status, StartTypeStopped — не крутите 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-хосты).