Показать сообщение отдельно
Старый 12.11.2007, 22:27   #2  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Недавно допиливал этот функционал!

стандартный достаточно сырой, есть кое-где недоработки.
в нашем случае стояла задача создания РБП по данным регистра! В связи с чем были настроены счетчики на определенные регистры... Несмотря на адекватность настроек пришлось лезть в код и кое-чего править, по объему кода конечно немного получилось, но все равно доработка
А вот касательно сбора данных по бух. счетам, насколько помню все было более менее нормально настроено!

Очень странно, что у вас проблемма именно с кодом РБП, так как код генерируется по номерной серии!!! либо у Вас нет настроенной номерной серии в параметрах, либо она настроена не так, либо уже производилась кастомизация данного функционала!!!

Непосредственно создание нового РБП ч/з переодическую операцию происходит в классе RTax25StdChannel_Deferral, а еще точнее в методе этого класса send():

X++:
void send(RTax25StdExpression _expression)
{
    RDeferralsGroup     deferralsGroup;
    boolean             loop;
    RDeferralsTable     deferralsTable;
    RDeferralsBook      deferralsBook;

    if (! transMap.exists(RTax25StdChannelOutputMode::Output))
        throw error("@DIS9618");

    deferralsTable = RdeferralsTable::findFromSource(transMap.lookup(#TableIdOffset).int(),
                                                     transMap.lookup(#RecIdOffset).int(),
                                                     transMap.lookup(#ProfitIdOffset).bStr());
    if (! deferralsTable.RecId)
    {
        deferralsTable.initValue();
        deferralsTable.DeferralsId      = this.rDeferralsId();
        ....
    }
    this.insertTable(deferralsTable);
    ....
}
а строка this.rDeferralsId() как раз и генерит номер очередной!!!