сом соединение что это

Передача объектов 1С:Предприятия через COM

Раздел содержит описание некоторых особенностей передачи данных 1С:Предприятия через механизм COM/Automation.

Когда данные передаются через COM

При использовании 1С:Предприятия совместно с другими программами или системами, а также при необходимости доступа к данным нескольких разных информационных баз 1С:Предприятия, могут использоваться средства модели межкомпонентного доступа к объектам (Component Object Model, COM). Ее главная идея заключается в предоставлении универсального средства создания и освобождения объектов, и универсального способа обращения к свойствам и методам объектов, включая передачу необходимых данных. Частным случаем реализации модели COM является Automation, определяющий универсальный интерфейс IDispatch для доступа к свойствам и методам объектов, а также универсальный способ передачи данных (структура VARIANT ).

1С:Предприятие поддерживает средства Automation и тем самым позволяет:

с одной стороны, использовать во встроенном языке 1С:Предприятия произвольные объекты, доступные через Automation на данном компьютере или в сети. Для этого во встроенном языке 1С:Предприятия может быть использован оператор «Новый COMОбъект( )»;

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

Набор типов данных, представимых структурой VARIANT, ограничен, и не охватывает всего многообразия типов данных, доступных в 1С:Предприятии. Ниже будут рассмотрены некоторые особенности передачи средствами COM (через структуру VARIANT) данных 1С:Предприятия различных типов.

Примитивные типы

VT_I2, VT_I4, VT_R4, VT_R8, VT_CY, VT_ERROR, VT_DECIMAL, VT_I1, VT_UI1, VT_UI2, VT_UI4, VT_I8, VT_UI8, VT_INT, VT_UINT

Тип VARIANTТип в 1С:Предприятии
тип Число
VT_BSTRтип Строка
VT_DATEтип Дата
VT_BOOLтип Булево

Массивы

Важно, что данные типа VT_ARRAY являются аналогом примитивных типов в том смысле, что выступают в качестве значений, а не ссылок. В частности, преобразование структуры VARIANT в COMSafeArray приводит к копированию всех содержащихся в ней данных, и наоборот.

Объектные типы

1С:Предприятие или COM-соединение, подсоединенное к некоторой информационной базе, распознает объект как «свой» только в том случае, если он был создан этим же подсоединением к информационной базе. Например, если из COM-соединения получить элемент справочника и передать этот элемент справочника в качестве параметра какого-нибудь метода объекта, полученного из этого же COM-соединения, то при выполнении этого метода объект будет распознан как «свой». Объект, полученный из другого соединения с информационной базой, не будет распознан как «свой».

Такое поведение объектов 1С:Предприятия объясняется тем, что большинство объектов 1С:Предприятия используют свой экземпляр контекста информационной базы, из которой они получены, и в другом экземпляре контекста информационной базы они «своими» не являются. Каждое приложение 1С:Предприятия и каждый экземпляр COM-соединения поддерживает свой экземпляр контекста информационной базы. Поэтому объекты 1С:Предприятия не распознаются как «свои» не в том приложении 1С:Предприятия или экземпляре COM-соединения, в котором они были созданы.

Источник

COM Соединение

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

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

Создание СОМ объекта

Процесс создания СОМ объекта определяется используемой версией программы 1C. Исходя из этого и определяются дальнейшие действия. Для версий 8.2 и 8.3 командные строки будут выглядеть как COMConnector= Новый COMОбъект(«V82.COMConnector») или COMConnector= Новый COMОбъект(«V83.COMConnector») соответственно.

Непосредственно команда принимает вид:

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

«СтрокаПодключения» в свою очередь может иметь два варианта в зависимости от того, в файловой или серверной базе она используется. В первом случае она имеет вид:

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

Во втором случае ее вид приобретает следующий вид:

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

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

Примеры применения СОМ объекта

В качестве примера использования данной функции выступает ситуация, при которой посредством СОМ объекта происходит создание склада. В данном случае порядок действий предусматривается следующий:

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

Обратить внимание необходимо на тот факт, что в данном случае «ВидСклада» указывается посредством «СОМСоединение».

Посредством СОМ Соединения могут выполняться и различные запросы. Например:

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

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

Источник

Подключение к 1C 8.3 и 8.2 и работа по COM соединению

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

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

сом соединение что это. Смотреть фото сом соединение что это. Смотреть картинку сом соединение что это. Картинка про сом соединение что это. Фото сом соединение что это

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

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

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

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

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

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

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

Если Вы подключаетесь к базе на платформе 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. Мы работаем в Москве и области.

Источник

Обмен данными между базами 1С через COM соединение

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

Com соединение

Можно создать два вида COM объектов для приложения 1С. Это ole соединения V83.Application и com соединения V83.COMConnector. В случае с V83.Application запускается практически полноценный экземпляр приложения 1С. В случае использования V83.COMConnector запускается небольшая серверная часть. Скорость работы в этом случае выше, но некоторые функции могут быть недоступны. В частности работа с формами и с общими модулями для которых не установлено свойство работы с внешними соединениями. Преимущественно надо использовать V83.COMConnector и только в случае нехватки функционала V83.Application. Особенно сильно разница в скорости работы может быть заметна на базах большого объема. Для платформе 8.2 используется V82.Application или V82.COMConnector

Установить OLE соединение

Установить COM соединение

Строка подключения

Разрыв соединения

