Как наложить локальный фильтр и избежать ошибки: свойство реквизита Preloaded 

Андрей Девятьяров
Дата создания: 25 октября 2011 в 15:18

Что будет, если наложить локальный фильтр (Filter) на набор данных справочника при открытии? 

Например так:

Object.Filter = "<Имя реквизита> is not null"
Object.Filtered = true

 

 

 

Фильтр ограничивает выборку по данным, не выполняя повторный sql-запрос, то есть локально. А что, если фильтр наложен, а значение реквизита еще не загружено? 

Для избежания подобной ситуации необходимо загрузить значения реквизитов, по которым накладывается фильтр, до его использования. Сделать это можно с помощью свойства реквизита Preloaded в событии "Набор данных - Открытие", естественно, ДО вызова фильтра.

Object.Requisites('<Имя реквизита>').Preloaded = true

Object.Filter = "<Имя реквизита> is not null"
Object.Filtered = true
 
 
 
 
 
 
 
 
Итак, Preloaded - свойство реквизита:
1. При открытии набора данных справочника с сервера считываются значения реквизитов, это:
  • некоторые предопределенные реквизиты (ИД, Состояние, Статус, Код, Наименование и др.)
  • все реквизиты, которые соответствуют видимым колонкам формы-списка справочника (если для них в событии "Набор данных - Открытие" не прописано Preloaded = false)  
  • все остальные реквизиты, для которых в событии справочника "Набор данных - Открытие" устанавливается Preloaded = true
  
2. Если в событии справочника "Набор данных - Открытие" установить Preloaded = false, то, для не предопределенных реквизитов, в форме-списке значения не будут отображаться, что может ввести пользователя в заблуждение, на предопределенные реквизиты влияния не выявлено - отображаются нормально (подгружаются независимо от значения Preloaded). Затем, при открытии карточки записи справочника, все данные по реквизитам отображаются нормально, так как подгружаются с сервера. 
 
3. Свойство Preloaded устанавливается платформой на клиенте и действует на время одного запуска до закрытия компоненты.
 
4. На одном клиенте могут различаться одни и те же реквизиты в свойстве Preloaded - видимые колонки раздельно сохраняются для разных режимов справочника - просмотр/выбор/навигация.
 
 
PS. Пишите в комментариях, как вы использовали Preloaded в своих творениях, чем помогло/навредило.
понравилась 1 пользователю

Комментарии (2)
Комментарии доступны только для зарегистрированных пользователей.




Теги
4.7 4.8 awards isbl is-builder sql server бизнес-решение введение в is-builder видео дайджест документ интеграция клик настройка отчет разработка сообщество справочник сценарий функция
показать все теги