[I128-2504] Формы ввода he2: SID и связи создаются через Security


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2.3 >> [I128-2504] Формы ввода he2: SID и связи создаются через Security📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Исправление ошибок 2026.2.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль he2 - Формы ввода данных

Завершено: 28.06.2026 00:17

Проблема: В модуле he2 SID новой или редактируемой записи и связи с родительским объектом создаются прямой работой с полем 113: через $r->SetSid(), ручную установку SID в Set113() и добавление LINK через FieldAddA(). Это обходит централизованный слой Security для материализации служебного поля 113.

Решение: Назначение SID переводится на Security::EnsurePhysicalSid(), а создание объектных связей — на Security::MaterializeLink(). Поведение старого редактора форм не меняется: создание связанных записей, открытие редактора по SID/MFN и сохранение связи с родительским объектом продолжают работать, но служебные поля создаются через общий механизм Security.

Технические подробности: В modules/he2/Actions/GetEditFormItemsJsonCreateLinked.inc, modules/he2/*_call/InitEditor.inc и modules/he2/api.php прямое назначение SID заменяется на UseModule('Security')~~>EnsurePhysicalSid(). В modules/he2/Actions/GetSidEditor.inc и modules/he2/*_call/ShowHtml.inc прямое добавление LINK~~поля заменяется на UseModule('Security')->MaterializeLink().

Документация: Изменения документации не требуются: пользовательский сценарий работы с формами ввода не меняется, исправляется внутренний способ записи SID и связей.

-

1. Связанные задачи

1.1. 🔗 blocks: I128-2487

[I128-2487] Security: служебное поле 113 создается без явного действия безопасности Статус: Завершено | Автор: Ilya Mikhaylenko