Показать сообщение отдельно
Старый 27.05.2014, 18:01   #22  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от glibs Посмотреть сообщение
Можно, только работать потом не будет.

Как минимум отчеты по номенклатуре по остаткам и стоимости запасов на дату "поведет".
Спасибо.
А вы не могли бы подробнее раскрыть тему ?

Покопал классы
InventSumDate
InventSumDateDim
InventSumDatePhysical
InventSumDatePhysicalDim
InventSumDateValue
InventSumDateValueReport
InventSumDateValueReportDim

не нашел нигде зависимости от наличия закрытых Inventsum.
Исключение - метод
\Classes\InventSumDateValueReportDim\newParameters
X++:
server static InventSumDateValueReportDim newParameters(
    TransDate       _perDate,
    ItemId          _itemId,
    InventDim       _inventDimCriteria,
    InventDimParm   _inventDimParm

    )
{
    InventSumDateValueReportDim inventSumDateValueReportDim = new InventSumDateValueReportDim();
    InventDimParm           inventDimParmGroupBy;
    Query                   query;
    QueryRun                queryRun;
    InventDim               inventDim;
    ;

    inventSumDateValueReportDim.parmItemId(_itemId);
    inventSumDateValueReportDim.parmPerDate(_perDate);
    inventSumDateValueReportDim.parmInventDim(_inventDimCriteria);
    inventSumDateValueReportDim.parmInventDimParm(_inventDimParm);

    if (InventTable::find(_itemId).ItemDimCostPrice == NoYes::Yes)
    {
        inventDimParmGroupBy = _inventDimParm.data();
        inventDimParmGroupBy.setActiveItemDim(InventTable::find(_itemId).DimGroupId);
        inventSumDateValueReportDim.parmInventDimParm(inventDimParmGroupBy);

        query = InventSum::newQuery(null,_itemId,_inventDimCriteria,_inventDimParm,inventDimParmGroupBy);
        query.dataSourceTable(tablenum(InventSum)).findRange(fieldnum(InventSum,Closed)).value('');

        queryRun = new QueryRun(query);
        while (queryRun.next())
        {
            inventDim = queryRun.get(tablenum(InventDim));
            inventSumDateValueReportDim.parmInventDim(inventDim);
            inventSumDateValueReportDim.init();
        }

        inventSumDateValueReportDim.parmInventDimParm(_inventDimParm);
    }
    else
    {
    inventSumDateValueReportDim.init();
    }

    return inventSumDateValueReportDim;
}
Не подскажете зачем было делать цикл
X++:
        while (queryRun.next())
        {
            inventDim = queryRun.get(tablenum(InventDim));
            inventSumDateValueReportDim.parmInventDim(inventDim);
            inventSumDateValueReportDim.init();
        }
для номенклатурных аналитик ?