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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.10.2012, 11:05   #1  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Создание проводки и ее сопоставление
Axapta 3.0
Создание проводки и ее сопоставление должно быть по поставщику.
Обязательно ли создавать проводку в ГК или нет?
И есть ли какие-нибудь особеннности если проводка оплатная(оплата поставщику)?
Старый 01.10.2012, 12:25   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
мало инфы. Вы там руками чтоли создание проводок программируете?
Старый 01.10.2012, 12:30   #3  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Цитата:
Сообщение от Sada Посмотреть сообщение
мало инфы. Вы там руками чтоли создание проводок программируете?
Да, все руками
Такая задача.
Старый 01.10.2012, 12:33   #4  
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   #5  
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   #6  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Вся логика формы спрятана в класс CustVendOpneTransEngine_Ru
проводки для сопоставление складываются в него.
Для сопоставления вызывается функция
VendTrans::settleTransact(custVendOpenTransEngine.custVendTable())
Кто-нибудь имел с этим дело?
Помогите разобраться.
Старый 02.10.2012, 10:36   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Fanygrom Посмотреть сообщение
Вообщем для создания проводки написал JOB
Этот джоб не сопоставляет проводки по поставщику, а только делает проводки ГК.
Как Вам уже говорили, смотрите автоматическое сопоставление и делайте по аналогии.
В классе Specification_OffsetVoucher метод run.
Для Ax3.0, да и DAX4 вся работа заключается в использовании классов Specification_OffsetVoucher, OffsetVoucher и таблицы SpecTrans и затем вызова CustVendSettle. В DAX2009 набор классов изменен.
Просто в отличии от того, что есть в этом методе run, Вам нужно выбирать проводки не так как это сделано в этом классе, а по своей логике.
За это сообщение автора поблагодарили: Fanygrom (1).
Старый 02.10.2012, 07:07   #8  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,506 / 428 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Честно говоря - хотелось бы сначала понять логику ручного создания проводки по поставщику. Почему вы не задействуете штатные механизмы? Что такого в постановке есть, что этому мешает? Ибо если дело не в этом, а в неграмотной постановке - надо её менять, а не конструировать обходные траншеи
__________________
С уважением,
Вячеслав
Старый 02.10.2012, 08:51   #9  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Штатные механизмы не задействовал, потому что все надо сделать программно.
В общем глобальная постановка:
- Существуют заявки на оплату поставщикам.
- Каждая заявка содержит список документов, которые нужно оплатить.
- Есть одобренная сумма по каждой заявке.
- Надо сопоставить неоплаченные документы на одобренную сумму.
вот так вкратце.
Старый 02.10.2012, 09:29   #10  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Штатный механизм - это программно 'нажать' нужную кнопку или класс вызвать, который нажатие вызывает и передать туда нужные параметры. все отработает стандартно, и программирования минимум
Старый 02.10.2012, 09:34   #11  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
X++:
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);
вы одну и тожу переменную два раза проинициализировали, это как минимум не верно
Теги
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, время: 12:43.