Form.RereadValue
| RereadValue (Работа со фильтрами таблиц) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
Функция используется для таблицы, в ячейке которой происходит редактирование, функция обновляет содержимое редактора ячейки текущим значением ячейки таблицы (как будто пользователь нажал ESC и отказался от введенного значения, однако, функция не закрывает редактор). При наличии аргумента, функция заменяет редактируемое значение на указанное, а не на оригинальное значение ячейки таблицы. Функцию удобно использовать как результат нажатия на связанный элемент. Это позволяет, к примеру, не выходя из режима редактирования ячейки, выбрать объект редактирования с помощью связанного элемента, либо вернуть значение по умолчанию при нажатии на очистку значения редактирования и пр.
Синтаксис
Form.RereadValue(<Новое значение редактирования>)
Аргументы
<Новое значение редактирования>- (необязательный аргумент) Если аргумент указан, задает значение, которое нужно передать активному в данный момент редактору ячейки, иначе передаваемое редактору значение берется из самой таблицы. Значение может быть любого типа, принимаются не только объекты базы данных.
Примеры
//Фрагмент события OnAttachedButtons
...
ElseIf Index=_AB_CHOOSE Then
Result:=1;
If Form.MainTab.SelectedColumnName=uppercase("Партия") Then
Result:=0;
If isEmpty(MainTab.Номенклатура) Then
Exit;
EndIf;
//Осуществить выбор партии с помощью особой формы выбора, отличающейся от формы по умолчанию
Сп:=List.Create();
Сп.SetByName("Номенклатура",MainTab.Номенклатура);
Сп.SetByName("Склад",aEl.Склад);
Сп.SetByName("Партия",MainTab.Партия);
LoadModule(10,"Ref.Партии",Сп,0,"Module","ВыборПартии");
Try
//Форма выбора должна передать выбранную пользователем партию в ответе
аПартия:=Сп.GetByName("Ответ");
If IsEmpty(аПартия) Then
Exit;
EndIf;
//Обновить редактор ячейки выбранной партией, как будто она была выбрана обычным способом
// если пользователь, к примеру, нажмет ESC, редактор закроется и в ячейке останется значение до выбора
Form.MainTab.RereadValue(аПартия);
Finally
Form.MainTab.SetFocus();
EndTry;
EndIf;
ElseIf Index=_AB_SELECT Then
...