Фильтрация накладывается при показе диалога с запрашиваемыми параметрами в блоке 42 типового маршрута TestTM.
При выполнении задания появляются два запрашиваемых параметра: NewApprover типа «Запись справочника» и NewApproverFilter типа «Строка», который содержит ИД записей справочника через запятую. Параметр типа «Строка» скрывается, его значение (фильтр) накладывается на параметр NewApprover.
XML
<!-- В веб-модуле MyExt для карточки заданий использовать JavaScript-файл myext.js -->
<Extension name="MyExt" title="My_Extension" jsfile="/js/myext.js">
<Cards>
<Card type="Job" jsfile="/js/myext.js" />
</Card>
</Cards>
</Extension>
JS
(function (global) {
WA.ready(function () {
switch (WA.getLocation()) {
case 'job':
// Карточка задания.
// Вычисления по фильтрации запрашиваемых параметров.
var afterShowFunc = {
"AfterShow": function (callback) {
// Фильтрация параметра NewApprover,
// данные для фильтрации в параметре NewApproverFilter.
setFilterOnAskableParams("NewApprover", "NewApproverFilter");
return false;
}
};
var jobEvents = {
"TestTM": {
blocks: {
"42": afterShowFunc
}
}
}
WebAccess.setEvents(jobEvents);
WebAccess.Job.loadEvents(jobEvents);
break;
case 'reference':
// Карточка записи справочника.
break;
}
});
})(window);
function setFilterOnAskableParams(paramName, filterParamName) {
var jaskDialog = $('#ask');
var jFilterParam = jaskDialog.find('input#askpar' + filterParamName);
var jParam = jaskDialog.find('input#askpar' + paramName);
// Скрыть параметр для фильтрации.
jFilterParam.parents('tr').hide();
var filterParam = jFilterParam.val();
if (filterParam !== "") {
jParam.data('filter', '[ИД] in {' + filterParam + '}');
}
}
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |