Открытый пакет интеграций - это бесплатное и с открытым исходным кодом расширение, представляющее из себя набор общих модулей для работы с разнообразными онлайн-сервисами, СУБД и другими технологиями
Узнать больше:
Репозиторий на 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
Вступайте в нашу телеграмм-группу Инфостарт
Открытый пакет интеграций - это бесплатное и с открытым исходным кодом расширение, представляющее из себя набор общих модулей для работы с разнообразными онлайн-сервисами, СУБД и другими технологиями





































Открытый пакет интеграций для популярных API: Telegram, VK, Viber, Twitter
Работа с Notion API | Обновление Открытого пакета интеграций
Библиотека работы с Яндекс Диском (Open-source)
Открываем свою лавку на платформе VK Market
Библиотека для работы с Google Calendar API (open-source)
Telegram в режиме форума: делаем чаты комфортными
Открытый пакет интеграций для OneScript





