1С com соединение с файловой базой

Подключение к другой базе 1С 8 по COM-соединению — очень полезная вещь. В основном, эта функция необходима для обмена данными между конфигурациями.

Но по каким-то причинам у новичков часто возникают затруднения с этим несложным процессом. Ниже я подскажу способ решения этой проблемы на примере простой задачки.

Поставлена задача:

Из конфигурации «Документооборот» необходимо подключится к базе УПП:

  • найти документ по заранее известному коду, допустим «123»;
  • получить статус документа;
  • если статус изменился, то поменять и в соответствующем документе «документооборота».

Реализация задачи:

Создание подключения к базе 1C по COM

Первым делом необходимо создать подключение к базе 1С 8.3, рассмотрим функцию, которая вернет подключение по ком-объекту к другой базе для файлового режима 1С:

Функция вернет СОМ-объект, с помощью которого можно производить действия с другой базой данных 1С 8.2.

Для клиент-серверного режима строка подключения будет немного отличаться:

Получите 267 видеоуроков по 1С бесплатно:

Если Вы подключаетесь к базе на платформе 1C 8.1, то Вам необходимо использовать не «V82.COMConnector», а «V81.COMConnector».

Найти документ 1С по COM

Для примера, пусть номер нужного документа будет «1234», а наш Документ-объект — «ДокументОбъект»:

Вот и все: мы подключились по COM, получили нужный документ, прочитали его статус и, если он отличается, установили статус нашему документу.

Другие статьи по 1С:

Видеоурок по подключению 1С 8.3 через COM:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Читайте также:  Как зайти в подъезд с домофоном

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

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

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

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

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

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

Методы БСП

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

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

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

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

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

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

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

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

  1. локальные клиентские лицензии;
  2. локальные серверные лицензии;
  3. сетевые клиентские лицензии;
  4. клиентские лицензии на сервере 1С:Предприятия или веб-сервере.
Читайте также:  Как подключить флешку к штатной автомагнитоле

Остались вопросы?
Спросите в комментариях к статье.

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

Оглавление

Для чего нужно COM Соединение?

Этот объект используется для установки соединения с другими базами 1С. Например, Вам нужно сделать выгрузку справочника «Контрагенты» из одной базы, в другую или получить какие либо данные из другой базы 1С. Вы сможете это реализовать при помощи COM Соединения.

Как создать COM объект?

В начале надо узнать, какая версия 1С у вас, из этого и будем исходить при создании COM объекта.

  • Для 1С 8.2: COMConnector= Новый COMОбъект(«V82.COMConnector»);
  • Для 1С 8.3: COMConnector= Новый COMОбъект(«V83.COMConnector»);

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

Переменная «СтрокаПодключения» может быть двух видов:

    Вид для файловой базы:

СтрокаПодключения = "File = ""C:База_1С"" ; Usr=""ИмяПользователя""; Pwd=""Пароль"";";

СтрокаПодключения = "Srvr=""ИмяСервера""; Ref=""ИмяБазы""; Usr=""ИмяПользователя""; Pwd=""Пароль"";";

В результате выполнения этой функции мы получим COM Объект через который можно обращаться к подключаемой базе.

Примеры работы с COM объектом

Для примера рассмотрим ситуацию, когда нам нужно через COM соединение создать склад:

СтрокаПодключения = "File = ""C:База_1С""; Usr=""ИмяПользователя""; Pwd=""Пароль"";";
COMСоединение = ПолучитьПодключение(СтрокаПодключения);
НовыйОбъект = COMСоединение.Справочники.Склады.СоздатьЭлемент();
НовыйОбъект.Наименование = "Новый склад";
НовыйОбъект.ВидСклада = COMСоединение.Перечисления.ВидыСкладов.Оптовый;
НовыйОбъект.Записать();

Обратите внимание что «ВидСклада» мы указали через переменную «COMСоединение».

Так же часто требуется выполнить запрос через COM соединение, разберем пример на основе тех же складов:

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

В результате запроса получим таблицу значений со всеми складами, у которых нет пометки на удаление.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector