Top.Mail.Ru

Создание основных типов счетов-фактур в MS DAX 2012

Здесь будет описано создание счетов-фактур в MS DAX 2012, в разрезе самых часто используемых типов при помощи классов FactureJourCreate_RU. А также будет рассмотрено оформление счетов-фактур, таких как исправленная и корректировочная СФ и учет НДС для налогового агента.

Источники фактуры

Источники заголовка фактуры можно рассмотреть на примере перечисления FactureType_RU

  1. Все (All)
  2. Накладная (Invoice)
  3. Предоплата (2009) или Ваучер журнала предоплат (2012) (Prepayment)
  4. Суммовая разница (AmoutDifference)
  5. Авансовый отчет (AdvanceReport)
  6. Коррекция налогов (TaxCorrection)
  7. Курсовая разница (2009) или переоценка в иностранной валюте (2012) (ExchAdj)
  8. Авансовая разница (AdvanceAdjustment)
  9. Дооценка НДС (VATAdjustment)
  10. Счет-фактура (Facture)
    остальные появились после выхода 2012
  11. ГТД (GTD)
  12. КТС (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.

Ссылки

  1. http://www.buhgalteria.ru/article/n135772
  2. https://www.synerdocs.ru/6585903.aspx

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar