Решение для работы внешней компоненты в веб-браузере под Linux: Cmake + Makeself

19.02.24

Разработка - Разработка внешних компонент

Небольшой цикл статей про внешние компоненты (ВК) для веб-браузеров. Цель – описать общий механизм взаимодействия платформы 1С и ВК в этом режиме, предложить как доработанное решение, основанное на примере от 1С, так и собственную разработку - внешнюю обработку 1С. Решение позволяет обеспечивать работу в веб-браузере для любой нативной библиотеки, разработанной на основе шаблона ВК от 1С и работающей в тонком клиенте. На вход решение получает наименование компании, продукта, номер версии и т.д., а также файл библиотеки, на выходе - zip-архив для загрузки в макет в 1С.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Решение для работы внешней компоненты в веб-браузере под Linux: Cmake + Makeself:
.zip 14,06Mb ver:1.0.1.1
5
5 Скачать бесплатно

Вторая статья из цикла:

  1. Решение для работы внешней компоненты в веб-браузере под Windows: CMake + NSIS.
  2. Решение для работы внешней компоненты в веб-браузере под Linux: Cmake + Makeself (данная статья).
  3. Решение для работы внешней компоненты в веб-браузере под Windows и Linux: 1С + Installer.

Расширение веб-браузера от 1С для Linux тоже, что и для Windows.

Функционирование собственного приложения под Linux отличается от такового под Windows использованием директорий вместо реестра. Для веб-браузера Chrome используется директория "~/.config/google-chrome/NativeMessagingHosts", для Firefox - "~/.mozilla/native-messaging-hosts", для Chromium - "~/.config/chromium/NativeMessagingHosts". Знак "~/." означает "/home/<имя пользователя>/ ". В директорию веб-браузера помещается файл манифеста json. Формат файла для веб-браузера, такой же, как и для Windows. 

Собственное приложение от 1С для Linux состоит из:

  1. Адаптер (исполняемый файл без расширения).
  2. Нативная библиотека (so).
  3. Файл манифеста для веб-браузера (json).

Адаптер и нативная библиотека помещаются в директорию "~/bin/<наименование компании>/<наименование продукта>/<версия>".

Имя файла манифеста имеет вид: "com.<наименование компании>.enterprise.<наименование продукта>.<версия>.json", файл помещается в соответствующую веб-браузеру директорию.

Алгоритм взаимодействия кода 1С с внешней компонентой в режиме веб-клиента не отличается от такового для Windows, кроме того, что вместо реестра используются указанные выше директории.

 
 Сообщение платформы 1С о загрузке установщика в Firefox

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

 
Пометка файла как исполняемого

 

Структура решения

В целом, структура решения совпадает с таковой для Windows, отличий немного:

Вместо NSIS используется Makeself, в каталоге NativeAPI должны быть нативные библиотеки формата AddIn<32|64>.so, в подкаталоге project нужно запускать скрипты linux_build64.sh и linux_build32.sh.

 

Работа с решением

Для работы с решением необходимо предварительно настроить Linux, установив пакеты:

Пакет CMake: sudo apt install cmake
Пакеты, необходимые для компиляции программного обеспечения: sudo apt-get install build-essential
Утилиты для работы с исполняемыми и связываемыми файлами: sudo apt-get install elfutils
Файлы разработки для библиотеки GTK: sudo apt-get install libgtk-3-dev

Работа с решением строится по следующему принципу: заполняем своими значениями файл settings.cmake, копируем в каталог NativeAPI скомпилированные нативные библиотеки, выполняем в консоле скрипт linux_build64.sh или linux_build32.sh, в зависимости от разрядности ОС.

 
Лог выполнения скрипта

если в консоле не было ошибок, в каталог project\build\pkg будут помещены файлы с библиотекой, установщиком и манифестом. В каталог project\build будет помещен собранный пакет в формате zip для загрузки в макет 1С. Пакет формируется для той ОС, в которой запущен скрипт. Какого-то механизма объединения пакетов для разных ОС и разрядностей в один в примере от 1С не предусмотрено.  Впрочем, это несложно сделать вручную - нужно просто добавить в zip-архив файлы библиотек и установщиков. Файл manifest.xml сразу идёт с значениями для всех вариантов, его дорабатывать не нужно.

 

Тестирование

Решение тестировалось в Ubuntu 22.04 X64, CMake 3.22.1, gcc 11.4.0, 1С:Предприятие 8.3 (8.3.23.1912), Firefox 110.0.1 , 122.0.1 не snap!!!, Chrome 120.0.6099.224. В Debian 12.04 X32, CMake 3.25.1, gcc 12.2.0, 1С:Предприятие 8.3 (8.3.23.1997), Firefox 115.7.0esr (32-разрядный), Chrome 120.0.6099.224.

Внешние компоненты

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

18000 руб.

30.05.2017    54042    9    69    

46

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1127    3    4    

3

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    47298    124    66    

67

Разработка внешних компонент Программист Платформа 1С v8.3 Платформа 1C v8.2 Платные (руб)

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    3598    3    0    

5

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77516    72    257    

191

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

3000 руб.

12.05.2020    28655    138    100    

91

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    1834    bayselonarrend    10    

44

Разработка внешних компонент Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    4722    kovalevdmv    26    

75
Оставьте свое сообщение