@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 будет понимать, вы создаёте новый модуль или обновляете старый?
Думаю я могу сделать промежуточный вариант исправления этой проблемы
