Добрый день!
Есть деталь к разделу. В этой детали есть поле, связанное с этой деталью. В детали можно нажать кнопку изменить и откроется карточка редактирования. Можно нажать на подчеркнутое поле, ссылающееся на эту же таблицу, и откроется та же карточка редактирования, но для другой записи. Вопрос: как в скрипте этой карточки определить что карточка редактирования открыта для записи из реестра или для ссылки? Необходимо для того, чтобы некоторые поля в карточке разрешить/запретить для редактирования.
Нравится
При открытии по кнопке или двойному клику по строке вызывается функция EditGridAreaData в scr_BaseGridAreaUtils. Если по ссылке, то DoLookupColumnClick в scr_WindowUtils, а из неё функция ShowDatasetEditWindow.
Далее в обоих случаях вызывается непосредственно функция показа карточки ShowEditWindowEx с одним из параметров Attributes, где хранятся атрибуты окна. Можно модифицировать вышеупомянутые функции, чтобы в атрибуты добавлялся свой, разный для открытия из реестра или по ссылке. А в карточке при открытии проверять его значение.
При изменении функций стоит учесть, что они используются во всех разделах, и не поломать существующую логику.
Александр, не хотелось бы править системные функции, потому что не зная тонкостей поломать логику очень легко. Поэтому и спросил, может есть готовые атрибуты окна при разных вызовах. А возможно ли в карточке при открытии сравнить ID активной записи реестра детали и ID переданного через атрибут в окно? Возможно ли установить между ними связь?
Действительно, спасибо за уточнение, не заметил присвоение атрибута. Но ход мысли авторов угадал...