Внешние компоненты 1С
Назначение внешней компоненты
Внешняя компонента — библиотека (.dll, .so), которая расширяет платформу там, где BSL не хватает — ККТ, сканер штрихкода, ТСД, спец. протокол, криптопровайдер.
Внешняя компонента в экосистеме 1С — это программный модуль, расширяющий возможности платформы за счёт интеграции со сторонними библиотеками, оборудованием или специализированными сервисами; она позволяет реализовывать низкоуровневые операции, недоступные средствами встроенного языка, и служит связующим звеном между прикладным решением и внешними ресурсами.
Библиотека с расширениями
.dll(для Windows) и.so(для Linux) — это скомпилированный бинарный модуль, содержащий набор функций и классов, которые могут быть загружены и использованы в среде выполнения; в контексте 1С такие библиотеки выступают технической основой внешних компонент, предоставляя нативный код для взаимодействия с операционной системой, драйверами устройств или криптографическими сервисами.
ККТ (контрольно‑кассовая техника) — это специализированное оборудование, предназначенное для регистрации расчётов с покупателями и передачи фискальных данных в налоговые органы; в решениях на базе 1С ККТ интегрируется через драйверы и внешние компоненты, обеспечивая формирование чеков, передачу сведений оператору фискальных данных и соблюдение требований законодательства о применении кассовой техники.
Сканер штрихкода — это устройство ввода, преобразующее графическое представление штрихкода в текстовую последовательность символов; в прикладных решениях 1С он используется для ускорения идентификации товаров, номенклатуры и документов, а его взаимодействие реализуется через стандартные интерфейсы ввода, COM‑объекты либо внешние компоненты, учитывающие особенности передачи данных (например, суффикс возврата каретки).
ТСД (терминал сбора данных) — это мобильный терминал, оснащённый сканером штрихкодов и радиоканалом связи, предназначенный для оперативного учёта товаров на складе, инвентаризации и приёмки; в связке с 1С ТСД обменивается данными через специализированные протоколы и промежуточные сервисы, позволяя выгружать задания на инвентаризацию, фиксировать результаты сканирования и синхронизировать остатки в реальном времени.
Спец. протокол — это согласованный набор правил обмена данными, разработанный для конкретного оборудования, интеграционного шлюза или отраслевого стандарта; в экосистеме 1С такие протоколы применяются для взаимодействия с ККТ, банковскими терминалами, промышленными контроллерами и иными устройствами, где стандартные механизмы обмена оказываются недостаточными; они определяют формат пакетов, последовательность команд, обработку ошибок и таймауты, обеспечивая надёжную передачу данных.
Криптопровайдер — это программный компонент, реализующий криптографические операции (шифрование, электронную подпись, проверку сертификатов) в соответствии с принятыми стандартами и требованиями регуляторов; в 1С криптопровайдеры используются для формирования юридически значимых электронных документов, обмена с государственными информационными системами и защиты конфиденциальных данных, взаимодействуя с платформой через интерфейсы CryptoAPI либо специализированные внешние компоненты.
| Технология | Статус |
|---|---|
| Native API | Рекомендуемая, Windows/Linux/macOS, веб и мобильный клиент |
| COM | Legacy (8.1 и совместимость); на сервере Linux не используют |
Native API — это низкоуровневый программный интерфейс, предоставляющий прямой доступ к функциям операционной системы, аппаратным ресурсам или сторонним библиотекам; в контексте интеграции с 1С Native API служит основой для разработки внешних компонент, позволяя выполнять операции, требующие максимальной производительности или прямого управления ресурсами, и обходить ограничения высокоуровневых абстракций платформы.
COM (Component Object Model) — это технология Microsoft для создания и использования программных компонентов в среде Windows, обеспечивающая унифицированный способ вызова методов и доступа к свойствам объектов; в 1С COM применяется для интеграции со сторонними приложениями, автоматизации задач из внешних скриптов и подключения драйверов оборудования, выступая в роли промежуточного слоя между платформой и нативными библиотеками.
Комплект для Native API — четыре файла (Win32/Win64, Linux32/Linux64) + манифест в ZIP; для тонкого и веб-клиента ZIP обязателен.
Манифест — это структурированный файл описания, содержащий метаданные о компоненте: версию, зависимости, требуемые разрешения, точки входа и конфигурацию загрузки; в сценариях интеграции с 1С манифест используется для корректной регистрации внешней компоненты в системе, определения её совместимости с платформой и управления жизненным циклом, включая установку, обновление и удаление.
Схема подключения
Установка внешней компоненты — это процесс развёртывания бинарных файлов, регистрации компонентов в системе и настройки зависимостей, обеспечивающий готовность модуля к использованию в среде 1С; он может включать копирование библиотек в целевые каталоги, регистрацию COM‑объектов, настройку переменных окружения и проверку прав доступа, а также согласование версий платформы и целевой операционной системы.
Подключение внешней компоненты — это этап интеграции на уровне прикладного решения, когда компонент регистрируется в конфигурации, инициализируется в сеансе работы и становится доступен для вызова из встроенного языка; этот процесс предполагает проверку наличия файлов, загрузку библиотек в адресное пространство процесса, обработку ошибок инициализации и привязку к объектам метаданных либо глобальным модулям.
Вызов API компоненты — это обращение из кода 1С к функциям и методам внешней компоненты через определённые интерфейсы, что позволяет выполнять специализированные операции (например, печать на принтере, подпись документа, сканирование штрихкода); такой вызов сопровождается передачей параметров, обработкой возвращаемых значений и перехватом исключений, а корректность взаимодействия зависит от соответствия типов данных, контрактов API и состояния оборудования.
УстановитьВнешнююКомпоненту()— однократно на рабочей станции (тонкий/веб-клиент; из макета или базы, не с диска).ПодключитьВнешнююКомпоненту()— перед каждым использованием в сеансе.Новый("AddIn.<Имя>.<Расширение>")— вызов API компоненты.
Не объединяйте установку и подключение в один блок без условия: повторная установка вызывает интерактивное исключение.
Откуда брать компоненту
Хранение компоненты — это организация размещения файлов внешней компоненты в инфраструктуре предприятия с учётом требований к доступности, безопасности и обновлению; оно может предусматривать централизованное хранение в репозитории, размещение в каталогах информационной базы или на файловых серверах, а также контроль версий, резервное копирование и разграничение доступа, чтобы обеспечить стабильность работы прикладных решений и упростить сопровождение интеграций.
| Источник | Тонкий/веб | Толстый/сервер |
|---|---|---|
| Файл на диске | Только отдельные .dll/.so | Да |
| Макет конфигурации (ZIP или файлы) | ZIP + Установить... | Подключить... |
| ХранилищеЗначения в базе | ZIP + установка | Подключение |
Пример с макета:
УстановитьВнешнююКомпоненту("Обработка.Драйвер.Макет.AddIn");
ПодключитьВнешнююКомпоненту("Обработка.Драйвер.Макет.AddIn", "МойДрайвер");
Объект = Новый("AddIn.МойДрайвер.Компонента");
На сервере и в мобильном приложении — только Native API. Веб-клиент — Native API; COM только в IE на Windows (устаревший сценарий).
Связанные материалы
- Интеграция — хаб
- Automation — другой способ связи с внешним ПО (COM)