Table.Area.Value
| Area.Value (Доступ к свойствам ячеек) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Атрибут возвращает или изменяет значение, ассоциированное с ячейками области таблицы. Значение получается для крайней левой верхней ячейки области, и устанавливается для всех ячеек таблицы. Значение может иметь произвольный тип, в т.ч. объект базы данных и также сложные типы, как список и таблица. Значение не выводится на экран, однако, если ячейка имеет значение, курсор мыши, находящийся над ячейкой, будет имеет другой вид и двойной клик по ячейке по умолчанию будет открывать объект базы данных (если это возможно), хранящийся в этом атрибуте. Поведение системы при двойном клике мышью или нажатии клавиши Enter можно изменить с помощью предопределенных событий, типа OnDoubleClick.
Для таблиц-шаблонов ячейки могут иметь установленный атрибут IsValueTemplate. В этом случае, значение этого атрибута имеет тип строки и будет использоваться как выражение на встроенном языке для нахождения нового значения атрибута при копировании области, включающей ячейку, из таблицы-шаблона с помощью операций, типа CopyByX.
Синтаксис
Table.Area.Value:<Значение ячеек таблицы>
Возвращаемое значение
Возвращает значение, связанное с верхней-левой ячейкой области.
Примеры
//Пример функции, вызываемой свободной таблицей при нажатии Enter или двойном клике по ячейке или объекту таблицы
Function OnDoubleClick(Таб)
If Таб.SelectionMode>1 Then
//Выделен объект, а не ячейка
if Таб.SelectedObjects().Count()<1 Then
Exit;
EndIf;
Obj:=Таб.SelectedObjects().Get(1);
//Получим значение объекта
Сп:=Obj.Value;
Else
//Получим значение ячейки под курсором
Сп:=Таб.Area(Таб.CurCol,Таб.CurLine,Таб.CurCol,Таб.CurLine).Value;
EndIf;
If TypeStr(Сп)<>"LIST" Then
Exit;
EndIf;
//Откроем модуль, закодированный в значении объекта или ячейки
If not isEmpty(Сп.GetByName("Module")) Then
Путь:=Сп.GetByName("Module");
Сп:=List.Create();
Сп.SetByName("Table",Таб);
Сп.SetByName("SimpleRootCall",1);
LoadModule(0,Путь,Сп,0,"Module","Form");
EndIf;
EndFunction