Native API для Chrome Web 1C
Добрый день.
Предистория: я не разработчик 1С и никокда таким не был. Но, стоит задача разработать ВК которая будет реализовывать интеграционный механизм.
С чего начал: скачал архив с официальной статьи сайта ИТС и собрал dll.
Компонента установилась, подключилась и работает в виндовом 1С и серверном все ок.
То есть AddInNative.dll 100% рабочая и живая.
Потом собрал с помощью NSIS exe файл и добавил его в архив и манифест.
И хром и мазила при установке в макете запрашивает добавить расширение. Ставит его и скачивает exe. После установки, успешно распаковывает и config.cpp и саму dll в каталог
C:\Users\dev\AppData\Roaming\Company\AddInNative\1.0.0.1
В реестр так же успешно добавляет ключи
После браузер требует обновить страницу с 1С, обновляет и при попытке получить экземпляр объекта падает в исключение.
Отличается ли способ подключения ВК на веб и виндовом 1С?
Как правильно подключать, есть ли пример?
Предистория: я не разработчик 1С и никокда таким не был. Но, стоит задача разработать ВК которая будет реализовывать интеграционный механизм.
С чего начал: скачал архив с официальной статьи сайта ИТС и собрал dll.
Компонента установилась, подключилась и работает в виндовом 1С и серверном все ок.
То есть AddInNative.dll 100% рабочая и живая.
Потом собрал с помощью NSIS exe файл и добавил его в архив и манифест.
И хром и мазила при установке в макете запрашивает добавить расширение. Ставит его и скачивает exe. После установки, успешно распаковывает и config.cpp и саму dll в каталог
C:\Users\dev\AppData\Roaming\Company\AddInNative\1.0.0.1
В реестр так же успешно добавляет ключи
После браузер требует обновить страницу с 1С, обновляет и при попытке получить экземпляр объекта падает в исключение.
Отличается ли способ подключения ВК на веб и виндовом 1С?
Как правильно подключать, есть ли пример?
&НаКлиенте
Процедура ПроверитьКомпоненту(Команда)
НачатьПодключениеВнешнейКомпоненты(
Новый ОписаниеОповещения("КомпоненаПодключенаАсинхронно", ЭтотОбъект, "Native"),
АдресМакета,
"Test",
ТипВнешнейКомпоненты.Native);
КонецПроцедуры
&НаКлиенте
Процедура КомпоненаПодключенаАсинхронно(Подключено, ТипПодключения) Экспорт
Если Подключено Тогда
Попытка
Компонента = Новый ("AddIn.Test.TestAPI");
Компонента.Test();
Исключение
Вывести(Сообщения, "Ошибка инициализации компоненты.");
Возврат;
КонецПопытки;
Иначе
Вывести(Сообщения, "Не подключено!");
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Да, вроде, все учел и все сделал как в описании, кроме одного пункта (Пакет должен быть подписан цифровой подписью разработчика (SHA1+SHA256)), но это ворде как для старых систем и счс уже не требуется, exe ведь ставится и выполняется успешно.
AddInChrome.rc
config.cpp
manifest.json
AddInChromeSetup.nsh
В результате получается exe, которая идет в архиве вместе с dll и манифест:
и при созд
Да, вроде, все учел и все сделал как в описании, кроме одного пункта (Пакет должен быть подписан цифровой подписью разработчика (SHA1+SHA256)), но это ворде как для старых систем и счс уже не требуется, exe ведь ставится и выполняется успешно.
AddInChrome.rc
BEGIN
VALUE "CompanyName", "Areon"
VALUE "FileDescription", "AddInChr"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "AddInChr"
VALUE "LegalCopyright", "Copyright © Areon 2020 All rights reserved."
VALUE "OriginalFilename", "AddInChr64.exe"
VALUE "ProductName", "AreonAPI"
VALUE "ProductVersion", "1, 0, 0, 1"
END
Показатьconfig.cpp
#include "config.h"
AddInComponentType typeComponent = eAddInNative;
const char *nameFilePrj = "AddInChr64.exe";
const char *nameFileComponent = "AddInAreonAPI_x64.dll";
manifest.json
{
"name": "com.Areon.AreonAPI.1",
"description": "Areon Vicidial AddIn Extension for Chrome",
"path": "AddInChr64.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://dabkapchgmdkcihphgicpalppegkpond/",
"chrome-extension://fbeahdpfmckplkadiogimnogijfcbnbd/"
]
}
ПоказатьAddInChromeSetup.nsh
!ifndef ADDINCONST_INCLUDED
!define ADDINCONST_INCLUDED
!define Version "1.0.0.1"
!define ProductVersion "1.0.0.1"
!define Product "AreonAPI"
!define Manufacturer "Areon"
!define CompanyURL "www.areon.com"
!define Description "Areon Vicidial AddIn Extension for Chrome"
!define AddInName "com.Areon.AreonAPI.1"
!define AddInJson "manifest.json"
!define AddInFFJson "manifest.ff.json"
!define AddInAdaptor "config.cpp"
!define AddInComponent "AddInAreonAPI_x64.dll"
!define Bits "64"
!define SuffixPF ""
!define OutFileName "AddInChr"
!define ProductName "AreonAPI"
!endif
ПоказатьВ результате получается exe, которая идет в архиве вместе с dll и манифест:
<?xml version="1.0" encoding="UTF-8" ?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">
<component os="Windows" path="AddInChr64.exe" type="plugin" object="com.Areon.AddInAreonAPI.2" arch="x86_64" client="Firefox" clientVersion="40.*" />
<component os="Windows" path="AddInChr64.exe" type="plugin" object="com.Areon.AddInAreonAPI.2" arch="i386" client="Firefox" clientVersion="40.*" />
<component os="Windows" path="AddInChr64.exe" type="plugin" object="com.Areon.AddInAreonAPI.2" arch="x86_64" client="Chrome" />
<component os="Windows" path="AddInChr64.exe" type="plugin" object="com.Areon.AddInAreonAPI.2" arch="i386" client="Chrome" />
<component os="Windows" path="AddInAreonAPI_x32.dll" type="native" arch="i386" />
<component os="Windows" path="AddInAreonAPI_x64.dll" type="native" arch="x86_64" />
</bundle>
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот