Открытый пакет интеграций для OneScript

11.08.24

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

Порт Открытого пакета интеграций: методы работы с Telegram, Viber, VK, а также многими другими API теперь и для ваших решений на базе OneScript

Если вы не слышали ранее об Открытом Пакете Интеграций (что вполне вероятно), то небольшая вводная часть ниже, под катом. Для тех, кто уже знаком с ОПИ, данный раздел можно пропустить.

 
 Что такое Открытый Пакет Интеграций

 

Открытый Пакет Интеграций (ОПИ) - это open-source набор методов для простой и быстрой интеграции с различными популярными API. Он состоит из аналогичных по функционалу 1С-расширения (CFE), OS-пакета и программы для Windows и Linux, которые предоставляют готовые функции для работы с целым набором различных онлайн-сервисов.


  • ОПИ бесплатен и имеет открытый исходный код на GitHub. Вы всегда можете получить последнюю версию библиотеки на странице репозитория, а подписавшись - узнавать о выходе обновлений. Все релизы сопровождаются статьями на Инфостарт и разделами единой документации. На Инфостарт вы можете подписаться уже хоть сейчас, а про документацию я расскажу далее.

 

 

 

  • Удобная единая документация. Она расположена на сайте opi.neocities.org и содержит в себе всю информацию, необходимую для работы: инструкции по предварительным действиям для начала интеграции, описания всех методов с параметрами и возвращаемыми значениями, примеры кода и т.д. Каждый API имеет там свой раздел.

 

 

 

 

  • Простая установка. ОПИ распространяется во множестве вариантах: как XML файлы расширения, как EDT проект расширения, как файл расширения формата .cfe (версия 1С 8.3.9), как файл пакета для OneScript и еще в целом наборе пакетов и файлов для Windows и Linux. Из этого набора вы всегда сможете выбрать тот способ установки, который лучше подойдет для вашей конкретной задачи

 

На момент последнего обновления данной статьи, доступны следующие API:

Наиболее актуальную информацию можно посмотреть в репозитории или на вводной странице документации.

 

OneScript - реализация виртуальной машины для выполнения программного кода на языке 1С. Даже если вы никогда им не пользовались, то все равно наверняка слышали - на Инфостарте даже целый раздел под него есть.

 

Вещь отличная и, без всяких скидок, утилитарно применимая: начиная с замены зачастую неуклюжих bat-файлов на os скрипты - написанные при полной мощи всем знакомого основного рабочего языка, заканчивая реальными CLI решениями или даже Web-разработками на базе OneScript.Web

Теперь под него есть и OPI, причем в полном своем составе. Сейчас мы рассмотрим способы его применения, а потом я немного расскажу про сам процесс переноса - статей про OneScript не то чтобы особо много, так что, думаю, даже мой небольшой опыт может оказаться кому-нибудь полезен.

 

Зачем нужен OPI для OneScript?

 

Начнем с самого простого и долго на этом останавливаться не будем - OPI можно использовать как часть какого-нибудь своего конечного продукта. Это довольно очевидно: движок имеет достаточное количество средств для а) создания exe файлов и CLI приложений б) создания веб-приложений в) создания GUI приложений (пускай и очень ограниченно в связи с отсутствием действительно мощных реализаций форм/элементов). 

Однако не только лишь все, но очень немногие занимаются созданием своего конечного продукта (не считая инструментов разработки). Куда более приземленным и жизненным сценарием будет применение библиотеки в сфере CI/CD и этих ваших DevOps - в первую очередь это касается методов работы с Telegram и Viber.

Думаю, у всех есть как минимум один или несколько bat/os скриптов, отвечающих за некоторые обновления или иные административные действия. Вот некоторый пример для повышения их удобства:

 

Для начала, если вы еще не используете OneScript

1. Если у вас нет OneScript, то его нужно установить с офф. сайта oscript.io

2. Необходимо забрать из релизов файл с расширением ospx. Версия OPI для OneScript называется OInt - так называется и файл пакета, например oint-1.0.0.ospx
3. Установить библиотеку из файла shell командой 

opm install oint-1.0.0.ospx

 

