Показать сообщение отдельно
Старый 16.03.2005, 15:30   #1  
Ганибалл is offline
Ганибалл
Участник
 
8 / 10 (1) +
Регистрация: 16.03.2005
Адрес: Карфаген
? Сопоставление приходных кассовых ордеров и накладных от клиентов.
Axapta 3.0 без SP
Денежные средства – Журналы – Журнал ордеров – Строки
появляется форма LedgerJournalTransRCash
Тип журнала: Касса (RCash)
Строки журнала хранятся в таблице LedgerJournalTrans.

В форме LedgerJournalTransRCash недоступна команда Функции – Сопоставление.

Я сделал доступным этот пункт меню,
по нему, вызвал форму CustOpenTrans
(по аналогии с формами, где сопоставление работает),
заставил эту форму показать накладные,
выписанные клиенту, код которого хранится в поле OffsetAccount (корр. счет)
таблицы LedgerJournalTrans.
После закрытия формы CustOpenTrans класс LedgerJournalEngine делает свое грязное дело стандартно,
за исключением смены знака сопоставленной суммы, которую я вставил в метод findSettledAmount
PHP код:
       ...
     if (
_ledgerJournalTrans.AccountType == LedgerJournalACType::RCash)
     {
        
specAmount=-specAmount;
     }
    ... 
И все бы хорошо, только что-то нехорошо.

В строке таблицы LedgerJournalTrans имеем
AccountType = Касса,
OffsetAccountType = Клиент,
SettleVoucher = Помеченные проводки.

При проверке журнала подается сообщение:
Цитата:
Проводки для сопоставления были выбраны, не смотря на выбор “тип сопоставления: нет“ для клиента такого-то, документ ГК.

Думаю: ну как же “тип сопоставления: нет”, когда SettleVoucher = Помеченные проводки. Посмотрел отладчиком, класс LedgerJournalCheckPost метод checkJournal переколбашивает мою строчку из LedgerJournalTrans хитрым образом с помощью следующего кода:

PHP код:
        while (ledgerJournalTrans.accountNum)
        {
            
ledgerJournalTransUpdate LedgerJournalTransUpdate::construct(ledgerJournalTranspostingOffsetTrans);
            
ok ledgerJournalTransUpdate.ledgerVoucherCheck(ledgerJournalTransledgerVoucher) && ok;
            
ledgerJournalTrans this.ledgerJournalTransOffset(ledgerJournalTrans);
        } 
В результате Account и Offset меняются местами и SettleVoucher = нет, что меня сильно огорчает.
Кто-нибудь, просвятите меня, пожалуйста, в отношении логики работы класса LedgerJournalCheckPost.
А главное, подскажите как грамотно сопоставлять кассовые ордера и накладные в случае AccountType = Касса (в таблице LedgerJournalTrans).
Спасибо