@KPOT20 Ресурс в список просто выгружается все данные в список
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 полей в файлах интерфейса у сгенерированных модулей на стационарные
Да, я думаю, что я так и сделаю. Это будет надежнее.