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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2007, 12:03   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Тогда приведите ваш код формирования проводок (естественно, опустив несущественные детали).
Старый 17.04.2007, 12:12   #2  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Код:
protected void postLedgerTrans(kasRRepRepairLine _repairLine)
{
    LedgerVoucher               ledgerVoucher;
    LedgerVoucherObject         ledgerVoucherObject;
    LedgerVoucherTransObject    ledgerVoucherTransObject;
    TransactionTxt              transactionTxt;
    LedgerBondClient_RU     ledgerBondClient;
    NumberSeq               numberSeq;
    Voucher                 voucherId;
    kasRRepEquipmentTable      equipmentTable;
    kasRRepEquipmentGroup      equipmentGroup;
    TransDate               transDate   = _repairLine.FinishDate;
    AmountMST               amount      = _repairLine.Rate * _repairLine.duration();
    ;
    numberSeq = NumberSeq::newGetNum(ProdParameters::numRefProdJournalVoucherId());
    voucherId = numberSeq.num();
    transactionTxt  = new TransactionTxt();
    transactionTxt.setType(LedgerTransTxt::None);
    transactionTxt.setDate(transDate);
    transactionTxt.setVoucher(voucherId);
    transactionTxt.txt(_repairLine.Note);
    ledgerVoucherObject = LedgerVoucherObject::newVoucher(voucherId,
                                                            transDate,
                                                            SysModule::System,
                                                            LedgerTransType::None,
                                                            NoYes::No);
    ledgerVoucher = LedgerVoucher::newLedgerPost(DetailSummary::Summary, SysModule::System, voucherId);
    ledgerVoucher.parmVoucherSeriesCode(numberSeq.parmNumberSequenceCode());
    ledgerVoucher.AddVoucher(ledgerVoucherObject);
    ledgerBondClient = ledgerVoucher.findLedgerVoucherObject().ledgerBondClient_RU();
    select firstonly equipmentTable
        index hint EquipmentIdx
    join equipmentGroup
        index hint EquipmentGroupIDX
        where   equipmentTable.EquipmentID      == _repairLine.EquipmentID &&
                equipmentGroup.EquipmentGroupID == equipmentTable.EquipmentGroupID;
    if (ledgerBondClient)
    {
        ledgerBondClient.addNewLogObject();
    }
    ledgerVoucherTransObject =
        LedgerVoucherTransObject::newCreateTrans(ledgerVoucher.findLedgerVoucherObject(),
                                                 LedgerPostingType::Allocation,
                                                 equipmentGroup.AccountNum,
                                                 Dimensions::emptyDimension(),
                                                 CompanyInfo::standardCurrency(),
                                                 amount,
                                                 _repairLine.RecId);
    ledgerVoucherTransObject.parmTransTxt(transactionTxt.txt());
    ledgerVoucher.addTrans(ledgerVoucherTransObject);
    ledgerVoucherTransObject =
        LedgerVoucherTransObject::newCreateTrans(ledgerVoucher.findLedgerVoucherObject(),
                                                 LedgerPostingType::Allocation,
                                                 kasRRepRepairType::find(_repairLine.RepairTypeID).AccountNum,
                                                 Dimensions::emptyDimension(),
                                                 CompanyInfo::standardCurrency(),
                                                 -(amount),
                                                 _repairLine.RecId);
    ledgerVoucherTransObject.parmTransTxt(transactionTxt.txt());
    ledgerVoucher.addTrans(ledgerVoucherTransObject);
    if (ledgerBondClient)
    {
        if (ledgerBondClient.currentLogLength() == 2)
            ledgerBondClient.bondLastVRef2CurrentLog();
        ledgerBondClient.removeCurrentLogObject();
    }
    ledgerVoucher.end();
}
Старый 17.04.2007, 12:24   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
На первый взгляд - код рабочий (если отвлечься от некоторых недочетов - например, отсутствие записи в лог). А сумма у вас случайно не нулевая? Или может в вышестоящем коде есть отмена транзакции?

Последний раз редактировалось Raven Melancholic; 17.04.2007 в 12:30.
Старый 17.04.2007, 12:30   #4  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
О какой сумме речь? (amount конечно не нулевая)
транзакции вообще не начинал в своем модуле

Последний раз редактировалось Андрей К.; 17.04.2007 в 12:37.
Старый 17.04.2007, 12:44   #5  
Андрей К. is offline
Андрей К.
Постигающий
 
152 / 10 (1) +
Регистрация: 09.04.2007
Стоило указать у одного из TransObject'a
LedgerPostingType::Bank
и все стало разноситься
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Немного об архитектуре разноски в ГК и проблеме корреспонденции счетов mazzy DAX: База знаний и проекты 29 02.05.2019 17:56
Просьба тем кто с Казахстана по разноске ГК Kuat DAX: Администрирование 4 30.07.2008 07:45
При повторном вызове linkActive проваливается в validateWrite(Строки общего журнала ГК) Lemming DAX: Программирование 6 25.10.2007 13:50
Ошибка (?) в периодических журналах ГК Anais DAX: Функционал 1 10.06.2005 13:20
sp5. Возможность получить Корр.счет ГК попроводкам клиента/поставщика без извращений studentLPC DAX: Функционал 20 27.05.2003 13:55

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

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

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