Что, в общем то, является стандартными действиями, за тем лишь исключением, что OInt нет в хабе и его надо устанавливать из файла, а не напрямую из интернета.

 

Теперь мы можем написать простой скрипт. Создадим пустой файл с расширением .os.

Для удобства лучше использовать VS Code с плагинами, но эту тему "старта в OneScript" я раскрывать не буду - есть другие отличные статьи (которыми, в том числе, руководствовался и я)

Для нашего примера представим, что некий процесс выполняется bat-файлом. Результатом своей деятельности он оставляет после себя файл лога - log.txt. А мы возьмем, да и отправим его себе в Telegram - узнаем сразу и о том, что работа завершена и, собственно, её результат.

В .os файл пишем вот такое незамысловатый код

 

#Использовать OInt

Токен           = "6129..";    // Токен бота
IDПользователя  = "4616..";    // ID телграм - чата

OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDПользователя, "Bat файл завершил свою работу");
OPI_Telegram.ОтправитьДокумент(Токен, IDПользователя, "Вот файл лога", "log.txt");

 

Разница от 1С заключается лишь в директиве #Использовать и написание кода без процедуры. Можно  также писать в процедуре или функции, а вызывать её потом.

 

Теперь необходимо добавить следующую строку в конце своего bat-файла

oscript ./мойскрипт.os

 

Или же выполнить её в командной строке/терминале. Вот что мы получаем в итоге:

 

 

Немного усложним скрипт: пришлем содержимое файла сразу в виде текста. Для этого достаточно использовать знакомые и ничем от 1С не отличающиеся функции работы с текстом:

 

#Использовать OInt

Токен           = "6129...";
IDПользователя  = "4616...";

OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDПользователя, "Bat файл завершил свою работу");

ЧтениеТекста = Новый ЧтениеТекста("log.txt", "UTF-8");
Текст        = ЧтениеТекста.Прочитать();

OPI_Telegram.ОтправитьТекстовоеСообщение(Токен, IDПользователя, Текст);

 

 

Думаю, не каждый 1Сник сможет быстро (или вообще) справится с реализацией поиска файлов, чтения и записи текста или парсинга JSON на чистом Bash - я точно не смогу. Так что всем советую попробовать скрипты на OneScript, если вы еще этого не сделали.

К тому же, скрипт всегда можно собрать в автономный исполняемый файл (exe например), и использовать уже вообще где угодно, без установки onescript и библиотек (все запихивается внутрь), просто таская этот файл с собой

 

oscript -make script.os script.exe

 

Что касается конкретно OPI, то другие его библиотеки, конечно, куда менее очевидны в использовании. Если применение API Google Календаря я себе еще как-то представляю, то VK и Twitter - только в составе каких-нибудь SMM/CRM решений. Хотя кто его знает.

Так или иначе, портировать все это добро было легко и приятно, о чем мы, собственно, сейчас и поговорим.

 

О переносе

 

Начнем с того, что OInt - это даже не порт, а унификация решения между 1С и OneScript.

Читая на странице репозитория OneScript о "независимой кросс-платформенной реализациии виртуальной машины, исполняющей скрипты на языке 1С:Предприятие", я, тем не менее, относился к этому примерно как к Перфоленте или Элементу - язык кириллический, с русскоязычными лексемами и наверняка очень похож на 1С. Но не 1С.

Однако, когда я, ради интереса, просто перенес модули из EDT проекта в отдельную папку и поменял расширение файлов с bsl на os, был приятно удивлен - мне выпало буквально 5-6 ошибок, несовместимости между языками (диалектами :) ).

Т.е. язык совместим очень хорошо - на секунду, это 5-6 ошибок на 4.5 тыс. строк кода чистыми (SonarQube в строках кода учитывает именно что "строки кода" - без комментариев или пустых)

 

 

