AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.11.2007, 16:52   #1  
MNG is offline
MNG
Участник
 
78 / 19 (1) ++
Регистрация: 20.10.2005
Автоматическое создание РБП
Такой вопрос...
Настроены счетчики для автоматического создания РБП с помощью периодической операции. В первый месяц использования операция отработала. Создался объект РБП. Во втором месяце уже ничего не получается. РБП не создается, хотя все данные для этого есть (например деьетовый оборот по бух.счету, который задействован в настройке счетчика). Создание производится только в том случае, если в функции "Расчет РБП" поставить галочку в поле "Переписать". Тогда в окне предварительного просмотра РБП создается и даже с учетом данных текущего месяца, но этому РБП присваивается код созданных РБП в прошлом месяце. То есть, действительно, система предлагает переписать имеющиеся объекты. Можно ли как -то настроить так, чтобы РБП создавалось и с учетом данных текущего месяца и с присвоением ему следующего по порядку кода РБП?
Спасибо...
Старый 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() как раз и генерит номер очередной!!!
Старый 13.11.2007, 15:36   #3  
MNG is offline
MNG
Участник
 
78 / 19 (1) ++
Регистрация: 20.10.2005
Кастомизации у нас нету. Номерная серия вроде нормально настроена, какие там могут быт особенности в настройке?
Строка, которую Вы приводите действительно генерит номер. Только есть один нюанс. После того, как сгенерировано хотя бы раз объект РБП этим способом, программа больше не заходит в этот код.

Вот это место:

deferralsTable = RdeferralsTable::findFromSource(transMap.lookup(#TableIdOffset).int(),
> transMap.lookup(#RecIdOffset).int(),
>
> transMap.lookup(#ProfitIdOffset).bStr());

Здесь как раз и производится поиск ранее созданных РБП таким автоматическим способом.

Просто не выполнятется условие if (! deferralsTable.RecId)

Старый 13.11.2007, 15:46   #4  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от MNG Посмотреть сообщение
Кастомизации у нас нету. Номерная серия вроде нормально настроена, какие там могут быт особенности в настройке?
Строка, которую Вы приводите действительно генерит номер. Только есть один нюанс. После того, как сгенерировано хотя бы раз объект РБП этим способом, программа больше не заходит в этот код.

Вот это место:

deferralsTable = RdeferralsTable::findFromSource(transMap.lookup(#TableIdOffset).int(),
> transMap.lookup(#RecIdOffset).int(),
>
> transMap.lookup(#ProfitIdOffset).bStr());

Здесь как раз и производится поиск ранее созданных РБП таким автоматическим способом.

Просто не выполнятется условие if (! deferralsTable.RecId)

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

Если у вас нет источника, т.е. группа полей "Источник создания расхода" у нового РБП у вас не проинициализированы, то тут конечно получается затык... Возможно если нельзя в качестве таблицы источника(поле Название таблицы) и RecId записи в этой таблице(поле ссылка) что-то указать реальное (тот же журнал ГК какой нить или еще чего) то может просто попробовать генерировать поле "ссылка" каким либо значением... как вариант ьуже номерную серию пркрутить...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Создание РБП, через периодические операции sparur DAX: Функционал 7 30.08.2007 19:44
Автоматическое формирование РБП Scut36 DAX: Функционал 4 31.07.2006 09:27
Автоматическое создание РБП с привязкой к документу ГК ArtBar DAX: Функционал 3 16.06.2006 10:31
Автоматическое формирование РБП rika DAX: Функционал 1 24.01.2006 20:20
Галочка "Автоматическое создание груза" в шаблоне отгрузки slava09 DAX: Функционал 14 12.10.2005 16:22

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:41.