Difference between revisions of "ModuleTag"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:51, 7 February 2021
ModuleTag (Системные функции) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция получает или изменяет свободную переменную, привязанную к текущему (исполняемому) модулю. Значение может использоваться по усмотрению разработчика. Функция может использоваться для хранения значений, когда модуль может быть вызван с формой или без формы. К примеру, если форма, создавшая электронную таблицу, была закрыта пользователем, модуль остается в памяти до тех пор, пока таблица не будет закрыта. Если в таблице присутствуют интерактивные элементы (кнопки, поля и пр.), они будут вызывать соответствующие функции событий из модуля. Однако, зачастую, при формировании таблицы используется некий набор параметров, без которых выполнение некоторых событий не будет возможно (требуются фильтры оригинальной формы или период формирования и пр.). Чтобы обойти эту проблему, можно хранить нужные параметры непосредственно в созданной таблице, а можно в переменной, привязанной к модулю. При начале выполнения любого модуля, функция ModuleTag возвращает пустое значение. Важно также понимать, что в функциях глобальных модулей, доступ будет осуществляться по-прежнему к значению, привязанному в активному модулю текущего потока, а не глобальному модулю, в котором располагается вызываемая функция.
Синтаксис
ModuleTag(<Новое значение>):<Предыдущее значение>
Аргументы
<Новое значение>
- (необязательный аргумент) изменяет значение, привязанное к текущему модулю.
Возвращаемое значение
Возвращает текущее (предыдущее) значение, привязанное к текущему модулю.
Примеры
//Функции позволяют сохранять или получать произвольные значения, привязанные к текущему модулю, по их имени. Function СохранитьВМодуле(Имя,Значение) aList:=ModuleTag; if TypeStr(aList)<>"LIST" Then aList:=List.Create(); ModuleTag(aList); EndIf; aList.SetByName(Имя,Значение); EndFunction Function ПолучитьИзМодуля(Имя) aList:=ModuleTag; if TypeStr(aList)<>"LIST" Then Exit; EndIf; Exit aList.GetByName(Имя); EndFunction