Разработка и Конфигурация · 14 мин
Как добавить внешний источник данных в 1С
Как добавить внешний источник данных в 1С: настройка подключения через ODBC, создание таблиц, права доступа, типичные ошибки и проверка результата.
Внешние источники данных в 1С позволяют читать и изменять информацию из сторонних баз — MS SQL Server, Oracle, MySQL, PostgreSQL, файлов Excel и других систем — напрямую из прикладного решения. Данные не копируются в информационную базу: 1С обращается к ним в момент выполнения запроса, поэтому сведения всегда актуальны, а объём собственной базы не растёт.
Механизм работает на управляемых формах и доступен в конфигураторе через ветку «Внешние источники данных». Подключение строится на интерфейсе ODBC: платформа обращается к драйверу операционной системы, а тот уже передаёт запросы в целевую СУБД. Это значит, что перед настройкой в 1С нужно подготовить драйвер и параметры доступа на стороне сервера или клиентского компьютера.
Типовые сценарии использования: интеграция с учётной системой филиала, чтение остатков из складской программы, загрузка справочника контрагентов из CRM, обращение к архивной базе, которую невозможно перенести в 1С. Ниже разобран полный порядок настройки — от проверки предварительных условий до проверки результата и устранения типичных ошибок.
Что подготовить перед настройкой подключения
До открытия конфигуратора убедитесь, что выполнены три условия. Первое — на компьютере, где будет выполняться обращение к источнику (сервер 1С при клиент-серверном режиме или клиентская машина при файловом), установлен ODBC-драйвер нужной разрядности. Для 64-разрядного сервера 1С требуется 64-разрядный драйвер; несовпадение разрядности — самая частая причина ошибки «источник данных не найден».
Второе условие — учётные данные для доступа к внешней базе: логин и пароль пользователя с правами чтения (и записи, если планируется изменение данных) на нужные таблицы. Третье — сетевая доступность: сервер БД должен отвечать с машины 1С, нужный порт не должен быть закрыт брандмауэром.
Полезно заранее проверить подключение штатными средствами Windows: откройте «Администратор источников данных ODBC» (odbcad32.exe соответствующей разрядности), создайте тестовый DSN и нажмите «Проверить подключение». Если тест не проходит на этом этапе, в 1С подключение тем более не заработает, и искать причину нужно в сети, драйвере или правах.
Проверьте через odbcad32.exe нужной разрядности
Проверьте подключение тестовым DSN
Проверьте ping и доступность порта СУБД
Определяет, где должен стоять драйвер
Как создать объект «Внешний источник данных» в конфигураторе
Откройте конфигурацию в режиме «Конфигуратор» и в дереве объектов найдите ветку «Общие» → «Внешние источники данных». Через контекстное меню выберите «Добавить» и задайте имя источника, например «БазаCRM» или «СкладскаяУчетнаяСистема». Имя будет использоваться в запросах, поэтому делайте его понятным и без пробелов.
В созданном объекте есть две ключевые закладки: «Данные» и «Функции». Работа начинается с закладки «Данные», где добавляются таблицы. Таблица внешнего источника — это описание структуры одной таблицы или представления сторонней базы: её поля, типы данных и ключевые поля.
Добавьте таблицу кнопкой «Добавить» в панели над списком таблиц. Платформа предложит мастер: если соединение уже настроено, можно выбрать таблицу из списка, и 1С сама сформирует поля с типами. Если мастер недоступен, таблицу описывают вручную — задают имя таблицы во внешней базе и перечисляют поля с типами данных 1С, соответствующими типам источника.
После добавления таблиц и настройки соединения обновите конфигурацию базы данных (F7). Без этого шага объект существует только в конфигурации разработчика и недоступен в режиме «Предприятие».
- 1Установите ODBC-драйвер целевой СУБД на сервер или клиентскую машину 1С
- 2Проверьте подключение тестовым DSN в администраторе ODBC
- 3В конфигураторе добавьте объект «Внешние источники данных» и задайте имя
- 4Добавьте таблицы и настройте параметры соединения
- 5Проверьте сопоставление полей и типов данных
- 6Обновите конфигурацию базы данных (F7)
- 7Протестируйте чтение данных в режиме «Предприятие» или через запрос
Настройка строки подключения и параметров соединения
Соединение с внешней базой описывается строкой подключения в формате ODBC. Откройте свойства внешнего источника, перейдите к параметрам соединения и заполните поля: СУБД (тип источника), строка соединения, имя пользователя и пароль. Строка соединения может ссылаться на заранее созданный DSN или содержать все параметры явно.
Пример строки подключения к MS SQL Server без предварительного создания DSN:
DRIVER={ODBC Driver 17 for SQL Server};SERVER=srv-sql\SQLEXPRESS;DATABASE=TradeDB;UID=reader1c;PWD=SecretPass123;Для MySQL строка будет ссылаться на драйвер MySQL ODBC, для PostgreSQL — на psqlODBC. Точный синтаксис зависит от версии драйвера, поэтому надёжнее сначала собрать и проверить строку в администраторе ODBC, а затем перенести её в 1С.
Пароль в параметрах соединения хранится в конфигурации. Если это неприемлемо по требованиям безопасности, используйте аутентификацию Windows (Trusted_Connection=yes) там, где СУБД её поддерживает, либо задавайте параметры соединения программно в момент сеанса через объект «ВнешниеИсточникиДанных».
Добавление таблиц и сопоставление полей
Каждая таблица внешнего источника содержит список полей, которые 1С сопоставляет со столбцами сторонней таблицы. При добавлении через мастер платформа сама читает метаданные и подбирает типы: строковые поля становятся «Строка», целые — «Число», datetime — «Дата». После импорта проверьте результат вручную: автоматический подбор не всегда точен.
Особое внимание уделите ключевым полям. Для таблиц, которые планируется изменять из 1С, обязательно укажите поле или набор полей, однозначно идентифицирующих запись (первичный ключ во внешней базе). Без ключа таблица будет доступна только для чтения, а попытка записи завершится ошибкой.
Типичные проблемы сопоставления: поля типа NUMERIC с большой точностью, которые не помещаются в допустимую разрядность «Числа» в 1С; поля BLOB и TEXT большого объёма; даты с дробными секундами. Такие поля можно исключить из таблицы источника, если они не нужны прикладному решению, — это также ускорит запросы.
Как использовать внешние данные в запросах и отчётах
После обновления конфигурации таблицы внешнего источника доступны в запросах наравне с таблицами справочников и документов. Обращение строится по полному имени: ВнешнийИсточникДанных.ИмяИсточника.Таблица.ИмяТаблицы.
ВЫБРАТЬ
Товары.Код,
Товары.Наименование,
Товары.Остаток
ИЗ
ВнешнийИсточникДанных.СкладскаяБаза.Таблица.ОстаткиТоваров КАК Товары
ГДЕ
Товары.Остаток > 0
Такие запросы можно использовать в отчётах на СКД, в динамических списках и в произвольном коде. Данные внешнего источника допустимо соединять с таблицами самой информационной базы, но делайте это осознанно: соединение выполняется на стороне 1С после выборки, и при больших объёмах производительность заметно падает. Ограничивайте выборку из внешнего источника условиями как можно раньше.
Для управляемых форм таблицу внешнего источника можно вывести как динамический список — пользователь получит привычный интерфейс с сортировкой и отбором, хотя данные физически находятся в другой системе.
Если внешние данные нужны только периодически (например, раз в день для отчёта), часто выгоднее не живое подключение, а регламентная загрузка в промежуточный регистр сведений. Это снимает зависимость от доступности сторонней базы и ускоряет отчёты. Живой источник оправдан, когда нужна актуальность «на момент просмотра».
Программное управление подключением
Помимо декларативной настройки, платформа позволяет управлять соединением из встроенного языка. Объект «ВнешниеИсточникиДанныхМенеджер» даёт доступ к методам установки соединения, проверки его состояния и отключения. Это полезно, когда параметры подключения (сервер, пароль) должны задаваться настройками пользователя, а не храниться в конфигурации.
ПараметрыСоединения = Новый Структура;
ПараметрыСоединения.Вставить("СтрокаСоединения", СтрокаПодключения);
ПараметрыСоединения.Вставить("ИмяПользователя", Логин);
ПараметрыСоединения.Вставить("Пароль", Пароль);
ВнешниеИсточникиДанных.СкладскаяБаза.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
ВнешниеИсточникиДанных.СкладскаяБаза.УстановитьСоединение();
Если ВнешниеИсточникиДанных.СкладскаяБаза.ПолучитьСостояние()
= СостояниеВнешнегоИсточникаДанных.Подключен Тогда
// работа с данными
КонецЕсли;
Обратите внимание: если соединение не установлено, любое обращение к таблицам источника вызовет исключение. В прикладном коде оборачивайте обращения в попытку/исключение и предусмотрите понятное сообщение пользователю о недоступности внешней системы.
Проверка результата и типичные ошибки
После настройки проверьте работу в три этапа: сначала состояние соединения, затем чтение одной таблицы простым запросом, затем полный сценарий (отчёт или форма). Такой порядок позволяет локализовать проблему: если не устанавливается соединение — причина в драйвере, сети или учётных данных; если соединение есть, а запрос падает — в сопоставлении полей или правах на конкретную таблицу.
Как проверить результат
Состояние «Подключен» без исключений
Ошибка «источник данных не найден» или отказ в доступе
Запрос возвращает строки с корректными значениями
Пустой результат при наличии данных или ошибка типов
Даты, числа и строки отображаются корректно
Кракозябры в строках, сдвиг дат, обрезанные числа
Отчёт формируется за приемлемое время
Запрос зависает на больших таблицах без отбора
Отдельно отметим ошибку кодировки: если строковые данные из файловой базы (например, DBF или CSV через ODBC) отображаются нечитаемыми символами, причина обычно в несовпадении кодовой страницы драйвера и данных. Параметр кодировки задаётся в настройках DSN, а не в 1С.
Альтернативные способы интеграции
Внешние источники данных — не единственный способ получить данные из сторонней системы. Если целевая база не имеет ODBC-драйвера или требуется обмен по регламенту, рассмотрите альтернативы: веб-сервисы (HTTP-сервисы и REST), файловый обмен через обработки, COM-соединение с другой базой 1С, механизмы конвертации данных.
Сравнение вариантов интеграции
Подходят для прямого доступа к СУБД с драйвером ODBC; данные всегда актуальны, но зависят от доступности базы и нагружают её запросами
Требуют разработки API на стороне источника; безопаснее и управляемее, но медленнее для массовых выборок
Данные копируются в 1С по расписанию; быстрые отчёты и независимость от источника, но сведения не realtime
Только для связки двух баз 1С; полный доступ к объектам, но ресурсоёмко и требует совместимости версий
Выбор зависит от требований к актуальности, объёму данных и возможностям доработки сторонней системы. Для чтения справочников и остатков из SQL-базы с минимальными трудозатратами внешние источники данных обычно самый быстрый вариант внедрения.
Что важно запомнить
Внешний источник данных добавляется в конфигураторе через ветку «Внешние источники данных»: настраивается строка ODBC-подключения, описываются таблицы и ключевые поля, затем конфигурация базы обновляется. Критичны разрядность драйвера, минимальные права учётной записи и проверка соединения до начала разработки запросов.
Частые вопросы о внешних источниках данных
Можно ли подключиться к базе 1С как к внешнему источнику данных?
Напрямую через ODBC — нет, у платформы 1С нет штатного ODBC-драйвера для своих баз. Для обмена между двумя базами 1С используют COM-соединение, веб-сервисы или планы обмена. Обращаться напрямую к таблицам СУБД, в которой хранится база 1С, не рекомендуется: структура хранения не документирована для прямого доступа и может меняться.
Почему в режиме «Предприятие» возникает ошибка «источник данных не найден», хотя на компьютере разработчика всё работает?
Почти всегда причина в том, что ODBC-драйвер или DSN установлен на клиентской машине, а запрос выполняется на сервере 1С. Установите драйвер той же разрядности на сервер 1С и проверьте, что с сервера доступна целевая база по сети. Также убедитесь, что используется администратор ODBC нужной разрядности.
Можно ли изменять данные во внешней базе через внешний источник?
Да, если для таблицы указаны ключевые поля, учётная запись имеет права на запись, а драйвер поддерживает изменение. Однако делать это следует осторожно: триггеры и бизнес-логика сторонней системы при записи из 1С могут не выполняться так, как ожидает её приложение. Безопаснее ограничиться чтением, а изменения проводить через штатные механизмы той системы.
Доступны ли внешние источники данных в тонком и веб-клиенте?
Да, таблицы внешних источников отображаются в управляемых формах тонкого и веб-клиента, но само соединение устанавливается там, где выполняется код, — обычно на сервере 1С. Поэтому драйвер и сетевой доступ должны быть настроены именно на сервере, а не на каждом клиенте.
Что делать, если структура внешней таблицы изменилась?
Откройте в конфигураторе таблицу внешнего источника и синхронизируйте поля вручную: добавьте новые, удалите отсутствующие, скорректируйте типы. Затем обновите конфигурацию базы данных. Пока структура не синхронизирована, запросы к изменённым полям будут завершаться ошибкой.
Влияет ли внешний источник данных на производительность базы 1С?
Сама регистрация источника не влияет, но каждый запрос к его таблицам выполняется в реальном времени к внешней СУБД и ждёт её ответа. Тяжёлые запросы без отборов способны надолго блокировать сеанс пользователя. Ограничивайте выборки условиями, а для регулярной аналитики рассмотрите предварительную загрузку данных в регистры 1С.