01.11.2007, 16:52 | #1 |
Участник
|
Автоматическое создание РБП
Такой вопрос...
Настроены счетчики для автоматического создания РБП с помощью периодической операции. В первый месяц использования операция отработала. Создался объект РБП. Во втором месяце уже ничего не получается. РБП не создается, хотя все данные для этого есть (например деьетовый оборот по бух.счету, который задействован в настройке счетчика). Создание производится только в том случае, если в функции "Расчет РБП" поставить галочку в поле "Переписать". Тогда в окне предварительного просмотра РБП создается и даже с учетом данных текущего месяца, но этому РБП присваивается код созданных РБП в прошлом месяце. То есть, действительно, система предлагает переписать имеющиеся объекты. Можно ли как -то настроить так, чтобы РБП создавалось и с учетом данных текущего месяца и с присвоением ему следующего по порядку кода РБП? Спасибо... |
|
12.11.2007, 22:27 | #2 |
Участник
|
Недавно допиливал этот функционал!
стандартный достаточно сырой, есть кое-где недоработки. в нашем случае стояла задача создания РБП по данным регистра! В связи с чем были настроены счетчики на определенные регистры... Несмотря на адекватность настроек пришлось лезть в код и кое-чего править, по объему кода конечно немного получилось, но все равно доработка А вот касательно сбора данных по бух. счетам, насколько помню все было более менее нормально настроено! Очень странно, что у вас проблемма именно с кодом РБП, так как код генерируется по номерной серии!!! либо у Вас нет настроенной номерной серии в параметрах, либо она настроена не так, либо уже производилась кастомизация данного функционала!!! Непосредственно создание нового РБП ч/з переодическую операцию происходит в классе 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); .... } |
|
13.11.2007, 15:36 | #3 |
Участник
|
Кастомизации у нас нету. Номерная серия вроде нормально настроена, какие там могут быт особенности в настройке?
Строка, которую Вы приводите действительно генерит номер. Только есть один нюанс. После того, как сгенерировано хотя бы раз объект РБП этим способом, программа больше не заходит в этот код. Вот это место: deferralsTable = RdeferralsTable::findFromSource(transMap.lookup(#TableIdOffset).int(), > transMap.lookup(#RecIdOffset).int(), > > transMap.lookup(#ProfitIdOffset).bStr()); Здесь как раз и производится поиск ранее созданных РБП таким автоматическим способом. Просто не выполнятется условие if (! deferralsTable.RecId) |
|
13.11.2007, 15:46 | #4 |
Участник
|
Цитата:
Сообщение от MNG
Кастомизации у нас нету. Номерная серия вроде нормально настроена, какие там могут быт особенности в настройке?
Строка, которую Вы приводите действительно генерит номер. Только есть один нюанс. После того, как сгенерировано хотя бы раз объект РБП этим способом, программа больше не заходит в этот код. Вот это место: deferralsTable = RdeferralsTable::findFromSource(transMap.lookup(#TableIdOffset).int(), > transMap.lookup(#RecIdOffset).int(), > > transMap.lookup(#ProfitIdOffset).bStr()); Здесь как раз и производится поиск ранее созданных РБП таким автоматическим способом. Просто не выполнятется условие if (! deferralsTable.RecId) В нашем случае это был журнал налоговых регистров, точнее даже строка журнала! В итоге ежемесячно мы имеем новый источник для РБП и код выполнялся с завидной периодичностью Если у вас нет источника, т.е. группа полей "Источник создания расхода" у нового РБП у вас не проинициализированы, то тут конечно получается затык... Возможно если нельзя в качестве таблицы источника(поле Название таблицы) и RecId записи в этой таблице(поле ссылка) что-то указать реальное (тот же журнал ГК какой нить или еще чего) то может просто попробовать генерировать поле "ссылка" каким либо значением... как вариант ьуже номерную серию пркрутить... |
|