Підготовка зовнішніх компонентів для завантаження в конфігурацію
Зовнішні компоненти можуть бути упаковані в ZIP-архів. Для роботи з Вебклієнтом і тонким клієнтом – це обов'язкова умова. До нього мають увійти власне компоненти для ОС Windows (x86, x86_64), GNU/Linux (x86, x86_64), створені розширення для Internet Explorer (x86, x86_64) і Firefox (Windows x86, GNU/Linux x86 і x86_64). До складу архіву включається файл MANIFEST.XML з описом вмісту:Обмеження в роботі зовнішніх компонентів. Опис прикладів. Властивості. Методи. Засоби розробки та приклади
Обмеження в роботі зовнішніх компонентів
Зовнішні компоненти можуть бути упаковані в ZIP-архів. Для роботи з Вебклієнтом і тонким клієнтом – це обов'язкова умова. До нього мають увійти власне компоненти для ОС Windows (x86, x86_64), GNU/Linux (x86, x86_64), створені розширення для Internet Explorer (x86, x86_64) і Firefox (Windows x86, GNU/Linux x86 і x86_64). До складу архіву включається файл MANIFEST.XML з описом вмісту:
<?xml version="1.0" encoding="UTF-8" ?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">
<component os="Windows" path="AddIn_ChrWindows_x86.msi" type="plugin" object="com.YourCompanyName.YouExtensionName.1" arch="i386" client="Firefox" clientVersion="40.*" />
<component os="Linux" path="AddIn_ChrLinux_x86.sh" type="plugin" object="com.YourCompanyName.YouExtensionName.1" arch="i386" client="Firefox" clientVersion="40.*" />
<component os="Linux" path="AddIn_ChrLinux_x86_64.sh" type="plugin" object="com.YourCompanyName.YouExtensionName.1" arch="x86_64" client="Firefox" clientVersion="40.*" />
<component os="Windows" path="Addin_IEWindows_x86.cab" type="plugin" object="MyComponenIE.AddInServiceEx" arch="i386" client="MSIE" />
<component os="Windows" path="AddIn_IEWindows_x86_64.cab" type="plugin" object=" MyComponenIE.AddInServiceEx" arch="x86_64" client="MSIE" />
<component os="Windows" path="AddIn_ChrWindows_x86.msi" type="plugin" object=" com.YourCompanyName.YouExtensionName.1" arch="i386" client="Chrome" />
<component os="Linux" path="AddIn_ChrLinux_x86.sh" type="plugin" object=" com.YourCompanyName.YouExtensionName.1" arch="i386" client="Chrome" />
<component os="Linux" path="AddIn_ChrLinux_x86_64.sh" type="plugin" object=" com.YourCompanyName.YouExtensionName.1" arch="x86_64" client="Chrome" />
<component os="MacOS" path="AddIn_SafMacOS_x86.pkg" type="plugin" object=" application/component-example-1" arch="i386" client="Safari" />
<component os="Windows" path="AddInNative.dll" type="native" arch="i386" />
<component os="Windows" path="AddInNative64.dll" type="native" arch="x86_64" />
<component os="Linux" path="AddInNative.so" type="native" arch="i386" />
<component os="Linux" path="AddInNative64.so" type="native" arch="x86_64" />
</bundle>,
Де:
- Os – операційна система (Windows, Linux, MacOS),
- Path – назва файла в архіві
- Type – тип компоненти (plugin – розширення для браузера, native – Native-компонента, com – COM-компонента)
- Object – назва об'єкта, який буде створюватися браузером
- Arch – для якої архітектури процесора має використовуватися компонента (i386 – 32-розрядний процесор, x86_64 – 64-розрядний)
- Client – використовується для Вебклієнта: вказує, для якого браузера компонента (MSIE – Internet Explorer, Firefox)
- clientVersion – версія браузера. Обов'язкова для браузера Firefox.
Відповідність версій clientVersion, указаних у маніфесті, і версій браузера Firefox:
|
Manifest.xml |
Firefox |
|
40.* |
40 і вище |
У разі зміни зовнішніх компонентів (новий реліз, виправлення помилок тощо) нову версію потрібно додавати до імені файла. Наприклад: AddInNative_1_1.so. Це правило не поширюється на розширення для браузерів. Для них має бути змінено назву object.
Зверніть увагу, що записи для Google Chrome і Mozilla Firefox посилаються на один і той самий інсталяційний пакет.
Обмеження в роботі зовнішніх компонентів
Розробник має враховувати, що зовнішня компонента може бути підключена як у віконному застосунку (тонкий клієнт, товстий клієнт), так і в консольному (наприклад: на сервері 1С:Підприємства або у вебклієнті), де може бути відсутнє головне вікно та віконна система, черга повідомлень, таймери, що використовують чергу повідомлень, немає можливості встановити локальний хук, наприклад, на клавіатуру. У цьому випадку розробник компоненти має самостійно подбати про створення необхідного оточення для коректної роботи зовнішньої компоненти
Опис прикладів
До постачання цієї методики входять приклади реалізації зовнішніх компонентів, розроблених з використанням технологій Native API і СОМ, розширень для Firefox та Internet Explorer. Крім прикладу до постачання включено шаблон, що дає змогу спростити створення компоненти «з нуля».
Реалізації компонентів максимально наближені одна до одної (однакові ідентифікатори, назви тощо), що спрощує процес освоєння та розбору різних реалізацій.
Компоненти реалізують такі властивості та методи:
Властивості
Увімкнено (IsEnabled)
Використання: Читання та запис.
Опис: Тип: Булеве. Містить стан компоненти.
ЄТаймер (IsTimerPresent)
Використання: Читання.
Опис: Тип: Булеве. Визначає наявність у компоненти таймера.
Методи
Увімкнути (Enable)
Синтаксис:
Увімкнути()
Опис:
Увімкнює об'єкт компоненти.
Вимкнути (Disable)
Синтаксис:
Вимкнути()
Опис:
Вимкнює об'єкт компоненти.
ПоказатиВРядкуСтатусу (ShowInStatusLine)
Синтаксис:
ПоказатиВРядкуСтатусу(<Текст>)
Параметри:
Опис:
На 5 секунд виводить у рядок статусу отриманий текст.
УвімкнутиТаймер (StartTimer)
Синтаксис:
УвімкнутиТаймер()
Опис:
Увімкнює таймер компоненти. Щосекунди компонента надсилає повідомлення «1С:Підприємству» з параметрами «Component», «Timer» та рядком лічильника системного годинника.
ВимкнутиТаймер (StopTimer)
Синтаксис:
ВимкнутиТаймер()
Опис:
Вимкнює таймер компоненти.
Крім того, компонента, розроблена з використанням Native API, додатково реалізує метод
ЗавантажитиКартинку(LoadPicture)
Синтаксис:
ЗавантажитиКартинку (<Ім'яФайла>)
Параметри:
Опис:
Завантажує зображення із зазначеного файла та передає його в «1С:Підприємство».
ПоказатиПовідомлення
Синтаксис:
ПоказатиПовідомлення ()
Параметри:
Немає
Опис:
Виводить повідомлення про версію платформи.
Засоби розробки та приклади
Як засоби розробки можна застосовувати:
- Microsoft Visual C++,
- Delphi,
- C++ Builder,
- gcc
Приклади створення зовнішніх компонентів знаходяться в каталозі /1CIts/EXE/VNCOMPS
Приклади для роботи з «1С:Підприємством 8.3» розташовуються в підкаталозі VNCOMP83.
ВИ МОЖЕТЕ ПРЯМО ЗАРАЗ СКОПІЮВАТИ ПРИКЛАДИ ЗОВНІШНІХ КОМПОНЕНТІВ
НА ЖОРСТКИЙ ДИСК ВАШОГО КОМП'ЮТЕРА
Копіювати