Для объекта V83.Application выполнять разрыв соединения обязательно, в противном случае останется висеть незавершенный сеанс, который потом придется удалять вручную. В случае с V83.COMConnector соединение разрывается автоматически при завершении процедуры в которой выполнялось подключение.И есть еще один маленький момент. Для пользователя под которым выполняется подключение должен быть отключен флажок «Запрашивать подтверждение при закрытии программы» в его настройках.

Метод NewObject()

Для создания нового объекта можно воспользоваться методом NewObject(), например:

После создания Com объекта можно далее работать с ним, например

Можно также использовать менеджеры объектов конфигурации:

Получение и сравнение перечисления через COM соединение

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

Получение объекта через COM по идентификатору

Через менеджеры объектов конфигурации получаем com объект, например :

Затем получаем строку уникального идентификатора :

Затем в базе данных можно найти по ссылке нужный документ, таким образом:

Если нужно найти com объект по идентификатору, то тогда нужно написать так:

Источник

Взаимодействие между базами 1С через COM

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

Термины

COM-клиент – процесс(поток) ОС, запросивший создание COM-объекта

COM-сервер – COM-объект, созданный по запросу клиента

Com-соединитель – COM-объект V8X.ComСonnector для создания внешних соединений с базами 1С

Automation-сервер – он же OLE-сервер, COM-объект V8X.Application для создания приложений 1С

Издание платформы – подстрока до 2-й точки версии платформы (например 8.2, 8.3)

Сборка платформы – полная строка версии платформы (например 8.2.19.130, 8.2.16.352)

Подключение внешнего соединения

Длительность создания COM-объекта, мс

Затраты на COM-вызовы

Соотношение затрат на вызов по типам расположения COM-сервера

Минимизация количества COM-вызовов

Обратная связь

Для борьбы с этими неудобствами можно организовать обратную связь от COM-сервера к COM-клиенту, передав COM-Серверу ссылку на общий модуль COM-клиента и периодически вызывая через нее COM-клиент. Нужно отметить, что есть ошибки платформы (https://partners.v8.1c.ru/forum/t/1382465/m/1382465 ), проявляющиеся при создании ссылок на один общий модуль более чем в одном COM-севере сеанса. Поэтому пока лучше очищать ссылки на общий модуль во всех удерживаемых COM-серверах перед помещением в новый. В обратных вызовах можно передавать:

Схема принципа “минимум COM-вызовов”

Такая схема дружественна к большим задержкам каналов связи. Поэтому она во многом похожа на вызов веб-сервиса. А следовательно используя ее для COM взаимодействия, вы значительно снижаете затраты на возможные переходы между COM и веб-сервисом в обоих направлениях.

Отладка

Чтобы включить возможность отладки внешних соединений, в подкаталоге conf нужно создать файл comcntrcfg.xml с соответствующим содержимым. В окне подключения можно сделать кнопку/флажок для программного создания такого файла. Однако много версий платформы содержат ошибку, из-за которой предметы отладки внешних соединений не видны в отладчике даже с этим корректно настроенным файлом. На платформе 8.3 эти проблемы вроде бы решены.

Пример файла comcntrcfg.xml:

Также нельзя забывать о необходимости запускать конфигуратор для отладки с той же (до регистра букв) строкой соединения, что и предмет отладки. Поэтому в этом диалоге нужно сделать кнопку для запуска конфигуратора COM-сервера с правильной строкой соединения.

В какой-то мере обойти проблему невидимости предмета отладки внешнего соединения и ряд других неудобств можно путем однократного выполнения кода на толстом клиенте с заменой режима «Внешнее соединение» на «Automation-сервер» (приложение), т.е. используя COM класс V8X.Application и включенную видимость. Поэтому в окне подключения нужны параметры для выбора режима подключения.

После создания подключения на стороне COM-клиента обычно требуется подключение отладчика базы COM-сервера и установка там точки останова в нужном месте. Поэтому в окне подключения нужно расположить кнопку подключения отладчика/конфигуратора COM-сервера. Если COM-сервер запущен в режиме видимого приложения, то для подключения отладчика можно воспользоваться асинхронным вызовом исключения в нем. Из диалога с ошибкой в приложении COM-сервера через кнопку «Конфигуратор» можно будет открыть конфигуратор и в большинстве случаев сразу подключить отладчик. Если подключение отладчика таким способом недоступно, то оператору поможет отображение информации о сеансе (его номера) в базе COM-сервера. Также нужна кнопка открытия в открытом отладчике файла внешней обработки, которая будет выполняться в нем.

Управление COM классами и COM+ приложениями 1С

Управление COM классами

Управление COM+ приложениями

Далее можно изменить тип активации (внутрипроцессный/внепроцессный) на закладке Активация/Activation.

В нашем продукте имеется инструмент «Управление COM классами 1С» для просмотра/регистрации/изменения всех COM классов и COM+ приложений 1С на указанном компьютере:

Настройка DCOM-сервера

Появится око в котором необходимо выбрать роль «Сервер приложений»/»Application server». На этапе выбора ролей сервера приложений необходимо указать пункт «Сетевой доступ к COM+»/»COM+ network access». Если это не сделать, то при попытке создания COM-объекта вы будете получать ошибку «Ошибка при вызове конструктора (COMОбъект): The component or application containing the component has been disabled».

Проблемы

Com-технология VS веб-сервисы в локальной сети

Недостатки

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

Захват клиентских лицензий

Заключение

СРОЧНО!

Успейте разобраться в ФСБУ 5/2019 «Запасы», пока вас не оштрафовали. Самый простой способ – короткий, но полный курс повышения квалификации от гуру бухгалтерского учета Сергея Верещагина

Источник

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

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