Модули и переменные

Запросы функционала
  • После обновления модуля. переменные в функциях модуля в скрипте обнуляются. Почему так? Функция не менялась, а переменные сбрасываются. Это надо обновлять модуль, который использует модуль, который мы обновили. И потом в своем скрипте заного обновлять эти переменные, если модуль в нем используется.

  • @Int64 потому что:
    К примеру вы создали модуль с 1им входным параметром, к примеру [[PROXY]].
    Извлекаете zip архив.
    Открываете папку с помощью VSCode
    И в файле что_то_там.js будет строка отвечающая за эту переменную. И имя этой переменной будет что то типо "ivdtjn".
    И при каждом обновлении модуля, будет новое имя переменной.

    (Я не знаю почему при создании модуля не сделать чек бокс со своими именами переменными)

    Если хочешь чтоб не сбрасывались переменные.
    Создаёшь обновленный модуль, но не добавляешь в BAS.
    Открываешь первую версию модуля, открываешь обновленную версию.
    С первой версии копируешь имя переменной в обновленную.
    Если их несколько, то каждую в свою.
    Точно не помню, в одном месте надо менять или в нескольких, можешь поиском посмотреть.
    И так после каждого обновления модуля.

    Затем архивируешь в zip и обновляешь модуль в BAS.

    Только смотри чтоб порядок папок был правильный в zip архиве.
    Вроде имя_модуля.zip -> имя_модуля -> файлы.

  • @mansory333 даже это не помогает, я проверял

  • @llimonix да почти с момента появления модулей так делаю.
    Последний раз обновлял модуль 2 месяца назад.
    Может что изменили.
    Завтра проверю ещё раз.

  • @Int64 said in Модули и переменные:

    После обновления модуля. переменные в функциях модуля в скрипте обнуляются. Почему так? Функция не менялась, а переменные сбрасываются. Это надо обновлять модуль, который использует модуль, который мы обновили. И потом в своем скрипте заного обновлять эти переменные, если модуль в нем используется.

    https://community.bablosoft.com/category/19/поддержка

    af6283b3-f4a9-457d-96b9-9166f007270a-изображение.png

    31e89d1d-a3fb-4d30-8a7e-a54132bdb30b-изображение.png

  • This post is deleted!
  • @Fox Весело конечно, но фикса я там не увидел. а костыль.

  • @Int64 said in Модули и переменные:

    @Fox Весело конечно, но фикса я там не увидел. а костыль.

    Чегось? Использование статичных id для инпутов это костыль?

  • @Fox said in Модули и переменные:

    Чегось? Использование статичных id для инпутов это костыль?

    Как-то можно сделать, чтобы эти id после обновления не менялись? Тему по ссылке выше посмотрел. Или ты имеешь в виду, просто их руками каждый раз прописывать после обновления?

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

  • @thepappo said in Модули и переменные:

    @Fox said in Модули и переменные:

    Чегось? Использование статичных id для инпутов это костыль?

    Как-то можно сделать, чтобы эти id после обновления не менялись? Тему по ссылке выше посмотрел. Или ты имеешь в виду, просто их руками каждый раз прописывать после обновления?

    Вы вероятно не понимаете, что за id нужно прописывать и в чём собственно дело? Смотрите, каждое действие в модуле BAS состоит из трёх файлов

    • *_select.js
    • *_interface.js
    • *_code.js

    Если открыть в текстовом редакторе файл "*_interface.js" то можно увидеть код шаблона вёрстки интерфейса действия для BAS

    8f1f2e4d-2686-4d5c-9658-7aa071004b8b-изображение.png

    Каждый параметр действия начинается со строки <%= _.template(, далее в нём находится этот пресловутый id

    814bdea7-8885-4032-8ffb-013e55a5fa6d-изображение.png

    При сохранении действия BAS помещает данные элементов интерфейса (значения инпутов, чекбоксов, выпадающих списков и т.д.) в техническом описании действий для рабочей зоны BAS (зелёная строка, начиняющаяся с /*Dat:)
    22149846-55c2-4e57-84e9-2898e3cbcc35-изображение.png

    Данные сохраняются с id полей откуда они были взяты, и когда вы открываете сохранённое действие, то из технического описания в интерфейс BAS загружаются данные действия (вписываются данные в инпуты, выбираются чекбоксы и выпадающие элементы списка).

    Проблема вот в чём, при создании модуля из функции BAS все id интерфейса действий генерируются случайными и после обновления модуля, данные из технического описания действия не могут найти места, куда им нужно вписать данные.

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

    А как BAS будет понимать, вы создаёте новый модуль или обновляете старый?


    Думаю я могу сделать промежуточный вариант исправления этой проблемы