Работа с внешними базами данных напрямую из 1С:Предприятие — одна из самых востребованных задач при интеграции систем. Без такого подключения невозможно организовать обмен данными с веб-сервисами, аналитическими платформами или другими учетными системами. Однако процесс настройки часто вызывает сложности: от выбора правильного драйвера до решения ошибок аутентификации.
В этой статье мы разберем все актуальные способы подключения 1С к SQL — от стандартных механизмов платформы до использования внешних компонент. Особое внимание уделим типичным ошибкам (например, Ошибка соединения с сервером базы данных или Не найден драйвер ODBC) и способам их устранения. Материал будет полезен как начинающим администраторам, так и опытным разработчикам, которые хотят оптимизировать существующие интеграции.
Прежде чем приступать к настройке, убедитесь, что у вас есть права доступа к SQL-серверу (MS SQL, PostgreSQL, MySQL и др.) и учетная запись в 1С с ролью «Администратор» или «Полные права». Также проверьте версию платформы — некоторые методы работают только в 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.
Если вам нужно подключиться к устаревшей версии 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С и перейдите в
Администрирование → Внешние источники данных.Нажмите «Создать» и выберите тип подключения:
- 🔌 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.
psqlODBC.