02.09.2015, 12:30 | #1 |
Участник
|
Обработка входящего НДС
Добрый день!
После проведения операции обработка входящего НДС есть дебетовое сальдо на счете. Подскажите как можно проанализировать по каким именно номерам фактур не прошла операция возмещение НДС? Дело в том что операцию возмещение НДС я вижу суммарными проводками в LedgerTrans. Я подумываю сделать это так - взять операцию с типом возмещение НДС из PurchBookVATProcessLogTransOper_RU дальше приджоинить PurchBookVATProcessLogTrans_RU по RefRecId, это будут операции возмешения НДС с номером счета фактуры, а дальше сделать обратную выборку по начислениям из первой таблицы и сопоставить их. Система: AX 2009 RollUp7 |
|
02.09.2015, 13:16 | #2 |
Злыдни
|
А почему не взять все записи из журнала входящих счетов-фактур, для которых нет записей в PurchBookVATProcessLogTrans_RU?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
02.09.2015, 14:07 | #3 |
Участник
|
Журнал входящих счетов фактуры это какой? FactureJour c признаком ModuleCustVend::Vend?
Сейчас попробую. Мне бы просто это еще иметь ввиде счетов. |
|
02.09.2015, 15:52 | #4 |
Участник
|
Фактически этот вариант подошел. FactureJour_RU выбрать фактуры которые входящие. Дальше проверить их наличии в таблице PurchBookVATProcessLogTrans_RU. Фактически на форме журнал Фактур есть кнопка - История обработки НДС.
|
|
03.09.2015, 11:34 | #5 |
Участник
|
Подскажите как можно проанализировать по каким именно номерам фактур не прошла операция возмещение НДС?
Возмещение не пройдет по накладным, у которых есть налог, но нет фактуры. Не проверяли список неотфактурованных накладных?
__________________
|
|
03.09.2015, 12:13 | #6 |
Участник
|
С этим все оказалось в порядке. Все накладные имеют счет фактуру. В процессе проверки оказалась одна СЧ у которая существует в FactureJour_RU но отсуствует в PurchBookVATProcessLogTrans_RU за выбранный период. Остается только понять причину. Дата фактуры 19.06. Проверка происходила за 0104..3006.
|
|
03.09.2015, 16:50 | #7 |
Участник
|
Вот код который поможет найти не попавшие фактуры в обработку:
X++: static void _HTC_VAT_Analyze_ObrabotkaNDS(Args _args) { Dialog dialog = new Dialog(); DialogField dlgDateStart; DialogField dlgDateEnd; Query query = new Query(); QueryBuildDataSource qbds; QueryRun qr; TransDate startDate, endDate; FactureJour_RU factureJour; COM rstAxa; COM flds, fld; COM xlApp; COM wbks, wbk; COM wkss, wks; COM rng, cell, rngCR; COM font; COM entCol; COM actWin; int i, iMax; int adoTypeToExcel(str _type) { switch (_type) { case 'num' : return 5; // adDouble case 'str' : return 8; // adBSTR case 'date': return 133; // adDBDate } return 8; } ; dlgDateStart = dialog.addField(typeid(TransDate),'StartDate'); dlgDateEnd = dialog.addField(typeid(TransDate),'EndDate'); dialog.run(); startDate = dlgDateStart.value(); endDate = dlgDateEnd.value(); rstAxa = new COM('ADODB.Recordset'); flds = rstAxa.Fields(); flds.Append("FactureDate" , adoTypeToExcel('date')); flds.Append("FactureExternalId" , adoTypeToExcel('str')); flds.Append("CustVendAC" , adoTypeToExcel('str')); flds.Append("Amount" , adoTypeToExcel('num')); flds.Append("Tax" , adoTypeToExcel('num')); rstAxa.Open(); qbds = query.addDataSource(tableNum(FactureJour_RU)); qbds.addRange(fieldNum(FactureJour_RU, Module)).value(queryValue(FactureModule_RU::Vend)); qbds.addRange(fieldNum(FactureJour_RU, FactureDate)).value(strfmt('((%1 >= %2) && (%1 <= %3))', fieldstr(FactureJour_RU, FactureDate),date2StrXpp(startDate), date2StrXpp(endDate))); qbds = query.dataSourceTable(tableNum(FactureJour_RU)).addDataSource(tableNum(PurchBookVATProcessLogTrans_RU)); qbds.relations(true); qbds.joinMode(JoinMode::NoExistsJoin); qr = new QueryRun(query); while(qr.next()) { factureJour = qr.get(tableNum(FactureJour_RU)); rstAxa.AddNew(); fld = flds.Item("FactureDate"); fld.Value(facturejour.FactureDate); fld = flds.Item("FactureExternalId"); fld.Value(facturejour.FactureExternalId); fld = flds.Item("CustVendAC"); fld.Value(facturejour.CustVendInvoiceAccount); fld = flds.Item("Amount"); fld.Value(facturejour.FactureAmount); fld = flds.Item("Tax"); fld.Value(facturejour.FactureTax); rstAxa.Update(); } xlApp = new COM('Excel.Application'); wbks = xlApp.Workbooks(); wbk = wbks.Add(); wkss = wbk.Worksheets(); wks = wkss.Item(1); wks.Name('NotExistsInPurchBook'); rng = wks.Range('A1'); flds = rstAxa.Fields(); iMax = flds.Count() - 1; for (i = 0; i <= iMax; i += 1) { fld = flds.Item(i); cell = rng.Offset(0, i); cell.Value2(fld.Name()); } rngCR = rng.CurrentRegion(); font = rngCR.Font(); font.Bold(true); cell = rng.Offset(1, 0); cell.CopyFromRecordset(rstAxa); rngCR = rng.CurrentRegion(); entCol = rngCR.EntireColumn(); entCol.AutoFit(); cell.Select(); actWin = xlApp.ActiveWindow(); actWin.FreezePanes(true); xlApp.Visible(true); rstAxa.Close(); } |
|