При развертывании клиент-серверного варианта работы 1С:Предприятие начинающие специалисты часто сталкиваются с тем, что платформа не может «увидеть» сервер баз данных. Особенно часто это происходит при использовании бесплатной версии MS SQL Server Express. В этой статье мы подробно разберем, почему возникает ошибка «Сервер баз данных не обнаружен», и пошагово пройдем процесс правильной настройки связки 1С и SQL.
Основная причина, по которой 1С выдает ошибку при указании адреса localhost, заключается в архитектуре установки MS SQL Server. В отличие от полнофункциональных версий, редакция Express при установке почти всегда создает так называемый «именованный экземпляр» (Named Instance). По умолчанию он называется SQLEXPRESS.
Проанализируем ситуацию: стандартный экземпляр MS SQL Server слушает входящие соединения на TCP-порту 1433. Именованные же экземпляры по умолчанию используют динамические порты. Это означает, что при каждом перезапуске службы SQL-сервер может занимать новый порт (например, 57951, как в рассматриваемом примере). Платформа 1С, пытаясь подключиться просто по адресу localhost, ищет сервер на стандартном порту 1433 и, не находя его, возвращает ошибку.
Самый простой и быстрый способ решить проблему — указать платформе точный путь к экземпляру базы данных. Вместо простого сетевого имени сервера или IP-адреса, необходимо использовать формат ИмяСервера\ИмяЭкземпляра.
Рассмотрим, как это выглядит на практике при создании информационной базы:
LOCALHOST\SQLEXPRESS (или ИмяВашегоПК\SQLEXPRESS).sa (системный администратор SQL) и его корректный пароль.Важно: Если 1С и SQL Server находятся на одном физическом сервере, использование localhost допустимо, но при условии указания правильного экземпляра.
Даже если имя указано верно, подключение может блокироваться настройками самого SQL Server. Разберем по шагам, что нужно включить в SQL Server Configuration Manager:
SQL Server Network Configuration -> Protocols for SQLEXPRESS.SQL Server Services и найдите службу SQL Server Browser.SQLEXPRESS. Установите тип запуска Automatic и запустите службу.После включения протокола TCP/IP обязательно перезапустите основную службу SQL Server (MSSQL$SQLEXPRESS), чтобы изменения вступили в силу.
Для более стабильной работы в корпоративной среде администраторы часто отказываются от динамических портов в пользу статического порта 1433. Это избавляет от необходимости держать запущенной службу Browser и упрощает настройку брандмауэра.
Выясним, как это настроить:
TCP Dynamic Ports (удалите даже «0»).TCP Port введите значение 1433.Теперь ваш SQL Express будет доступен просто по имени сервера (или IP), как если бы это была Full-версия.
Часто проблема кроется не в сетевой доступности, а в правах доступа. 1С требует возможности создавать базы данных и управлять ими. Проанализируем настройки безопасности в SQL Server Management Studio (SSMS):
Во-первых, проверьте режим проверки подлинности. Нажмите правой кнопкой на корень сервера в SSMS -> Properties -> Security. Должен быть выбран режим SQL Server and Windows Authentication mode (так называемый Mixed Mode). Если вы изменили этот параметр, потребуется перезапуск службы SQL.
Во-вторых, убедитесь, что учетная запись sa активна:
-- Пример SQL-запроса для проверки и включения пользователя sa
ALTER LOGIN sa ENABLE;
GO
ALTER LOGIN sa WITH PASSWORD = 'ВашСложныйПароль';
GO
Если вы создаете базу не под sa, а под другим пользователем, у него должна быть роль dbcreator или sysadmin на уровне сервера.
Одной из скрытых проблем при установке SQL Server для 1С является неправильный выбор Collation. Если при инсталляции вы оставили английский язык по умолчанию (SQL_Latin1_General_CP1_CI_AS), 1С может работать некорректно или выдавать ошибки при попытке создать базу.
Для корректной работы с кириллицей платформа 1С требует кодировку Cyrillic_General_CI_AS. Проверить текущую настройку можно командой:
SELECT SERVERPROPERTY('Collation');
Если кодировка отличается, наиболее надежным способом будет переустановка SQL Server с правильным выбором региональных настроек, так как изменение Collation на живом сервере — процедура крайне трудоемкая и рискованная.
Если база все еще не создается, выполним диагностику портов. Откройте командную строку от имени администратора и введите:
netstat -ano | findstr :1433
Если команда ничего не возвращает, значит сервер не слушает стандартный порт. Если же вы используете динамический порт, проверьте его наличие в списке LISTENING. Также полезно проверить доступность порта с помощью команды PowerShell:
Test-NetConnection -ComputerName localhost -Port 1433
Эта проверка позволит точно понять, блокирует ли соединение брандмауэр Windows или проблема в настройках самой СУБД.
Мы рассмотрели основные причины ошибки «Сервер баз данных не обнаружен». В большинстве случаев для версии Express достаточно указать путь ИмяСервера\SQLEXPRESS и убедиться, что служба SQL Server Browser запущена, а протокол TCP/IP включен. Соблюдение этих простых правил обеспечит надежную связь между сервером приложений 1С и базой данных SQL. Для комплексной проверки параметров созданной базы и конфигурации СУБД под требования платформы можно использовать обработку для чек-апа настроек СУБД под 1С.