Как исправить ошибку подключения к удаленному SQL Server из 1С

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

При попытке подключения к внешней базе данных MS SQL из 1С через COMОбъект нередко возникают ошибки, связанные с сетевым взаимодействием. Ошибки вида [DBNETLIB]Недопустимое соединение или SQL Server не существует, или доступ запрещен указывают на то, что клиентская машина не может установить соединение с сервером базы данных. Давайте разберем, как последовательно диагностировать и устранить эту проблему.

Шаг 1. Проверка доступности подключения через UDL-файл

Прежде чем отлаживать программный код на встроенном языке 1С, необходимо исключить проблемы на уровне операционной системы и драйверов. Для этого используем UDL-файл (Universal Data Link).

  1. Создайте на рабочем столе текстовый документ.
  2. Переименуйте файл, изменив его расширение с .txt на .udl.
  3. Запустите получившийся файл двойным кликом. Откроется окно настройки канала передачи данных.
  4. На вкладке «Поставщик» выберите Microsoft OLE DB Provider for SQL Server.
  5. На вкладке «Подключение» укажите имя сервера, учетные данные и базу данных.
  6. Нажмите кнопку «Проверить подключение».

Если проверка не проходит здесь, значит, проблема точно не в 1С, а в сетевых настройках или правах доступа к самому серверу SQL.

Шаг 2. Настройка удаленного доступа на стороне SQL Server

Часто проблема заключается в том, что на сервере, особенно если это версия SQL Server Express, удаленные подключения заблокированы по умолчанию. Для их активации выполним следующие действия:

  1. Откройте SQL Server Configuration Manager (Диспетчер конфигурации SQL Server).
  2. Перейдите в раздел SQL Server Network Configuration (Сетевая конфигурация SQL Server).
  3. Выберите Protocols for [ИмяЭкземпляра].
  4. Убедитесь, что протоколы TCP/IP и Named Pipes включены (состояние Enabled). Если они отключены, нажмите правой кнопкой мыши и выберите «Включить».
  5. После изменения настроек протоколов обязательно перезапустите службу SQL Server в разделе SQL Server Services.

Шаг 3. Настройка сетевого порта

Если вы используете именованный экземпляр SQL Server, необходимо убедиться, что служба SQL Server Browser запущена. Она отвечает за перенаправление клиентских запросов к нужному порту. Также стоит проверить настройки TCP/IP:

Шаг 4. Анализ программного кода в 1С

Если сетевые настройки проверены и доступ разрешен, вернемся к коду. Рассмотрим пример правильной инициализации подключения через ADODB.Connection.


// Подключение к SQL-серверу через ADODB
Попытка
    Соединение = Новый COMОбъект("ADODB.Connection");
    
    // Формируем строку соединения
    // Используем запятую перед портом, если он нестандартный
    СтрокаСоединения = "driver={SQL Server};" +
                       "server=" + ИмяСервераSQL + ",1433;" +
                       "uid=" + ПользовательSQL + ";" +
                       "pwd=" + ПарольSQL + ";" +
                       "database=" + БазаДанныхSQL + ";";
    
    Соединение.ConnectionTimeout = 30;
    Соединение.CommandTimeout = 600;
    Соединение.Open(СтрокаСоединения);
    
    Сообщить("Успешное подключение!");
Исключение
    Сообщить("Ошибка подключения: " + ОписаниеОшибки());
КонецПопытки;

Шаг 5. Проверка прав пользователя

Если подключение проходит, но при попытке обращения к данным возникают ошибки, проверьте права пользователя в SQL Server Management Studio. Роль public позволяет подключиться к экземпляру, но для чтения конкретных таблиц пользователю могут потребоваться дополнительные разрешения (например, db_datareader).

Попробуйте выполнить вход в SQL Server Management Studio под теми же учетными данными, которые вы используете в 1С. Если вы не можете войти в систему даже через стандартную консоль управления SQL, значит, проблема в логине или пароле, а не в коде 1С.

Использование Внешних источников данных (ВИД) в 1С является более предпочтительным методом интеграции, так как этот механизм работает на уровне платформы и обеспечивает более прозрачное управление метаданными. После того как вы добьетесь успешного соединения через COMОбъект, рекомендуем перенести настройки в ВИД для стабильной работы в режиме предприятия.

← На главную