Разработка и Конфигурация · 10 мин
Как подключить внешний источник данных в 1С
Как подключить внешний источник данных в 1С через ADO, ODBC и OLE DB: настройка строки подключения, таблиц и полей, типичные ошибки и проверка результата.
Внешние источники данных (ВИД) в 1С позволяют читать и изменять данные, которые хранятся вне информационной базы: в SQL Server, PostgreSQL, MySQL, Excel, Access, DBF и других системах. При этом внешние таблицы выглядят в конфигураторе почти как обычные объекты 1С — их можно использовать в запросах, отчётах СКД, формах и коде на встроенном языке.
Механизм работает поверх стандартных технологий доступа к данным Windows: ODBC, OLE DB и ADO. Это значит, что для подключения почти всегда нужен установленный драйвер или провайдер конкретной СУБД, а сама настройка сводится к созданию объекта «Внешний источник данных» в конфигураторе, указанию строки подключения и описанию таблиц с полями.
Ниже разобран практический порядок подключения на примере типового сценария: база 1С на управляемом приложении, внешняя СУБД — SQL Server. Для других источников отличается в основном строка подключения и набор драйверов, логика действий та же.
Что такое внешний источник данных и когда он нужен
Внешний источник данных — это объект метаданных 1С, который описывает структуру чужой базы: таблицы, поля, типы, ключи. Платформа через него выполняет запросы к внешней СУБД в момент обращения, не копируя данные в информационную базу. Это принципиальное отличие от загрузки через обработки: данные всегда актуальны, потому что читаются «на лету».
Типовые задачи, где ВИД уместен: чтение остатков из старой учётной системы, интеграция с сайтом на MySQL, выгрузка справочников из Excel-файлов, объединение данных 1С и CRM в одном отчёте, просмотр таблиц складской программы без промежуточной выгрузки.
Важно понимать ограничение: внешние источники данных полноценно работают на Windows-платформе и требуют драйверов, установленных на том компьютере, где исполняется код — на сервере 1С или на клиенте (в зависимости от режима). На Linux-сервере 1С механизм имеет существенные ограничения, поэтому для кроссплатформенных интеграций чаще выбирают веб-сервисы или промежуточные обмены.
Подготовка: драйверы, права и разрядность
До открытия конфигуратора проверьте три вещи. Первое — установлен ли драйвер для вашей СУБД: для SQL Server это OLE DB Provider или ODBC Driver, для PostgreSQL и MySQL — соответствующие ODBC-драйверы, для Excel и Access — Microsoft ACE OLEDB. Без драйвера платформа физически не сможет установить соединение.
Второе — разрядность. Драйвер должен совпадать с разрядностью процесса, который выполняет подключение. Если сервер 1С 64-разрядный, нужен 64-битный драйвер; если подключение выполняется из 32-битного тонкого клиента — 32-битный. Несовпадение разрядности — самая частая причина ошибки «провайдер не зарегистрирован».
Третье — права доступа. Учётная запись, под которой 1С подключается к внешней базе, должна иметь права на чтение (а при необходимости — на запись) конкретных таблиц. Проверьте сетевую доступность сервера СУБД: порт должен быть открыт, а имя сервера — разрешаться с машины, где работает 1С.
Создание внешнего источника данных в конфигураторе
Откройте конфигуратор, в дереве конфигурации найдите ветку «Общие» → «Внешние источники данных» и добавьте новый объект. Задайте имя, например «БазаСайта» или «СтараяУчетнаяСистема» — по этому имени источник будет виден в запросах и коде.
На закладке «Данные» откройте диалог параметров соединения. Здесь выбирается тип источника (через OLE DB/ODBC), указывается провайдер и формируется строка подключения. Удобнее всего собрать строку через стандартный мастер Windows «Связь с данными»: выбрать провайдер, указать сервер, базу, способ аутентификации и проверить соединение кнопкой «Проверить подключение».
- 1Установите драйвер подходящей разрядности на сервер или клиент 1С
- 2Создайте объект «Внешний источник данных» в конфигураторе
- 3Сформируйте строку подключения через мастер и проверьте соединение
- 4Добавьте таблицы: вручную или загрузив список из внешней базы
- 5Опишите поля таблиц, типы и ключевые поля
- 6Обновите конфигурацию базы данных и проверьте чтение в режиме предприятия
Если подключение выполняется с разных рабочих мест с разными параметрами, строку подключения можно не зашивать в метаданные, а формировать программно через объект ВнешниеИсточникиДанныхМенеджер и параметры сеанса. Это также способ убрать пароль из конфигурации.
Описание таблиц и полей
После настройки соединения добавьте в источник таблицы. В конфигураторе доступна кнопка загрузки списка таблиц из внешней базы — платформа сама получит перечень и структуру. Отметьте нужные таблицы, и они появятся в дереве источника с полями и типами.
Проверьте соответствие типов: платформа сопоставляет типы внешней СУБД с типами 1С автоматически, но не всегда корректно. Поля типа money, datetime2, текстовые поля без ограничения длины иногда требуют ручной корректировки. Если тип указан неточно, при чтении получите либо ошибку приведения, либо пустые значения.
Для каждой таблицы задайте ключевое поле (или набор полей) — оно нужно платформе для однозначной идентификации записей, особенно если планируется изменение данных. Если в таблице нет первичного ключа, выберите поле с уникальными значениями; без этого часть операций будет недоступна.
Использование в запросах, отчётах и коде
В языке запросов внешние таблицы адресуются через имя источника: ВнешнийИсточникДанных.БазаСайта.Таблица.Заказы. Такие таблицы можно соединять с обычными таблицами 1С, фильтровать и группировать — платформа построит запрос к внешней СУБД или выгрузит промежуточный результат во временную таблицу.
В СКД внешний источник добавляется в набор данных запроса так же, как любая таблица. Это удобный способ строить сводные отчёты по двум системам без программирования. Учитывайте только, что соединение больших внешних таблиц с таблицами 1С может выполняться медленно: фильтруйте данные на стороне источника как можно раньше.
Из встроенного языка доступны менеджеры вида ВнешниеИсточникиДанных.БазаСайта, через которые программно устанавливают соединение, проверяют его состояние и выполняют операции с записями. Для источников типа «выражение» (например, произвольный SQL-запрос к базе) используется таблица-выражение с текстом запроса на языке внешней СУБД.
Проверка результата и диагностика ошибок
После обновления конфигурации откройте режим предприятия и выполните простой запрос к внешней таблице через консоль запросов или небольшую обработку. Успешное чтение хотя бы нескольких записей подтверждает, что соединение, права и описание структуры настроены верно.
Если возникает ошибка, читайте её текст внимательно: «источник данных не найден» указывает на проблему с DSN или строкой подключения, «вход пользователя невозможен» — на права и аутентификацию, «несовместимые типы» — на описание полей. Технологический журнал платформы с включёнными событиями DBMSSQL/DBV8DBEng помогает увидеть, какой именно запрос уходит во внешнюю базу.
Как проверить результат
Записи возвращаются, значения полей заполнены корректно
Ошибка соединения, пустые поля или ошибка приведения типов
Отчёт по внешней таблице открывается за приемлемое время
Отчёт «виснет» — нет фильтрации на стороне источника
Учётка имеет доступ только к нужным таблицам
Используется административная учётка внешней СУБД
Ограничения механизма и альтернативы
Внешние источники данных не подходят для высоконагруженной интеграции в реальном времени: каждое обращение — это удалённый запрос к чужой базе, и при недоступности источника функционал 1С, завязанный на него, перестаёт работать. Нет поддержки транзакций, охватывающих одновременно базу 1С и внешнюю СУБД, поэтому согласованная запись в обе системы требует отдельной логики.
Альтернативы, которые стоит рассмотреть: регламентная загрузка данных в собственные регистры 1С (надёжнее и быстрее для отчётности), обмен через HTTP-сервисы и REST API (кроссплатформенно), механизм «Внешние компоненты» или прямое обращение к СУБД средствами ADO через COM-объекты для сложных сценариев. Для разовых выгрузок достаточно обработки чтения файлов Excel/CSV.
Сравнение вариантов
Быстрое подключение и живые данные в запросах; ограничения — Windows, драйверы, зависимость от доступности источника
Надёжно и быстро для отчётов; данные не в реальном времени, нужна синхронизация
Кроссплатформенно и безопасно; требует разработки API на стороне внешней системы
Частые вопросы
Можно ли подключить Excel-файл как внешний источник данных?
Да, через провайдер Microsoft ACE OLEDB, указав в строке подключения путь к файлу и расширенные свойства (например, Excel 12.0 для xlsx). Листы файла будут видны как таблицы. Учтите, что файл должен быть доступен с той машины, где исполняется код, и не должен быть открыт на редактирование в другой программе.
Почему возникает ошибка «Провайдер не зарегистрирован на локальном компьютере»?
Почти всегда причина в отсутствии драйвера нужной разрядности на том компьютере, где выполняется подключение. Если код работает на сервере 1С, драйвер ставится на сервер, а не на клиентскую машину. Проверьте разрядность серверного процесса и установите соответствующую версию провайдера.
Можно ли изменять данные во внешней базе через ВИД?
Да, если учётная запись имеет права на запись, а у таблицы задано ключевое поле. Запись выполняется через объектную модель или запрос. Однако транзакции 1С не распространяются на внешнюю базу, поэтому при сбоях возможны рассинхронизации — критичные операции лучше оборачивать в собственную логику контроля.
Работают ли внешние источники данных в файловой базе и на Linux?
В файловой базе на Windows — да, драйвер ставится на компьютер с базой. На Linux-сервере механизм существенно ограничен из-за зависимости от Windows-технологий доступа к данным; для таких сценариев обычно выбирают обмен через веб-сервисы или промежуточную базу.
Как скрыть пароль от внешней базы?
Не храните пароль в строке подключения в метаданных. Формируйте соединение программно, подставляя параметры из защищённого хранилища, или используйте аутентификацию Windows, когда внешняя СУБД её поддерживает. Также ограничьте права учётной записи минимально необходимым набором таблиц.
Что важно запомнить
Подключение внешнего источника данных в 1С сводится к трём шагам: установка драйвера нужной разрядности, создание объекта ВИД со строкой подключения, описание таблиц и ключевых полей. Проверяйте результат тестовым запросом, используйте учётную запись с минимальными правами и помните, что для кроссплатформенных и высоконагруженных сценариев надёжнее обмен через сервисы.