Добрый день!
Прошу разъяснения по Пользовательскому элементу (Script).
Все сделал как написано в pdf.
Сначала пытался на версии 1.3.7 запустить все это дело.
В логах c:\ProgramData\MPSSoft\MasterSCADA4DRT1_3\Server\ error.log
записи вот такого типа:
Контрол не работает, на экране пишет что -то типа "Не удалось установить параметр flag".Код:2025/05/14 10:26:23 [error] 6264#5256: *2 CreateFile() "C:\ProgramData\MPSSoft\MasterSCADA4DRT1_3\Server/htdocs/controls/basic.js" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: _, request: "GET /controls/basic.js HTTP/1.1", host: "127.0.0.1:8043", referrer: "http://127.0.0.1:8043/resources/custom1.js"
Я так понимаю , что в с версии 1.3.7 не генерируются в папке htdocs папки controls, actions и тому подобное (а именно там находятся javascript файлы - в том числе и basic.js, от которого наследуются свои пользовательские контролы).
В более ранних версиях они были...
Обновился до новой версии (Версия: 1.3.8.24492(1.3.8_20250513.1)) - поменялось расположение самого рантайма (теперь в c:\ProgramData\MPSSoft\MasterSCADA4D_RT\rt\ и проект загружается в подпапку server). Папка logs есть , но там в файлах логов нет инфы касаемо визуализации.
И также нет controls (basic.js и прочего).
Вопрос: пользовательских элементов теперь не будет? наследоваться от HTMLElement? а параметры в контролах для привязок со стороны MS4D как делать в таком случае?
Я пытался делать простой элемент-наследник HTMLElement без импорта {Basic} из basic.js. Заводил поле flag в js, в MS4D также парметр добавлял flag - не работает.
Код:export class msscript extends HTMLElement { constructor() { super(); this._flag = false; } /** * flag * @type {bool} */ get flag() { console.log("Current flag state is:" + this._flag); return this._flag; } set flag(value) { this._flag = this._toBool(value); console.log("Current flag state is:" + this._flag); } _toBool(value) { if (value) { if (typeof value == "boolean") { return value; } else { switch (value.toString().toLowerCase().trim()) { case "true": case "yes": case "1": return true; case "false": case "no": case "0": case null: return false; default: return Boolean(value); } } } else { return false; } } }




Ответить с цитированием