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, 07:07   #7  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,507 / 428 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Честно говоря - хотелось бы сначала понять логику ручного создания проводки по поставщику. Почему вы не задействуете штатные механизмы? Что такого в постановке есть, что этому мешает? Ибо если дело не в этом, а в неграмотной постановке - надо её менять, а не конструировать обходные траншеи
__________________
С уважением,
Вячеслав
Старый 02.10.2012, 08:51   #8  
Fanygrom is offline
Fanygrom
Участник
MCBMSS
 
18 / 10 (1) +
Регистрация: 20.09.2012
Штатные механизмы не задействовал, потому что все надо сделать программно.
В общем глобальная постановка:
- Существуют заявки на оплату поставщикам.
- Каждая заявка содержит список документов, которые нужно оплатить.
- Есть одобренная сумма по каждой заявке.
- Надо сопоставить неоплаченные документы на одобренную сумму.
вот так вкратце.
Старый 02.10.2012, 09:29   #9  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Штатный механизм - это программно 'нажать' нужную кнопку или класс вызвать, который нажатие вызывает и передать туда нужные параметры. все отработает стандартно, и программирования минимум
Старый 02.10.2012, 09:34   #10  
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);
вы одну и тожу переменную два раза проинициализировали, это как минимум не верно
Старый 02.10.2012, 10:36   #11  
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, 12:38   #12  
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, время: 15:03.