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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2013, 10:22   #1  
matew is offline
matew
Участник
 
37 / 10 (1) +
Регистрация: 10.07.2006
Адрес: Москва
Поиск проводки ГК по сумме с корреспонденцией
MS DAx 2009, KernelVersion: 5.0.1500.6491
MS SQL Server 2008 R2

Есть задача: найти проводку с корреспондирующей проводкой, по определенным условиям.
а) Запрос такой:

X++:
LedgerTrans             ledgerTrans, ledgerTransCorr;
AmountCur               amountCur = 36809351.98;

select ledgerTrans
    where ledgerTrans.Voucher    == "ОСЖ002243"
        && ledgerTrans.TransDate  == 30\09\2011
        && ledgerTrans.AmountCur == amountCur
        && (ledgerTrans.AccountNum == "41.10159")
    exists join ledgerTransCorr
          where ledgerTransCorr.BondBatch_RU      == ledgerTrans.BondBatch_RU
              && ledgerTransCorr.BondBatchTrans_RU == ledgerTrans.BondBatchTrans_RU
              && ledgerTransCorr.Crediting         != ledgerTrans.Crediting
              && (ledgerTransCorr.AccountNum == "00.010");
Запрос проводку не находит.

б) Если выполнить запрос без поиска корреспонденции:
X++:
select ledgerTrans
    where ledgerTrans.Voucher    == "ОСЖ002243"
               && ledgerTrans.TransDate  == 30\09\2011
               && ledgerTrans.AmountCur == amountCur
               && (ledgerTrans.AccountNum == "41.10159");
Этот запрос находит проводку X.

в) Если выполнить запрос без жесткого условия по сумме:

X++:
select ledgerTrans
      where ledgerTrans.Voucher    == "ОСЖ002243"
          && ledgerTrans.TransDate  == 30\09\2011
          && ledgerTrans.AmountCur >=  amountCur - 0.0001
          && ledgerTrans.AmountCur <=  amountCur + 0.0001
          //&& ledgerTrans.AmountCur == amountCur
          && (ledgerTrans.AccountNum == "41.10159")
      exists join ledgerTransCorr
            where ledgerTransCorr.BondBatch_RU      == ledgerTrans.BondBatch_RU
                && ledgerTransCorr.BondBatchTrans_RU == ledgerTrans.BondBatchTrans_RU
                && ledgerTransCorr.Crediting         != ledgerTrans.Crediting
                && (ledgerTransCorr.AccountNum == "00.010")
                   ;
Этот запрос находит ту же самую проводку Х, что и в запросе б). То есть на самом деле есть 2 проводки по условиям запроса а). Сумму в БД проверял: 36809351.980000000000.

Получается система при запросе с 1 таблицей и с 2-мя по разному сравнивает суммы.
В чем может быть дело? У кого-нибудь есть какие-то соображения?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Заказы на перемещения и проводки в ГК в DAX2009 Starling DAX: Функционал 16 10.06.2009 11:43
По каким счетам формируются проводки в ГК при обработке накладной? matew DAX: Программирование 1 12.10.2007 13:30
По каким счетам формируются проводки в ГК при обработке накладной? matew DAX: Функционал 5 11.10.2007 17:50
Знак в форме ГК/Бухгалтерские проводки chel DAX: Функционал 7 11.03.2005 04:28
Проводки в ГК по производственному заказу xan DAX: Функционал 0 26.03.2003 14:37

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:54.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.