Native api ��� linux

Внешние компоненты в 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, могут быть подключены в толстом клиенте, в тонком клиенте, в веб-клиенте, внешнем соединении и в сервере приложений.

Читайте также:  Windows не может найти файл сценария

Расширение встроенного языка

Внешние компоненты позволяют расширять встроенный язык новыми объектами. Структуры механизмов внешних компонент максимально приближены к внутренним структурам системы 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

Порядок самостоятельной сборки внешней компоненты из исходников:

  1. Для сборки компоненты необходимо установить Visual Studio Community 2019
  2. Чтобы работала сборка примера обработки EPF надо установить OneScript версии 1.0.20 или выше
  3. Устанавливаем VirtualBox и разворачиваем в минимальной конфигурации Ubuntu 18.04 или CentOS 8
  4. Устанавливаем на Linux необходимые пакеты (см. ниже) и дополнения гостевой ОС
  5. Подключаем в VirtualBox общую папку с исходными текстами внешней компоненты
  6. В среде Linux для компиляции библиотек запустить ./build.sh
  7. В среде Window для завершения сборки запустить ./compile.bat

Сборка для Linux в CentOS 8:

Сборка для Linux в Ubuntu 18.04:

Установка на VirtualBox дополнений гостевой ОС для Linux:

Установка и подключение

Для создания объекта экземпляра внешней компоненты используйте имя WindowsControl. В прилагаемом примере файлы внешней компоненты хранятся в макете _1cWinCtrl, реквизит формы МестоположениеКомпоненты используется для передачи макета компоненты между сервером и клиентом. Для установки и подключения внешней компоненты рекомендуется использовать следующий программный код:

Тип значения: Строка (только чтение)

  • Возвращает строку с текстом в формате JSON, при чтении которого получаем объект типа Структура с размерами экрана и рабочей области.

Тип значения: Строка (только чтение)

  • Возвращает строку с текстом в формате JSON, при чтении которого получаем объект типа Массив из элементов типа Структура с размерами дисплеев мониторов.
Читайте также:  Не восстанавливается mac os

Тип значения: Строка (только чтение)

  • Возвращает строку с текстом в формате 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, при чтении которого получаем объект типа Массив из элементов типа Структура с информацией об окнах, принадлежащих указанному процессу.

  • ИдентификаторПроцесса (обязательный), Тип: Целое число
    • Если параметр нулевой или не задан, возвращается список всех окон.
Читайте также:  Драйвера для packard bell z5wt1 windows 10

Тип возвращаемого значения: Строка

  • Содержит строку с текстом в формате 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 для управления окнами

Источник

Оцените статью