Показать сообщение отдельно
Старый 27.03.2008, 00:38   #1  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Поле "Оплатить до" в строке общего журнала
Добрый день,

Хотелось бы обсудить с вами по следующей теме

В общем журнале, в строке (форме LedgerJournalTrans) есть поле "Оплатить до" - (Due), которое инициализируется в случае, если в качестве типа счета выбираем Клиент или Поставщик, и для этого клиента или поставщика выбираем конкретный договор, значение этого поля будет равняться значению аналогичного поля в справочнике договоров, либо равняться "сегодня" если в справочнике договоров ничего не определено.

Вот кусочек кода из класса LedgerJournalEngine, который всю эту работу выполняет

X++:
void initFromRContractTable_RU(LedgerJournalTrans ledgerJournalTrans)
{
    RContractTable rContractTable;
    ;
    rContractTable = this.findRContractTable_RU(ledgerJournalTrans);
    if (! rContractTable)
        return;

    if (rContractTable.ContractPaymCode && ledgerJournalTrans.Invoice) // PaymTermId
    {
        this.findPayment(rContractTable.ContractPaymCode);
        ledgerJournalTrans.Due  = payment.due(ledgerJournalTrans.TransDate, rContractTable.RContractPaymDayId);
    }
    else
    {
        ledgerJournalTrans.Due = ledgerJournalTrans.TransDate;
    }
Вот у меня возникают несколько вопросов :
  1. Почему это поле есть только в одной стороне, т.е если мы выбираем клиента или поставщика не в Счет, а в Корр.счет, то ничего связанного с этим не будет происходить. Вообще нет аналогичного поля для корр.счета.
  2. По какой логике это поле должно принимать значение, которое определяется в справочнике договоров. Представим, что если в общем журнале хотим регистрировать оплаты от клиентов, тогда на мой взгляд целесообразнее если это поле всегда принимает значение СЕГОДНЯ. Потому что это значение после разноски будет в таблице CustTrans (VendTrans) и CustTransOpen (VendTransOpen). В этих таблицах, смысл этого поля, по-моему, только для накладной. Для оплаты оно не носит никакой дополнительной информации.
  3. Вообще для чего предназначено это поле в таблице LedgerJournalTrans ?
Я по своей работе собираюсь поменять код чтобы значение этого поля в общем журнале всегда принимает значение СЕГОДНЯ. Но возможно, какие - нибудь идеи по функционалам не учитываю или не знаю ?