27.01.2010, 15:25 | #1 |
Участник
|
DAX 2009. Создание журналов ГК по налоговым регистрам.
Это наверно будет интересно тем кто ведет налоговый учет.
Dax 2009 Application 5.0.1500.1313 При создании журнала ГК по налогу на прибыль выяснилась интересная вещь. Если в параметрах Главной книги на закладке «Налог на прибыль» выставить параметр «Налоговая аналитика» отличное значение от значения «Цель».(например "Центр затрат") и параметр "Свертка" - "По коду дохода/расхода" или "По документу". При этих настройках сформировать журналы ГК по налоговым регистрам, то в строках журнала будет проставляться аналитика "Цель". (а должна "Центр затрат"). Если посмотреть в класс LedgerJournalCreate_Tax25_RU метод createTrans, то можно увидеть следующие строки : Перед объявлением метода X++: ............................. #define.Value3(3) ............................ X++: switch (postingRoll) { case RTax25PostingRoll::Source: ledgerJournalTrans.Dimension[#Value3] = RTax25ProfitTable::find(conpeek(mLoop.value(), #Value3)).DimensionNum; ledgerJournalTrans.Txt += "@GEE16624" + #Blank + conpeek(mLoop.value(), #Value4); break; case RTax25PostingRoll::ExpenseAndIncome: ledgerJournalTrans.Dimension[#Value3] = RTax25ProfitTable::find(mLoop.key()).DimensionNum; ledgerJournalTrans.Txt += "@GEE16625" + #Blank + mLoop.key(); break; case RTax25PostingRoll::Tax: ledgerJournalTrans.Txt += "@GEE16626" + #Blank + ledgerJournalTrans.TaxCode; break; case RTax25PostingRoll::Total: ledgerJournalTrans.Txt += "@GEE16637"; break; } Если внести следующие исправления(это можно сделать более красиво, MS виднее): X++: .............................. int dimIdx; .............................. dimIdx = RTax25Parameters::find().DimensionCode+1; .............................. switch (postingRoll) { case RTax25PostingRoll::Source: ledgerJournalTrans.Dimension[dimIdx ] = RTax25ProfitTable::find(conpeek(mLoop.value(), #Value3)).DimensionNum; ledgerJournalTrans.Txt += "@GEE16624" + #Blank + conpeek(mLoop.value(), #Value4); break; case RTax25PostingRoll::ExpenseAndIncome: ledgerJournalTrans.Dimension[dimIdx ] = RTax25ProfitTable::find(mLoop.key()).DimensionNum; ledgerJournalTrans.Txt += "@GEE16625" + #Blank + mLoop.key(); break; case RTax25PostingRoll::Tax: ledgerJournalTrans.Txt += "@GEE16626" + #Blank + ledgerJournalTrans.TaxCode; break; case RTax25PostingRoll::Total: ledgerJournalTrans.Txt += "@GEE16637"; break; } |
|
|
За это сообщение автора поблагодарили: belugin (3). |
27.01.2010, 15:41 | #2 |
Участник
|
М-да. Весело.
Но я бы написал просто: #define.Value3(RTax25Parameters::find().DimensionCode+1) Да и макрос лучше переименовать типа ValueRTax25 или что-то в этом роде. |
|
27.01.2010, 15:58 | #3 |
Участник
|
Только вот:
Цитата:
RTax25Parameters::find().DimensionCode + 1
Поэтому безопаснее: Цитата:
Dimensions::code2ArrayIdx(RTax25Parameters::find().DimensionCode);
|
|
|
За это сообщение автора поблагодарили: zhan (1). |
27.01.2010, 16:05 | #4 |
Участник
|
Точно. Когда написал, подумал, что что-то там ещё не так и этот "+1" меня смущает
|
|
27.01.2010, 17:13 | #5 |
Участник
|
Коллеги, спасибо за комментарии.
Подход по вычислению номера аналитики через Цитата:
RTax25Parameters::find().DimensionCode+1
Например в классах: RTax25ExchAdjDimension, RTax25DebtCreditAmortisation, RTax25DebtDebitAmortisation и т.д. Я собственно посмотрев как вычисляется номер аналитики и предложил подобный вариант решения. Печально, если налоговый учет развалиться в случае: Цитата:
Сообщение от Raven Melancholic
Коды перечисления могут идти не подряд, а мастер создания финансовой аналитики по умолчанию предлагает для новых аналитик значения от 100. |
|
Теги |
баг, налоговый учет, ax2009 |
|
|