Донецкий техникум промышленной автоматики

Розширюємо функціональність 1С: Підприємства. Частина 2. Зовнішні компоненти Native API :: Журнал СА 9.2015

ОЛЕГ ФІЛІППОВ, АНТ-Информ, заступник начальника відділу розробки,   comol@mail ОЛЕГ ФІЛІППОВ, АНТ-Информ, заступник начальника відділу розробки, [email protected]

Розширюємо функціональність 1С: Підприємства
Частина 2. Зовнішні компоненти Native API

Розглянемо найбільш сучасну і функціональну сьогодні технологію зовнішніх компонент для платформи 1С: Підприємство - Native API

Навіщо 1С знадобилася Native API?

У попередній статті [1] ми торкнулися зовнішніх компонент, побудованих за технологією COM. Дана технологія реалізована в платформі 1С ще з версії 7.7 (а може, і раніше). Від традиційного COM-об'єкта відмінностей ми знайшли трохи. Зовнішні компоненти отримують в розпорядження контекст самого додатка 1С: Підприємство і можуть генерувати зовнішні події для нього. В обмін на цю можливість ми повинні реалізовувати купу додаткових функцій і мати не дуже красиву схему виклику методів, яка, власне, створена головним чином в ім'я можливості викликати з 1С методи зовнішньої компоненти російською мовою. На щастя, це можна з легкістю обійти і залишити традиційні можливості COM-об'єкта з контекстом 1С: Підприємства, але без можливості виклику методів російською мовою.

Але в сучасних версіях платформи і прикладних рішень 1С змушує нас поступово відмовлятися від перевіреної часом і зручною технології COM в сторону Native API. Для чого? Відповідаючи на це питання, можна досить довго міркувати, приводячи ті чи інші доводи як в сторону Native API, так і проти. Незаперечним, на мій погляд, залишається лише один факт - 1С декларує підтримку ОС Linux. Отже, ні про які COM-об'єктах як частини платформи або прикладного рішення на цій платформі мови бути не може.

Ще у зовнішніх компонент, створених за технологією Native API, можна відзначити наступні переваги:

  • Немає необхідності попередньо реєструвати компоненту в реєстрі. Всі дії по установці компоненти виконуються на етапі виклику в 1С функції «УстановітьВнешнююКомпоненту».
  • Стало можливим упаковувати декілька видів однієї зовнішньої компоненти в архів спеціального формату, з яким платформа може працювати в автоматичному режимі. Залежно від типу процесора (x86 або x64) і операційної системи (Windows або Linux) визначати, який файл зовнішньої компоненти доцільно використовувати.
  • Зовнішні компоненти, розроблені за технологією Native API, можна використовувати як на сервері, так і на клієнті.

В останній пункт варто внести невелике пояснення. В даному випадку мова йде про метод «ЗагрузітьВнешнююКомпоненту». Методи «ПодключітьВнешнююКомпоненту» і «Конструкція Новий ComОб'ект» успішно працюють на сервері. А ось компоненту, яка коректно обробляє метод «ПодключітьВнешнююКомпоненту», треба вважати COM або Native API?

Є популярне оману, що в тонкому і веб-клієнта можна використовувати тільки зовнішні компоненти, написані за технологією Native API. COM-компоненти з браузерами теж можна використовувати. Але вся штука в тому, що перед використанням компонент, розроблений за технологією COM, повинен бути зареєстрований в реєстрі, що з урахуванням специфіки веб-клієнта видається не найправильнішим рішенням. Тому Native API-технологія дозволяє також почати активно використовувати зовнішні компоненти разом з більшістю популярних браузерів.

Статтю повністю читайте в журналі «Системний адміністратор», №9 за 2015 року на сторінках 47-49.

PDF-версію даного номера можна придбати в нашому магазині .

  1. Філіппов О. Розширюємо функціональність 1С: Підприємства. Частина 1. Зовнішні компоненти COM. // «Системний адміністратор», №7-8, 2015 г. - С. 50-53 ( http://samag.ru/archive/article/2991 ).
  2. Стаття на Infostart про зовнішні компонентах, розроблених за технологією Native API - http://infostart.ru/public/184119 .
  3. Шаблони зовнішніх компонент на 1С - http://its.1c.ru/db/files/1CITS/EXE/VNCOMPS/VNCOMPS.zip?country=ru .
  4. Стаття про розробку зовнішніх компонент на сайті ІТС - http://its.1c.ru/db/metod8dev/content/3221/hdoc/_top/native%20api@56f4fd .
  5. Шаблони зовнішніх компонент на 1С - http://habrahabr.ru/post/191014 .

Для чого?
А ось компоненту, яка коректно обробляє метод «ПодключітьВнешнююКомпоненту», треба вважати COM або Native API?
Zip?