Есть фильтр типа 'IN', как в скрипте его правильно включить?
Фильтр - AccountSiteParentID
Нравится
Посмотрите в scr_DB, там должна быть функция
ApplyDatasetIncludeFilter
В качестве параметра передается Array. Вам нужно просто результаты выборки записать в Array.
Не посмотрел изначально на прикрепленный файл. Я думал у Вас значения для фильтра отдельным запросом выбираются.
Вот кусок функции ApplyQueryIncludeFilter из scr_DB (Как писал выше Валерий). Только здесь вырезана очистка старых и заполнение новыми значениями выражения.
[javascript]
for (var i = 0; i < Filters.Count; i++) {
Filter = Filters.Items(i);
if ((Filter.Code == FilterCode) && (Filter.FilterType == ftInclude)){
Filter.IsEnabled = Enabled;
}
}
[/javascript]
Попробуйте реалзиовать через Exists Filter с условием по ID.
[sql]
exists (SELECT tbl_RolesUrFace.SiteID FROM tbl_RolesUrFace) where [tbl_Site].[ID] = ***
[/sql]
Либо галочку возле него поставить:

Либо через ApplyDatasetFilter.

Вам необходима функция EnableDatasetFilters (scr_DB)
Данная функция использует такие параметры:
EnableDatasetFilters(Dataset, Enabled, FilterCodes)
- Dataset - экземпляр нужного датасета;
- Enabled - если Вам нужно включить фильтр, то Enabled = true, выключить= false;
- FilterCodes - название фильтра, который нужно включить (название пишите в одинарных кавычках).
Пример, если включать фильтр с карточки
[javascript]
var Dataset = dlData.Dataset;
EnableDatasetFilters(Dataset, true, 'AccountExist');
RefreshDataset(Dataset);
[/javascript]
Если попробывать использовать функцию ApplyDatasetFilter получите ошибку "Exception thrown and not caught" на
[javascript]
function CheckAssigned(Object, ObjectName) {
if (!Assigned(Object)) {
var ErrorMgs = FormatStr(ObjectNotAssignedError, ObjectName);
throw ErrorMgs;
}
}
[/javascript]