Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
Для создания объекта, с использованием которого из одной базы 1С:Предприятие 8 будет производиться обращение через OLE к другой информационной базе 1С:Предприятие 8, используется конструктор:
Новый Base(СтрокаИнициализации)
Неправильно: В типовом наборе объектов встроенного языка 1С нет конструктора Base() для подключения к другой базе. Для внешнего соединения используется COM-коннектор (например, V83.COMConnector), который создают через механизм COM Automation.
Создание подобного объекта производится другими средствами
Неправильно: В 1С предусмотрен стандартный способ работы с Automation-объектами: их создают оператором «Новый COMОбъект(...)». Именно этим способом обычно получают объект-коннектор и затем вызывают у него метод Connect для подключения к другой информационной базе.
Новый COMОбъект
Правильно: Для обращения к внешним объектам через Automation во встроенном языке 1С используют конструктор «Новый COMОбъект(<идентификатор>)». Подключение к другой базе обычно начинается с создания коннектора (например, "V83.COMConnector" или "V82.COMConnector") и последующего вызова Connect со строкой соединения.
Новый OLEОбъект
Неправильно: Для внешнего соединения с другой базой 1С нужен именно COM-коннектор, который в коде 1С создают через «Новый COMОбъект». «OLEОбъект» чаще относится к работе с OLE-встраиванием/контейнерами и не является типовым способом создания COMConnector для подключения к другой информационной базе.
Пояснение
В 1С:Предприятие 8 внешнее соединение с другой информационной базой обычно делают через COM Automation (иногда по привычке говорят «OLE», но технически это работа с COM-объектом). Для этого во встроенном языке создают COM-объект по его ProgID с помощью конструктора:
- Коннектор = Новый COMОбъект("V83.COMConnector");
- Соединение = Коннектор.Connect("File=\"C:\\Bases\\Trade\";Usr=\"Администратор\";Pwd=\"123\";");
или для клиент-сервера:
Соединение = Коннектор.Connect("Srvr=\"SERVER\";Ref=\"BASE\";Usr=\"user\";Pwd=\"pwd\";");
Что важно учитывать на практике:
1) COM-соединение не открывает интерфейс пользователя: формы, команды интерфейса и «интерактив» недоступны. Вы работаете с объектной моделью и вызовами методов/свойств, как с «удаленным» контекстом.
2) В подключаемой базе выполняется специальная логика внешнего соединения: как правило, доступна ограниченная часть кода, и для вызова процедур/функций должны быть настроены общие модули с разрешением работы во внешнем соединении (в зависимости от конфигурации).
3) Для создания прикладных объектов в подключенной базе часто используют метод NewObject у объекта соединения (например, создать Запрос, ТаблицаЗначений и т.п.), чтобы объекты создавались в контексте той базы.
4) Ограничения и типичные проблемы: COM работает на Windows и зависит от регистрации COM-компоненты, разрядности (32/64), прав DCOM/служб и учетных данных, а также от прав пользователя в целевой базе. Если соединение устанавливается с сервера (службы), часто требуется правильно настроить запуск под нужной учетной записью и права доступа.
Итого: когда задача звучит как «подключиться из одной 1С к другой через Automation и выполнять код/чтение данных», стартовая точка - создать коннектор именно через «Новый COMОбъект(...)».