Table.AttachedModule

From SunFlurry wiki
Revision as of 09:04, 7 August 2023 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  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();