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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.10.2012, 12:30   #1  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Цитата:
Сообщение от Sada Посмотреть сообщение
мало инфы. Вы там руками чтоли создание проводок программируете?
Да, все руками
Такая задача.
Старый 01.10.2012, 12:33   #2  
rDenis2 is offline
rDenis2
Участник
 
62 / 36 (2) +++
Регистрация: 13.05.2010
http://www.ms-dynamics.ru/_old/index...ynamics-ax-arc
За это сообщение автора поблагодарили: BeLFO (1), perestoronin (1), Fanygrom (1).
Старый 01.10.2012, 12:58   #3  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Вообщем для создания проводки написал JOB
X++:
ledgerVoucher = ledgerVoucher::newledgerPost(DetailSummary::Summary,
                                                 SysModule::Vend,
                                                 numberSeq.parmNumberSequenceCode());

    ledgerVoucherObject = LedgerVoucherObject::newVoucher(numberSeq.num(), transDate,SysModule::Vend ,LedgerTransType::Payment);
    ledgerVoucherObject.newTaxReference(DetailSummary::Summary);
    ledgerVoucher.AddVoucher(ledgerVoucherObject);

    ledgerBondClient    = ledgerVoucherObject.ledgerBondClient_RU();

    ledgerVoucherObject.AddTrans(LedgerVoucherTransObject::newCreateTrans(
                                    ledgerVoucherObject,
                                    LedgerPostingType::ConsolidateDiff,
                                    "60.01.00",
                                    dimension,
                                    "Руб",
                                    amountCur,
                                    8465876));
    ledgerVoucherObject.AddTrans(LedgerVoucherTransObject::newCreateTrans(
                                    ledgerVoucherObject,
                                    LedgerPostingType::ConsolidateDiff,
                                    "60.01.00",
                                    dimension,
                                    "Руб",
                                    -amountCur,
                                    8465876));
    Info(numberSeq.num());
    ledgerBondClient.bondVRef2Log(1);
    ledgerBondClient.bondLastVRef2CurrentLog();
    ledgerVoucher.end();

    vendVoucher   = CustVendVoucher::construct(SysModule::Vend,
                                               ledgerVoucher,
                                               vendTable.accountNum,
                                               100000,
                                               Companyinfo::find().currencyCode,
                                               transTxt,
                                               vendTable.dimension,
                                               '',
                                               LedgerPostingType::VendBalance);
    vendVoucher   = CustVendVoucher::construct(SysModule::Vend,
                                               ledgerVoucher,
                                               vendTable.accountNum,
                                               -100000,
                                               Companyinfo::find().currencyCode,
                                               transTxt,
                                               vendTable.dimension,
                                               '',
                                               LedgerPostingType::VendBalance);
    vendVoucher.setPaymMode(vendTable.paymMode);
    vendVoucher.setPaymSpec(vendTable.paymSpec);
    vendVoucher.post(vendTrans);
Пытаюсь достать механизм сопоставления из формы VendOpenTrans_RU.
Старый 02.10.2012, 06:48   #4  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Вся логика формы спрятана в класс CustVendOpneTransEngine_Ru
проводки для сопоставление складываются в него.
Для сопоставления вызывается функция
VendTrans::settleTransact(custVendOpenTransEngine.custVendTable())
Кто-нибудь имел с этим дело?
Помогите разобраться.
Старый 02.10.2012, 10:36   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Fanygrom Посмотреть сообщение
Вообщем для создания проводки написал JOB
Этот джоб не сопоставляет проводки по поставщику, а только делает проводки ГК.
Как Вам уже говорили, смотрите автоматическое сопоставление и делайте по аналогии.
В классе Specification_OffsetVoucher метод run.
Для Ax3.0, да и DAX4 вся работа заключается в использовании классов Specification_OffsetVoucher, OffsetVoucher и таблицы SpecTrans и затем вызова CustVendSettle. В DAX2009 набор классов изменен.
Просто в отличии от того, что есть в этом методе run, Вам нужно выбирать проводки не так как это сделано в этом классе, а по своей логике.
За это сообщение автора поблагодарили: Fanygrom (1).
Старый 02.10.2012, 12:38   #6  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Job изначально был для создания проводки.
Спасибо за инфу про классы, посмотрю.
Теги
vendtrans, поставщик, проводки, сопоставление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Программное создание проводки (Склад) iCloud DAX: Программирование 22 21.05.2012 14:43
Создание проводки по клиенту breakpoint DAX: Программирование 7 23.05.2008 17:27
Программное содание проводки xconsul DAX: Программирование 5 02.12.2005 11:49
Создание проводки Yugene DAX: Программирование 4 14.10.2005 17:30
Создание проводки при заведении строки заказа Андре DAX: Программирование 6 25.02.2003 14:44

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

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

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