Вот примеры несовместимостей кода, которые всплыли у меня:

  • Отсутствует ТекущаяДатаСеанса, есть только ТекущаяДата. Видимо, за ненадобностью при отсутствии Клиент-Серверной архитектуры из коробки. Вроде нормально заменяется через МестноеВремя(ТекущаяУниверсальнаяДата())
  • Нет УстановитьБезопасныйРежим. Собственно, тоже не особо нужен, как я понимаю
  • Несовместимы функции ЧасовойПояс(), что вообще не очень хорошо - 1Сная функция возвращает понятный IANA формат типа Europ/Moscow, в то время как OS вернул нечто под названием Universal Russian Time (вроде так было)
  • У меня есть функция, для получения UnixTime, которая выглядит как
    Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧГ=0")

    При этом 1С возвращает 10-значное число, а OneScript - десятизначное число с дробной частью. Интересно. Фиксится легко через тот же формат Длина = 10, Дробная часть = 0

    Функция UNIXTime(Знач Дата) Экспорт
    	Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
    КонецФункции

     

  • Нет  Новый ЗащищенноеСоединениеOpenSSL, который передается в HttpСоединение при работе через https. Но сам https есть - просто необходим https:// в самом URL сервера соединения. В целом - не страшно

        Попытка
            //@skip-check module-unused-local-variable
            SSL = Новый ЗащищенноеСоединениеOpenSSL; // BSLLS:UnusedLocalVariable-off  
        Исключение
            Сервер = "https://" + Сервер;
        КонецПопытки;
    
    ...
    
    
    Функция СоздатьСоединение(Знач Сервер)
        
        Попытка 
            SSL = Новый ЗащищенноеСоединениеOpenSSL;
            Возврат Новый HTTPСоединение(Сервер, 443, , , , 300, SSL);
        Исключение
            Возврат Новый HTTPСоединение(Сервер, 443, , , , 300);
        КонецПопытки;
        
    КонецФункции

     

Ну, собственно и все - никаких действительно серьезных проблем при приведении кода библиотеки к общему знаменателю лично у меня не возникло. Во многом это связано с тем, что в OPI не используются никаких объектов метаданных, кроме общих модулей - решение явно было удачным.

На данный момент между OPI (для 1С) и OInt (для 1Script) имеется всего два отличия - наличие/отсутствие директивы #Использовать и наличие/отсутствие УстановитьБезопасныРежим() в одном месте, где определяется модуль для тестирования (т.е. даже не в основной части). Что невероятно здорово и не может не радовать - одно дело обновлять две разные библиотеки и совсем другое - одну сразу под две платформы.

В связи с этим единой осталась и документация - примеры кода идентичны и для OPI и для OInt, что, также, крайне важно

 

Немного освежил внешний вид. Найти можно по адресу opi.neocities.org

 

Однако не могло же все пройти так гладко. Моментом, который забрал, ни много ни мало, процентов 80 всего времени разработки данного обновления стали Unit-тесты.

 

YaxUNIT x asserts

 

OPI - проект для души и для опыта, поэтому я стараюсь использовать в нем как можно больше разнообразных технологий - и автоматизированное тестирование не исключение.

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

Например, у меня есть функция отправки Get запросов, на которую завязаны чуть менее чем все остальные методы OPI. И я внес в нее изменения. Сама даже мыль о ручном выполнении всех методов для проверки их работоспособности вгоняет в тоску и уныние.

Не знаю, можно ли использовать тесты с таким же невероятным КПД в обычной жизни - в больших системах с формами, пользовательским вводом, доработками и рабочими данными, но для библиотек и отдельных инструментов - это просто must have.

Однако, есть в тестах и один минус - их, собственно, надо писать. И одно дело написать сразу и функцию и тест для неё, но совсем другое, когда у тебя уже есть куча функций и сиди теперь пиши для них тесты. В OPI для 1С я использую YaxUnit - он оказался крайне дружелюбным. Тесты на нем писать легко и удобно, всем советую. Однако, для OneScript YaxUnit нет, а тесты все равно нужны. Писать их заново - 66 на тот момент - желания никакого не было. Да еще и с перспективой писать по два теста при создании новых методов в дальнейшем. 

Но благо оказалось, что тесты для asserts - собственно, библиотеки для тестирования на OneScript - и тесты для Yax, вполне можно привести к общему виду.

 

Отличия

 

