Показать сообщение отдельно
Старый 16.08.2011, 20:23   #11  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от fed Посмотреть сообщение
Если закрытие мелкими кусочками, которое mazzy предлогает, не поможет, можно сделать похаканную версию закрытия (для первого закрытия конечно), которое для любой номенклатуры использует метод, который 4ка штатно использует только для услуг. Один раз закрыть склад этой штукой и больше никогда не юзать..
Спасибо, Денис!

В первом случае я так понимаю будет достаточно установить isServiceItem = true для \Classes\InventCostItemDim\run. Можно ли будет при таком хаке закрыть склад за выходные за все 7 лет? И после этого как минимум уйдет неделя что бы перейти на 2009 версию и еще неделя включить мультисайт и начать использовать стандартную себестоимость. Но насколько помню, нам рекомендовали закрыть склад полностью, тут возникает вопрос можно ли будет закрыть те 3 недели уже в 2009 версии без изменений кода?

X++:
isServiceItem       = this.inventTable(inventCostList.ItemId).inventItemType().isServiceItem();
..................       
            else
            {
                this.updateSettleRefItem(inventCostList.ItemId);

                if (! isServiceItem)
                {
                    mapLoopTrans    = new Map(Types::Integer,Types::Record);
                    mapLoopDim      = new Map(Types::Integer,Types::Record);
                    loopX           = 0;

                    queryRun = inventCostHelp.initQueryRunTrans(this.inventTable(inventCostList.ItemId));
                    while (queryRun.next())
                    {
                        loopX++;
                        mapLoopTrans.insert(loopX,queryRun.get(tablenum(InventTrans)));
                        mapLoopDim.insert(loopX,queryRun.get(tablenum(InventDim)));
                    }

                    loopMax = loopX;
                    loopX   = 0;
                    while (loopX < loopMax)
                    {
                        loopX++;

                        this.updateItemDim(mapLoopTrans.lookup(loopX),mapLoopDim.lookup(loopX));
                    }
                }
            }

            if (inventClosing.AdjustmentType == InventAdjustmentType::Closing && isServiceItem)
            {
               this.updateServiceItemTrans(inventCostList.ItemId);
            }
Цитата:
Сообщение от fed Посмотреть сообщение
Кроме того - с учетом этого вариант тупо пометить проводки как закрытые, програм-манагер по себестоимости считает вполне легальным и верным для версии 2009.Так что, возможно, предложение ena_ax - оно вполне корректно...
Второй вариант мне не особо понятен. Каковы должны быть критерии выборки записей для обновления, для закрытия всех проводок?

X++:
    InventTrans                 inventTrans;
;
    update_recordset inventTrans
        setting ValueOpen = InventTransOpen::Yes, QtySettled = inventTrans.Qty;
ПМ ваш или МС так считает? Мы хотели попросить партнеров уточнить у МС. Т.к. консультант нам ничего такого не посоветовал. Сказал закрывать склад стандартными средствами и желательно закрыть в версии 4 все что накопилось в 3ке, что бы по его мнению минимизировать возможно ошибок.
На закрытие 7 летнего периода уйдет уйма времени, и это сдвигает планы по переходу на новую версию и стандартную себестоимость.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.