Событие |
Описание события |
---|---|
Открытие |
Используется для управления передаваемым с сервера набором данных. Выполняется перед открытием набора данных, то есть перед считыванием данных с сервера. Например, для ускорения открытия справочников с большим числом записей, таких как Регистрационно-контрольные карточки, Поручения, можно ограничить передаваемый с сервера набор данных. Событие поддерживается в веб-доступе |
Закрытие |
Выполняется после закрытия набора данных, то есть после выхода из компоненты. В событии можно очищать информацию, накопившуюся во время работы с записью, например, переменные окружения, данные реестра. Событие поддерживается в веб-доступе |
Примеры использования события Набор-данных – Открытие, ограничение загружаемых записей:
• | с помощью метода AddWhere: |
// Получить код главной нашей организации.
OurOrgCode = Конст("КОДГЛОРГ")
// Получить ИД главной нашей организации.
ReferenceRequisiteValue('НОР'; OurOrgCode; SYSREQ_ID)
AddWhereStr = Format("%s.%s = %s"; ArrayOf(Object.TableName; Object.Requisites(SYSREQ_OUR_FIRM).SQLFieldName; OurOrgID))
// Отфильтровать справочник по нашей организации.
AddWhereID = Object.AddWhere(AddWhereStr)
// Записать AddWhereID в переменную окружения.
Object.Environment.SetVar('ADD_WHERE_ID'; AddWhereID)
// ***Событие Набор Данных – Закрытие***
// Не забыть удалить заданное ограничение.
Environment = Object.Environment
// Проверить, что в окружении есть переменная с нужным именем.
if Environment.IndexOfName('ADD_WHERE_ID') > -1
AddWhereID = Object.Environment.PopVar('ADD_WHERE_ID')
// Удалить ограничение.
Object.DelWhere(AddWhereID)
endif
• | через функцию СпрИзмНабДан: |
// Получить код главной нашей организации.
OurOrgCode = Конст("КОДГЛОРГ")
// Получить ИД главной нашей организации.
OurOrgID = СпрРекв("НОР"; OurOrgCode; SYSREQ_ID)
AddWhereStr = Format("%s.%s = %s"; ArrayOf(Object.TableName; Object.Requisites(SYSREQ_OUR_FIRM).SQLFieldName; OurOrgID))
// Отфильтровать справочник по нашей организации.
СпрИзмНабДан(;; AddWhereStr)
Так же можно манипулировать загрузкой реквизитов с помощью свойства Preloaded.
// Не загружать значение реквизита «Дополнение»
Object.Requisites('Дополнение').Preloaded = FALSE
В результате в форме-списке справочника значения для реквизита Дополнения очистятся. При открытии конкретной записи они загрузятся с сервера. Значения предопределенных реквизитов (ИД, Код, Состояние и др.) загружаются всегда, независимо от свойства Preloaded.
Также для увеличения производительности стоит уменьшить использование вычисляемых реквизитов или заменить их на Дополнительные реквизиты. Данный тип реквизитов не сохраняется в БД, а вычисляется при открытии набора данных.
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |