Показать сообщение отдельно
Старый 27.03.2017, 14:25   #8  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
870 / 637 (23) +++++++
Регистрация: 14.10.2004
Спасибо! Вы решили мою задачу.
Получается, что дочерние части формы связаны с родителькой частью через args.caller()
Вот так можно получить пользовательские фильтры, установленные на шапках заказа, находясь в той части формы, которая относится к строкам заказов:
X++:
void new(FormRun _callerFormRun)
{
    Query                   localQuery;  
    FormDatasource          formDatasource;
    int                     i;
    PartList                partList;
    Object                  obj;
    
    ;
    
    partList = new PartList(_callerFormRun);
    if (!partList.partCount()) //если на форме нет частей, то предполагаем, что эта форма - часть родительскрй формы, которая находится в args().caller()
    {
        obj = _callerFormRun.args();
        if (obj)
            obj = obj.caller(); //получаем родительскую форму
        if (obj)
        {
            formDatasource = obj.dataSource(1);
            localQuery  = formDatasource.queryRun().Query();
            info(localQuery.datasourceNo(1).toString()); //достаем запрос родительской формы
            for (i = 1; i <= localQuery.queryFilterCount(); i++)
            {
                info(localQuery.queryFilter(i).toString()); //достаем пользовательские фильтры из родительской формы
                //if (localQuery.queryFilter(i).dataSource().name() == qbds.name())
                //    Query.addQueryFilter(qbds, localQuery.queryFilter(i).field()).value(localQuery.queryFilter(i).value());
            }
            
        }    
    }    
}

Последний раз редактировалось Ace of Database; 27.03.2017 в 14:27.