Yax по своим возможностям богаче asserts: так как все ответы методов работы с API у меня это, как правило, соответствия (для структур тоже применимо), то я активно использовал лаконичные конструкции Yaxa типа

 

ЮТест.ОжидаетЧто(Результат).Свойство("result.caption").Равно(Текст)

 

Что означает Результат["result"]["caption"] = Текст

 

Очень удобно, так как позволяет писать в строке через точку, вместо написания квадратных скобок. К сожалению в asserts такого пока нет, в чем и оказалось основное отличие.

 

    ЮТест.ОжидаетЧто(Результат) 
        .ИмеетТип("Соответствие").Заполнено()
        .Свойство("ok").Равно(Истина)
        .Свойство("result.contact").ИмеетТип("Соответствие").Заполнено()
        .Свойство("result.contact.first_name").Равно(Имя);

//Превратилось в

    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина);
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["contact"]).ИмеетТип("Соответствие").Заполнено();
    OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["contact"]["first_name"]).Равно(Имя);

 

Немного не так изящно, но зато работает и для asserts и для Yax. Оставалось лишь унифицировать непосредственно запуск тестов.

Yax вызывает функцию ИсполняемыеСценарии(), а asserts - ПолучитьСписокТестов(), что заложено в самих библиотеках. При этом у YaxUnit свой механизм добавления тестов, а asserts требует просто массив имен методов. В зависимости от варианта, второй метод вызова просто игнорируется:

 

// Для YaxUnit

Процедура ИсполняемыеСценарии() Экспорт    
    OPI_ПолучениеДанныхТестов.СформироватьТестыЯкс();
КонецПроцедуры

// Для Asserts

Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт // BSLLS:UnusedParameters-off
   Возврат OPI_ПолучениеДанныхТестов.СформироватьТестыАссертс();
КонецФункции

 

Также отличаются и первые функции внутри самих тестов. Для Yax это ЮТест.ОжидаетЧто(), а для asserts - Ожидаем.Что()

 

Функция ОжидаетЧто(Значение) Экспорт
    
    Попытка
    	
    	Модуль  = ПолучитьОбщийМодуль("ЮТест");
        Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль");
        Возврат Модуль.ОжидаетЧто(Значение);  
           
    Исключение
        Возврат Ожидаем.Что(Значение);
    КонецПопытки;
    
КонецФункции

 

Для удобства ведется таблица значений, из которой потом либо добавляются тесты Yax, либо формируется массив для asserts

 

Функция ПолучитьТаблицуТестов() 
    
    Телеграм  = "Телеграм";
    ВКонтакте = "ВКонтакте";
    ЯДиск     = "Яндекс.Диск";
    Календарь = "Google Calendar";
    Твиттер   = "Twitter";
    Вайбер    = "Viber";
    
    ТаблицаТестов = Новый ТаблицаЗначений;
    ТаблицаТестов.Колонки.Добавить("Метод");
    ТаблицаТестов.Колонки.Добавить("Синоним");
    ТаблицаТестов.Колонки.Добавить("Раздел");
              								
    НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота"      , "Получить информацию бота"       , Телеграм); 	
    НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления"          , "Получить обновления"            , Телеграм);
    НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook"           , "Установить Webhook"             , Телеграм);

    ...

 

Вот так все незамысловато. Вообще, насколько я знаю, существуют и кросс библиотеки 1С/OneScript - xUnit вроде является как раз такой (могу ошибаться). Но мне очень нравится Yax и, если вам тоже, то при портировании от него отказываться не обязательно.

 

 

Подытожим

 

Работа с OneScript - интересный опыт и отличная возможность реализовать свои задумки, сбросив с себя, при этом, привязку к платформе и бремя лицензионных обязательств. Это здорово.

Что касается OInt, то позже я, вероятно, сделаю CLI оснастку, чтобы проект можно было использовать и просто как exe файл - благо есть библиотеки для этого. Но не сегодня - пока что это все.

Напомню только, что сейчас в Открытом пакете интеграций реализовано множество методов для работы с Telegram, VK, Viber, Twitter, Notion, Google Calendar и Yandex.Диск, которые вы можете использовать в своих 1С/OneScript проектах, забрав расширение/пакет из релизов по ссылке ниже

 

