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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.01.2010, 15:25   #1  
zhan is offline
zhan
Участник
 
19 / 54 (2) ++++
Регистрация: 17.09.2008
Адрес: Москва
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;
          }
т.е. заполняется аналитика с номером 3("Цель"), не зависимо от настроек, поскольку номер аналитики прописан в макросе, а не берется из настроек!
Если внести следующие исправления(это можно сделать более красиво, 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  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
М-да. Весело.
Но я бы написал просто:
#define.Value3(RTax25Parameters::find().DimensionCode+1)
Да и макрос лучше переименовать типа ValueRTax25 или что-то в этом роде.
__________________
Михаил Андреев
https://www.amand.ru
Старый 27.01.2010, 15:58   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Только вот:
Цитата:
RTax25Parameters::find().DimensionCode + 1
писать нельзя. Коды перечисления могут идти не подряд, а мастер создания финансовой аналитики по умолчанию предлагает для новых аналитик значения от 100.
Поэтому безопаснее:
Цитата:
Dimensions::code2ArrayIdx(RTax25Parameters::find().DimensionCode);
За это сообщение автора поблагодарили: zhan (1).
Старый 27.01.2010, 16:05   #4  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
Только вот:

писать нельзя. Коды перечисления могут идти не подряд, а мастер создания финансовой аналитики по умолчанию предлагает для новых аналитик значения от 100.
Поэтому безопаснее:
Точно. Когда написал, подумал, что что-то там ещё не так и этот "+1" меня смущает
__________________
Михаил Андреев
https://www.amand.ru
Старый 27.01.2010, 17:13   #5  
zhan is offline
zhan
Участник
 
19 / 54 (2) ++++
Регистрация: 17.09.2008
Адрес: Москва
Коллеги, спасибо за комментарии.
Подход по вычислению номера аналитики через
Цитата:
RTax25Parameters::find().DimensionCode+1
используется в линейке классов RTax25* часто.
Например в классах: RTax25ExchAdjDimension, RTax25DebtCreditAmortisation, RTax25DebtDebitAmortisation и т.д.
Я собственно посмотрев как вычисляется номер аналитики и предложил подобный вариант решения.

Печально, если налоговый учет развалиться в случае:
Цитата:
Сообщение от Raven Melancholic
Коды перечисления могут идти не подряд, а мастер создания финансовой аналитики по умолчанию предлагает для новых аналитик значения от 100.
Теги
баг, налоговый учет, ax2009

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
msdynamicsax: DAX 2009 and MS SQL 2008 Blog bot DAX Blogs 0 09.08.2008 14:05
dax-lessons: Generate XML Documentation Files for a project - DAX 2009 Blog bot DAX Blogs 0 08.08.2008 19:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
msdynamicsax: Enterprise Portal development in DAX 2009 Blog bot DAX Blogs 0 18.04.2008 07:06
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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