- Внешние компоненты в 1С 8.3
- Внешние компоненты
- Native API
- Подключение внешней компоненты на клиенте
- Технология внешних компонентов
- Native API
- Расширение встроенного языка
- Вызов процедуры обработки событий, контролируемых внешней компонентой
- Добавление страницы свойств в параметры «1С:Предприятие 8»
- Сохранение параметров компоненты через механизм сохранения параметров «1С:Предприятие 8»
- Доступ к строке состояния
- Native api ��� linux
- About
Внешние компоненты в 1С 8.3
Внешние компоненты
Внешние компоненты 1С — это файлы с расширением dll (или so для Linux), которые представляют из себя динамически подключаемую библиотеку. С помощью внешних компонент можно расширить функциональность платформы 1С.
Внешние компоненты можно использовать на разных операционных системах:
А также может быть 32-х разрядная версия внешней компоненты и 64-х разрядная.
Внешние компоненты могут использоваться при работе через веб-клиент для браузеров:
- Google Chrome
- Microsoft Internet Explorer
- Mozilla Firefox
- Safari;
И в мобильной платформе 1С для мобильных операционных систем:
Существует две технологии создания внешних компонент для 1С:
Внешние компоненты разработанные по технологии COM можно использовать только:
- В тонком и толстом клиентах
- В веб клиенте, только для ОС Windows
Для подключения внешней компоненты используется метод НачатьПодключениеВнешнейКомпоненты, вторым параметром нужно указать ProgID COM компоненты.
Также можно использовать синхронный метод ПодключитьВнешнююКомпоненту и асинхронный ПодключитьВнешнююКомпонентуАсинх.
На данный момент данная технология является устаревшей, рекомендуется использовать технологию Native API.
Native API
Внешние компоненты разработанные по технологии Native API можно использовать:
- В тонком и толстом клиентах
- В веб-клиенте
- На сервере
- В мобильном приложении
Внешняя компонента может быть запакована в ZIP-архив или представлена в виде отдельного файла.
Так как внешние компоненты по технологии Native API могут быть использованы как в Windows, так и в Linux, то желательно помещать в архив с компонентой 5 файлов:
- dll файл 32-х разрядной версии
- dll файл 64-х разрядной версии
- so файл 32-х разрядной версии
- so файл 64-х разрядной версии
- Файл-манифест
В этом случае при подключении внешней компоненты платформа сама определит какой файл использовать по файлу-манифесту.
Подключение внешней компоненты на клиенте
Перед подключением внешней компоненты на клиенте, ее сначала нужно установить методом НачатьУстановкуВнешнейКомпоненты. Установка выполняется в каталог компьютера клиента %APPDATA%\1C\1Cv8\ExtCompT. Установка выполняется один раз. В дальнейшем перед использованием компоненты ее нужно только подключать. Подключение выполняется методом НачатьПодключениеВнешнейКомпоненты.
Компонента может храниться:
- На диске в виде отдельного файла
- В макете с типом двоичные данные или внешняя компонента
- В базе данных в реквизите с типом ХранилищеЗначения
Источник
Технология внешних компонентов
Технология внешних компонентов позволяет создавать программы (внешние компоненты), которые будут динамически подключаться и тесно взаимодействовать с системой 1С:Предприятие 8, расширяя ее возможности. Данная технология позволяет подключать к системе 1С:Предприятие 8 различное торговое оборудование: сканеры штрих-кодов, принтеры этикеток и т. д.
Native API
Для создания внешних компонентов используется технология Native API — собственный интерфейс системного программирования 1С:Предприятия 8. Она поддерживает операционные системы Windows и Linux, и дает возможность создавать внешние компоненты, работающие как под одной, так и под другой операционной системой. Компоненты, созданные по технологии Native API, могут быть подключены в толстом клиенте, в тонком клиенте, в веб-клиенте, внешнем соединении и в сервере приложений.
Расширение встроенного языка
Внешние компоненты позволяют расширять встроенный язык новыми объектами. Структуры механизмов внешних компонент максимально приближены к внутренним структурам системы 1С:Предприятие 8, что повышает эффективность работы.
Вызов процедуры обработки событий, контролируемых внешней компонентой
Внешняя компонента может порождать события, обрабатываемые в предопределенной процедуре языка ОбработкаВнешнегоСобытия. Это позволяет подключать к системе 1С:Предприятие 8 сканеры и другие устройства, требующие асинхронного обмена данными.
Добавление страницы свойств в параметры «1С:Предприятие 8»
Внешние компоненты могут добавлять свои страницы свойств в диалог параметров системы 1С:Предприятие 8. Таким образом, торговое оборудование может включаться в систему и управляться стандартным для системы 1С:Предприятие 8 способом.
Сохранение параметров компоненты через механизм сохранения параметров «1С:Предприятие 8»
При сохранении своих параметров внешняя компонента может использовать механизмы системы 1С:Предприятие 8.
Доступ к строке состояния
При работе состояние внешней компоненты может отражаться в панели состояния системы 1С:Предприятие 8.
Источник
Native api ��� linux
1cWinCtrl — внешняя компонента 1С
Предназначена для управления окнами Windows и Linux, разработана по технологии Native API.
- Получение списка окон и списка процессов
- Управление размерами и положением окна
- Получение снимка окна и снимка экрана
- Доступ к данным буфера обмена
Работа с процессами:
Информация об окружении:
Управление окном приложения:
Захват изображения экрана:
Работа с буфером обмена:
Расширенный функционал работы с буфером обмена вынесен в объект ClipboardControl.
Внешняя компонента поддерживает как синхронный, так и асинхронный вызов. Для асинхронного вызова в полном соответствии с документацией Синтакс-помощника 1С:Предприятие применяются методы:
Пример асинхронного вызова внешней компоненты:
Далее по тексту все примеры будут приводиться для синхронных вызовов. В публикуемом примере 1cWinCtrl.epf используются только асинхронные вызовы.
Многие свойства и методы компоненты возвращают сложные типы данных, которые сериализованы в строку формата JSON. Поэтому имеет смысл объявить в вызывающем модуле универсальную функцию, которая будет использоваться ниже в примерах работы компоненты:
Готовая сборка внешней компоненты находится в файле /Example/Templates/_1cWinCtrl/Ext/Template.bin
Порядок самостоятельной сборки внешней компоненты из исходников:
- Для сборки компоненты необходимо установить Visual Studio Community 2019
- Чтобы работала сборка примера обработки EPF надо установить OneScript версии 1.0.20 или выше
- Устанавливаем VirtualBox и разворачиваем в минимальной конфигурации Ubuntu 18.04 или CentOS 8
- Устанавливаем на Linux необходимые пакеты (см. ниже) и дополнения гостевой ОС
- Подключаем в VirtualBox общую папку с исходными текстами внешней компоненты
- В среде Linux для компиляции библиотек запустить ./build.sh
- В среде Window для завершения сборки запустить ./compile.bat
Сборка для Linux в CentOS 8:
Сборка для Linux в Ubuntu 18.04:
Установка на VirtualBox дополнений гостевой ОС для Linux:
Установка и подключение
Для создания объекта экземпляра внешней компоненты используйте имя WindowsControl. В прилагаемом примере файлы внешней компоненты хранятся в макете _1cWinCtrl, реквизит формы МестоположениеКомпоненты используется для передачи макета компоненты между сервером и клиентом. Для установки и подключения внешней компоненты рекомендуется использовать следующий программный код:
Тип значения: Строка (только чтение)
- Возвращает строку с текстом в формате JSON, при чтении которого получаем объект типа Структура с размерами экрана и рабочей области.
Тип значения: Строка (только чтение)
- Возвращает строку с текстом в формате JSON, при чтении которого получаем объект типа Массив из элементов типа Структура с размерами дисплеев мониторов.
Тип значения: Строка (только чтение)
- Возвращает строку с текстом в формате JSON, при чтении которого получаем объект типа Массив из элементов типа Структура с информацией об окнах верхнего уровня: дескриптор окна, диентификатор процесса, владелец, заголовок окна.
Тип значения: Целое число (только чтение)
- Возвращает идентификатор основного процесса приложения 1С, в сеансе которого вызывается внешняя компонента.
Тип значения: Целое число (чтение и запись)
- Дескриптор приоритетного окна (окна, с которым пользователь в настоящее время работает).
Тип значения: Строка (чтение и запись)
- Предоставляет доступ к содержимому буфера обмена в текстовом формате.
Тип значения: Двоичные данные (чтение и запись)
- Предоставляет доступ к содержимому буфера обмена в формате картинки PNG.
Возвращает текст в формате JSON, при чтении которого получаем объект типа Структура, сотдержащий информацию о клиенте тестирования, найденному по номеру порта, который присутствует в командной строке экземпляра клиента тестирования.
- НомерПорта (обязательный), Тип: Целое число
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Структура с подробной информацией о найденном процессе.
- ProcessId — идентификатор процесса (Число)
- CommandLine — командная строка процесса (Строка)
- CreationDate — дата старта процесса (Дата)
- Window — дескриптор основного окна (Число)
- Title — заголовок основного окна (Строка)
Получает список запущенных процессов.
- ИспользоватьОтбор (обязательный), Тип: Булево
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем типа Массив из элементов типа Структура информацией о процессах.
По идентификатору процесса возвращает всю доступную информацию о процессе.
- ИдентификаторПроцесса (обязательный), Тип: Целое число
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Структура с подробной информацией о процессе:
- ProcessId — идентификатор процесса (Число)
- CommandLine — командная строка процесса (Строка)
- CreationDate — дата старта процесса (Дата)
Простейшая функция обмена данными по протоколу WebSocket. Может быть использована для интеграции с браузером Google Chrome.
- Адрес (обязательный), Тип: Строка
- Команда (обязательный), Тип: Строка
Тип возвращаемого значения: Строка
- Содержит данные, полученные как ответ сервера WebSocket на отправленную команду.
Подробная информация о Chrome DevTools Protocol доступна по адресу:
Приостанавливает выполнение программного кода на заданное количество миллисекунд.
По дескриптору окна получает список дисплеев, на которых располагается окно или его части.
- ДескрипторОкна (необязательный), Тип: Целое число Если параметр не задан, будет получена информация обо всех дисплеях.
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Массив из элементов типа Структура со свойствами дисплея: координаты границ, высота и ширина, наименование дисплея, координаты и размер рабочей области дисплея.
По дескриптору окна получает свойства дисплея, на котором располагается наибольшая часть окна.
- ДескрипторОкна (необязательный), Тип: Целое число Если параметр не задан, будет получена информация для активного окна.
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Структура со свойствами дисплея: координаты границ, высота и ширина, наименование дисплея, координаты и размер рабочей области дисплея.
Возвращает текст в формате JSON, при чтении которого получаем объект типа Массив из элементов типа Структура с информацией об окнах, принадлежащих указанному процессу.
- ИдентификаторПроцесса (обязательный), Тип: Целое число
- Если параметр нулевой или не задан, возвращается список всех окон.
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Массив из элементов типа Структура с информацией о найденых окнах:
- Window — дескриптор окна (Число)
- ProcessId — идентификатор процесса (Число)
- Class — идентификатор класса окна (Строка)
- Title — заголовок окна (Строка)
- Owner — окно владелец (Число)
Возвращает текст в формате JSON, при чтении которого получаем объект типа Структура с информацией об основных свойставх окна:
- ДескрипторОкна (обязательный), Тип: Целое число
- Если параметр нулевой, будут получены свойства активного окна.
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Структура с информацией об основных свойствах окна:
- Window — дескриптор окна (Число)
- ProcessId — идентификатор процесса (Число)
- Maximized — распахнуто, максимизировано (Булево)
- Class — идентификатор класса окна (Строка)
- Title — заголовок окна (Строка)
- Owner — окно владелец (Число)
Возвращает текст в формате JSON, при чтении которого получаем объект объект типа Структура с информацией о размерах и позиции окна.
- ДескрипторОкна (обязательный), Тип: Целое число
- Если параметр нулевой, будут получены размеры активного окна.
Тип возвращаемого значения: Строка
- Содержит строку с текстом в формате JSON, при чтении которого получаем объект типа Структура с информацией о размерах и позиции окна:
- Left — левая граница (Число)
- Top — верхняя граница (Число)
- Right — правая граница (Строка)
- Bottom — нижняя граница (Строка)
- Width — ширина окна (Число)
- Height — высота высота (Число)
- Window — дескриптор окна (Число)
Активирует окно по дескриптору.
- ДескрипторОкна (обязательный), Тип: Целое число
Распахиват (максимизирует) окно, разворачивая его на всё рабочую область экрана.
- ДескрипторОкна (обязательный), Тип: Целое число
Показывает окно в нормальном режиме отображения, если оно было свёрнуто или распахнуто.
- ДескрипторОкна (обязательный), Тип: Целое число
Перемещает позицию курсора (мышки) в указанную точку экрана.
Получает снимок экрана или активного окна, в зависимости от переданного параметра.
- Режим (обязательный), Тип: Целое число
- 0 — Чтобы сделать снимок всего экрана
- 1 — Чтобы сделать снимок области активного окна
Тип возвращаемого значения: Двоичные данные
- Возвращает картинку в формате PNG.
Получает снимок произвольного окна по его дескриптору.
- ДескрипторОкна (обязательный), Тип: Целое число
- 0 — Чтобы сделать снимок активного окна
Тип возвращаемого значения: Двоичные данные
- Возвращает картинку в формате PNG.
Получает снимок верхнего окна экземпляра 1С:Предприятие по идентификатору процесса.
- ИдентификаторПроцесса (обязательный), Тип: Целое число
- Идентификатор процесса приложения 1С:Предприятие
Тип возвращаемого значения: Двоичные данные
- Возвращает картинку в формате PNG.
Очищает буфер обмена.
Внешняя компонента содержит также отдельный класс для работы с буфером обмена. Для создания объекта доступа к буферу обмена используйте имя ClipboardControl.
- Текст / Text
- Картинка / Image
- Файлы / Files
- Формат / Format
- Версия / Version
- ЗаписатьТекст / SetText
- ЗаписатьФайлы / SetFiles
- ЗаписатьКартинку / SetImage
- ЗаписатьДанные / SetData
- Очистить / Empty
При разработке использовались библиотеки:
About
Внешняя компонента 1С Native API для управления окнами
Источник