Используйте OneScript, используйте OPI

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

 

 

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

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

 

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

 

 

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

OneScript web интеграция библиотека API telegram vk viber

См. также

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

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

119999 руб.

19.07.2024    1828    52    0    

3

WEB-интеграция Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    17994    49    50    

29

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

Универсальное расширение конфигурации для автоматической загрузки и заполнения реквизитов контрагентов (партнеров) из ОГРН для 1С:ERP Управление предприятием 2 (1С:ERP Управление предприятием 2, редакция 2.4), 1С:ERP Управление предприятием 2 (1С:ERP Управление предприятием 2, редакция 2.2), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.5), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.4), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.3), 1С:Управление торговлей 8 (Управление торговлей, редакция 11.2), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.4), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.2), 1С:Комплексная автоматизация 8 (1С:Комплексная автоматизация, редакция 2.0) и 1С:Бухгалтерия 8 (Бухгалтерия предприятия, редакция 3.0).

3900 руб.

08.11.2017    63631    407    295    

73

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14349    42    8    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dmfaleleev 25 11.03.24 20:10 Сейчас в теме
2. artbear 1563 18.03.24 15:34 Сейчас в теме
(0) >OInt нет в хабе и его надо устанавливать из файла, а не напрямую из интернета.

а почему не выложил релиз в хаб?

токен на право пуша можно получить у Никиты Федькина @nixel2007 - найти на Инфостарте или в телеграме, например, в офиц.чате 1скрипт https://t.me/oscript_library
3. bayselonarrend 2086 18.03.24 15:43 Сейчас в теме
(2)Думал, как это организовать с учетом того, что у меня и версия для 1С и версия для OS в одном репозитории. Так пока и не придумал
4. artbear 1563 18.03.24 16:38 Сейчас в теме
(3)
Думал, как это организовать с учетом того, что у меня и версия для 1С и версия для OS в одном репозитории. Так пока и не придумал

от структуры репозитория решение о публикации файла никак не зависит

есть 2 подхода
- вручную пушить файл в хаб opm push ...
Выполняешь команду сам в удобное время после получения файла релиза

- более мощный способ, полностью автоматический
см. https://github.com/autumn-library/workflows раздел Публикация релиза
bayselonarrend; +1 Ответить
5. artbear 1563 18.03.24 16:45 Сейчас в теме
asserts - ПолучитьСписокТестов(), что заложено в самих библиотеках. При этом у YaxUnit свой механизм добавления тестов, а asserts требует просто массив имен методов.


1 asserts не является фреймворком выполнения тестов, это просто удобный пакет для текучих утверждений

сами тесты запускаются через https://github.com/artbear/1testrunner

2 список тестов в 1тестраннер давно уже можно обозначить через директивы компиляции\аннотации &
- &Перед, &После, &Тест

https://github.com/artbear/1testrunner/blob/master/tests/fixtures/annotatio­n.os
bayselonarrend; +1 Ответить
6. bayselonarrend 2086 18.03.24 17:15 Сейчас в теме
(5)
asserts не является фреймворком выполнения тестов, это просто удобный пакет для текучих утверждений


Да, значит я неправильно понял - думал, что процедура формирования списка тестов для запуска также относится к asserts

список тестов в 1тестраннер давно уже можно обозначить через директивы компиляции\аннотации &
- &Перед, &После, &Тест


