Показать сообщение отдельно
Старый 01.11.2017, 14:00   #2  
DenisS is offline
DenisS
Участник
 
65 / 24 (1) +++
Регистрация: 01.09.2003
На здоровье:
X++:
static void tks_repPickingRoute_changeDocPackage_log(Args _args)
{
    FromDate            fromDate    = 01\01\2015;
    ToDate              toDate      = 31\12\2018;

    FromDateTime        fromDateTime    = DateTimeUtil::newDateTime(fromDate  , str2time('0:00'));
    ToDateTime          toDateTime      = DateTimeUtil::newDateTime(toDate    , str2time('23:59:59'));

//    UserId              userId      = "rugry";
    SysDataBaseLog      dbLog;

    List                list;
    ListEnumerator      li;
    container           c;

    FieldId             fieldId;
    AnyType             oldValue;
    AnyType             newValue;
    WMSPickingRoute     pickingRoute;
    ;

    info(strfmt("%1#%2#%3#%4#%5#%6#%7",
        "Заказ",
        "Отгрузочная накладная",
        "Автор",
        "Изменено на",
        "Изменено с",
        "Автор модификации",
        "Дата модификации"));

    while select dbLog
        order by createdDateTime
        where dbLog.table       == tablenum(WMSPickingRoute)
           && dbLog.LogType     == DatabaseLogType::Update
//           && dbLog.createdBy   == userId
           && (dbLog.createdDateTime >= fromDateTime)
           && (dbLog.createdDateTime <= toDateTime)
    join pickingRoute
        where pickingRoute.RecId  == dbLog.LogRecId
    {
        list    = dbLog.getDataAslist();
        li      = list.getEnumerator();
        while (li.moveNext())
        {
            c   = li.current();

            fieldId = fieldExt2Id(conpeek(c,1));
            if (fieldId == fieldnum(WMSPickingRoute, WMDDocPackageId))
            {
                [fieldId, newValue, oldValue] = c;
                if (newValue != oldValue)
                {
                    info(strfmt("%1#%2#%3#%4#%5#%6#%7",
                        pickingRoute.transRefId,
                        pickingRoute.pickingRouteID,
                        UserInfoHelp::userName(pickingRoute.CreatedBy),
                        newValue,
                        oldValue,
                        UserInfoHelp::userName(dbLog.CreatedBy),
                        DateTimeUtil::date(DateTimeUtil::applyTimeZoneOffset(dbLog.createdDateTime, DateTimeUtil::getUserPreferredTimeZone()))));
                }
            }
        }
    }
}
За это сообщение автора поблагодарили: S.Kuskov (2), Ace of Database (5), Lemming (5).