Рубрика:
Базы данных /
Изучаем «1С»
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ОЛЕГ ФИЛИППОВ, АНТ-Информ, заместитель начальника отдела разработки, comol@mail.ru
Расширяем функциональность 1С:Предприятия Часть 1. Внешние компоненты COM
В жизни каждого разработчика 1С наступает момент, когда задачи, перед ним поставленные, превосходят возможности платформы 1С. Рассмотрим способы, как «преодолеть границу возможного»
Опытные разработчики 1С уже, наверное, по первым трем словам названия статьи догадались, что речь пойдет о внешних компонентах для 1С:Предприятия. Эта технология существует еще со времен платформы 1С:Предприятие 7.7 (или более ранней). Исторически появилась в основном для решения задач взаимодействия с торговым оборудованием (сканерами ШК, электронными весами, ККМ), в ходе которых возникает необходимость обработки платформой 1С определенных событий, инициируемых оборудованием. Такие события являются не чем иным, как поступающими на COM/LPT-порты последовательностями байт. Конечно, адаптировать платформу 1С для работы с такими низкоуровневыми механизмами было бы не очень правильно, поэтому придумали технологию внешних компонент для 1С:Предприятия.
В данном цикле статей речь пойдет не только о внешних компонентах: внешние компоненты – достаточно мощный и сложный механизм, поэтому их использование для решения некоторых задач видится как «стрельба из пушки по воробьям». Тем не менее внешние компоненты являются наиболее универсальным средством для решения всевозможных задач, которые выходят за рамки платформы 1С:Предприятие, поэтому начнем мы именно с них. В статье будет рассмотрена наиболее старая, часто используемая и проверенная временем технология создания внешних компонент – на основе COM.
Что такое внешние компоненты
Внешние компоненты, как было сказано выше, появились в 1С:Предприятии еще с версии 7.7. Изначально по традиции разработчики платформы 1С «не заморачивались», и внешние компоненты представляли собой объект с определенными обязательными свойствами и методами. В том же виде компоненты существуют и по сей день. То есть компоненты, написанные для 1С:Предприятия 7.7, будут (в теории) работать и с 1С:Предприятием 8.3.
На практике существует ряд тонкостей: если внешняя компонента активно взаимодействует с самой платформой, то ее функции будут специализированными для конкретной версии.
С версии 8.2 в 1С:Предприятии появилась новая технология разработки внешних компонент, так называемая NativeAPI. Компоненты, написанные по этой технологии, уже не являются COM-объектами. С одной стороны, это плюс – данные компоненты не требуют регистрации, с другой, использование их еще где-либо, кроме платформы 1С:Предприятие, невозможно. Несколько сложнее стала разработка внешних компонент, чуть большее количество обязательных интерфейсов они должны поддерживать. Но о ней речь пойдет в следующей статье.
Внешние компоненты и технология COM
Подробно описывать саму технологию COM не буду, потому как литературы на эту тему масса. Стоит только, наверное, сказать, что многие «путают» создание обычного inproc-сервера с созданием внешних компонент для 1С:Предприятия, но это недалеко от истины. Очень часто можно обойтись только этим функционалом. Как создавать COM-объект на Visual Studio, описано во множестве различных источников. В частности, в [1] человек детально написал, как это делается, с примером вызова из 1С:Предприятия.
Если же хочется все-таки сделать полноценную COM внешнюю компоненту для 1С:Предприятия (из вариантов, зачем это может понадобиться, могу придумать только один – компонента должна активно взаимодействовать с системой на платформе 1С, оповещать пользователей, изменять строку статуса, отображать диалоговые окна и т.п.), то надо воспользоваться непосредственно технологией внешних компонент. Итак, приступим.
Статью целиком читайте в журнале «Системный администратор», №7-8 за 2015 г. на страницах 50-53.
PDF-версию данного номера можно приобрести в нашем магазине.
- Пример разработки COM-объекта и использования его из 1С:Предприятия – http://infostart.ru/public/115486.
- Пример внешней компоненты под VS 2008 – http://stranichko.org.ua/blog/programming/1c-vk-rs232-com-port-sources.
- Описание технологии создания внешних компонент – http://its.1c.ru/db/metod8dev#content:3221:hdoc:_com_comp.
- Пример внешней компоненты на C# – http://infostart.ru/public/140411.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|