Буду знать. В моем случае это менее предпочтительный вариант: код, опять же, для 1С и OS один и тот же, а 1С будет ругаться на нестандартные директивы. А так массив да и массив
7. bprogs 270 17.07.24 20:23 Сейчас в теме
как при отправке файла поменять на свое наименование , там везде отправляется почему то как document, а мне надо чтоб по другому назывался
8. bayselonarrend 2086 17.07.24 20:39 Сейчас в теме
(7) Напишите, пожалуйста, в Issues, о каком API речь и с какой версией вы работаете
9. bprogs 270 17.07.24 20:41 Сейчас в теме
у меня гитхаба нет , ну там где файл расширения идет 1с файл cfe он там единственный, при отправле файла как document ,нету никакого параметра чтоб указать имя фалйа, я там в апи бота в тг вроде как нашел параметр filename , что то с первого раза не получилось
10. bayselonarrend 2086 17.07.24 21:14 Сейчас в теме
(9) Как-то не всплывало раньше. Добавил параметр, можете просто модуль себе забрать целиком
Ссылка
11. bprogs 270 18.07.24 08:01 Сейчас в теме
12. bprogs 270 18.07.24 10:33 Сейчас в теме
Bad Request: there is no document in the request
400 ошибка теперь выскакивает
13. bayselonarrend 2086 18.07.24 10:33 Сейчас в теме
(12) А вы последнюю версию пакета используете?
14. bprogs 270 18.07.24 10:34 Сейчас в теме
(13) по ссылке указали оттуда и взял
15. bayselonarrend 2086 18.07.24 10:35 Сейчас в теме
(14) Ну так могли же наверное новые версии выйти с тех пор, как вы качали
16. bprogs 270 18.07.24 10:35 Сейчас в теме
там маленько в параметре не понятно , написано четвертым параметром при отправке файла "ДОКУМЕНТ" это я как понял путь к файлу и последний параметр это любой строковый литерал имя файла правильно?
19. bayselonarrend 2086 18.07.24 10:37 Сейчас в теме
(16) Да, но если вы не последнюю версию пакета используете, то там могли быть изменения в других модулях, которые связанны с этим, например OPI_Инструменты
21. bprogs 270 18.07.24 10:39 Сейчас в теме
(19) аа сейчас полностью поменяю
bayselonarrend; +1 Ответить
22. bayselonarrend 2086 18.07.24 10:41 Сейчас в теме
(21) Только если будете полностью заменять CFE, то конкретно модуль телеграма нужно опять скопировать, так как в текущем релизе изменений по имени файла еще нет - они будут как исправления только в следующем
17. bprogs 270 18.07.24 10:36 Сейчас в теме
ну это свежак , там параметра имя файла не было
18. bprogs 270 18.07.24 10:37 Сейчас в теме
OPI_Telegram.ОтправитьДокумент(Токен,ЧатАйди,Текст,ПутьКФайлу,,,"спецаОбразец");
вот так вызываю, там где путь к файлу все есть
20. bayselonarrend 2086 18.07.24 10:39 Сейчас в теме
(18) Посмотрите просто версию расширения, и если она не последняя (1.11.0) то обновитесь. Я же не могу добавить исправление в версию, которая уже не актуальна
23. bprogs 270 18.07.24 10:43 Сейчас в теме
(10)
(20) ага я понял вас, у меня просто не все расширение , попробую сейчас отдельно с расширением установить
24. bprogs 270 18.07.24 10:47 Сейчас в теме
(20) 1.11.0 в этом пакете нету никаких изменений и он от 15 числа не вчерашний, как то я запутался уже, там где релиз написано ооттуда и забрал там старые данные параметра имя файла нет
https://disk.yandex.com/i/ebBw-x1smsC10A
пишет слишком много фактических параметров
25. bayselonarrend 2086 18.07.24 10:48 Сейчас в теме
26. bprogs 270 18.07.24 10:50 Сейчас в теме
(25) ок, копирну ,посмотрим
27. bayselonarrend 2086 18.07.24 10:51 Сейчас в теме
(26) Если у вас изначально были модули из 1.11.0, то не заработает - значит есть где-то ошибка, посмотрю. Хотя я вроде тесты прогонял
28. bprogs 270 18.07.24 10:52 Сейчас в теме
ага все работает, отличная библиотека буду тестить , еще раз спасибо
bayselonarrend; +1 Ответить
29. bayselonarrend 2086 18.07.24 10:54 Сейчас в теме
(28) Хорошо, спасибо за обратную связь. Но на GH стоит зарегаться - много чего другого интересного есть и можно следить за новыми версиями) + разработчикам проще потом искать концы где что менялось, если это делается через Issue. А то потом ищи свищи по всем комментариям в разных статьях, почему тут вот так сделано
Оставьте свое сообщение