Если вы не слышали ранее об Открытом Пакете Интеграций (что вполне вероятно), то небольшая вводная часть ниже, под катом. Для тех, кто уже знаком с ОПИ, данный раздел можно пропустить.
Открытый Пакет Интеграций (ОПИ) - это open-source набор методов для простой и быстрой интеграции с различными популярными API. Он состоит из аналогичных по функционалу 1С-расширения (CFE), OS-пакета и программы для Windows и Linux, которые предоставляют готовые функции для работы с целым набором различных онлайн-сервисов.
- ОПИ бесплатен и имеет открытый исходный код на GitHub. Вы всегда можете получить последнюю версию библиотеки на странице репозитория, а подписавшись - узнавать о выходе обновлений. Все релизы сопровождаются статьями на Инфостарт и разделами единой документации. На Инфостарт вы можете подписаться уже хоть сейчас, а про документацию я расскажу далее.
- Удобная единая документация. Она расположена на сайте opi.neocities.org и содержит в себе всю информацию, необходимую для работы: инструкции по предварительным действиям для начала интеграции, описания всех методов с параметрами и возвращаемыми значениями, примеры кода и т.д. Каждый API имеет там свой раздел.
- Простая установка. ОПИ распространяется во множестве вариантах: как XML файлы расширения, как EDT проект расширения, как файл расширения формата .cfe (версия 1С 8.3.9), как файл пакета для OneScript и еще в целом наборе пакетов и файлов для Windows и Linux. Из этого набора вы всегда сможете выбрать тот способ установки, который лучше подойдет для вашей конкретной задачи
На момент последнего обновления данной статьи, доступны следующие API:
Наиболее актуальную информацию можно посмотреть в репозитории или на вводной странице документации.
TCP - один из основных транспортных протоколов интернета. Поверх него работает огромное количество других протоколов, уже прикладного уровня, таких как HTTP(s), FTP, SMTP, IMAP, DNS, LDAP и еще бог весть знает сколько их есть
Тем страннее, что в платформе 1С нет встроенной его реализации, хотя основанный на нем HTTP есть (в OneScirpt, кстати, TCP есть из коробки). Но не суть. В сегодняшнем обновлении в состав ОПИ было добавлено несколько методов для работы по этому протоколу - пока только в качестве клиента - а именно:
- Открытие и закрытие соединения
- Отправка данных серверу в виде строки или двоичных данных
- Прием ответа от сервера в виде строки или двоичных данных
- Небольшой утилитарный метод, который реализует все вышеперечисленное как одно простое действие обработки запроса
Реализовано это при помощи Native API компоненты на Rust. Это первая компонента в ОПИ и моя проба пера в принципе, так что я буду очень рад, если в случае проблем с ней вы напишите в Issues или комментарии к статье. Собрана она под все платформы: x64 и x86 Windows и Linux и хранится в общем макете (тестировалась на x64 Windows (1С) и x64 Ubuntu (через OneScript)). В приложение же для командной строки от реализации TCP попал только 1 метод - функция обработки запроса
Также огромное спасибо medigor за крейт addin1c для Rust. Это пакет, который берет на себя все вопросы организации компоненты так, чтобы 1С смог с ней работать, а тебе остается только реализовать сами методы, которые нужны для использования. Одна из самых недооцененных штук в 1Сном opensource, что я видел - поставьте этому герою звездочку, пожалуйста, а то как-то даже неудобно.
Ну, а теперь немного про другие нововведения.
Улучшения в CLI версии
В приложении для командной строки (если что, ОПИ это не только расширение для 1С, но и консольное приложение для Windows и Linux с тем же набором функций, которые работают без 1С) случилось несколько улучшений
Во-первых, была добавлена поддержка управляющих последовательностей: \n (перенос строки), \r (возврат каретки), \v (вертикальная табуляция) и \f (перевод формы). Теперь их можно использовать в текстовых аргументах и они будут заменены на соответствующие символы. Я хотел уменьшить риск поломки существующих процессов для тех, кто уже использует CLI версию и будет обновляться, поэтому данное нововведение не касается строк в формате JSON и путей к файлам
Во-вторых, вывод информации о процессах в длительных операциях был заменен на динамические прогресс-бары. Ну, это просто для красоты)
Также были исправлены некоторые мелкие баги и добавлено несколько новых методов для работы с Ozon. Описание же полного функционала Открытого пакета интеграций вы, как и всегда, можете найти в документации. А ссылки на скачивание и страницы проекта будут ниже
Спасибо за внимание!
Также не забывайте ставить звездочку этому и другим проектам, если они вам понравилась! Проектам это помогает в развитии, а вам - в отслеживании новостей о выходе новых версий
Репозиторий ОПИ: github.com/Bayselonarrend/OpenIntegrations
Последний релиз: github.com/Bayselonarrend/OpenIntegrations/releases/latest
Другие статьи про Открытый пакет интеграций на Инфостарт:
Мой GitHub: https://gitub.com/Bayselonarrend OpenYellow: https://openyellow.org Лицензия MIT: https://mit-license.org