Table.AttachedModule
AttachedModule (Счетчик ссылок на себя) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Атрибут позволяет получить или изменить свойство связи текущего модуля со свободной таблицей. Если модуль будет закрыт позже, а таблица останется открытой, события таблиц типа OnDoubleClick будут вызываться сначала в этом связанном модуле, а уже потом в модуле, под которым работает таблица, или в глобальном модуле. Это удобно для отчетов, которые производят определенные действия при работе со свободными таблицами, получаемыми в результате их выполнения. Таким образом можно избежать утери этой функциональности, если обработка отчета будет закрыта, но нужно понимать, что вызванное таким образом событие, возможно будет работать со стеком и переменными другого модуля. Также стоит заметить, что функция ModuleTag понимает эту связь и будет отдавать переменную, привязанную именно к модулю таблицы. Важно: чтобы изменить связь с одного модуля на другой, необходимо сначала присвоить атрибуту значение 0 (очистить связь) и после этого 1. Это сделано для того, чтобы избежать дополнительной проверки в коде формирования отчета (чтобы не изменять связь, если она уже имеется).
Синтаксис
Table.AttachedModule:<Связать текущий модуль с событиями таблицы (INT)>
Возвращаемое значение
При изменении в 1, модуль привязывается к таблице, 0, будет отвязан от нее. Атрибут также возвращает 1, если привязка активна и 0, если нет.
Примеры
Function OnDoubleClick(Таб) If Таб.SelectionMode>1 Then if Таб.SelectedObjects().Count()<1 Then Exit 0; EndIf; Obj:=Таб.SelectedObjects().Get(1); If Obj.Name="cRefresh" Then Сп:=Obj.Value; СтрПуть:=Сп["Path"]; СтрМодуль:=Сп["Module"]; СтрФорма:=Сп["Form"]; Сп["Таблица"]:=Таб; Сп["ИспользоватьТаблицу"]:=1; Сп["Выполнить"]:=1; LoadModule(0,СтрПуть,Сп,0,СтрМодуль,СтрФорма); EndIf; EndIf; EndFunction //Построение таблицы ... //Убедимся, что для этой таблицы будет работать указанный выше обработчик события "OnDoubleClick" Т.AttachedModule:=1; Т.Show();