Native API для Chrome Web 1C

1. stagnez 06.07.20 12:38 Сейчас в теме
Добрый день.
Предистория: я не разработчик 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. platon_ 10 06.07.20 12:46 Сейчас в теме
3. stagnez 06.07.20 13:15 Сейчас в теме
(2)
и при созд

Да, вроде, все учел и все сделал как в описании, кроме одного пункта (Пакет должен быть подписан цифровой подписью разработчика (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>
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот