Скрипты
Разработка

Фильтр справочника

Я создал два справочника услуги и кабинеты. Создал две таблицы, указывающие на то какие услуги могут выполнятся в определенном кабинете, и какие услуги может выполнять мастер(переименованый ответственный в окне редактирования задач). Добавил дополнительные поля справочников услуги и кабинеты в окно редактирования задач.
Вопрос такой: как мне фильтровать список услуг в зависимости от уже выбраного мастера и кабинета?

Нравится

2 комментария

Владимир, для фильтрации значений одного поля в зависимости от других необходимо создать обработчик события OnPrepareSelectWindow для этого поля, а в нём применить соответствующие фильтры. В Вашем случае это необходимо сделать в скрипте scr_TaskEdit. Вот пример реализации зависимости контакта от выбранного контрагента в этом же скрипте:

[javascript]
function edtContactOnPrepareSelectWindow(LookupDataControl) {
var Dataset = dlData.Dataset;
var LookupDataset = LookupDataControl.DataField.LookupDataset;
var AccountID = Dataset.Values('AccountID');
var IsAccountIDFilterEnabled = !IsEmptyGUID(AccountID);
ApplyDatasetFilter(LookupDataset, 'AccountID', AccountID,
IsAccountIDFilterEnabled);
}
[/javascript]

Здесь Dataset - датасет карточки задачи, LookupDataset - датасет поля справочника, которое необходимо отфильтровать. В Вашем случае нужно будет применить два фильтра - по мастеру и кабинету. Для корректной работы в запросе услуг должны быть фильтры с соответствующими кодами (в примере это фильтр с кодом 'AccountID'), а также параметры с такими же названиями.

Спасибо буду пробовать. :smile:

Показать все комментарии