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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2005, 12:28   #1  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
Как бороться с ошибками при округлении
При сопоставлении проводок по подотчетным лицам можно придумать ситуацию, когда возникают ошибки округления и выражается это в возникновении лишних проводок по курсовой разнице.
Простой пример: основная валюта - RUR, вторичная - USD, курс 29 р за бакс. дата проводок одна и таже.
1. авансовый отчет на 100 USD
2. платеж из кассы на 2000 р.
3. платеж из кассы на 900 р.
При сопоставлении возникает проводка по курсовой разнице на 13 копеек, что не есть правильно.

в методе SettleEmployee класса EmplSettle_RU вместо решения проблемы вставлен вот такой веселый кусочек кода (SP3 CU1):
PHP код:
        // PTR 4204 Small coins, for future release
        /*
        if (debitCurDiff || creditCurDiff)
        {
        }
        */ 
где переменные debitCurDiff и creditCurDiff содержат ошибки округления...

ВОПРОС: Как правильно поступить с этими цифирками? Кидать на системные счета? Какие ещё могут быть варианты?
__________________
С уважением,
Tony Green
Старый 31.05.2005, 15:14   #2  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Посмотрите как это сделано в сопоставлении по клиентам

CustVendSettle и CustVendSettle_Cust

Это сопоставление как должно быть и у персонала.
Счас в персонале жалкий сублимат, который что-то "автосопоставляет".

Оно в принципе и не нужно - можно написать курсовые разницы по персоналу отдельно.

Но если бухгалтера все же настаивают, чтоб в АО были суммы имено выданные под этот отчет, а не общая сумма долгов или вообще левые документы "за 2001год", то пишите сопоставление сами.

Для этого нужно просто откопировать весь набор таблиц и классов Cust, заменив его на Empl - если утрировано, то все

Данный (самописный) блок сопоставления я в свое время имел на ах2.5, но переносить его на ах30 не стали - повелись на "новое". А потом убедили бухов, что АО и без списка доков хорош.... и сопоставление по персоналу вообще не используется (пока... тфу-тфу-тфу...)

А потом появились АО по разным кассам... и "родное " сопостовление вообще не рассматривается, тк все одно переделывать полностью, если припрет.

ЗЫ Кусок кода особо порадовал - спасибо!
Старый 31.05.2005, 22:14   #3  
Tony Green is offline
Tony Green
Участник
Аватар для Tony Green
 
184 / 25 (1) +++
Регистрация: 08.10.2002
Адрес: Москва
Сопоставление в расчетах с клиентами и поставщиками действительно монстровое
Этот механизм не очень хочется брать как основу для подражания, т.к. во-первых: он достаточно нетривиален и здоров по размерам, а во-вторых: часть этого механизма уже явно устарела и её можно не дублировать за ненадобностью - это значит, что тупым копированием дело не обойдется со всеми вытекющими... Я говорю о механизме формирования проводок по курсовым разницам, который использует такие понятия как реализованные и нереализованные курсовые разницы – их сейчас, насколько я знаю, уже достаточно давно не используют.
В подотчетниках все на порядок проще. Я попробую обойтись легкой модификацией класса EmplSettle_RU (метод SettleEmployee). На мой взгляд, этот способ выглядит гораздо менее трудоемким решением, чем дублирование структур таблиц модулей «Расчеты с клиентами/поставщиками» с соответствующими изменениями в классах...

PS: Также приложу максимум усилий, чтобы обойтись без формирования проводок на системные счета с суммами ошибок округления... от лукавого это все
__________________
С уважением,
Tony Green
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ALEG: Почему система сопротивляется изменениям и как с этим бороться Blog bot DAX Blogs 2 17.11.2006 10:17
Не работает перенос строк с ошибками в новый журнал Bega DAX: Функционал 4 19.09.2005 11:46
Каскадное удаление. Как с ним бороться? r25 DAX: Программирование 3 25.02.2005 10:28
Слетают методы на полях в датасорсе... как бороться? soin DAX: Программирование 6 17.01.2005 15:53
Как бороться с пустыми паллетами? Wobbler DAX: Функционал 2 19.11.2004 11:56
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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