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

В этой статье мы разберем все актуальные способы подключения 1С к SQL — от стандартных механизмов платформы до использования внешних компонент. Особое внимание уделим типичным ошибкам (например, Ошибка соединения с сервером базы данных или Не найден драйвер ODBC) и способам их устранения. Материал будет полезен как начинающим администраторам, так и опытным разработчикам, которые хотят оптимизировать существующие интеграции.

Прежде чем приступать к настройке, убедитесь, что у вас есть права доступа к SQL-серверу (MS SQL, PostgreSQL, MySQL и др.) и учетная запись в с ролью «Администратор» или «Полные права». Также проверьте версию платформы — некоторые методы работают только в 1С:Предприятие 8.3.20+.

1. Какие базы данных поддерживает 1С?

Платформа 1С:Предприятие может взаимодействовать с большинством популярных СУБД, но уровень поддержки варьируется. Официально документация описывает работу с:

  • 🔹 Microsoft SQL Server (2008 R2 и новее) — основная СУБД для файлового и клиент-серверного вариантов работы. Поддерживаются все редакции, включая Express.
  • 🔹 PostgreSQL (9.6+) — альтернатива MS SQL, часто используется в Linux-окружении. Требует установки дополнительных драйверов.
  • 🔹 IBM DB2 и Oracle Database — поддерживаются через ODBC, но с ограничениями по функционалу.
  • 🔹 MySQL/MariaDB — возможна работа через внешние компоненты или ODBC-мосты, но официальной поддержки нет.

Важно: для PostgreSQL и MySQL может потребоваться ручная настройка odbc.ini или установка специализированных драйверов (например, psqlODBC). В случае с MS SQL обычно хватает стандартных средств Windows.

📊 Какую СУБД вы используете с 1С?
MS SQL Server
PostgreSQL
Oracle
MySQL
Другая

Если вам нужно подключиться к устаревшей версии MS SQL (2005 или раньше), учтите, что платформа 1С 8.3.20+ может не поддерживать старые протоколы аутентификации. В этом случае потребуется обновление сервера или использование промежуточного слоя (например, Linked Server).

2. Способы подключения 1С к SQL

Существует три основных метода интеграции, каждый из которых имеет свои плюсы и минусы. Выбор зависит от задачи:

Метод Когда использовать Сложность настройки Ограничения
Внешние источники данных (ВИД) Для чтения/записи данных без программирования Низкая Ограниченная функциональность, нет транзакций
ADO/ODBC через встроенный язык Для гибких запросов и обработки больших объемов Средняя Требует знания SQL, возможны проблемы с кодировкой
Внешние компоненты (COM, .NET) Для сложных интеграций с высокой производительностью Высокая Необходима установка дополнительного ПО

Например, если вам нужно просто выгрузить справочник контрагентов в SQL для аналитики, хватит Внешних источников данных. А для двустороннего обмена с высокой нагрузкой лучше использовать ADO или внешнюю компоненту.

💡

Перед выбором метода проверьте, поддерживает ли ваша версия 1С нужный протокол. Например, для PostgreSQL в 8.3.18+ требуется драйвер libpq версии 12+.

3. Подключение через Внешние источники данных (пошагово)

Это самый простой способ, не требующий программирования. Подходит для одноразовых выгрузок или простых интеграций.

  1. Откройте конфигуратор 1С и перейдите в Администрирование → Внешние источники данных.

  2. Нажмите «Создать» и выберите тип подключения:

    • 🔌 ODBC — для MS SQL, MySQL, Oracle;
    • 🔌 OLE DB — для MS SQL (рекомендуется);
    • 🔌 Native Client — для PostgreSQL (требует предварительной настройки).

  • Заполните параметры соединения:

    Сервер: 192.168.1.100\SQLEXPRESS
    

    База данных: TradeDB

    Пользователь: sa

    Пароль: *

  • Протестируйте соединение кнопкой «Проверить». Если появится ошибка Не удалось подключиться к серверу, проверьте:

    • 🔍 Доступность сервера по сети (ping, telnet на порт 1433);
    • 🔍 Правильность имени экземпляра (для MS SQL);
    • 🔍 Настройки брандмауэра (разрешен ли порт 1433?).

    Установлен ли ODBC-драйвер для вашей СУБД?

    Есть ли права у пользователя на чтение/запись?

    Открыт ли порт базы данных в сетевых настройках?

    Совпадает ли разрядность 1С и драйвера (x86/x64)?-->

    После успешного подключения вы сможете создавать внешние таблицы, которые будут отображать данные из SQL как обычные справочники 1С. Например, можно связать таблицу Clients из SQL с справочником «Контрагенты».

    4. Работа с SQL через встроенный язык (ADO/ODBC)

    Для более гибкой работы используйте объекты ADODB.Connection или ODBCConnection в коде 1С. Этот метод позволяет выполнять любые SQL-запросы, включая хранимые процедуры.

    Пример кода для подключения к MS SQL:

    Перем Соединение;
    

    Процедура ПодключитьсяКSQL()

    Соединение = Новый COMОбъект("ADODB.Connection");

    СтрокиПодключения = "Provider=SQLOLEDB;Data Source=192.168.1.100\SQLEXPRESS;

    Initial Catalog=TradeDB;User ID=sa;Password=;";

    Попытка

    Соединение.Open(СтрокиПодключения);

    Сообщить("Подключение успешно!");

    Исключение

    Сообщить("Ошибка: " + ОписаниеОшибки());

    КонецПопытки;

    КонецПроцедуры

    Для PostgreSQL строка подключения будет другой:

    СтрокиПодключения = "Driver={PostgreSQL Unicode};
    

    Server=192.168.1.200;Port=5432;

    Database=TradeDB;Uid=postgres;Pwd=;";

    Что делать, если вылетает ошибка "Не найден поставщик OLE DB"?

    Эта ошибка означает, что в системе не установлен нужный драйвер. Для MS SQL скачайте и установите

    //learn.microsoft.com/ru-ru/sql/connect/oledb/oledb-driver-for-sql-server?view=sql-server-ver16" target="_blank">Microsoft OLE DB Driver for SQL Server

    (разрядность должна совпадать с разрядностью 1С!). Для PostgreSQL используйте драйвер psqlODBC.