Заметки ОПИ: использование расширенного вызова

08.06.26

Интеграция - WEB-интеграция

Небольшая заметка об использовании одного из новых механизмов Открытого пакета интеграций под названием Расширенный вызов. О том, зачем он нужен и как его использовать

Открытый пакет интеграций - это бесплатное и с открытым исходным кодом расширение, представляющее из себя набор общих модулей для работы с разнообразными онлайн-сервисами, СУБД и другими технологиями

 

Узнать больше:
Репозиторий на Github | Основная статья на Инфостарт | Документация

В недавней версии ОПИ 2.0 появился новый механизм - расширенный вызов. Я считаю его появление довольно важным нововведением, так как он решает (и будет решать в дальнейшем) широкий спектр проблем, связанных с желанием пользователей иметь больше контроля над различными внутренними механизмами пакета. Поэтому я думаю, что было бы неплохо рассказать о нем подробнее в такой вот отдельной заметке

 

О чем вообще речь?

Рассмотрим на примере. Допустим, в ОПИ есть метод, предназначенный для создания чата пользователей в Bitrix24:

СоздатьЧат(Знач URL, Знач СтруктураЧата, Знач Токен = "")

У него есть три параметра, относящихся непосредственно к логике работы с платформой Bitrix: URL адрес сервера, структура с описанием создаваемого чата (имя, описание и пр.) и токен доступа. Сам же метод, внутри, работает по протоколу HTTP - через прослойку, но, в конечно итоге, с объектами типов HTTPЗапрос и HTTPСоединение

Если мы посмотрим на эти базовые объекты встроенного языка, то найдем там множество интересных настроек: таймаут, прокси, заголовки, защиту соединения и пр. Но как мы можем их установить или переопределить при вызове функции СоздатьЧат? Обычным способом - никак. Для этого и был добавлен расширенный вызов

 

Как это работает?

Расширенный вызов - это обертка над обычным вызовом функций пакета. На практике, его использование напоминает создание фонового задания: модуль, имя метода и массив параметров указываются не в классическом виде, а передаются в качестве аргументов метода-обертки. То есть вместо

СоздатьЧат(URL, СтруктураЧата, Токен);

 Мы будем вызывать специальную функцию - OPI_РасширенныйВызов.ВызватьСНастройками

    Параметры = Новый Массив;
    Параметры.Добавить(URL);
    Параметры.Добавить(СтруктураЧата);
    Параметры.Добавить(Токен);

    Настройки = Новый Структура;
    // Тут будут расширенные настройки

    Результат = OPI_РасширенныйВызов.ВызватьСНастройками("OPI_Bitrix24"
        , "СоздатьЧат"
        , Параметры
        , Настройки);

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

Под капотом это работает достаточно просто: в 1С версии ОПИ для хранения настроек на время вызова функции используется параметр сеанса. Функция ВызватьСНастройками устанвливает в него необходимые значения, а после вызова основной функции (в нашем случае - СоздатьЧат) - очищает. В версии для OneScript это работает аналогичным образом, но вместо параметра сеанса используется глобальная переменная модуля

Внутренние механизмы (в нашем случае - модуль HTTP), в свою очередь, доработаны таким образом, чтобы проверять наличие активных настроек и применять их

 

Какие настройки сейчас доступны?

Перечень доступных настроек расширенного вызова зависит от конкретного метода. Его можно получить при помощи функции OPI_РасширенныйВызов.ПолучитьДоступныеНастройки или просто посмотреть в онлайн документации на странице интересующей функции:

 

 

Наиболее распространенными сейчас являются следующие настройки

  • dontwait - возвращает ФоновоеЗадание с запуском выбранной функции ОПИ (только на сервере)
  • proxу - позволяет определить настройки прокси для методов, использующих HTTP. Можно передать как непосредственно объект ИнтернетПрокси, так и структуру с соответствующими полями
  • timeout - позволяет переопределить таймаут HTTP-запроса
  • adv_response - позволяет получить полную структуру ответа с кодом состояния и заголовками HTTP-запроса, а не только тело
  • addin_mode - позволяет выбрать режим подключения внешней компоненты вручную (для методов, которые их используют)

Краткую шпаргалку по расширенному вызову также можно отыскать в онлайн документации Открытого пакета интеграций.


Ну, а на этом все! Напомню, что Открытый пакет интеграций - это функционал для работы с уже более 30-ю разнообразными сервисами и технологиями, доступный в 3-х независимых вариантах: расширения 1С, пакета для OneScript и даже полноценного консольного приложения для Windows и Linux. Там всегда найдется что-нибудь интересное!

Если вы тоже хотите помочь проекту, то это можно сделать поставив плюс данной статье, а также звездочку на GitHub и оценку на SourceCraft. Это помогает проекту чаще появляться в различных списках и рекомендациях, благодаря чему о нем узнает больше людей

Спасибо за внимание!

 

 Если вам нравится ОПИ, то не забывайте поддерживать его на GitHub, Инфостарт и Boosty (ссылка в репозитории)!

 

Репозиторий ОПИ: github.com/Bayselonarrend/OpenIntegrations

Зеркало на Sourcecraft: sourcecraft.dev/bayselonarrend/openintegrations

Последний релиз: github.com/Bayselonarrend/OpenIntegrations/releases/latest

Документация: openintegrations.dev

 
 Куда жать и где скачать?

 

Другие статьи про Открытый пакет интеграций на Инфостарт:

 

 

 Мой GitHub:    https://gitub.com/Bayselonarrend 
 OpenYellow:    https://openyellow.org
 Лицензия MIT:  https://mit-license.org

Вступайте в нашу телеграмм-группу Инфостарт

расширение ОПИ web http внешние компоненты

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

WEB-интеграция Программист Бизнес-аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17568 руб.

20.12.2024    6437    28    4    

30

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

42700 руб.

03.08.2020    24456    37    26    

28

WEB-интеграция Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Расширение для автоматизации передачи данных между сервисом Vetmanager с 1С: Бухгалтерия 3.0. Решение позволяет загружать документы и справочники из Ветменеджер в 1С:Бухгалтерию, сокращая время на ручной ввод данных и минимизируя ошибки.

24000 руб.

02.02.2021    23206    69    52    

43

WEB-интеграция Загрузка и выгрузка в Excel Программист Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Расширение освободит вас от необходимости вручную обновлять информацию о товарах в группах ВКонтакте. Достаточно задать правила один раз, и система автоматически формирует файлы yml для дальнейшей загрузки в группы в ВК. Вы сможете легко выбирать, какие товары публиковать, создавая гибкие критерии отбора. Например, можно добавить важные для покупателей параметры: цвет, размер или другие характеристики.

12200 руб.

29.08.2025    2903    7    8    

8

WEB-интеграция Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStar разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.

20740 руб.

13.05.2025    2234    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1098 08.06.26 09:35 Сейчас в теме
в эске сильно не хватает именованных аргументов, как в питоне.
2. bayselonarrend 3171 08.06.26 10:12 Сейчас в теме
(1) Хм, не знаю, никогда о таком не задумывался. Мне скорее все время не хватает объекта метаданных, вроде ОбщийКласс, который будет тоже самое, что и ОбщийМодуль, но с переменными)
Для отправки сообщения требуется регистрация/авторизация