diff --git a/frontend/sfera-web/src/components/editor/ide-workspace.tsx b/frontend/sfera-web/src/components/editor/ide-workspace.tsx index 2de47c1..83571ab 100644 --- a/frontend/sfera-web/src/components/editor/ide-workspace.tsx +++ b/frontend/sfera-web/src/components/editor/ide-workspace.tsx @@ -3049,7 +3049,7 @@ function FormDesignerPanel({ const form = objectForms.find((item) => item.form.lineage_id === selectedFormId) ?? objectForms[0]; const commands = form?.commands.slice(0, 6) ?? []; const formKey = form?.form.lineage_id ?? "draft"; - const baseElements = useMemo(() => buildIdeFormElements(data, form), [data, form]); + const baseElements = useMemo(() => buildIdeFormElements(form), [form]); const elements = elementDrafts[formKey] ?? baseElements; const formTitle = titleByForm[formKey] ?? form?.form.name ?? "ФормаДокумента"; const formObjectCaption = language === "ru" ? `${formTitle} (форма 1С 8.5)` : `${formTitle} (1C 8.5 form)`; @@ -3057,9 +3057,9 @@ function FormDesignerPanel({ useEffect(() => { if (form && !elementDrafts[form.form.lineage_id]) { - setElementDrafts((current) => ({ ...current, [form.form.lineage_id]: buildIdeFormElements(data, form) })); + setElementDrafts((current) => ({ ...current, [form.form.lineage_id]: buildIdeFormElements(form) })); } - }, [data, elementDrafts, form]); + }, [elementDrafts, form]); const updateElement = (id: string, patch: Partial) => { setElementDrafts((current) => ({ @@ -3175,9 +3175,23 @@ function FormDesignerPanel({ "grid grid-cols-12 gap-x-3 gap-y-2 p-5", layout === "compact" ? "gap-y-1" : "" ].join(" ")}> - {elements.map((element) => ( - - ))} + {elements.length ? ( + elements.map((element) => ( + + )) + ) : ( +
+
{language === "ru" ? "Структура элементов формы не загружена" : "Form element structure is not loaded"}
+
+ {form?.form.qualified_name ?? form?.form.name ?? data.projectId} +
+
+ {language === "ru" + ? "В текущем индексе для этой формы нет узлов элементов. SFERA не подставляет шаблонные поля, чтобы не искажать объект 1С." + : "The current index has no element nodes for this form. SFERA does not insert template fields because that would distort the 1C object."} +
+
+ )}
@@ -3306,7 +3320,7 @@ function ideFormControlInput(element: IdeFormElementDraft) { if (element.controlKind === "text") { return