Показать сообщение отдельно
Старый 10.08.2009, 13:47   #19  
Alexx7 is offline
Alexx7
Сам.AX
Аватар для Alexx7
Самостоятельные клиенты AX
1C
 
305 / 28 (1) +++
Регистрация: 22.07.2009
Вобщем сделал. Но всё равно подругому получилось. Пришлось лукапы в форме переопределять. Вот как сдесь http://erpkb.com/Axapta/lookup
В итоге вот такой код.
X++:
    str 5                   usrId;
    sysCompanyUserInfo      emplCompany;// Таблица пользователей
    emplTable               emplTbl;// Сотрудники
    str 15                  deportCode;// Подразделения
    rpayCalendDeport        calendarDep;
    str                     strRange;
    SysTableLookup          sysTableLookup       = SysTableLookup::newParameters(tableNum(RPayCalendarTable), this);
    Query                   query                = new Query();
    QueryBuildDatasource    queryBuildDatasource = query.addDataSource(tableNum(RPayCalendarTable));
    ;
    //super();
    sysTableLookup.addLookupfield(fieldNum(RPayCalendarTable, calendarId));
    sysTableLookup.addLookupfield(fieldNum(RPayCalendarTable, name));

    // Кусман кода из FormInit'a RPayCalendarTable

    usrId = curUserId();

    while select emplCompany
        where emplCompany.UserId == curUserId()
        {

        select emplTbl
            where emplTbl.EmplId == emplCompany.EmplId;
            deportCode = emplTbl.PayHRMOrganizationId_RU;

        }
        while select calendarDep
            where calendarDep.PayHRMOrganizationId_RU == deportCode

        {
            strRange = strRange+','+calendarDep.RpayCalendatId;
        }

    queryBuildDatasource.addRange(fieldNum(RPayCalendarTable, calendarId)).value(strRange);

    sysTableLookup.parmQuery(query);

    sysTableLookup.performFormLookup();
Если можно оптимизировать подскажите буду благодарен.