Зависимые списки значений

Зависимые списки значений

Рассмотрим следующую конфигурацию:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02usp_cashbookcompany_idValidationLists02companiesTABLEid, +name
 s02usp_cashbookcompany_idParameterValuess02companiesTABLEid, +name

В этом примере списки значений для колонки и параметра company_id берутся из таблицы companies.

Если кто-то добавит или изменит компанию, пользователи, открывшие запрос usp_cashbook, должны обновить данные и конфигурацию или списки значений.

SaveToDB 10 предлагает более эффективное решение, если пользователь обновляет справочники и данные в одной книге. Например, при сохранении изменений в таблице companies надстройка автоматически обновит списки значений для колонки и параметра.

Приведенный выше пример достаточно прост, так как список загружается из таблицы, которая сохраняется.

Теперь рассмотрим новую конфигурацию, где для получения значений используются процедуры, которые извлекают данные из таблицы companies.

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02usp_cashbookcompany_idValidationLists02xl_list_company_idPROCEDURE
 s02usp_cashbookcompany_idParameterValuess02xl_list_company_idPROCEDURE

В этом случае надстройка будет автоматически обновлять списки, если сможет проанализировать код хранимой процедуры и определить исходную таблицу.

Разработчики могут явно указать зависимость, используя тип события DependsOn.

Например:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02usp_cashbookcompany_idDependsOns02companiesTABLE

Этот подход достаточно прост: можно просто скопировать строку настройки списка значений и заменить ValidationList на DependsOn. Однако он приводит к дублированию строк для многих объектов.

Существует альтернативный способ указания зависимостей:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02xl_list_company_idDependsOns02companiesTABLE

Эта настройка указывает, что процедура списка значений зависит от таблицы companies. Таким образом, надстройка обновит все списки, основанные на xl_list_company_id, при сохранении изменений в таблице companies.

Кроме того, можно установить зависимость между формами редактирования и их исходными таблицами. Например, если процедура usp_companies используется для редактирования компаний, можно установить ее зависимость:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s02usp_companiesDependsOns02companiesTABLE

В этом случае, если пользователь сохранит значения, загруженные из процедуры usp_companies, надстройка обновит все списки, основанные на таблице companies и процедуре xl_list_company_id.

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.