@Q_Q К сожалению через node.js и ws модуль не могу конектится к сокету т.к там каждый раз создаётся уникальная ссылка для нового пользователя, а объект который её создаёт определить для меня трудно сайт написан на react + obfurscator. Плюс к этому ещё и в самом ws внутри нужно каждые 5 минут отправлять токен аутентификации который генерирует какая-то анонимная функция либо вообще на сервере. Вроде ещё как можно сделать обёртку или сделать прокси чтобы свои обработчики повесить но это уже вообще темный лес для меня недостижимый. Поэтому пришлось использовать такой костыль. В Принципе все работает, ws команды я отправляю также через Ява скрипт и взаимодействую с этим сайтом быстро не используя веб интерфейс сайта вообще. Единственная проблема это видеть всю консоль не только в режиме отладчика. Я думал может в BAS есть какой-то свой способ о котором я не знаю, просто парсить ее в переменную бесконечно каждый раз обращаясь к ней и записывая последнее действие по умолчанию
bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS
-
Исходные данные:
- версия BAS 26.3.0
- скрипт с установленным кастомным модулем.
- открытие скрипта в BAS, где этот модуль отдельно не установлен/удален
В BAS IDE слетают визуально настройки вызова параметров функции модуля на по умолчанию, что заданы в функции модуля. Причем в самом коде скрипта все в порядке, функция вызывается с правильными параметрами.
В данном примере параметр length равен в скрипте 5, а отображается как 15, что является значением параметра по умолчанию.
_call_function(AccountProfileMaker_randomPassword,{ "length": (5),"useDigits": ("true"),"useSpecialChars": ("true") })!

Если после открытия скрипта, поправить параметр вызова функции в BAS IDE на тот, что в коде, то сохранение скрипта и перезапуск BAS исправляет ошибку отображения. И работать это будет только на этом компьютере.
Но это все до обновления BAS. При обновлении BAS, в новой версии BAS нет установленного кастомного модуля отдельно и никогда не было, а есть только в коде самого скрипта и я опять натыкаюсь на это баг.
Готов удаленно на своей компьютере продемонстрировать, как воспроизвести ошибку по шагам и ответить на все вопросы.
Скрипт с установленным модулем:
TestFunctional_AccountProfileMakerModule.xml
Модуль отдельно:
AccountProfileMaker.zip
Проект, из которого генерируется модуль:
AccountProfileMakerModuleSrc.xmlДля меня этот баг критичный, прошу помочь, спасите помогите😄
@m4zuper, @Fox -
Правильно ли я понял, что это чисто визуальный баг, который не сказывается на работе скрипта? Это скрипт для тестирования модуля, который запускается после каждого обновления BAS, верно? Получается алгоритм такой?:
- Обновление BAS
- Установка модуля
- Открытие скрипта
- Открытие действия модуля, а там 15, вместо 5?
-
@m4zuper said in bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS:
правильно ли я понял, что это чисто визуальный баг
Ну как сказать.
Вот я дал кому-то скрипт допилить функционал, получил результат работы.
Я смотрю на код в BAS IDE, а там не то, что реально выполняется. Как мне понять, это "чисто визуально" или реальный баг? Для меня это критичный баг.@m4zuper said in bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS:
Открытие действия модуля, а там 15, вместо 5?
Вероятно, если кто-то скачает этот скрипт, то там будет 15 вместо 5, а в коде 5.
Скрипт с установленным модулем:
TestFunctional_AccountProfileMakerModule.xml -
Если в скрипте используются действия из стороннего модуля, то код модуля сохраняется в коде скрипта. К примеру скрипт с изменённым модулем "Список" https://community.bablosoft.com/topic/22171/действие-создать-список/2

Если открыть код приложенного проекта, то в конце можно заметить тег "Modules" и в нём будет установленный модуль "List" с архивом модуля в base64

Далее есть проблема со сбросом параметров в действии при обновлении модулей: https://community.bablosoft.com/topic/14537/вопросы-по-модулям-bas
Смысл в том, что при генерации модуля создаются рандомные значения id полей параметров, а в проекте записаны id старого модуля, по этому и происходит установка стандартных для модуля значений.
Эти данные сохраняются в технических данных действия (текст Dat:...), по этому в коде данные сохранены корректные, а в интерфейсе их нет. Если сохранить действие, то его код будет также заменён. -
@Fox said in bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS:
Эти данные сохраняются в технических данных действия (текст Dat:...), по этому в коде данные сохранены корректные, а в интерфейсе их нет.
Большое спасибо за разъяснение.
Внутри /*Dat: находится то, что я вижу в BAS IDE.
{ "s": "AccountProfileMaker_randomPassword", "v": 1, "f": [], "uw": "0", "ut": "0", "uto": "0", "um": "0", "d": [ { "id": "iyiwobjc", <=== auto generated id "type": "constr", "data": "5", "class": "int" }, { "id": "lwbogtly", <=== auto generated id "type": "constr", "data": "true", "class": "string" }, { "id": "tpnpfvrc", <=== auto generated id "type": "constr", "data": "true", "class": "string" }, { "id": "Save", "type": "var", "data": "APM_PASSWORD_RESULT" } ] }Буду искать workflow при обновлении модуля, как решить свой вопрос, чтобы ничего не поломать у тех, у кого уже модуль установлен.
Может, автогенерация id не мой вариант. Буду думать.
-
@sergerdn said in bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS:
@Fox said in bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS:
Эти данные сохраняются в технических данных действия (текст Dat:...), по этому в коде данные сохранены корректные, а в интерфейсе их нет.
Большое спасибо за разъяснение.
Внутри /*Dat: находится то, что я вижу в BAS IDE.
Оно именно для этого и нужно
Буду искать workflow при обновлении модуля, как решить свой вопрос, чтобы ничего не поломать у тех, у кого уже модуль установлен.
Может, автогенерация id не мой вариант. Буду думать.
Можно в ручную менять id полей в файлах интерфейса у сгенерированных модулей на стационарные или можете использовать мой скрипт, который заменяет id полей нового модуля из старого.
-
@Fox said in bug: отображение параметров вызова функции из модуля, если модуль не установлен отдельно в BAS:
можно в ручную менять id полей в файлах интерфейса у сгенерированных модулей на стационарные
Да, я думаю, что я так и сделаю. Это будет надежнее.