Подключение к базе 1С через COM

Подключение к базе 1С через COM

Иногда удобно подключиться через COM из одной базы 1С к другой и иметь доступ одновременно к обоим базам. Такой подход можно использовать для обмена данными.

Подключение к базе
Примеры обращения к данным другой базы
Методы БСП
Лицензирование



Подключение к базе

Для подключения к базе 1С через COM необходимо:

  1. Создать COM-объект 1С необходимой версии ([V8;V81;V82;V83].COMConnector);
  2. Подключиться к базе при помощи метода Connect(), указав параметры доступа.

Ниже представлены примеры подключения к серверной и файловой базам:

// Подключение к серверной базе
Соединение = Новый COMОбъект("V83.COMConnector");
ПараметрыДоступа = "Srvr=""Сервер"";Ref=""ИмяБазы"";Usr=""Пользователь"";Pwd=""ПарольПользователя"";";
Попытка
    База = Соединение.Connect(ПараметрыДоступа);
Исключение
    Сообщить("Проблемы при подключении: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;

// Подключение к файловой базе
Соединение = Новый COMОбъект("V83.COMConnector");
ПараметрыДоступа = "File=""ПутьККаталогуБазы"";Usr=""Пользователь"";Pwd=""ПарольПользователя"";";
Попытка
    База = Соединение.Connect(ПараметрыДоступа);
Исключение
    Сообщить("Проблемы при подключении: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;

Примеры обращения к данным другой базы

// Поиск и изменение справочника
НайденныйСпр = База.Справочники.Номенклатура.НайтиПоКоду("12345");
Если НайденныйСпр = База.Справочники.Номенклатура.ПустаяСсылка() Тогда
    Сообщить("Справочник не найден");
Иначе
    СпрОбъект = НайденныйСпр.ПолучитьОбъект();
    СпрОбъект.Описание = "Описание";
    СпрОбъект.Записать();
КонецЕсли;

// Работа с запросом
Запрос = База.NewObject("Запрос");
Запрос.Текст =
    "ВЫБРАТЬ
    |    Контрагенты.Наименование
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    Контрагенты.ЮрФизЛицо = &ЮрФизЛицо";
Запрос.УстановитьПараметр("ЮрФизЛицо", База.Перечисления.ЮрФизЛицо.ФизЛицо);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Сообщить(Выборка.Наименование);
КонецЦикла;

Методы БСП

В библиотеке стандартных подсистем(БСП) предусмотрены методы для работы с COM-подключениями. Вот некоторые из них:

  • ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя() — возвращает имя COM-класса для работы с 1С:Предприятием через COM-соединение (например, «v83.COMConnector»).
  • ОбщегоНазначения.ИдентификаторCOMСоединителя(Знач ИмяCOMСоединителя) — возвращает CLSID COM-класса для работы с 1С:Предприятием 8 через COM-соединение (для v83.COMConnector — «181E893D-73A4-4722-B61D-D604B3D67D47»).
  • ОбщегоНазначенияКлиентСервер.УстановитьВнешнееСоединениеСБазой(Параметры) — устанавливает внешнее соединение с информационной базой по переданным параметрам подключения и возвращает указатель на это соединение.
  • СоединенияИБ.ИнформацияОСоединениях(ПолучатьСтрокуСоединения = Ложь, СообщенияДляЖурналаРегистрации = Неопределено, ПортКластера = 0) — возвращает структуру, из которой можно узнать, есть ли в текущий момент COM-соединения с базой.

Примеры использования:

COMСоединитель = Новый COMОбъект(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя());

CLSID = ОбщегоНазначения.ИдентификаторCOMСоединителя(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя());

Результат = ОбщегоНазначенияКлиентСервер.УстановитьВнешнееСоединениеСБазой(Параметры);

ТекущиеСоединения = СоединенияИБ.ИнформацияОСоединениях(Истина);

Лицензирование

Для каждого COM-соединения расходуется одна лицензия. Лицензии ищутся в следующем порядке:

  1. локальные клиентские лицензии;
  2. локальные серверные лицензии;
  3. сетевые клиентские лицензии;
  4. клиентские лицензии на сервере 1С:Предприятия или веб-сервере.

 

Смотри также:

Основные способы обмена 1С с другими системами
Работа с файлами DBF в 1С
Удаленный доступ к демо-конфигурациям 1С

Добавить комментарий

Ваш e-mail не будет опубликован.