Коллеги, мне нужно вывести список договоров с предустановленным фильтром по виду договора.
Использую интерфейс GetSomeDogovor, в параметрах передаю нужный мне вид.
Возникают две проблемы:
1. А если мне нужно отобразить договора нескольких видов?
2. При открытии интерфейса в окне фильтров получаю такую картину:
т.е. если вид документа я передал параметром, то в окне фильтров я его изменить уже не могу. А хотелось бы иметь такую возможность.
Если в параметрах GetSomeDogovor нет множественного выбора видов договоров, то нужную фильтрацию можно попытаться сделать самому путём докомпиляции этого интерфейса. Наложить bounds, если есть индекс, либо conditionforleave в противном случае при инициализации этого интерфейса. У меня так сделано в двух интерфейсах, попытался бы и здесь также попробовать. Имхо, может, быть и более другой путь..
Да, вот ещё вариант: написать диалог, в котором предусмотреть нужные виды договоров, и из него дёргать GetSomeDogovor с нужным видом.
#include DogFuns.vih
Interface TestPickDog;
var oGetSDog: GetSomeDogovor;
create view
;
HandleEvent
CmInit:{
oGetSDog.SetGtSDogParameter('GetSDog_VidDogChangeEnabled', 1); // устанавливаем предварительно, что можно менять вид договора (по умолчанию нельзя, видимо, если задан первый параметр Run)
var cDog : comp ;
if oGetSDog.Run(word(7),//вид договора
word(2), // исполняемые договора
word(2), // на закупку
word(1), // выбор соглашений и договоров
true, // одиночный выбор
cDog, //
false, // иерархическое представление
comp(0))
{
}
}
end;
end.
Ок, с этим я разобрался, спасибо, Den.
Но возникла другая проблема - при открытии интерфейса ему параметром передается вид договора (KATVIDD.VIDDOG), а это поле не уникальное, т.е. у дочерних записей это поле равно родительскому.
А мне как раз нужно фильтровать договора по одному из дочерних видов.
Что подскажете?
установить сразу фильтр по нескольким KATVIDD.VIDDOG ?
Быстрее всего, дорабатывать стандартный функционал нужно на эту тему, ну или Alter делать пытаться GetSomeDogovor, чтобы при загрузке достичь этого