Студия/OnBeforeLoadElements

From SunFlurry wiki
Revision as of 16:58, 26 August 2020 by Admin (talk | contribs) (Created page with "{{infobox function |name=OnBeforeLoadElements |element=Таблица значений |caption=Визуальные события |eventtype=Прерывающее |status=2...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  OnBeforeLoadElements (Визуальные события)
Применимость:Таблица значений
Тип события:Прерывающее
Статус разработки: Реализована

Событие, возникающее перед загрузкой новых строк в табличный элемент. Позволяет подменить стандартную загрузку желаемой. Не вызывается для фиксированных строк таблицы (структуры родительских папок), которые, при наличии, зависят от атрибута FolderElement и будут уже добавлены в таблицу на момент вызова, однако, программа может модифицировать эти строки по желанию. При загрузке элементов в таблицу, нужно понимать, что новые строки можно добавлять незаполненными, указывая только сам элемент в столбце @ELEMENT. После выполнения события, система сама заполнит столбцы, связанные с реквизитами элемента, и будут вызваны другие события заполнения, типа OnInitLine при их наличии. Однако, изменение других столбиков, кроме @ELEMENT не запрещается.

Аргументы

  • <Result (INT)> - (возможен аргумент-переменная (ByRef)) Переменная результата может принимать значения:
    • 0 (по умолчанию) -- Разрешить выполнить стандартную загрузку строк.
    • 1 -- Запретить выполнить стандартную загрузку строк, обработчик загрузил нужные строки таблицы.

Примеры

//Пример обработчика OnBeforeLoadElements
//При наличии готового списка, который должен быть загружен в таблицы, загрузим элементы из списка, руководствуясь 
//  правилами сортировки и визуальными фильтрами, иначе разрешим стандартную загрузку.
If not IsEmpty(СпЭлементы) Then
  Result:=1;
  aEl:=Ref.Договоры;
  //Использовать сортировку таблицы
  aEl.UseOrder(Form.MainTab.SortString);
  //Загрузить с учетом фильтров
  aList:=aEl.Load(0,"@USECONTROLFILTERS,->@ELEMENT",Form.MainTab,СпЭлементы);
  //Скопировать загруженные элементы в таблицу, заполняя столбец @ELEMENT.
  aList.CopyTo(Form.MainTab.Value,1,aList.Size(),"@ELEMENT");
EndIf;