Что такое com соединение в 1с

Что такое com соединение в 1с

Перенос данных из одной информационной базы в другую можно осуществить при помощи конвертации данных, либо типовой обработки по загрузке/выгрузке.

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

Реализация COM-соединения

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

Обратите внимание, что способ подключения к файловым и клиент-серверным базам отличается. Мы будем применять «V83.COMConnector», так как работа идет с базами на платформе 8.3. Следовательно, для более низких версий будут использоваться COMConnector V81 и V82 соответственно.

Следующим нашим шагом будет добавление на форму табличной части, в которую будут выводиться данные. Так нужно указать поля для ввода периода, по которому будут отбираться документы. Сама процедура заполнения будет выполняться при нажатии соответствующей кнопки со следующим кодом:

После выполнения наша обработка будет выглядеть так, как показано на рисунке ниже.

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

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

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

Отличия от Automation-сервера

  • В случае Automation-сервера запускается полноценное приложение 1С:Предприятие 8, а в случае внешнего соединения запускается относительно небольшой внутрипроцессный COM-сервер.
  • При работе через внешнее соединение недоступны функциональные возможности так или иначе связанные с организацией пользовательского интерфейса;
  • При работе внешнего соединения не используется модуль приложения. Его роль при работе с внешним соединением играет модуль внешнего соединения.
Читайте также:  Загрузка фотографий в облако

Преимущества

  • более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
  • более быстрое обращение к свойствам и методам объектов 1С:Предприятия 8, так как для организации обращения не требуется организации межпроцессной коммуникации;
  • меньший расход ресурсов операционной системы.

Пример

  • создается менеджер COM-соединений, с помощью которого производится установка соединения;
  • через полученный объект внешнего соединения производится обращение к допустимым методам, свойствам и объектам базы данных, с которой установлено соединение.

В качестве примера можно привести обращение к информационной базе 1С:Предприятия 8 через внешнее соединение из программы на языке MS Visual Basic.

Информационная база находится в каталоге c:InfoBasesTrade. В программе 1С:Предприятие 8 создается объект типа СправочникМенеджер.Товары и создается новая группа элементов с названием ***** Экспорт из Excel ******. Во вновь созданную группу каталога записываются данные из таблицы MS Excel:

Dim cntr As Object
Dim trade As Object
Dim Элемент As Object

Set cntr = CreateObject («V82.COMConnector») ‘Создать менеджер COM-соединений
Set trade = cntr.Connect («File=""c:InfoBasesTrade»»; Usr=""Director»»;») ‘Получить внешнее соединение
Set СправочникТоваров = trade.Справочники.Товары
Set ГруппаТоваров = СправочникТоваров.СоздатьГруппу ()

ГруппаТоваров.Наименование = «***** Экспорт из Excel ******»
ГруппаТоваров.Записать

N = 100 ‘Количество строк в документе
For Count = 1 To N

Set Элемент = СправочникТоваров.СоздатьЭлемент ()
Элемент.Наименование = Application.Cells (Count, 2).Value
Элемент.Розн_Цена = Application.Cells (Count, 3).Value
Элемент.Мел_Опт_Цена = Application.Cells (Count, 4).Value
Элемент.Опт_Цена = Application.Cells (Count, 5).Value
Элемент.Родитель = ГруппаТоваров.Ссылка

Контекст исполнения

Обязанности модуля приложения при работе через внешнее соединение выполняет модуль внешнего соединения. Данный модуль может иметь процедуры-обработчики событий, в которых могут быть размещены действия, выполняемые при инициализации и завершении соединения, соответственно.

Процедуры, функции и глобальные переменные, определенные в модуле внешнего соединения с ключевым словом Экспорт становятся, как и в случае модуля приложения, частью глобального контекста.

  • системные константы;
  • значения заданных в конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры);
  • переменные, объявленные в модуле внешнего соединения с ключевым словом Экспорт.
  • системные процедуры и функции;
  • процедуры и функции модуля внешнего соединения и общих модулей, объявленные с ключевым словом Экспорт;
  • дополнительный метод NewObject.
Читайте также:  Фотошоп не видит перо

Пул соединений

Открытые внешние соединения могут быть сохранены в пуле для их повторного использования, что позволяет экономить ресурсы и ускорять работу пользователей, которые ранее уже подключались к данной информационной базе.

Варианты использования

С помощью внешнего соединения можно, например, организовать веб-доступ к базе данных 1С:Предприятия 8:

Также внешнее соединение позволяет организовать обмен XML-документами системы 1С:Предприятие 8 с внешним приложением:

Ссылка на основную публикацию
Что значит спящий режим компьютера
В операционной системе Windows есть несколько режимов выключения компьютера – это обыкновенный режим, (который полностью выключает PC), режим гибернации и...
Чем открыть файл с расширением dat
После установки каких-нибудь программ, получения почты при помощи почтовых клиентов, на компьютере создаются .dat файлы. Чаще всего они почти не...
Чем отличается frontend от backend
Переводы , 13 апреля 2017 в 19:58 Мая Устинова Вы наверняка уже слышали эти модные в сфере программирования слова «фронтенд»...
Что значит сторнировать документ
Сто́рно (итал. storno — перевод на другой счёт, отвод; от stornare — поворачивать обратно) — в общем смысле возврат к...
Adblock detector