Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1С:Предприятие и СУБД

Внешние источники данных 1С (Linux): Подключение к Oracle через unixODBC

Обновлено: 10.09.2026 · Официальная документация ↗

Архитектура Внешних Источников Данных (ВИД) на Linux

Механизм Внешних источников данных в 1С позволяет напрямую обращаться к сторонним СУБД (Oracle, MySQL, MS SQL) и работать с их таблицами как с объектами 1С, без копирования данных. В среде Windows для этого используются нативные драйверы ADO/ODBC. Однако, когда сервер 1С (rphost) развернут на ОС Linux, инфраструктура ADO отсутствует. 1С на Linux жестко требует использования слоя драйверов unixODBC. Если он не настроен, 1С выдаст ошибку: Источник данных не найден и не указан драйвер, используемый по умолчанию. Бизнес-риски: невозможность построения консолидированной отчетности по филиалам, срыв интеграции с корпоративным хранилищем данных (DWH).

Стек взаимодействия (Снизу вверх)

Компонент стекаПример (Oracle)Файл настройки / Команда
1. СУБД (Цель)Oracle Database 19cIP-адрес, Порт (1521), SID/Service_Name
2. Клиент БД (Native)Oracle Instant Client (Linux)Установка rpm пакетов, настройка LD_LIBRARY_PATH
3. Менеджер ODBCunixODBC/etc/odbcinst.ini (Драйверы), /etc/odbc.ini (DSN)
4. Платформа 1ССервер 1С (Рабочий процесс)Конфигуратор -> Внешние источники данных -> Строка подключения

Пошаговая настройка unixODBC для Oracle в 1С

Сценарий 1: Установка unixODBC и Oracle Instant Client

Установите пакетный менеджер ODBC и нативные драйверы Oracle для Linux.

# Установка менеджера unixODBC (на примере CentOS/RHEL)
yum install unixODBC unixODBC-devel

# Загрузка и установка RPM-пакетов Oracle Instant Client (Basic + ODBC)
rpm -ivh oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
rpm -ivh oracle-instantclient19.3-odbc-19.3.0.0.0-1.x86_64.rpm

Сценарий 2: Конфигурация файлов odbcinst.ini и odbc.ini

Файлы обычно находятся в /etc/. Укажите пути к установленным драйверам (.so).

# 1. Регистрация драйвера в /etc/odbcinst.ini
[Oracle19c]
Description     = Oracle ODBC driver for Oracle 19c
Driver          = /usr/lib/oracle/19.3/client64/lib/sqora.so.19.1
FileUsage       = 1

# 2. Создание DSN (Data Source Name) в /etc/odbc.ini
[ORA_ERP]
Description     = Oracle ERP Database
Driver          = Oracle19c
ServerName      = 10.0.0.50:1521/ORCL
UserID          = erp_user
Password        = secret

Сценарий 3: Настройка окружения для службы 1С (Критично!)

Служба сервера 1С (srv1cv8) должна "видеть" библиотеки Oracle. Если переменная среды не задана, драйвер ODBC не загрузится (Ошибка загрузки разделяемой библиотеки).

# Редактирование сервиса systemd для 1С (или скрипта /etc/init.d/srv1cv83)
systemctl edit srv1cv83.service

# Добавить переменные в блок [Service]
[Service]
Environment="LD_LIBRARY_PATH=/usr/lib/oracle/19.3/client64/lib"
Environment="TNS_ADMIN=/usr/lib/oracle/19.3/client64/network/admin"

# Перезапуск служб
systemctl daemon-reload
systemctl restart srv1cv83

Сценарий 4: Подключение в 1С

В конфигураторе добавьте Внешний источник данных. В строке подключения укажите созданный DSN: DSN=ORA_ERP;Uid=erp_user;Pwd=secret;

Типовые ошибки администраторов

  • Проверка ODBC под root: Администратор проверяет подключение командой isql -v ORA_ERP под пользователем root, и оно работает. Но сервер 1С работает под usr1cv8, у которого нет переменных окружения LD_LIBRARY_PATH. Настраивать переменные нужно именно для сервиса 1С.
  • Разрядность библиотек: Сервер 1С на Linux является 64-битным. Все компоненты (unixODBC, Oracle Client, ODBC Driver) СТРОГО должны быть 64-битной архитектуры (x86_64). Подкладывание 32-битных .so файлов вызовет ошибку ELF-заголовка.
💡 Практика специалистов: Практика ITSTM: При построении отчетов в 1С на основе внешних источников данных учитывайте, что 1С не умеет транслировать сложные виртуальные таблицы (например, ИТОГИ ПО) в диалект SQL внешней базы (Oracle/MS SQL). Платформа может выгрузить всю таблицу Oracle в память rphost сервера 1С, и фильтровать уже локально, что приведет к катастрофической просадке ОЗУ (Out of Memory). Старайтесь оборачивать сложные выборки в View (Представления) на стороне Oracle и подключать в 1С уже их.

Частые вопросы (FAQ)

Как протестировать подключение к Oracle на уровне Linux, до 1С?

Используйте утилиту isql, входящую в состав unixODBC. Команда: 'su - usr1cv8' (переключитесь на пользователя 1С), затем выполните 'isql -v ORA_ERP'. Если подключение успешно, появится приглашение SQL>.

Можно ли подключиться к MS SQL Server из 1С на Linux?

Да. Для этого вместо Oracle Instant Client нужно установить Microsoft ODBC Driver for SQL Server (msodbcsql17 или 18) для Linux. Настройка odbcinst.ini и odbc.ini производится аналогично.

Влияет ли версия unixODBC на работу?

Да, существуют известные баги (например, обрезание строк) при использовании старых версий unixODBC (ниже 2.3.0) в связке с драйвером MS SQL. Рекомендуется использовать актуальные версии из репозиториев разработчиков СУБД.

Как указать строку подключения в 1С без использования DSN (DSN-less)?

В строке подключения 1С укажите имя драйвера из odbcinst.ini в фигурных скобках. Пример: Driver={Oracle19c};Server=10.0.0.50:1521/ORCL;Uid=user;Pwd=pass;. Это позволяет обойтись без файла odbc.ini.

Полезные материалы
Рекомендуем