Я создал два справочника услуги и кабинеты. Создал две таблицы, указывающие на то какие услуги могут выполнятся в определенном кабинете, и какие услуги может выполнять мастер(переименованый ответственный в окне редактирования задач). Добавил дополнительные поля справочников услуги и кабинеты в окно редактирования задач.
Вопрос такой: как мне фильтровать список услуг в зависимости от уже выбраного мастера и кабинета?
Нравится
Владимир, для фильтрации значений одного поля в зависимости от других необходимо создать обработчик события OnPrepareSelectWindow для этого поля, а в нём применить соответствующие фильтры. В Вашем случае это необходимо сделать в скрипте scr_TaskEdit. Вот пример реализации зависимости контакта от выбранного контрагента в этом же скрипте:
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); }
Здесь Dataset - датасет карточки задачи, LookupDataset - датасет поля справочника, которое необходимо отфильтровать. В Вашем случае нужно будет применить два фильтра - по мастеру и кабинету. Для корректной работы в запросе услуг должны быть фильтры с соответствующими кодами (в примере это фильтр с кодом 'AccountID'), а также параметры с такими же названиями.