Создание основных типов счетов-фактур в MS DAX 2012
Здесь будет описано создание счетов-фактур в MS DAX 2012, в разрезе самых часто используемых типов при помощи классов FactureJourCreate_RU. А также будет рассмотрено оформление счетов-фактур, таких как исправленная и корректировочная СФ и учет НДС для налогового агента.
Contents
Источники фактуры
Источники заголовка фактуры можно рассмотреть на примере перечисления FactureType_RU
- Все (All)
- Накладная (Invoice)
- Предоплата (2009) или Ваучер журнала предоплат (2012) (Prepayment)
- Суммовая разница (AmoutDifference)
- Авансовый отчет (AdvanceReport)
- Коррекция налогов (TaxCorrection)
- Курсовая разница (2009) или переоценка в иностранной валюте (2012) (ExchAdj)
- Авансовая разница (AdvanceAdjustment)
- Дооценка НДС (VATAdjustment)
- Счет-фактура (Facture)
остальные появились после выхода 2012 - ГТД (GTD)
- КТС (CustomCorrection)
Часть источников собрана в Map CustVendInvoiceJour: CustInvoiceJour, VendInvoiceJour и EmplAdvTable_RU, остальные таблицы в Map не являются источником для СФ или не используются на прямую. В большинстве случаев создание всех типов фактур производится семейством классов FactureJourCreate_RU.
- FactureJourCreateAdvAdjCor_RU
- FactureJourCreateAdvAdjCorCust_RU
- FactureJourCreateAdvAdjCorVend_RU
- FactureJourCreateAmountDiff_RU
- FactureJourCreateAmountDiffCust_RU
- FactureJourCreateAmountDiffVend_RU
- FactureJourCreateCustom_RU
- FactureJourCreateCorrectionCustom_RU
- FactureJourCreateTaxCorrection_RU
- FactureJourCreateTaxCorrection_Purch_RU
- FactureJourCreateTaxCorrection_Sales_RU
- FactureJourCreateCust_RU
- FactureJourCreateVend_RU
- FactureJourCreateExportVAT_RU
- FactureJourCreateEmpl_RU
Кроме создания СФ из других документов их еще можно корректировать и исправлять, все это оформляется отдельными документами.
Исправленный счет-фактура (ИСФ) – это новая версия (экземпляр) первоначального документа (п. 7 Правил заполнения счета-фактуры, утв. Постановлением Правительства РФ от 26.12.2011 № 1137). Корректировочный счет-фактура (КСФ) оформляется дополнительно к первоначальному документу. Другими словами, КСФ не может существовать отдельно от исходного счета-фактуры. Составлять корректировку следует в случае изменения цены и/или уточнения количества товаров, работ, услуг, переданных имущественных прав (абз. 3 п. 3 ст. 168 Налогового кодекса РФ). С 1 июля 2013 года при изменении стоимости товаров (работ, услуг, имущественных прав), отраженных в нескольких выставленных ранее счетах-фактурах в адрес одного покупателя, продавец имеет право оформлять единый корректировочный счет-фактуру (ст. 163, п. 5.2 ст. 169 НК РФ).
Ниже будут рассмотрены случаи создания самых часто используемых типов: «Накладная», «Предоплата» и «Коррекция налогов».
Создание фактур через форму «Обработка счета-фактуры».
В основном форма «Обработка счета-фактуры» FactureEditLines_RU используется, когда нужно создать фактуру из нескольких записей накладных. Все пункты меню, которые вызывают эту форму передают параметр FactureModule_RU (Модуль-источник счета-фактуры). На основании значения модуля создается наследник класса FactureEditLinesEngine_RU, в котором прописан в методе factureType() тип СФ.
Типы, соответствующие значению модуля
- Клиент – тип накладная, при обработке СФ на экспорт – тип Счет-фактура (но фактура с этим типом создается не из формы «Обработка счета-фактуры», ее создание будет рассмотрено отдельно)
- Поставщик – накладная
- Авансовый отчет — Авансовый отчет
- Коррекции налогов в книге покупок, продаж, покупок (клиент), продаж (поставщик) — Коррекция налогов
При вызове формы «Обработка счета-фактуры» с формы «Журнал фактур» (кнопка «Исправить заголовок») передается текстовый параметр Revision и передаваемое перечисление FactureModule_RU не учитывается, а тип и модуль берется из СФ источника. Исправить заголовок из журнала фактур можно только для исходных фактур или корректировочных с типом «Накладная» и «Коррекция налогов». При исправлении создается наследник FactureEditLinesEngineHeaderRev_RU.
СФ с типом «Накладная».
Форма «Обработка счета-фактуры» в этом случае вызывается из журнала накладных клиента или поставщика. На форме обработки СФ будут отображены все неотфактурованные накладные по контрагенту, который указан в выбранной накладной. Накладные с незаполненным полем «Заказ на продажу/покупку» это накладные сформированные по строкам журнала ГК или накладных с произвольным текстом. В этом случае вызываются классы FactureJourCreateCust_RU и FactureJourCreateVend_RU и источником для строк СФ являются CustInvoiceTrans и VendInvoiceTrans. Если из журнала накладных создается СФ по корректирующей накладной и на форме «Обработка счета-фактуры» выбраны корректируемые накладные, по которым создано несколько СФ, то при разноске создастся сводная корректирующая СФ.
СФ с типом «Авансовый отчет».
Подотчетным лицом является работник организации, получивший наличные суммы денежных средств на предстоящие административно-хозяйственные и командировочные расходы. Для формирования счета-фактуры по авансовому отчету надо на форме Авансовые отчеты воспользоваться кнопкой «Обработка счета-фактуры». На экране появится форма «Обработка счета-фактуры». В нее выводятся все авансовые отчеты по подотчетному лицу, указанному в поле «Контрагент», дата которых меньше или равна дате, указанной в поле Дата регистрации. В данном случае за создание СФ отвечает класс FactureJourCreateEmpl_RU, а источник для строк фактуры таблица EmplAdvLine_RU.
СФ с типом «Коррекция налогов».
Для корректировки предыдущих закрытых налоговых периодов можно использовать счета-фактуры по налоговым проводкам. После формирования корректирующей налоговой проводки по ней формируют счет-фактуру. На форме строк журнала главной книги есть две кнопки для создания фактуры – «Книга покупок» и «Книга продаж». Видимость этих кнопок определяется в момент нажатия на группу «Функции» (\Forms\LedgerJournalTransDaily\Designs\Design\[ButtonGroup:ButtonGroup]\[MenuButton:Functions]\Methods\clicked)
factureVisiblePurch = ledgerJournalTrans.isTaxCorrection_RU(false, FactureBook_RU::Purch); factureVisibleSales = ledgerJournalTrans.isTaxCorrection_RU(false, FactureBook_RU::Sales);
Для создания записи в таблице FactureJour_RU используются классы FactureJourCreateTaxCorrection_Purch_RU и FactureJourCreateTaxCorrection_Sales_RU источник для строк СФ строки журнала ГК (LedgerJournalTrans).
Далее будут описаны другие способы создания СФ, кроме формы «Обработка счета-фактуры».
Создание фактур с типом «Накладная».
Если по заказу ранее были сформированы накладные, обработка счета-фактуры производится на основании ранее сформированных накладных. Если по заказу ранее не были сформированы накладные, обработка счета–фактуры вызывает создание накладной, после чего на основании накладной создается СФ. С формы заказа (продажи или покупки) создание вызывается классами SalesFromLetter_Facture_RU и PurchFormLetter_Facture_RU, которые запускают форму «Обработка счета-фактуры», но не FactureEditLines_RU а SalesEditLines или PurchEditLines.
Также при разноске распределения накладных расходов (форма CostAllocation_RU) с типом «Перевыставить задолженность» создаются СФ с типом «Накладная» из строк журнала ГК или строк CustInvoiceJour по накладным с произвольным текстом (метод CostAllocationPostIndebtedness_RU\factureCreate). Связь таких накладных с фактурами производится через таблицу MarkupTrans. На этой таблице установлен конфигурационный ключ Markup «Накладные расходы», при отключении которого могут некорректно отрабатывать запросы в методах CustInvoiceJour.factureJourSortedList_RU() или VendInvoiceJour.factureJourSortedList_RU()
// Header markups while select factureJour join RecId from factureTrans join RecId from markupTrans where factureJour.Module == FactureModule_RU::Vend && factureJour.CustVendInvoiceAccount == this.InvoiceAccount && factureTrans.FactureId == factureJour.FactureId && factureTrans.Module == FactureModule_RU::Vend && factureTrans.FactureLineType == FactureLineType_RU::Markup && markupTrans.RecId == factureTrans.MarkupRefRecId && markupTrans.TransTableId == this.TableId && markupTrans.TransRecId == this.RecId { if ( ! ret.find(factureJour)) { ret.ins(factureJour); } }
Еще одно место, когда СФ по накладной создаются не через форму FactureEditLines_RU это обработка СФ из формы «Накладная с произвольным текстом», хотя, кнопка называется «Обработка счета-фактуры» пункт меню CustPostFactureFreeTxtJob_RU запускает периодическую операцию CustPostInvoiceJob. В этом случае по каждой записи журнала накладных (CustInvoiceJour) связанной с накладной с произвольным текстом (CustInvoiceTable) создается фактура.
Создание фактур с типом «Коррекция налогов».
Когда происходит оплата или предоплата лицу, которое не платит НДС (например, физ. лица, не резиденты или казенные организации) то НДС платит налоговый агент, а создает СФ по этой оплате тот, кто платит. При разноске журнала платежей поставщикам, если заполнено поле LedgerJournalTrans.VATTaxAgentVendAccount_RU (налоговый агент счет поставщика), создаются дополнительные проводки ГК и по обрабатываемому LedgerJournalTrans создается СФ (метод FactureJourCreate_RU::newVATPaymentFactureLedgerJournalTrans). Это происходит в любом случае, не смотря на флаг VendParameters.TaxOnPrepayment (Налог по предоплате). При разноске строк журнала ГК по предоплате поставщику у которого стоит флаг VendTable.vatTaxAgent_RU (Компания является налоговым агентом для поставщика) в этом случае по проводке поставщика (VendTrans) находятся разнесенные налоги (TaxTrans), по налогам создается запись журнала разноски по клиентам и поставщикам (CustVendTransPostingLog_RU), после чего запись проводки по клиенту и журнал разноски передаются в метод FactureJourCreate_RU::newVATPaymentFactureSettlement. При разноске предоплат налоговому агенту тоже не учитывается флаг «Налог по предоплате», но перед созданием СФ идет поиск разнесенных налогов. Также при сопоставлении проводок по поставщику при работе с дебиторской задолженностью корректируются СФ с типом коррекция налогов методом newVATPaymentFactureSettlement, в этом случае передается необязательный параметр – корректируемый журнал разноски по клиентам и поставщикам.
Создание фактур с типом «Счет-фактура».
Счет-фактура считается счетом-фактурой экспорта, если она содержит накладные с типом налога НДС 0% и, если установлен налоговый код для домашнего рынка. Для создания такой фактуры нужно выбрать налоговую группу в шапке заказа и налоговую группу номенклатур для экспортных операций. На основании накладной этого заказа на продажу создается СФ с типом «Накладная», но после обработки экспортной СФ (Расчеты с клиентами > Периодические операции > Книга продаж > Предварительная обработка счетов-фактур по экспорту) создается еще одна СФ с типом «Счет-фактура» (семейство классов FactureProcessingExport_RU). Чтобы отметить СФ для экспорта нужно установить флаг «В обработку» (FactureJour.ExportProcessing) и указать «Тип операции» (FactureJour.ProcessingType) для создания записи используется класс FactureJourCreateExportVAT_RU. Согласно установленному типу операции могут создаваться корректирующие СФ, в этом случае в методе FactureProcessingExport_RU.createCorrection записи таблицы FactureJour_RU создаются в обход FactureJourCreate_RU.
Создание фактур по предоплатам.
Клиенты.
Специфика учета СФ по авансовым платежам клиента заключается в том, что и при регистрации предоплаты на счете ГК и при отгрузке товара формируется СФ. После отгрузки (разноски накладной) начисленный с аванса НДС сторнируется, при этом сторно аванса отражается в «Книге покупок». Если в параметрах модуля «Расчеты с поставщиками» был установлен флажок «Автоматическое создание счета-фактуры» (CustParameters).PrepaymentFactureAutoCreate_RU), то фактура создается автоматически при разноске предоплаты. Если флаг автоматического создания не установлен, то создание СФ по предоплате идет через Расчеты с клиентами > Периодические операции > Создание счета-фактуры для предоплаты запускает методы newPrepaymentFactureLedgerJournalTrans и newPrepaymentFactureCustTrans класса FactureJourCreate_RU. Метод работающий на основании строки журнала ГК запускается если проводка по клиенту сопоставлена, в этом случае создается временная запись LedgerJournalTrans и передается в метод. Если не сопоставлена, то запускается метод newPrepaymentFactureCustTrans на основе самой проводки CustTrans. Если задано автоматическое создание СФ, то при обработке предварительной оплаты на форме проводок по клиенту метод CustPrepaymentHandling_W.createFacture запускает создание СФ на основании CustTrans (метод FactureJourCreate_RU:: newPrepaymentFactureCustTrans). Также предоплаты и СФ по ним могут создаваться при разноске накладных расходов метод CostAllocationPostIndebtedness_RU.initAndPostIndebtednessInvoice, который в последующем запускает создание СФ по записи LedgerJournalTrans (newPrepaymentFactureLedgerJournalTrans).
Поставщики.
Регистрировать СФ по предоплате поставщику можно не только по разнесенным предоплатам, но и по не разнесенным для этого нужно установить галку в параметрах модуля Расчетов с поставщиками «Создать фактуры на не разнесенные предоплаты» (VendParameters.CreateFactureUnpostPrepayment_RU). СФ по предоплатам поставщика также, как и клиента создаются по рассчитанным временным проводкам по налогам (TmpTaxWorkTrans) в момент создания СФ. Отличие заключается для не разнесенных предоплат, для которых еще нет проводок по поставщику (VendTrans) и есть только строки журнала ГК (LedgerJournalTrans). В этом случае методом VendCreatePrepaymentFacture_RU.ledgerJournalTrans создается временная строка журнала ГК на основании существующей в БД и по временной записи рассчитываются налоги. LedgerJournalTrans по не разнесённым предоплатам находится запросом в методе VendSelectPrepayment_RU.qrUnpostedTrans. Все СФ по предоплатам поставщика создаются внутри класса VendCreatePrepaymentFacture_RU без применения классов FactureJourCreate_RU.
Comments
So empty here ... leave a comment!