4525 lines
354 KiB
Plaintext
4525 lines
354 KiB
Plaintext
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
#Область ДляВызоваИзДругихПодсистем
|
||
|
||
// Задает расширенные настройки отчета
|
||
//
|
||
// Параметры:
|
||
// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.
|
||
//
|
||
Процедура НастроитьВариантыОтчета(Настройки) Экспорт
|
||
|
||
ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.КнигаПродаж);
|
||
ОписаниеВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, ОписаниеОтчета, "");
|
||
ОписаниеВарианта.Описание = НСтр("ru = 'Формирование книги продаж после выполнения регламентных операций закрытия периода по НДС.'");
|
||
ОписаниеВарианта.НастройкиДляПоиска.НаименованияПолей = НСтр("ru = 'Продавец
|
||
|ИНН
|
||
|КПП
|
||
|Продажа за период
|
||
|Дата и номер счета-фактуры
|
||
|Номер и дата исправления счета-фактуры
|
||
|Номер и дата корректировочного счета-фактуры
|
||
|Наименование покупателя
|
||
|Страна происхождения товара
|
||
|НДС'");
|
||
ОписаниеВарианта.НастройкиДляПоиска.НаименованияПараметровИОтборов = НСтр("ru = 'Период
|
||
|Организация
|
||
|Контрагент
|
||
|Выводить продавцов'");
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныйПрограммныйИнтерфейс
|
||
|
||
Процедура СформироватьОтчет(Знач СтруктураПараметров, АдресХранилища) Экспорт
|
||
|
||
ПодготовитьОтчет(СтруктураПараметров);
|
||
|
||
ПоместитьВоВременноеХранилище(СтруктураПараметров, АдресХранилища);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПодготовитьОтчет(СтруктураПараметров) Экспорт
|
||
|
||
Если ЗначениеЗаполнено(СтруктураПараметров.КонтрагентДляОтбора)
|
||
ИЛИ СтруктураПараметров.ВыводитьПродавцовПоАвансам
|
||
ИЛИ СтруктураПараметров.ГруппироватьПоКонтрагентам Тогда
|
||
СтандартнаяФорма = Ложь;
|
||
Иначе
|
||
СтандартнаяФорма = УчетНДСПереопределяемый.ПериодОтчетаСоответствуетНалоговому(
|
||
СтруктураПараметров.Организация, СтруктураПараметров.НачалоПериода, СтруктураПараметров.КонецПериода);
|
||
КонецЕсли;
|
||
|
||
СтруктураПараметров.Вставить("СформироватьОтчетПоСтандартнойФорме", СтандартнаяФорма);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СписокОрганизацийОтбора = СтруктураПараметров.СписокОрганизаций;
|
||
ИначеЕсли НЕ СтруктураПараметров.ВключатьОбособленныеПодразделения Тогда
|
||
СписокОрганизацийОтбора = Новый СписокЗначений;
|
||
СписокОрганизацийОтбора.Добавить(СтруктураПараметров.Организация);
|
||
Иначе
|
||
СписокОрганизацийОтбора = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьСписокОбособленныхПодразделений(
|
||
СтруктураПараметров.Организация);
|
||
КонецЕсли;
|
||
|
||
СписокДоступныхОрганизаций = ОбщегоНазначенияБПВызовСервераПовтИсп.ВсеОрганизацииДанныеКоторыхДоступныПоRLS(ложь);
|
||
|
||
СписокОрганизаций = Новый СписокЗначений;
|
||
|
||
Для Каждого ОрганизацияСписка Из СписокОрганизацийОтбора Цикл
|
||
Если СписокДоступныхОрганизаций.Найти(ОрганизацияСписка.Значение) <> Неопределено Тогда
|
||
СписокОрганизаций.Добавить(ОрганизацияСписка.Значение);
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
|
||
СтруктураПараметров.Вставить("СписокОрганизаций", СписокОрганизаций);
|
||
СтруктураПараметров.Вставить("ЗаписьДополнительногоЛиста", Ложь);
|
||
СтруктураПараметров.Вставить("СчетчикСегментов", 0);
|
||
|
||
ВерсияПостановленияНДС1137 = УчетНДСПереопределяемый.ВерсияПостановленияНДС1137(СтруктураПараметров.КонецПериода);
|
||
СтруктураПараметров.Вставить("ВерсияПостановленияНДС1137", ВерсияПостановленияНДС1137);
|
||
|
||
Если НЕ СтруктураПараметров.Свойство("ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС") Тогда
|
||
СтруктураПараметров.Вставить("ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС",
|
||
УчетНДС.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС());
|
||
КонецЕсли;
|
||
|
||
ИнициализироватьТаблицыДанныхНДС(СтруктураПараметров);
|
||
|
||
СтруктураПараметров.Вставить("ОткрыватьПомощникИзМакета");
|
||
СтруктураПараметров.ОткрыватьПомощникИзМакета =
|
||
УчетНДСПереопределяемый.ОткрыватьПомощникИзМакета(СтруктураПараметров.Организация, СтруктураПараметров.КонецПериода)
|
||
И НЕ СтруктураПараметров.ЗаполнениеДекларации
|
||
И НЕ СтруктураПараметров.ЗаполнениеДокумента ;
|
||
|
||
СписокСообщений = Новый СписокЗначений();
|
||
|
||
Если НЕ (СтруктураПараметров.ВыводитьТолькоДопЛисты И СтруктураПараметров.ФормироватьДополнительныеЛисты) Тогда
|
||
|
||
Результат = Неопределено;
|
||
ОпределитьПараметрыФормированияОтчета(СтруктураПараметров);
|
||
|
||
// СтандартныеПодсистемы.РаботаСКонтрагентами
|
||
Если ПроверкаКонтрагентов.ФормироватьОтчетСтандартнымСпособом(СтруктураПараметров, Результат) Тогда
|
||
// Конец СтандартныеПодсистемы.РаботаСКонтрагентами
|
||
Результат = ЗаписиКнигиПродаж(СтруктураПараметров);
|
||
// СтандартныеПодсистемы.РаботаСКонтрагентами
|
||
ПроверкаКонтрагентов.ЗапомнитьДанныеОтчета(СтруктураПараметров, Результат);
|
||
// Конец СтандартныеПодсистемы.РаботаСКонтрагентами
|
||
КонецЕсли;
|
||
|
||
Если ОбщегоНазначения.ПодсистемаСуществует("СервисСверкиРасчетов") Тогда
|
||
МодульСверкаДеклараций = ОбщегоНазначения.ОбщийМодуль("СервисСверкиРасчетовСверкаДекларацийНДС");
|
||
МодульСверкаДеклараций.ЗапомнитьДанныеОтчета(СтруктураПараметров, Результат);
|
||
КонецЕсли;
|
||
|
||
СформироватьОсновнойРаздел(СтруктураПараметров, Результат);
|
||
|
||
КонецЕсли;
|
||
|
||
// Проверка наличия дополнительных листов за текущий период
|
||
СтруктураПараметров = ПроверитьНаличиеДопЛистовКнигиПродаж(СтруктураПараметров);
|
||
|
||
Если СтруктураПараметров.ДополнительныеЛистыЗаТекущийПериод Или Не СтруктураПараметров.ФормироватьДополнительныеЛисты Тогда
|
||
Если СтруктураПараметров.КорректируемыйПериод Тогда
|
||
СписокСообщений.Добавить(НСтр("ru = 'В указанном периоде отчета были внесены изменения в предшествующие налоговые периоды.
|
||
|Дополнительные листы по корректируемым налоговым периодам, в которые внесены изменения, можно построить в текущем отчете.
|
||
|Для этого необходимо взвести флажок ""Формировать дополнительные листы"" и выбрать значение ""за корректируемый период"".'"));
|
||
КонецЕсли;
|
||
Если СтруктураПараметров.ФормироватьДополнительныеЛисты И Не СтруктураПараметров.ТекущийПериод Тогда
|
||
СписокСообщений.Добавить(НСтр("ru = 'В указанном периоде отчета не вносились изменения в последующих налоговых периодах.
|
||
|Построение дополнительных листов за текущий налоговый период не требуется.'"));
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ДополнительныеЛистыЗаТекущийПериод Или Не СтруктураПараметров.ФормироватьДополнительныеЛисты Тогда
|
||
Если СтруктураПараметров.ТекущийПериод Тогда
|
||
СписокСообщений.Добавить(НСтр("ru = 'В указанном периоде отчета есть изменения, внесенные в последующих налоговых периодах.
|
||
|Дополнительные листы по текущему налоговому периоду можно построить в текущем отчете.
|
||
|Для этого необходимо взвести флажок ""Формировать дополнительные листы"" и выбрать значение ""за текущий период"".'"));
|
||
КонецЕсли;
|
||
Если СтруктураПараметров.ФормироватьДополнительныеЛисты И Не СтруктураПараметров.КорректируемыйПериод Тогда
|
||
СписокСообщений.Добавить(НСтр("ru = 'В указанном периоде отчета не вносились изменения в предыдущие налоговые периоды.
|
||
|Построение дополнительных листов за корректируемый налоговый период не требуется.'"));
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ФормироватьДополнительныеЛисты Тогда
|
||
|
||
СтруктураПараметров.ЗаписьДополнительногоЛиста = Истина;
|
||
ОпределитьПараметрыФормированияОтчета(СтруктураПараметров);
|
||
|
||
// Получение записей дополнительных листов
|
||
Результат = ЗаписиКнигиПродаж(СтруктураПараметров);
|
||
|
||
СформироватьДополнительныеЛисты(СтруктураПараметров, Результат);
|
||
|
||
Если ОбщегоНазначения.ПодсистемаСуществует("СервисСверкиРасчетов") Тогда
|
||
МодульСверкаДеклараций = ОбщегоНазначения.ОбщийМодуль("СервисСверкиРасчетовСверкаДекларацийНДС");
|
||
МодульСверкаДеклараций.ЗапомнитьДанныеДопЛистов(СтруктураПараметров, Результат);
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ДанныеДляПроверкиКонтрагентов.Свойство("ВыводитьТолькоНекорректныхКонтрагентов")
|
||
ИЛИ НЕ СтруктураПараметров.ДанныеДляПроверкиКонтрагентов.ВыводитьТолькоНекорректныхКонтрагентов Тогда
|
||
СтруктураПараметров.МенеджерВременныхТаблиц.Закрыть();
|
||
КонецЕсли;
|
||
|
||
СтруктураПараметров.Вставить("СписокСообщений", СписокСообщений);
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ПроверитьНаличиеДопЛистовКнигиПродаж(СтруктураПараметров) Экспорт
|
||
|
||
СтруктураПараметров.Вставить("ТекущийПериод", Ложь);
|
||
СтруктураПараметров.Вставить("КорректируемыйПериод", Ложь);
|
||
|
||
Запрос = Новый Запрос;
|
||
Запрос.Текст =
|
||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||
| 1 КАК Порядок,
|
||
| НДСЗаписиКнигиПродажОбороты.СчетФактура КАК СчетФактура,
|
||
| НДСЗаписиКнигиПродажОбороты.Покупатель КАК Покупатель,
|
||
| НДСЗаписиКнигиПродажОбороты.СтавкаНДС КАК СтавкаНДС,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(СУММА(НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот), 0) <> 0
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК ЕстьДопЛисты,
|
||
| НДСЗаписиКнигиПродажОбороты.КорректируемыйПериод КАК КорректируемыйПериод,
|
||
| НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура
|
||
|ИЗ
|
||
| РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
|
||
| &НачалоПериода,
|
||
| &КонецПериода,
|
||
| День,
|
||
| Организация В (&Организация)
|
||
| И &ДополнительноеУсловие
|
||
| И ЗаписьДополнительногоЛиста
|
||
| И КорректируемыйПериод >= &НачалоПримененияПостановления1137) КАК НДСЗаписиКнигиПродажОбороты
|
||
|
|
||
|СГРУППИРОВАТЬ ПО
|
||
| НДСЗаписиКнигиПродажОбороты.СчетФактура,
|
||
| НДСЗаписиКнигиПродажОбороты.Покупатель,
|
||
| НДСЗаписиКнигиПродажОбороты.СтавкаНДС,
|
||
| НДСЗаписиКнигиПродажОбороты.КорректируемыйПериод,
|
||
| НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура
|
||
|
|
||
|ОБЪЕДИНИТЬ ВСЕ
|
||
|
|
||
|ВЫБРАТЬ
|
||
| 2,
|
||
| НДСЗаписиКнигиПродажОбороты.СчетФактура,
|
||
| НДСЗаписиКнигиПродажОбороты.Покупатель,
|
||
| НДСЗаписиКнигиПродажОбороты.СтавкаНДС,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(СУММА(НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот), 0) <> 0
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ,
|
||
| &НачалоПериода,
|
||
| НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура
|
||
|ИЗ
|
||
| РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
|
||
| &НачалоПериода,
|
||
| ,
|
||
| День,
|
||
| Организация В (&Организация)
|
||
| И &ДополнительноеУсловие
|
||
| И ЗаписьДополнительногоЛиста
|
||
| И КорректируемыйПериод >= &НачалоПериода
|
||
| И КорректируемыйПериод <= &КонецПериода) КАК НДСЗаписиКнигиПродажОбороты
|
||
|
|
||
|СГРУППИРОВАТЬ ПО
|
||
| НДСЗаписиКнигиПродажОбороты.СчетФактура,
|
||
| НДСЗаписиКнигиПродажОбороты.Покупатель,
|
||
| НДСЗаписиКнигиПродажОбороты.СтавкаНДС,
|
||
| НДСЗаписиКнигиПродажОбороты.ИсправленныйСчетФактура";
|
||
|
||
Запрос.УстановитьПараметр("НачалоПериода", СтруктураПараметров.НачалоПериода);
|
||
Запрос.УстановитьПараметр("КонецПериода", КонецДня(СтруктураПараметров.КонецПериода));
|
||
Запрос.УстановитьПараметр("Организация", СтруктураПараметров.СписокОрганизаций);
|
||
Запрос.УстановитьПараметр("НачалоПримененияПостановления1137",
|
||
УчетНДСПереопределяемый.ПолучитьДатуНачалаДействияПостановления1137());
|
||
|
||
|
||
ДатаПроверкиПараметровУчета = КонецДня(СтруктураПараметров.КонецПериода);
|
||
ВерсияПостановленияНДС1137 = УчетНДСПереопределяемый.ВерсияПостановленияНДС1137(ДатаПроверкиПараметровУчета);
|
||
|
||
СтруктураПараметров.Вставить("ПрименяетсяОсвобождениеОтУплатыНДС",
|
||
УчетнаяПолитика.ПрименяетсяОсвобождениеОтУплатыНДС(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("ПлательщикНДС",
|
||
УчетнаяПолитика.ПлательщикНДС(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("ПлательщикНДСПрименяющийУСН",
|
||
УчетнаяПолитика.ПлательщикНДСПрименяющийУСН(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
|
||
МассивСтавокНДС = Перечисления.СтавкиНДС.СтавкиПоОперациямОтражаемымВКнигеПродаж(ВерсияПостановленияНДС1137);
|
||
|
||
Запрос.УстановитьПараметр("МассивСтавокНДС", МассивСтавокНДС);
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_НалоговыйАгентВсеВиды",
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгент(, Истина));
|
||
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"&ДополнительноеУсловие",
|
||
ДополнительноеУсловиеЗапроса(СтруктураПараметров));
|
||
|
||
Результат = Запрос.Выполнить();
|
||
Если Результат.Пустой() Тогда
|
||
Возврат СтруктураПараметров;
|
||
КонецЕсли;
|
||
|
||
Результат = Результат.Выгрузить();
|
||
|
||
Для Каждого СтрокаРезультата Из Результат Цикл
|
||
Если СтрокаРезультата.Порядок = 1 И СтрокаРезультата.ЕстьДопЛисты Тогда
|
||
СтруктураПараметров.КорректируемыйПериод = Истина;
|
||
ИначеЕсли СтрокаРезультата.ЕстьДопЛисты Тогда
|
||
СтруктураПараметров.ТекущийПериод = Истина;
|
||
КонецЕсли;
|
||
Если СтруктураПараметров.КорректируемыйПериод И СтруктураПараметров.ТекущийПериод Тогда
|
||
Прервать;
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
|
||
Возврат СтруктураПараметров;
|
||
|
||
КонецФункции
|
||
|
||
#Область ПолучениеЗаписей
|
||
|
||
// Используется в электронном доп. листе книги продаж
|
||
|
||
// Получить итоги за период книга продаж.
|
||
//
|
||
// Параметры:
|
||
// СтруктураПараметров - Структура - Структура параметров:
|
||
// * НалоговыйПериод - Дата.
|
||
// * КонецНалоговогоПериода - Дата.
|
||
// * ДатаФормированияДопЛиста - Дата.
|
||
// * Организация - СправочникСсылка.Организации.
|
||
// * ЗаписьДополнительногоЛиста - Булево.
|
||
//
|
||
// Возвращаемое значение:
|
||
// СтрокаТаблицыЗначений, Структура - Получить итоги за период книга продаж:
|
||
// * ВсегоПродаж - ОписаниеТипов - Число(15, 2).
|
||
// * СуммаБезНДС10 - ОписаниеТипов -Число(15, 2)
|
||
// * НДС10 - ОписаниеТипов - Число(15, 2)
|
||
// * СуммаБезНДС18 - ОписаниеТипов - Число(15, 2)
|
||
// * НДС18 - ОписаниеТипов - Число(15, 2)
|
||
// * СуммаБезНДС20 - ОписаниеТипов - Число(15, 2).
|
||
// * НДС20 - ОписаниеТипов - Число(15, 2).
|
||
// * НДС0 - ОписаниеТипов - Число(15, 2).
|
||
// * СуммаСовсемБезНДС - ОписаниеТипов -Число(15, 2).
|
||
Функция ПолучитьИтогиЗаПериодКнигаПродаж(СтруктураПараметров) Экспорт
|
||
|
||
ЭтоПечатьВыписок = Ложь;
|
||
Если СтруктураПараметров.Свойство("ЭтоВыписка") Тогда
|
||
Если СтруктураПараметров.ЭтоВыписка Тогда
|
||
ЭтоПечатьВыписок = Истина;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
Запрос = Новый Запрос;
|
||
Запрос.Текст =
|
||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||
| ЗаписиКнигиПродаж.МесяцДляВыписок КАК Период,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.ВсегоПродаж), 0) КАК ВсегоПродаж,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС22), 0) КАК СуммаБезНДС22,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС22), 0) КАК НДС22,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС20) + СУММА(ЗаписиКнигиПродаж.СуммаБезНДС18), 0) КАК СуммаБезНДС20Или18,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС20) + СУММА(ЗаписиКнигиПродаж.НДС18), 0) КАК НДС20Или18,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС20), 0) КАК СуммаБезНДС20,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС20), 0) КАК НДС20,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС18), 0) КАК СуммаБезНДС18,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС18), 0) КАК НДС18,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС10), 0) КАК СуммаБезНДС10,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС10), 0) КАК НДС10,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС7), 0) КАК СуммаБезНДС7,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС7), 0) КАК НДС7,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаБезНДС5), 0) КАК СуммаБезНДС5,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС5), 0) КАК НДС5,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.НДС0), 0) КАК НДС0,
|
||
| ЕСТЬNULL(СУММА(ЗаписиКнигиПродаж.СуммаСовсемБезНДС), 0) КАК СуммаСовсемБезНДС
|
||
|ИЗ
|
||
| (ВЫБРАТЬ
|
||
| &МесяцДляВыписок КАК МесяцДляВыписок,
|
||
| НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот КАК ВсегоПродаж,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС22)
|
||
| И НДСЗаписиКнигиПродажОбороты.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС22)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаБезНДС22,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС22)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС22,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС20)
|
||
| И НДСЗаписиКнигиПродажОбороты.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС20)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаБезНДС20,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС20)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС20,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС18)
|
||
| И НДСЗаписиКнигиПродажОбороты.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС18)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаБезНДС18,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС18)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС18,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС10)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаБезНДС10,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС10)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС10,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС7)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаБезНДС7,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС7)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС7,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС5)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаБезНДС5,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС5)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС5,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС = &СтавкаНДС0
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК НДС0,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС = &СтавкаБезНДС
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ КАК СуммаСовсемБезНДС
|
||
| ИЗ
|
||
| РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
|
||
| &НачалоПериода,
|
||
| &КонецПериода,
|
||
| Месяц,
|
||
| Организация В (&Организация)
|
||
| И &ДополнительноеУсловие
|
||
| И НЕ ЗаписьДополнительногоЛиста) КАК НДСЗаписиКнигиПродажОбороты
|
||
|
|
||
| ОБЪЕДИНИТЬ ВСЕ
|
||
|
|
||
| ВЫБРАТЬ
|
||
| &МесяцДляВыписок,
|
||
| НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС22)
|
||
| И НДСЗаписиКнигиПродажОбороты.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС22)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС22)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС20)
|
||
| И НДСЗаписиКнигиПродажОбороты.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС20)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС20)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС18)
|
||
| И НДСЗаписиКнигиПродажОбороты.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС18)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС18)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС10)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС10)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС7)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС7)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС5)
|
||
| И НЕ НДСЗаписиКнигиПродажОбороты.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС В (&СтавкиНДС5)
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС = &СтавкаНДС0
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродажОбороты.СтавкаНДС = &СтавкаБезНДС
|
||
| ТОГДА НДСЗаписиКнигиПродажОбороты.СуммаБезНДСОборот + НДСЗаписиКнигиПродажОбороты.НДСОборот
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ
|
||
| ИЗ
|
||
| РегистрНакопления.НДСЗаписиКнигиПродаж.Обороты(
|
||
| &НачалоПериода,
|
||
| &МоментФормированияДопЛиста,
|
||
| Месяц,
|
||
| Организация В (&Организация)
|
||
| И &ДополнительноеУсловие
|
||
| И (ЗаписьДополнительногоЛиста
|
||
| И КорректируемыйПериод >= &НачалоПериода
|
||
| И КорректируемыйПериод <= &КонецПериода)) КАК НДСЗаписиКнигиПродажОбороты) КАК ЗаписиКнигиПродаж
|
||
|
|
||
|СГРУППИРОВАТЬ ПО
|
||
| ЗаписиКнигиПродаж.МесяцДляВыписок";
|
||
|
||
Запрос.УстановитьПараметр("НачалоПериода", СтруктураПараметров.НалоговыйПериод);
|
||
Запрос.УстановитьПараметр("КонецПериода", КонецДня(СтруктураПараметров.КонецНалоговогоПериода));
|
||
Запрос.УстановитьПараметр("Организация", СтруктураПараметров.СписокОрганизаций);
|
||
Запрос.УстановитьПараметр("МоментФормированияДопЛиста",
|
||
Новый Граница(НачалоДня(СтруктураПараметров.ДатаФормированияДопЛиста),ВидГраницы.Исключая));
|
||
|
||
Если ЭтоПечатьВыписок Тогда
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"&МесяцДляВыписок", "НДСЗаписиКнигиПродажОбороты.Период");
|
||
Иначе
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"СГРУППИРОВАТЬ ПО
|
||
| ЗаписиКнигиПродаж.МесяцДляВыписок", "");
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"&МесяцДляВыписок", "Истина");
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"Месяц", "Период");
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"ЗаписиКнигиПродаж.ПериодДляВыписок", "Истина");
|
||
КонецЕсли;
|
||
|
||
ДатаПроверкиПараметровУчета = КонецДня(СтруктураПараметров.КонецНалоговогоПериода);
|
||
|
||
ВерсияПостановленияНДС1137 = УчетНДСПереопределяемый.ВерсияПостановленияНДС1137(ДатаПроверкиПараметровУчета);
|
||
СтруктураПараметров.Вставить("ПрименяетсяОсвобождениеОтУплатыНДС",
|
||
УчетнаяПолитика.ПрименяетсяОсвобождениеОтУплатыНДС(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("ПлательщикНДС",
|
||
УчетнаяПолитика.ПлательщикНДС(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("ПлательщикНДСПрименяющийУСН",
|
||
УчетнаяПолитика.ПлательщикНДСПрименяющийУСН(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
|
||
МассивСтавокНДС = Перечисления.СтавкиНДС.СтавкиПоОперациямОтражаемымВКнигеПродаж(ВерсияПостановленияНДС1137);
|
||
Запрос.УстановитьПараметр("МассивСтавокНДС", МассивСтавокНДС);
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_НалоговыйАгентВсеВиды",
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгент(, Истина));
|
||
|
||
СтавкиНДС22 = Новый Массив();
|
||
СтавкиНДС22.Добавить(Перечисления.СтавкиНДС.НДС22);
|
||
СтавкиНДС22.Добавить(Перечисления.СтавкиНДС.НДС22_122);
|
||
|
||
СтавкиНДС20 = Новый Массив();
|
||
СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС20);
|
||
СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС20_120);
|
||
|
||
СтавкиНДС18 = Новый Массив();
|
||
СтавкиНДС18.Добавить(Перечисления.СтавкиНДС.НДС18);
|
||
СтавкиНДС18.Добавить(Перечисления.СтавкиНДС.НДС18_118);
|
||
|
||
СтавкиНДС10 = Новый Массив();
|
||
СтавкиНДС10.Добавить(Перечисления.СтавкиНДС.НДС10);
|
||
СтавкиНДС10.Добавить(Перечисления.СтавкиНДС.НДС10_110);
|
||
|
||
СтавкиНДС7 = Новый Массив();
|
||
СтавкиНДС7.Добавить(Перечисления.СтавкиНДС.НДС7);
|
||
СтавкиНДС7.Добавить(Перечисления.СтавкиНДС.НДС7_107);
|
||
|
||
СтавкиНДС5 = Новый Массив();
|
||
СтавкиНДС5.Добавить(Перечисления.СтавкиНДС.НДС5);
|
||
СтавкиНДС5.Добавить(Перечисления.СтавкиНДС.НДС5_105);
|
||
|
||
СтавкаНДС0 = Перечисления.СтавкиНДС.НДС0;
|
||
СтавкаБезНДС = Перечисления.СтавкиНДС.БезНДС;
|
||
|
||
Запрос.УстановитьПараметр("СтавкиНДС22", СтавкиНДС22);
|
||
Запрос.УстановитьПараметр("СтавкиНДС20", СтавкиНДС20);
|
||
Запрос.УстановитьПараметр("СтавкиНДС18", СтавкиНДС18);
|
||
Запрос.УстановитьПараметр("СтавкиНДС10", СтавкиНДС10);
|
||
Запрос.УстановитьПараметр("СтавкиНДС7", СтавкиНДС7);
|
||
Запрос.УстановитьПараметр("СтавкиНДС5", СтавкиНДС5);
|
||
Запрос.УстановитьПараметр("СтавкаНДС0", СтавкаНДС0);
|
||
Запрос.УстановитьПараметр("СтавкаБезНДС", СтавкаБезНДС);
|
||
|
||
ВидыЦенностей_Аванс = Новый Массив;
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные0);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.ВозвратАвансовПолученных);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные);
|
||
// Для итогов авансы можно учитывать вместе с выделенными суммовыми разницами - методика отражения в книге одинаковая.
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.СуммыСвязанныеСРасчетамиПоОплате);
|
||
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_Аванс", ВидыЦенностей_Аванс);
|
||
|
||
Запрос.Текст = СтрЗаменить(
|
||
Запрос.Текст,
|
||
"&ДополнительноеУсловие",
|
||
ДополнительноеУсловиеЗапроса(СтруктураПараметров, Ложь));
|
||
|
||
ИтогЗаПериод = Запрос.Выполнить();
|
||
|
||
Если НЕ ИтогЗаПериод.Пустой() Тогда
|
||
|
||
Если ЭтоПечатьВыписок Тогда
|
||
Возврат ИтогЗаПериод.Выгрузить();
|
||
Иначе
|
||
Возврат ИтогЗаПериод.Выгрузить()[0];
|
||
КонецЕсли;
|
||
|
||
Иначе
|
||
|
||
ИтогЗаПериод = Новый Структура;
|
||
ИтогЗаПериод.Вставить("ВсегоПродаж", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС5", 0);
|
||
ИтогЗаПериод.Вставить("НДС5", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС7", 0);
|
||
ИтогЗаПериод.Вставить("НДС7", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС10", 0);
|
||
ИтогЗаПериод.Вставить("НДС10", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС18", 0);
|
||
ИтогЗаПериод.Вставить("НДС18", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС22", 0);
|
||
ИтогЗаПериод.Вставить("НДС22", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС20", 0);
|
||
ИтогЗаПериод.Вставить("НДС20", 0);
|
||
ИтогЗаПериод.Вставить("СуммаБезНДС20Или18", 0);
|
||
ИтогЗаПериод.Вставить("НДС20Или18", 0);
|
||
ИтогЗаПериод.Вставить("НДС0", 0);
|
||
ИтогЗаПериод.Вставить("СуммаСовсемБезНДС", 0);
|
||
Если ЭтоПечатьВыписок Тогда
|
||
ИтогЗаПериод.Вставить("Период", '00010101');
|
||
КонецЕсли;
|
||
|
||
Возврат ИтогЗаПериод;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныеПроцедурыИФункции
|
||
|
||
Процедура ОпределитьПараметрыФормированияОтчета(СтруктураПараметров)
|
||
|
||
ДатаПроверкиПараметровУчета = СтруктураПараметров.КонецПериода;
|
||
|
||
Если СтруктураПараметров.ЗаписьДополнительногоЛиста Тогда
|
||
Если СтруктураПараметров.ЗаполнениеДокумента ИЛИ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ДатаПроверкиПараметровУчета = СтруктураПараметров.КонецНалоговогоПериода;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
ПлательщикНДС = УчетнаяПолитика.ПлательщикНДС(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета);
|
||
ПлательщикНДСПрименяющийУСН = УчетнаяПолитика.ПлательщикНДСПрименяющийУСН(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета);
|
||
|
||
// В соответствии с письмом ФНС России от 19.04.2018 СД-4-3/7484@ неплательщики НДС
|
||
// при зачете предварительной оплаты, выданной поставщику товаров п.8 ст. 161 НК
|
||
// в 2018-м году регистрируют вычет исчисленного ранее (с этой предварительной оплаты) налога
|
||
// в книге продаж в виде сторнирующей записи.
|
||
// Установим параметр "ВычетыНалоговогоАгентаОтражаютсяВКнигеПродаж" в значение "Истина",
|
||
// затем вызовем формирование отчета "Книга покупок", отчет выберет данные по вычетам неплательщика,
|
||
// которые будут отображены в составе Книги продаж.
|
||
|
||
ВычетыНалоговогоАгентаОтражаютсяВКнигеПродаж = ДатаПроверкиПараметровУчета >= '20180101'
|
||
И ДатаПроверкиПараметровУчета < '20190101'
|
||
И НЕ ПлательщикНДС;
|
||
|
||
СтруктураПараметров.Вставить("ВерсияПостановленияНДС1137",
|
||
УчетНДСПереопределяемый.ВерсияПостановленияНДС1137(ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("Постановление1137_2019",
|
||
УчетНДСПереопределяемый.ПрименяетсяПостановление15(ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("ПлательщикНДС", ПлательщикНДС);
|
||
СтруктураПараметров.Вставить("ПлательщикНДСПрименяющийУСН", ПлательщикНДСПрименяющийУСН);
|
||
СтруктураПараметров.Вставить("ПрименяетсяОсвобождениеОтУплатыНДС",
|
||
УчетнаяПолитика.ПрименяетсяОсвобождениеОтУплатыНДС(СтруктураПараметров.Организация, ДатаПроверкиПараметровУчета));
|
||
СтруктураПараметров.Вставить("ВычетыНалоговогоАгентаОтражаютсяВКнигеПродаж", ВычетыНалоговогоАгентаОтражаютсяВКнигеПродаж);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура СформироватьОсновнойРаздел(СтруктураПараметров, Результат);
|
||
|
||
ТабличныйДокумент = Новый ТабличныйДокумент;
|
||
ТабличныйДокумент.Очистить();
|
||
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КнигаПродаж";
|
||
ТабличныйДокумент.ЧерноБелаяПечать = Истина;
|
||
|
||
СтруктураСекций = Новый Структура();
|
||
|
||
ПрименяетсяПостановление1448 = УчетНДСПереопределяемый.ПрименяетсяПостановление1448(СтруктураПараметров.КонецПериода);
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 9 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж26");
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 8 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж2026");
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли ПрименяетсяПостановление1448 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж1448"); // Общий макет для книги и доп. листов
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж534"); // Общий макет для книги и доп. листов
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли УчетНДСПереопределяемый.ПрименяетсяПостановление15(СтруктураПараметров.КонецПериода) Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж15");
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 4 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж981");
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 3 Тогда
|
||
Если СтруктураПараметров.ЗаполнениеДекларации
|
||
И СтруктураПараметров.ПравилаЗаполнения = "2017Кв1" Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж1137_2017");
|
||
Иначе
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж735");
|
||
КонецЕсли;
|
||
Иначе
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж1137");
|
||
КонецЕсли;
|
||
|
||
НазваниеРаздела = Нстр("ru='Основной раздел'");
|
||
|
||
ОбластьСтрокиДляПовтора = Макет.ПолучитьОбласть("СтрокиДляПовтора");
|
||
|
||
СекцияВсего = Макет.ПолучитьОбласть("Всего");
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
СтруктураСекций.Вставить("ШапкаРаздел9", Макет.ПолучитьОбласть("ШапкаРаздел9"));
|
||
СтруктураСекций.Вставить("ДекларацияИтоги", Макет.ПолучитьОбласть("ДекларацияИтоги"));
|
||
|
||
ОбластьСтрокиДляПовтора.Область("НомераГрафКнига").Видимость = Ложь;
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
ОбластьСтрокиДляПовтора.Область("НомераГрафДекларация91").Видимость = Ложь;
|
||
КонецЕсли;
|
||
СтруктураСекций.Вставить("СтрокиДляПовтора", ОбластьСтрокиДляПовтора);
|
||
|
||
Иначе
|
||
|
||
Если ОбластьСтрокиДляПовтора.Области.Найти("НомераГрафДекларация") <> Неопределено Тогда
|
||
ОбластьСтрокиДляПовтора.Область("НомераГрафДекларация").Видимость = Ложь;
|
||
КонецЕсли;
|
||
СтруктураСекций.Вставить("СтрокиДляПовтора", ОбластьСтрокиДляПовтора);
|
||
|
||
Если СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме Тогда
|
||
Секция = Макет.ПолучитьОбласть("ШапкаИнформация");
|
||
ТабличныйДокумент.Вывести(Секция);
|
||
КонецЕсли;
|
||
|
||
СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
|
||
СтруктураПараметров.Организация, СтруктураПараметров.КонецПериода, , , , Истина);
|
||
НазваниеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм");
|
||
ИННОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "ИНН", Ложь);
|
||
КППОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "КПП", Ложь);
|
||
|
||
Секция = Макет.ПолучитьОбласть("Шапка");
|
||
Если Секция.Области.Найти("НомераГрафДекларация") <> Неопределено Тогда
|
||
Секция.Область("НомераГрафДекларация").Видимость = Ложь;
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
СекцияЗаголовок = Макет.ПолучитьОбласть("Заголовок");
|
||
ТабличныйДокумент.Вывести(СекцияЗаголовок);
|
||
Секция.Область("Период91").Видимость = Ложь;
|
||
Секция.Область("НомераГрафДекларация91").Видимость = Ложь;
|
||
КонецЕсли;
|
||
|
||
Секция.Параметры.УстановленныйОтбор = "";
|
||
Секция.Параметры.НачалоПериода = Формат(СтруктураПараметров.НачалоПериода, "ДФ=dd.MM.yyyy");
|
||
Секция.Параметры.КонецПериода = Формат(СтруктураПараметров.КонецПериода, "ДФ=dd.MM.yyyy");
|
||
Секция.Параметры.НазваниеОрганизации = НазваниеОрганизации;
|
||
Секция.Параметры.ИННКППОрганизации = ИННОрганизации
|
||
+ ?(НЕ ЗначениеЗаполнено(КППОрганизации), "", ("/" + КППОрганизации));
|
||
|
||
Если НЕ СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме И СтруктураПараметров.ОтбиратьПоКонтрагенту Тогда
|
||
|
||
Если ОбщегоНазначения.ОбъектЯвляетсяГруппой(СтруктураПараметров.КонтрагентДляОтбора) Тогда
|
||
НадписьОтбор = НСтр("ru='Отбор: Контрагент в группе %1'");
|
||
Иначе
|
||
НадписьОтбор = НСтр("ru='Отбор: Контрагент = %1'");
|
||
КонецЕсли;
|
||
Секция.Параметры.УстановленныйОтбор = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||
НадписьОтбор, СтруктураПараметров.КонтрагентДляОтбора);
|
||
|
||
КонецЕсли;
|
||
|
||
ТабличныйДокумент.Вывести(Секция);
|
||
|
||
КонецЕсли;
|
||
|
||
Если Результат.Пустой() Тогда
|
||
|
||
СтруктураПараметров.СчетчикСегментов = СтруктураПараметров.СчетчикСегментов + 1;
|
||
|
||
ТабличныйДокумент.Вывести(СекцияВсего);
|
||
|
||
Если СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме
|
||
И НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ВывестиПодвал(СтруктураПараметров, ТабличныйДокумент, Макет);
|
||
КонецЕсли;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, НазваниеРаздела, СтруктураПараметров.СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
Возврат;
|
||
|
||
КонецЕсли;
|
||
|
||
СтруктураСекций.Вставить("СекцияСтрока", Макет.ПолучитьОбласть("Строка"));
|
||
Если СтруктураПараметров.ГруппироватьПоКонтрагентам Тогда
|
||
СтруктураСекций.Вставить("СекцияКонтрагент", Макет.ПолучитьОбласть("Контрагент"));
|
||
СтруктураСекций.Вставить("СекцияВсегоКонтрагент", Макет.ПолучитьОбласть("ВсегоКонтрагент"));
|
||
КонецЕсли;
|
||
|
||
СтрокаИтогПоОрганизации = НоваяСтрокаИтоговКнигиПродаж();
|
||
|
||
ПреобразоватьЗаписиКнигиПродаж(
|
||
СтруктураПараметров,
|
||
Результат,
|
||
ТабличныйДокумент,
|
||
СтрокаИтогПоОрганизации,
|
||
СтруктураСекций,
|
||
?(СтруктураПараметров.Свойство("ТабличнаяЧасть"),СтруктураПараметров.ТабличнаяЧасть, Неопределено));
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СекцияВсего.Параметры.Заполнить(СтрокаИтогПоОрганизации);
|
||
ТабличныйДокумент.Вывести(СекцияВсего);
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.ПовторятьПриПечатиСтроки = ТабличныйДокумент.Область("СтрокиДляПовтора");
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме
|
||
И НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ВывестиПодвал(СтруктураПараметров, ТабличныйДокумент, Макет);
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
ИмяРаздела = "Раздел9";
|
||
|
||
Если СтруктураПараметров.СчетчикСтрокТекущегоСегмента <> 0 Тогда
|
||
|
||
ПерваяСтрокаСегмента = СтруктураПараметров.Счетчик - СтруктураПараметров.СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
|
||
КонецЕсли;
|
||
|
||
ИтогиРаздел9 = Новый Структура(
|
||
"СтПродБезНДС22,СтПродБезНДС20Или18,СтПродБезНДС20,СтПродБезНДС18,СтПродБезНДС10,СтПродБезНДС0, СтПродБезНДС7, СтПродБезНДС5,
|
||
|СумНДСВсКПр22,СумНДСВсКПр20Или18,СумНДСВсКПр20,СумНДСВсКПр18,СумНДСВсКПр10,СтПродОсвВсКПр, СумНДСВсКПр7, СумНДСВсКПр5");
|
||
|
||
ИтогиРаздел9.СтПродБезНДС22 = СтрокаИтогПоОрганизации.СуммаБезНДС22;
|
||
ИтогиРаздел9.СтПродБезНДС20Или18 = СтрокаИтогПоОрганизации.СуммаБезНДС20Или18;
|
||
ИтогиРаздел9.СтПродБезНДС20 = СтрокаИтогПоОрганизации.СуммаБезНДС20;
|
||
ИтогиРаздел9.СтПродБезНДС18 = СтрокаИтогПоОрганизации.СуммаБезНДС18;
|
||
ИтогиРаздел9.СтПродБезНДС10 = СтрокаИтогПоОрганизации.СуммаБезНДС10;
|
||
ИтогиРаздел9.СтПродБезНДС0 = СтрокаИтогПоОрганизации.НДС0;
|
||
|
||
ИтогиРаздел9.СумНДСВсКПр22 = СтрокаИтогПоОрганизации.НДС22;
|
||
ИтогиРаздел9.СумНДСВсКПр20Или18 = СтрокаИтогПоОрганизации.НДС20Или18;
|
||
ИтогиРаздел9.СумНДСВсКПр20 = СтрокаИтогПоОрганизации.НДС20;
|
||
ИтогиРаздел9.СумНДСВсКПр18 = СтрокаИтогПоОрганизации.НДС18;
|
||
ИтогиРаздел9.СумНДСВсКПр10 = СтрокаИтогПоОрганизации.НДС10;
|
||
ИтогиРаздел9.СтПродОсвВсКПр = СтрокаИтогПоОрганизации.СуммаСовсемБезНДС;
|
||
|
||
ИтогиРаздел9.СтПродБезНДС7 = СтрокаИтогПоОрганизации.СуммаБезНДС7;
|
||
ИтогиРаздел9.СтПродБезНДС5 = СтрокаИтогПоОрганизации.СуммаБезНДС5;
|
||
ИтогиРаздел9.СумНДСВсКПр7 = СтрокаИтогПоОрганизации.НДС7;
|
||
ИтогиРаздел9.СумНДСВсКПр5 = СтрокаИтогПоОрганизации.НДС5;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
ИтогиРаздел9.СтПродБезНДС20 = СтрокаИтогПоОрганизации.СуммаБезНДС20Или18;
|
||
ИтогиРаздел9.СумНДСВсКПр20 = СтрокаИтогПоОрганизации.НДС20Или18;
|
||
КонецЕсли;
|
||
|
||
|
||
ИначеЕсли СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
|
||
ОбщиеСведения = Новый Структура(
|
||
"СтТовРубКоп22,СтТовРубКоп20,СтТовРубКоп18_20,СтТовРубКоп18,СтТовРубКоп10,СтТовРубКоп0,
|
||
|СумНДСРубКоп22,СумНДСРубКоп20,СумНДСРубКоп18_20,СумНДСРубКоп18,СумНДСРубКоп10,СтПродОсвНДСРубКоп");
|
||
ОбщиеСведения.СтТовРубКоп22 = СтрокаИтогПоОрганизации.СуммаБезНДС22;
|
||
ОбщиеСведения.СтТовРубКоп20 = СтрокаИтогПоОрганизации.СуммаБезНДС20;
|
||
ОбщиеСведения.СтТовРубКоп18_20 = СтрокаИтогПоОрганизации.СуммаБезНДС20Или18;
|
||
ОбщиеСведения.СтТовРубКоп18 = СтрокаИтогПоОрганизации.СуммаБезНДС18;
|
||
ОбщиеСведения.СтТовРубКоп10 = СтрокаИтогПоОрганизации.СуммаБезНДС10;
|
||
ОбщиеСведения.СтТовРубКоп0 = СтрокаИтогПоОрганизации.НДС0;
|
||
ОбщиеСведения.СумНДСРубКоп22 = СтрокаИтогПоОрганизации.НДС22;
|
||
ОбщиеСведения.СумНДСРубКоп20 = СтрокаИтогПоОрганизации.НДС20;
|
||
ОбщиеСведения.СумНДСРубКоп18_20 = СтрокаИтогПоОрганизации.НДС20Или18;
|
||
ОбщиеСведения.СумНДСРубКоп18 = СтрокаИтогПоОрганизации.НДС18;
|
||
ОбщиеСведения.СумНДСРубКоп10 = СтрокаИтогПоОрганизации.НДС10;
|
||
ОбщиеСведения.СтПродОсвНДСРубКоп = СтрокаИтогПоОрганизации.СуммаСовсемБезНДС;
|
||
|
||
Если ПрименяетсяПостановление1448 Тогда
|
||
ОбщиеСведения.Вставить("СтТовРубКоп7", СтрокаИтогПоОрганизации.СуммаБезНДС7);
|
||
ОбщиеСведения.Вставить("СтТовРубКоп5", СтрокаИтогПоОрганизации.СуммаБезНДС5);
|
||
ОбщиеСведения.Вставить("СумНДСРубКоп7", СтрокаИтогПоОрганизации.НДС7);
|
||
ОбщиеСведения.Вставить("СумНДСРубКоп5", СтрокаИтогПоОрганизации.НДС5);
|
||
КонецЕсли;
|
||
|
||
СтруктураПараметров.ОбщиеСведения = ОбщиеСведения;
|
||
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, НазваниеРаздела, СтруктураПараметров.СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
ИначеЕсли НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
Если СтруктураПараметров.СчетчикСтрокТекущегоСегмента <> 0 Тогда
|
||
// Добавляем последний раздел
|
||
|
||
Если СтруктураПараметров.СчетчикСегментов < 2 Тогда
|
||
ЗаголовокЛиста = НазваниеРаздела;
|
||
Иначе
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СтруктураПараметров.СчетчикСегментов);
|
||
КонецЕсли;
|
||
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, ЗаголовокЛиста, СтруктураПараметров.СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
ИначеЕсли СтруктураПараметров.Счетчик <> 0 Тогда
|
||
// Число строк последнего раздела совпало с предельным. Сам раздел был добавлен в УчетНДС.ПреобразоватьЗаписиКнигиПродаж().
|
||
// Заменим табличный документ в этом разделе отчета на табличный документ с итогами и подвалом.
|
||
РазделыОтчета = ПроверкаКонтрагентов.РазделыОтчета(СтруктураПараметров);
|
||
Если РазделыОтчета.Количество() > 0 Тогда
|
||
РазделОтчета = РазделыОтчета[РазделыОтчета.Количество()-1];
|
||
ТабличныйДокумент = РазделОтчета.ХранилищеОтчета.Получить();
|
||
|
||
ТабличныйДокумент.Вывести(СекцияВсего);
|
||
Если СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме Тогда
|
||
ВывестиПодвал(СтруктураПараметров, ТабличныйДокумент, Макет);
|
||
КонецЕсли;
|
||
|
||
РазделОтчета.ХранилищеОтчета = Новый ХранилищеЗначения(ТабличныйДокумент, Новый СжатиеДанных(9));
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура СформироватьДополнительныеЛисты(СтруктураПараметров, Результат)
|
||
|
||
Перем ТабличныйДокумент;
|
||
|
||
Если Результат.Пустой() Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
НомерОтображаемогоПериода = 0;
|
||
|
||
ИтогПоПериодам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
СтруктураПараметров.Вставить("СчетчикСтрокДопЛиста", 0);
|
||
СтруктураПараметров.Вставить("СчетчикСтрокТекущегоСегмента", 0);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
ИтогиРаздел91 = Новый Структура(
|
||
"ИтСтПродКПр22,ИтСтПродКПр20Или18,ИтСтПродКПр20,ИтСтПродКПр18,ИтСтПродКПр10,ИтСтПродКПр7,ИтСтПродКПр5,ИтСтПродКПр0,
|
||
|СумНДСИтКПр22,СумНДСИтКПр20Или18,СумНДСИтКПр20,СумНДСИтКПр18,СумНДСИтКПр10,СумНДСИтКПр7,СумНДСИтКПр5,ИтСтПродОсвКПр,
|
||
|СтПродВсП1Р9_22,СтПродВсП1Р9_20Или18,СтПродВсП1Р9_20,СтПродВсП1Р9_18,СтПродВсП1Р9_10,СтПродВсП1Р9_7,СтПродВсП1Р9_5,СтПродВсП1Р9_0,
|
||
|СумНДСВсП1Р9_22,СумНДСВсП1Р9_20Или18,СумНДСВсП1Р9_20,СумНДСВсП1Р9_18,СумНДСВсП1Р9_10,СумНДСВсП1Р9_7,СумНДСВсП1Р9_5,СтПродОсвП1Р9Вс");
|
||
|
||
ПараметрыПолученияИтогов = Новый Структура;
|
||
ПараметрыПолученияИтогов.Вставить("НалоговыйПериод", НачалоКвартала(СтруктураПараметров.НачалоПериода));
|
||
ПараметрыПолученияИтогов.Вставить("КонецНалоговогоПериода", КонецКвартала(СтруктураПараметров.КонецНалоговогоПериода));
|
||
ПараметрыПолученияИтогов.Вставить("ДатаФормированияДопЛиста", НачалоКвартала(СтруктураПараметров.НачалоПериода));
|
||
ПараметрыПолученияИтогов.Вставить("СписокОрганизаций", СтруктураПараметров.СписокОрганизаций);
|
||
ПараметрыПолученияИтогов.Вставить("Организация", СтруктураПараметров.Организация);
|
||
ПараметрыПолученияИтогов.Вставить("ЗаписьДополнительногоЛиста", Ложь);
|
||
|
||
ИтогПоКнигеПродаж = ПолучитьИтогиЗаПериодКнигаПродаж(ПараметрыПолученияИтогов);
|
||
|
||
ИтогиРаздел91.ИтСтПродКПр22 = ИтогПоКнигеПродаж.СуммаБезНДС22;
|
||
ИтогиРаздел91.ИтСтПродКПр20Или18 = ИтогПоКнигеПродаж.СуммаБезНДС20Или18;
|
||
ИтогиРаздел91.ИтСтПродКПр20 = ИтогПоКнигеПродаж.СуммаБезНДС20;
|
||
ИтогиРаздел91.ИтСтПродКПр18 = ИтогПоКнигеПродаж.СуммаБезНДС18;
|
||
ИтогиРаздел91.ИтСтПродКПр10 = ИтогПоКнигеПродаж.СуммаБезНДС10;
|
||
ИтогиРаздел91.ИтСтПродКПр7 = ИтогПоКнигеПродаж.СуммаБезНДС7;
|
||
ИтогиРаздел91.ИтСтПродКПр5 = ИтогПоКнигеПродаж.СуммаБезНДС5;
|
||
ИтогиРаздел91.ИтСтПродКПр0 = ИтогПоКнигеПродаж.НДС0;
|
||
|
||
ИтогиРаздел91.СумНДСИтКПр22 = ИтогПоКнигеПродаж.НДС22;
|
||
ИтогиРаздел91.СумНДСИтКПр20Или18 = ИтогПоКнигеПродаж.НДС20Или18;
|
||
ИтогиРаздел91.СумНДСИтКПр20 = ИтогПоКнигеПродаж.НДС20;
|
||
ИтогиРаздел91.СумНДСИтКПр18 = ИтогПоКнигеПродаж.НДС18;
|
||
ИтогиРаздел91.СумНДСИтКПр10 = ИтогПоКнигеПродаж.НДС10;
|
||
ИтогиРаздел91.СумНДСИтКПр7 = ИтогПоКнигеПродаж.НДС7;
|
||
ИтогиРаздел91.СумНДСИтКПр5 = ИтогПоКнигеПродаж.НДС5;
|
||
ИтогиРаздел91.ИтСтПродОсвКПр = ИтогПоКнигеПродаж.СуммаСовсемБезНДС;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
ИтогиРаздел91.ИтСтПродКПр20 = ИтогПоКнигеПродаж.СуммаБезНДС20Или18;
|
||
ИтогиРаздел91.СумНДСИтКПр20 = ИтогПоКнигеПродаж.НДС20Или18;
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
ДанныеОтчета = Новый Массив;
|
||
|
||
Пока ИтогПоПериодам.Следующий() Цикл
|
||
|
||
НомерЛиста = 0;
|
||
|
||
НомерОтображаемогоПериода = НомерОтображаемогоПериода + 1;
|
||
НалоговыйПериод = ПредставлениеПериода(
|
||
ИтогПоПериодам.НалоговыйПериод, КонецДня(ИтогПоПериодам.КонецНалоговогоПериода), "ФП = Истина");
|
||
|
||
ТабличныйДокумент = Новый ТабличныйДокумент;
|
||
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
|
||
ТабличныйДокумент.АвтоМасштаб = Истина;
|
||
|
||
СтруктураПараметров.Вставить("СчетчикСегментовНалоговогоПериода", 1);
|
||
|
||
ИтогПоПериодамКорректировки = ИтогПоПериодам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ИтогПоПериодамКорректировки.Следующий() Цикл;
|
||
|
||
СтруктураСекций = Новый Структура();
|
||
|
||
ВерсияПостановленияНДС1137 = УчетНДСПереопределяемый.ВерсияПостановленияНДС1137(
|
||
ИтогПоПериодамКорректировки.КонецНалоговогоПериода);
|
||
СтруктураПараметров.Вставить("ВерсияПостановленияНДС1137", ВерсияПостановленияНДС1137);
|
||
ПрименяетсяПостановление1448 = УчетНДСПереопределяемый.ПрименяетсяПостановление1448(ИтогПоПериодамКорректировки.КонецНалоговогоПериода);
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 9 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж26");
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 8 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж2026");
|
||
|
||
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли ПрименяетсяПостановление1448 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж1448");
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
Макет = ПолучитьОбщийМакет("КнигаПродаж534"); // Общий макет для книги и доп. листов
|
||
СтруктураСекций.Вставить("СекцияСтрокаРНПТ", Макет.ПолучитьОбласть("СтрокаРНПТ"));
|
||
ИначеЕсли УчетНДСПереопределяемый.ПрименяетсяПостановление15(ИтогПоПериодамКорректировки.КонецНалоговогоПериода) Тогда
|
||
Макет = ПолучитьОбщийМакет("ДополнительныйЛистКнигиПродаж15");
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 1 Тогда
|
||
Макет = ПолучитьОбщийМакет("ДополнительныйЛистКнигиПродаж1137");
|
||
СтруктураПараметров.ЗаполнениеДекларации = Ложь;
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 2 Тогда
|
||
Макет = ПолучитьОбщийМакет("ДополнительныйЛистКнигиПродаж952");
|
||
СтруктураПараметров.ЗаполнениеДекларации = Ложь;
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 3 Тогда
|
||
Если СтруктураПараметров.ЗаполнениеДекларации
|
||
И СтруктураПараметров.ПравилаЗаполнения = "2017Кв1" Тогда
|
||
Макет = ПолучитьОбщийМакет("ДополнительныйЛистКнигиПродаж1137_2017");
|
||
Иначе
|
||
Макет = ПолучитьОбщийМакет("ДополнительныйЛистКнигиПродаж735");
|
||
КонецЕсли;
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 = 4 Тогда
|
||
Макет = ПолучитьОбщийМакет("ДополнительныйЛистКнигиПродаж981");
|
||
КонецЕсли;
|
||
|
||
ОбластьСтрокиПовтора = Макет.ПолучитьОбласть("СтрокиДляПовтора");
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СтруктураСекций.Вставить("ШапкаРаздел91", Макет.ПолучитьОбласть("ШапкаРаздел91"));
|
||
СтруктураСекций.Вставить("ДекларацияИтоги", Макет.ПолучитьОбласть("ДекларацияИтоги91"));
|
||
ОбластьСтрокиПовтора.Область("НомераГрафКнига").Видимость = Ложь;
|
||
ОбластьСтрокиПовтора.Область("НомераГрафДекларация").Видимость = Ложь;
|
||
Иначе
|
||
ОбластьСтрокиПовтора.Область("НомераГрафДекларация").Видимость = Ложь;
|
||
ОбластьСтрокиПовтора.Область("НомераГрафДекларация91").Видимость = Ложь;
|
||
КонецЕсли;
|
||
ИначеЕсли СтруктураПараметров.ВерсияПостановленияНДС1137 >= 3 Тогда
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СтруктураСекций.Вставить("ШапкаРаздел91", Макет.ПолучитьОбласть("ШапкаРаздел91"));
|
||
СтруктураСекций.Вставить("ДекларацияИтоги", Макет.ПолучитьОбласть("ДекларацияИтоги"));
|
||
ОбластьСтрокиПовтора.Область("НомераГрафКнига").Видимость = Ложь;
|
||
Иначе
|
||
ОбластьСтрокиПовтора.Область("НомераГрафДекларация").Видимость = Ложь;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
СтруктураСекций.Вставить("СекцияСтрока", Макет.ПолучитьОбласть("Строка"));
|
||
СтруктураСекций.Вставить("СтрокиДляПовтора", ОбластьСтрокиПовтора);
|
||
|
||
Секция = Макет.ПолучитьОбласть("Строка");
|
||
СтрокаИтого = Макет.ПолучитьОбласть("Итого");
|
||
СтрокаВсего = Макет.ПолучитьОбласть("Всего");
|
||
|
||
Если СтруктураПараметров.ГруппироватьПоКонтрагентам Тогда
|
||
СекцияКонтрагент = Макет.ПолучитьОбласть("Контрагент");
|
||
СекцияВсегоКонтрагент = Макет.ПолучитьОбласть("ВсегоКонтрагент");
|
||
КонецЕсли;
|
||
|
||
// Формирование шапки доп. листа
|
||
ОкончаниеПредыдущегоРаздела = ТабличныйДокумент.ВысотаТаблицы;
|
||
НомерЛиста = НомерЛиста + 1;
|
||
|
||
СтруктураПараметров.Вставить("НалоговыйПериод",
|
||
?(СтруктураПараметров.ЗаполнениеДекларации,
|
||
СтруктураПараметров.НачалоНалоговогоПериода, ИтогПоПериодамКорректировки.НалоговыйПериод));
|
||
СтруктураПараметров.Вставить("КонецНалоговогоПериода",
|
||
КонецКвартала(ИтогПоПериодамКорректировки.КонецНалоговогоПериода));
|
||
СтруктураПараметров.Вставить("ДатаОформления", ИтогПоПериодамКорректировки.ДатаОформления);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
УчетНДС.ВывестиШапкуДопЛиста(ТабличныйДокумент, Макет, СтруктураПараметров, НомерЛиста);
|
||
КонецЕсли;
|
||
|
||
СтруктураПараметров.ДатаФормированияДопЛиста = ИтогПоПериодамКорректировки.ДатаОформления;
|
||
|
||
ИтогЗаПериод = ПолучитьИтогиЗаПериодКнигаПродаж(СтруктураПараметров);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СтрокаИтого.Параметры.Заполнить(ИтогЗаПериод);
|
||
ТабличныйДокумент.Вывести(СтрокаИтого);
|
||
Иначе
|
||
ВывестиШапкуРаздела91Декларации(ТабличныйДокумент, Макет, СтруктураПараметров, НомерЛиста, ИтогЗаПериод);
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
|
||
ОбщиеСведения = Новый Структура("НомерДопЛКнПрод,Период,ОтчетГод,ДатаДопЛКнПрод,Итого,Всего");
|
||
|
||
ОбщиеСведения.НомерДопЛКнПрод = НомерЛиста;
|
||
ОбщиеСведения.Период = СтруктураПараметров.ПериодПоСКНП;
|
||
ОбщиеСведения.ОтчетГод = Строка(Формат(Год(ИтогПоПериодамКорректировки.НалоговыйПериод),"ЧГ=0"));
|
||
ОбщиеСведения.ДатаДопЛКнПрод = Строка(Формат(ИтогПоПериодамКорректировки.ДатаОформления, "ДЛФ=Д"));
|
||
|
||
Итого = Новый Структура(
|
||
"СтТовРубКоп22,СтТовРубКоп20,СтТовРубКоп18_20,СтТовРубКоп18,СтТовРубКоп10,СтТовРубКоп0,
|
||
|СумНДСРубКоп22,СумНДСРубКоп20,СумНДСРубКоп18_20,СумНДСРубКоп18,СумНДСРубКоп10,СтПродОсвНДСРубКоп");
|
||
Итого.СтТовРубКоп22 = ИтогЗаПериод.СуммаБезНДС22;
|
||
Итого.СтТовРубКоп20 = ИтогЗаПериод.СуммаБезНДС20;
|
||
Итого.СтТовРубКоп18_20 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
Итого.СтТовРубКоп18 = ИтогЗаПериод.СуммаБезНДС18;
|
||
Итого.СтТовРубКоп10 = ИтогЗаПериод.СуммаБезНДС10;
|
||
Итого.СтТовРубКоп0 = ИтогЗаПериод.НДС0;
|
||
Итого.СумНДСРубКоп22 = ИтогЗаПериод.НДС22;
|
||
Итого.СумНДСРубКоп20 = ИтогЗаПериод.НДС20;
|
||
Итого.СумНДСРубКоп18_20 = ИтогЗаПериод.НДС20Или18;
|
||
Итого.СумНДСРубКоп18 = ИтогЗаПериод.НДС18;
|
||
Итого.СумНДСРубКоп10 = ИтогЗаПериод.НДС10;
|
||
Итого.СтПродОсвНДСРубКоп = ИтогЗаПериод.СуммаСовсемБезНДС;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
Итого.СтТовРубКоп20 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
Итого.СумНДСРубКоп20 = ИтогЗаПериод.НДС20Или18;
|
||
КонецЕсли;
|
||
|
||
Если ПрименяетсяПостановление1448 Тогда
|
||
Итого.Вставить("СтТовРубКоп7", ИтогЗаПериод.СуммаБезНДС7);
|
||
Итого.Вставить("СтТовРубКоп5", ИтогЗаПериод.СуммаБезНДС5);
|
||
Итого.Вставить("СумНДСРубКоп7", ИтогЗаПериод.НДС7);
|
||
Итого.Вставить("СумНДСРубКоп5", ИтогЗаПериод.НДС5);
|
||
КонецЕсли;
|
||
|
||
ОбщиеСведения.Итого = Итого;
|
||
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ГруппироватьПоКонтрагентам Тогда
|
||
СтруктураСекций.Вставить("СекцияКонтрагент", Макет.ПолучитьОбласть("Контрагент"));
|
||
СтруктураСекций.Вставить("СекцияВсегоКонтрагент", Макет.ПолучитьОбласть("ВсегоКонтрагент"));
|
||
КонецЕсли;
|
||
|
||
ПреобразоватьЗаписиДополнительногоЛистаКнигиПродаж(
|
||
СтруктураПараметров,
|
||
ИтогПоПериодамКорректировки,
|
||
?(СтруктураПараметров.Свойство("РеквизитыДокумента"),СтруктураПараметров.РеквизитыДокумента, ИтогЗаПериод),
|
||
ТабличныйДокумент,
|
||
СтруктураСекций,
|
||
?(СтруктураПараметров.Свойство("ТабличнаяЧасть"),СтруктураПараметров.ТабличнаяЧасть, Неопределено));
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СтрокаВсего.Параметры.Заполнить(ИтогЗаПериод);
|
||
ТабличныйДокумент.Вывести(СтрокаВсего);
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
|
||
Всего = Новый Структура(
|
||
"СтТовРубКоп22,СтТовРубКоп20,СтТовРубКоп18_20,СтТовРубКоп18,СтТовРубКоп10,СтТовРубКоп0,
|
||
|СумНДСРубКоп22,СумНДСРубКоп20,СумНДСРубКоп18_20,СумНДСРубКоп18,СумНДСРубКоп10,СтПродОсвНДСРубКоп");
|
||
Всего.СтТовРубКоп22 = ИтогЗаПериод.СуммаБезНДС22;
|
||
Всего.СтТовРубКоп20 = ИтогЗаПериод.СуммаБезНДС20;
|
||
Всего.СтТовРубКоп18_20 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
Всего.СтТовРубКоп18 = ИтогЗаПериод.СуммаБезНДС18;
|
||
Всего.СтТовРубКоп10 = ИтогЗаПериод.СуммаБезНДС10;
|
||
Всего.СтТовРубКоп0 = ИтогЗаПериод.НДС0;
|
||
Всего.СумНДСРубКоп22 = ИтогЗаПериод.НДС22;
|
||
Всего.СумНДСРубКоп20 = ИтогЗаПериод.НДС20;
|
||
Всего.СумНДСРубКоп18_20 = ИтогЗаПериод.НДС20Или18;
|
||
Всего.СумНДСРубКоп18 = ИтогЗаПериод.НДС18;
|
||
Всего.СумНДСРубКоп10 = ИтогЗаПериод.НДС10;
|
||
Всего.СтПродОсвНДСРубКоп = ИтогЗаПериод.СуммаСовсемБезНДС;
|
||
|
||
Если ПрименяетсяПостановление1448 Тогда
|
||
Всего.Вставить("СтТовРубКоп7", ИтогЗаПериод.СуммаБезНДС7);
|
||
Всего.Вставить("СтТовРубКоп5", ИтогЗаПериод.СуммаБезНДС5);
|
||
Всего.Вставить("СумНДСРубКоп7", ИтогЗаПериод.НДС7);
|
||
Всего.Вставить("СумНДСРубКоп5", ИтогЗаПериод.НДС5);
|
||
КонецЕсли;
|
||
|
||
ОбщиеСведения.Всего = Всего;
|
||
|
||
СтруктураДанных = Новый Структура("ОбщиеСведения,Записи",
|
||
ОбщиеСведения, СтруктураПараметров.Записи.Скопировать());
|
||
СтруктураПараметров.Записи.Очистить();
|
||
ДанныеОтчета.Добавить(СтруктураДанных);
|
||
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме
|
||
И НЕ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ВывестиПодвал(СтруктураПараметров, ТабличныйДокумент, Макет);
|
||
КонецЕсли;
|
||
|
||
КонецЦикла; // ИтогПоПериодамКорректировки.Следующий()
|
||
|
||
// Записываем доп. листы в таблицу разделов отчета.
|
||
НазваниеРаздела = СтрШаблон(НСтр("ru = 'Доп.листы за %1'"), НалоговыйПериод);
|
||
Если СтруктураПараметров.СчетчикСегментовНалоговогоПериода > 1 Тогда
|
||
НазваниеРаздела = УчетНДС.СформироватьЗаголовокЛиста(
|
||
НазваниеРаздела, СтруктураПараметров.СчетчикСегментовНалоговогоПериода);
|
||
КонецЕсли;
|
||
|
||
ДополнительныеПараметры = Новый Структура();
|
||
ДополнительныеПараметры.Вставить("ЭтоДопЛист", Истина);
|
||
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(
|
||
СтруктураПараметров,
|
||
НазваниеРаздела,
|
||
СтруктураПараметров.СчетчикСегментов,
|
||
ТабличныйДокумент,
|
||
ДополнительныеПараметры);
|
||
|
||
СтруктураПараметров.СчетчикСегментов = СтруктураПараметров.СчетчикСегментов + 1;
|
||
|
||
КонецЦикла; // ИтогПоПериодам.Следующий()
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
ИмяРаздела = "Раздел9_Прил1";
|
||
|
||
// Запишем последний сегмент
|
||
|
||
Если СтруктураПараметров.СчетчикСтрокТекущегоСегмента <> 0 Тогда
|
||
|
||
// Записать сегменты
|
||
ПерваяСтрокаСегмента = СтруктураПараметров.СчетчикСтрокДопЛиста
|
||
- СтруктураПараметров.СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
Если ПерваяСтрокаСегмента = 1 Тогда
|
||
Если ТабличныйДокумент.Области.Найти("СуммаБезНДС20Приложение") <> Неопределено Тогда
|
||
ТабличныйДокумент.Область("СуммаБезНДС20Приложение").Значение = ИтогЗаПериод.СуммаБезНДС20;
|
||
ТабличныйДокумент.Область("НДС20Приложение").Значение = ИтогЗаПериод.НДС20;
|
||
КонецЕсли;
|
||
Если ТабличныйДокумент.Области.Найти("СуммаБезНДС18Приложение") <> Неопределено Тогда
|
||
ТабличныйДокумент.Область("СуммаБезНДС18Приложение").Значение = ИтогЗаПериод.СуммаБезНДС18;
|
||
ТабличныйДокумент.Область("НДС18Приложение").Значение = ИтогЗаПериод.НДС18;
|
||
КонецЕсли;
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2025Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
ТабличныйДокумент.Область("СуммаБезНДС7Приложение").Значение = ИтогЗаПериод.СуммаБезНДС7;
|
||
ТабличныйДокумент.Область("НДС7Приложение").Значение = ИтогЗаПериод.НДС7;
|
||
ТабличныйДокумент.Область("СуммаБезНДС5Приложение").Значение = ИтогЗаПериод.СуммаБезНДС5;
|
||
ТабличныйДокумент.Область("НДС5Приложение").Значение = ИтогЗаПериод.НДС5;
|
||
КонецЕсли;
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
ТабличныйДокумент.Область("СуммаБезНДС22Приложение").Значение = ИтогЗаПериод.СуммаБезНДС22;
|
||
ТабличныйДокумент.Область("НДС22Приложение").Значение = ИтогЗаПериод.НДС22;
|
||
ТабличныйДокумент.Область("СуммаБезНДС20Или18Приложение").Значение = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
ТабличныйДокумент.Область("НДС20Или18Приложение").Значение = ИтогЗаПериод.НДС20Или18;
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Область("СуммаБезНДС10Приложение").Значение = ИтогЗаПериод.СуммаБезНДС10;
|
||
ТабличныйДокумент.Область("НДС0Приложение").Значение = ИтогЗаПериод.НДС0;
|
||
ТабличныйДокумент.Область("НДС10Приложение").Значение = ИтогЗаПериод.НДС10;
|
||
ТабличныйДокумент.Область("СуммаСовсемБезНДСПриложение").Значение = ИтогЗаПериод.СуммаСовсемБезНДС;
|
||
Иначе
|
||
ЗаписатьИтогиВПервыйСегментРаздела91(СтруктураПараметров, ИтогЗаПериод);
|
||
КонецЕсли;
|
||
|
||
|
||
ИначеЕсли СтруктураПараметров.СчетчикСтрокТекущегоСегмента = 0
|
||
И СтруктураПараметров.СчетчикСтрокДопЛиста <> 0 Тогда
|
||
|
||
// Количество строк в сегменте совпало с предельным,
|
||
// необходимо добавить строку итогов в записанный ранее сегмент табличного документа.
|
||
|
||
ЗаписатьИтогиВПервыйСегментРаздела91(СтруктураПараметров, ИтогЗаПериод);
|
||
|
||
КонецЕсли;
|
||
|
||
ИтогиРаздел91.СтПродВсП1Р9_22 = ИтогЗаПериод.СуммаБезНДС22;
|
||
ИтогиРаздел91.СтПродВсП1Р9_20Или18 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
ИтогиРаздел91.СтПродВсП1Р9_20 = ИтогЗаПериод.СуммаБезНДС20;
|
||
ИтогиРаздел91.СтПродВсП1Р9_18 = ИтогЗаПериод.СуммаБезНДС18;
|
||
ИтогиРаздел91.СтПродВсП1Р9_10 = ИтогЗаПериод.СуммаБезНДС10;
|
||
ИтогиРаздел91.СтПродВсП1Р9_7 = ИтогЗаПериод.СуммаБезНДС7;
|
||
ИтогиРаздел91.СтПродВсП1Р9_5 = ИтогЗаПериод.СуммаБезНДС5;
|
||
ИтогиРаздел91.СтПродВсП1Р9_0 = ИтогЗаПериод.НДС0;
|
||
|
||
ИтогиРаздел91.СумНДСВсП1Р9_22 = ИтогЗаПериод.НДС22;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_20Или18 = ИтогЗаПериод.НДС20Или18;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_20 = ИтогЗаПериод.НДС20;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_18 = ИтогЗаПериод.НДС18;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_10 = ИтогЗаПериод.НДС10;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_7 = ИтогЗаПериод.НДС7;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_5 = ИтогЗаПериод.НДС5;
|
||
ИтогиРаздел91.СтПродОсвП1Р9Вс = ИтогЗаПериод.СуммаСовсемБезНДС;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
ИтогиРаздел91.СтПродВсП1Р9_20 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
ИтогиРаздел91.СумНДСВсП1Р9_20 = ИтогЗаПериод.НДС20Или18;
|
||
КонецЕсли;
|
||
|
||
ИначеЕсли СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
СтруктураПараметров.ДанныеОтчета = ДанныеОтчета;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ЗаписатьИтогиВПервыйСегментРаздела91(СтруктураПараметров, ИтогЗаПериод)
|
||
|
||
ВидДополнительногоФайла = "ТабличныйДокументРаздел9_Прил1.1";
|
||
ИмяРаздела = "Раздел9_Прил1";
|
||
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ВывестиШапкуРаздела91Декларации(ТабличныйДокумент, Макет, СтруктураПараметров, НомерДополнительногоЛиста, ИтогоЗаПериод)
|
||
|
||
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
|
||
|
||
Если НомерДополнительногоЛиста = 1 Тогда
|
||
Секция = Макет.ПолучитьОбласть("ШапкаРаздел91");
|
||
ТабличныйДокумент.Вывести(Секция);
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
ДекларацияИтоги = Макет.ПолучитьОбласть("ДекларацияИтоги91");
|
||
Иначе
|
||
ДекларацияИтоги = Макет.ПолучитьОбласть("ДекларацияИтоги");
|
||
КонецЕсли;
|
||
ДекларацияИтоги.Параметры.Заполнить(ИтогоЗаПериод);
|
||
ТабличныйДокумент.Вывести(ДекларацияИтоги);
|
||
КонецЕсли;
|
||
|
||
Секция = Макет.ПолучитьОбласть("ШапкаРаздел91НомерЛиста");
|
||
Секция.Параметры.НомерЛиста = НомерДополнительногоЛиста;
|
||
Секция.Параметры.ДатаСоставления = Формат(СтруктураПараметров.ДатаОформления, "ДФ=dd.MM.yyyy");
|
||
ТабличныйДокумент.Вывести(Секция);
|
||
|
||
Секция = Макет.ПолучитьОбласть("СтрокиДляПовтора");
|
||
Секция.Область("НомераГрафКнига").Видимость = Ложь;
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
Секция.Область("НомераГрафДекларация").Видимость = Ложь;
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Вывести(Секция);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ВывестиПодвал(СтруктураПараметров, ТабличныйДокумент, Макет)
|
||
|
||
ОтветственныеЛица = ОтветственныеЛицаБП.ОтветственныеЛица(СтруктураПараметров.Организация, СтруктураПараметров.КонецПериода);
|
||
Если ОбщегоНазначенияБПВызовСервераПовтИсп.ЭтоЮрЛицо(СтруктураПараметров.Организация) Тогда
|
||
ИмяРук = ОтветственныеЛица.РуководительПредставление;
|
||
ИмяОрг = "";
|
||
Свидетельство = "";
|
||
Иначе
|
||
ИмяРук = "";
|
||
ИмяОрг = ОтветственныеЛица.РуководительПредставление;
|
||
СведенияОЮрФизЛице = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(
|
||
СтруктураПараметров.Организация, СтруктураПараметров.КонецПериода);
|
||
Свидетельство = БухгалтерскийУчетПереопределяемый.СвидетельствоОРегистрации(СведенияОЮрФизЛице, СтруктураПараметров.КонецПериода);
|
||
КонецЕсли;
|
||
|
||
Секция = Макет.ПолучитьОбласть("Подвал");
|
||
Секция.Параметры.ИмяРук = ИмяРук;
|
||
Секция.Параметры.ИмяОрг = ИмяОрг;
|
||
Секция.Параметры.Свидетельство = Свидетельство;
|
||
|
||
ТабличныйДокумент.Вывести(Секция);
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ИнициализироватьТаблицыДанныхНДС(СтруктураПараметров)
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
|
||
ПрименяетсяПостановление1448 = УчетНДСПереопределяемый.ПрименяетсяПостановление1448(СтруктураПараметров.КонецПериода);
|
||
|
||
Записи = Новый ТаблицаЗначений;
|
||
|
||
Записи.Колонки.Добавить("НомПП", ОбщегоНазначения.ОписаниеТипаЧисло(12, 0));
|
||
Записи.Колонки.Добавить("НомерСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(1000));
|
||
Записи.Колонки.Добавить("ДатаСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
Записи.Колонки.Добавить("НомИспрСчФ", ОбщегоНазначения.ОписаниеТипаЧисло(3, 0));
|
||
Записи.Колонки.Добавить("ДатаИспрСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
Записи.Колонки.Добавить("НомерКСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(1000));
|
||
Записи.Колонки.Добавить("ДатаКСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
Записи.Колонки.Добавить("НомИспрКСчФ", ОбщегоНазначения.ОписаниеТипаЧисло(3, 0));
|
||
Записи.Колонки.Добавить("ДатаИспрКСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
Записи.Колонки.Добавить("НаимПок", ОбщегоНазначения.ОписаниеТипаСтрока(1000));
|
||
Записи.Колонки.Добавить("ИННЮЛ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
Записи.Колонки.Добавить("КПП", ОбщегоНазначения.ОписаниеТипаСтрока(9));
|
||
Записи.Колонки.Добавить("ИННФЛ", ОбщегоНазначения.ОписаниеТипаСтрока(12));
|
||
Записи.Колонки.Добавить("КодОКВ", ОбщегоНазначения.ОписаниеТипаСтрока(3));
|
||
Записи.Колонки.Добавить("СтТовУчНалВсего", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовУчНалРубКоп", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
|
||
Записи.Колонки.Добавить("СтТовРубКоп20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовРубКоп18", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовРубКоп10", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовРубКоп7", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовРубКоп5", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовРубКоп0", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
|
||
Записи.Колонки.Добавить("СумНДСРубКоп20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СумНДСРубКоп18", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СумНДСРубКоп10", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СумНДСРубКоп7", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СумНДСРубКоп5", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтПродОсвНДСРубКоп", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("КодВидОпер", Новый ОписаниеТипов("Массив"));
|
||
Записи.Колонки.Добавить("СвПосредн");
|
||
Записи.Колонки.Добавить("СвДокПдтвОпл", Новый ОписаниеТипов("Массив"));
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
Записи.Колонки.Добавить("СвРегНом", Новый ОписаниеТипов("Массив"));
|
||
Иначе
|
||
Записи.Колонки.Добавить("НомерТД", Новый ОписаниеТипов("Массив"));
|
||
КонецЕсли;
|
||
Записи.Колонки.Добавить("ВидТов", Новый ОписаниеТипов("Массив"));
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
Записи.Колонки.Добавить("СтТовРубКоп22", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СумНДСРубКоп22", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СтТовРубКоп18_20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СумНДСРубКоп18_20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Записи.Колонки.Добавить("СвСчФПродРанВыст", Новый ОписаниеТипов("Массив"));
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ФормироватьДополнительныеЛисты Тогда
|
||
ОбщиеСведения = Новый Структура("НомерДопЛКнПрод,Период,ОтчетГод,ДатаДопЛКнПрод,Итого,Всего");
|
||
СтруктураПараметров.Вставить("ДанныеОтчета");
|
||
Иначе
|
||
ОбщиеСведения = Новый Структура(
|
||
"СтТовРубКоп22,СтТовРубКоп20,СтТовРубКоп18,СтТовРубКоп10,СтТовРубКоп0,
|
||
|СумНДСРубКоп22,СумНДСРубКоп20,СумНДСРубКоп18,СумНДСРубКоп10,СтПродОсвНДСРубКоп");
|
||
Если ПрименяетсяПостановление1448 Тогда
|
||
ОбщиеСведения.Вставить("СтТовРубКоп7");
|
||
ОбщиеСведения.Вставить("СтТовРубКоп5");
|
||
ОбщиеСведения.Вставить("СумНДСРубКоп7");
|
||
ОбщиеСведения.Вставить("СумНДСРубКоп5");
|
||
КонецЕсли;
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
ОбщиеСведения.Вставить("СтТовРубКоп22", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
ОбщиеСведения.Вставить("СумНДСРубКоп22", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
ОбщиеСведения.Вставить("СтТовРубКоп18_20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
ОбщиеСведения.Вставить("СумНДСРубКоп18_20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
КонецЕсли
|
||
КонецЕсли;
|
||
|
||
СтруктураПараметров.Вставить("Записи", Записи);
|
||
СтруктураПараметров.Вставить("ОбщиеСведения", ОбщиеСведения);
|
||
|
||
Иначе
|
||
|
||
Раздел9 = Новый ТаблицаЗначений;
|
||
|
||
Раздел9.Колонки.Добавить("НомерПор", ОбщегоНазначения.ОписаниеТипаЧисло(12, 0));
|
||
|
||
Раздел9.Колонки.Добавить("НомСчФПрод", ОбщегоНазначения.ОписаниеТипаСтрока(0));
|
||
Раздел9.Колонки.Добавить("ДатаСчФПрод", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
|
||
Раздел9.Колонки.Добавить("НомИспрСчФ", ОбщегоНазначения.ОписаниеТипаЧисло(3, 0));
|
||
Раздел9.Колонки.Добавить("ДатаИспрСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
|
||
Раздел9.Колонки.Добавить("НомКСчФПрод", ОбщегоНазначения.ОписаниеТипаСтрока(0));
|
||
Раздел9.Колонки.Добавить("ДатаКСчФПрод", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
|
||
Раздел9.Колонки.Добавить("НомИспрКСчФ", ОбщегоНазначения.ОписаниеТипаЧисло(3, 0));
|
||
Раздел9.Колонки.Добавить("ДатаИспрКСчФ", ОбщегоНазначения.ОписаниеТипаСтрока(10));
|
||
|
||
Раздел9.Колонки.Добавить("ОКВ", ОбщегоНазначения.ОписаниеТипаСтрока(3));
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2017Кв1" Тогда
|
||
Раздел9.Колонки.Добавить("РегНомТД", Новый ОписаниеТипов("Массив"));
|
||
ИначеЕсли СтруктураПараметров.ПравилаЗаполнения = "2019Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2020Кв4" Тогда
|
||
Раздел9.Колонки.Добавить("РегНомТД", Новый ОписаниеТипов("Массив"));
|
||
Раздел9.Колонки.Добавить("КодВидТовар", Новый ОписаниеТипов("Массив"));
|
||
ИначеЕсли СтруктураПараметров.ПравилаЗаполнения = "2021Кв3"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2023Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2025Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
Раздел9.Колонки.Добавить("СвРегНом", Новый ОписаниеТипов("Массив"));
|
||
Раздел9.Колонки.Добавить("КодВидТовар", Новый ОписаниеТипов("Массив"));
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
Раздел9.Колонки.Добавить("СтоимПродСФВ", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ18", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ10", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ0", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ7", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ5", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
|
||
Раздел9.Колонки.Добавить("СумНДССФ20", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СумНДССФ18", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СумНДССФ10", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродОсв", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СумНДССФ7", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СумНДССФ5", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
|
||
Раздел9.Колонки.Добавить("КодВидОпер", Новый ОписаниеТипов("Массив"));
|
||
Раздел9.Колонки.Добавить("ДокПдтвОпл", Новый ОписаниеТипов("Массив"));
|
||
|
||
Раздел9.Колонки.Добавить("СвПокуп", Новый ОписаниеТипов("Массив"));
|
||
Раздел9.Колонки.Добавить("СвПос"); // Тип не задается
|
||
|
||
Раздел9.Колонки.Добавить("ДополнительныеСведения");
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации
|
||
И СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ20Или18", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СтоимПродСФ22", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СумНДССФ20Или18", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СумНДССФ22", ОбщегоНазначения.ОписаниеТипаЧисло(19, 2));
|
||
Раздел9.Колонки.Добавить("СвЧастСчФ", Новый ОписаниеТипов("Массив"));
|
||
КонецЕсли;
|
||
|
||
Раздел91 = Раздел9.СкопироватьКолонки();
|
||
|
||
СтруктураПараметров.Вставить("ТаблицаРаздел9", Раздел9);
|
||
СтруктураПараметров.Вставить("ТаблицаРаздел91", Раздел91);
|
||
СтруктураПараметров.Вставить("ТабличныйДокументРаздел91");
|
||
|
||
ИтогиРаздел9 = Новый Структура(
|
||
"СтПродБезНДС20,СтПродБезНДС18,СтПродБезНДС10,СтПродБезНДС0,
|
||
|СумНДСВсКПр20,СумНДСВсКПр18,СумНДСВсКПр10,СтПродОсвВсКПр");
|
||
ИтогиРаздел91 = Новый Структура(
|
||
"ИтСтПродКПр20,ИтСтПродКПр18,ИтСтПродКПр10,ИтСтПродКПр0,
|
||
|СумНДСИтКПр20,СумНДСИтКПр18,СумНДСИтКПр10,ИтСтПродОсвКПр,
|
||
|СтПродВсП1Р9_20,СтПродВсП1Р9_18,СтПродВсП1Р9_10,СтПродВсП1Р9_0,
|
||
|СумНДСВсП1Р9_20,СумНДСВсП1Р9_18,СумНДСВсП1Р9_10,СтПродОсвП1Р9Вс");
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации
|
||
И (СтруктураПараметров.ПравилаЗаполнения = "2025Кв1"
|
||
Или СтруктураПараметров.ПравилаЗаполнения = "2026Кв1") Тогда
|
||
ИтогиРаздел9.Вставить("СтПродБезНДС7");
|
||
ИтогиРаздел9.Вставить("СтПродБезНДС5");
|
||
ИтогиРаздел9.Вставить("СумНДСВсКПр7");
|
||
ИтогиРаздел9.Вставить("СумНДСВсКПр5");
|
||
|
||
ИтогиРаздел91.Вставить("ИтСтПродКПр7");
|
||
ИтогиРаздел91.Вставить("ИтСтПродКПр5");
|
||
ИтогиРаздел91.Вставить("СумНДСИтКПр7");
|
||
ИтогиРаздел91.Вставить("СумНДСИтКПр5");
|
||
ИтогиРаздел91.Вставить("СтПродВсП1Р9_7");
|
||
ИтогиРаздел91.Вставить("СтПродВсП1Р9_5");
|
||
ИтогиРаздел91.Вставить("СумНДСВсП1Р9_7");
|
||
ИтогиРаздел91.Вставить("СумНДСВсП1Р9_5");
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации
|
||
И СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
|
||
ИтогиРаздел9.Вставить("СтПродБезНДС20Или18");
|
||
ИтогиРаздел9.Вставить("СтПродБезНДС22");
|
||
ИтогиРаздел9.Вставить("СумНДСВсКПр20Или18");
|
||
ИтогиРаздел9.Вставить("СумНДСВсКПр22");
|
||
|
||
ИтогиРаздел91.Вставить("ИтСтПродКПр22");
|
||
ИтогиРаздел91.Вставить("ИтСтПродКПр20Или18");
|
||
ИтогиРаздел91.Вставить("СумНДСИтКПр22");
|
||
ИтогиРаздел91.Вставить("СумНДСИтКПр20Или18");
|
||
ИтогиРаздел91.Вставить("СтПродВсП1Р9_22");
|
||
ИтогиРаздел91.Вставить("СтПродВсП1Р9_20Или18");
|
||
ИтогиРаздел91.Вставить("СумНДСВсП1Р9_22");
|
||
ИтогиРаздел91.Вставить("СумНДСВсП1Р9_20Или18");
|
||
|
||
КонецЕсли;
|
||
|
||
СтруктураПараметров.Вставить("ИтогиРаздел9", ИтогиРаздел9);
|
||
СтруктураПараметров.Вставить("ИтогиРаздел91", ИтогиРаздел91);
|
||
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПреобразоватьЗаписиКнигиПродаж(
|
||
СтруктураПараметров,
|
||
НаборЗаписей,
|
||
ТабличныйДокумент,
|
||
СтрокаИтогПоОрганизации,
|
||
СтруктураСекций,
|
||
ТаблицаДокумента)
|
||
|
||
ДополнительнаяИнформация = ПолучитьДополнительнуюИнформациюПоСчетуФактуре(СтруктураПараметров);
|
||
|
||
Если НЕ СтруктураПараметров.Свойство("ЗаполнениеДекларации") Тогда
|
||
СтруктураПараметров.Вставить("ЗаполнениеДекларации", Ложь);
|
||
ИначеЕсли СтруктураПараметров.ЗаполнениеДекларации И СтруктураПараметров.КонецПериода < '20150101' Тогда
|
||
СтруктураПараметров.ЗаполнениеДекларации = Ложь;
|
||
КонецЕсли;
|
||
|
||
ПараметрыСтроки = СтруктураСекций.СекцияСтрока.Параметры;
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
ПараметрыСтрокиРНПТ = СтруктураСекций.СекцияСтрокаРНПТ.Параметры;
|
||
КонецЕсли;
|
||
|
||
ИтогПоОрганизации = НаборЗаписей.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); // Общий итог по организации
|
||
ИтогПоОрганизации.Следующий();
|
||
|
||
Если СтруктураПараметров.ГруппироватьПоКонтрагентам Тогда
|
||
СекцияКонтрагент = СтруктураСекций.СекцияКонтрагент;
|
||
СекцияВсегоКонтрагент = СтруктураСекций.СекцияВсегоКонтрагент;
|
||
КонецЕсли;
|
||
|
||
Счетчик = 0; // Счетчик строк книги продаж
|
||
СчетчикСтрокТекущегоСегмента = 0; // Используется для сегментирования разделов декларации по НДС
|
||
СчетчикСегментов = 1; // Число сформированных сегментов книги
|
||
|
||
НазваниеРаздела = Нстр("ru='Основной раздел'");
|
||
|
||
// Запоминаем итоговые суммы по организации.
|
||
ЗаполнитьЗначенияСвойств(СтрокаИтогПоОрганизации, ИтогПоОрганизации);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ШапкаРаздел9);
|
||
СтруктураСекций.ДекларацияИтоги.Параметры.Заполнить(СтрокаИтогПоОрганизации);
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ДекларацияИтоги);
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ЗаполнениеДекларации
|
||
И СтруктураПараметров.ГруппироватьПоКонтрагентам
|
||
И Не СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме Тогда
|
||
|
||
СтрокаИтогПоКонтрагенту = НоваяСтрокаИтоговКнигиПродаж();
|
||
|
||
ИтогПоКонтрагенту = ИтогПоОрганизации.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ИтогПоКонтрагенту.Следующий() Цикл
|
||
|
||
// Запоминаем итоговые суммы по контрагенту.
|
||
ЗаполнитьЗначенияСвойств(СтрокаИтогПоКонтрагенту, ИтогПоКонтрагенту);
|
||
|
||
Если УчетНДС.ВыводитьСтроку(СтруктураПараметров, ИтогПоКонтрагенту, Истина) Тогда
|
||
СекцияКонтрагент.Параметры.Контрагент = ИтогПоКонтрагенту.Покупатель;
|
||
ТабличныйДокумент.Вывести(СекцияКонтрагент);
|
||
ТабличныйДокумент.НачатьГруппуСтрок();
|
||
КонецЕсли;
|
||
|
||
НалоговыеПериоды = ИтогПоКонтрагенту.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока НалоговыеПериоды.Следующий() Цикл
|
||
|
||
ИтогПоСчетФактураДокумент = НалоговыеПериоды.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ИтогПоСчетФактураДокумент.Следующий() Цикл
|
||
|
||
ИтогПоДоговорАванса = ИтогПоСчетФактураДокумент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ИтогПоДоговорАванса.Следующий() Цикл
|
||
|
||
ЗаписьКниги = ИтогПоДоговорАванса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ЗаписьКниги.Следующий() Цикл
|
||
|
||
Если ЗаписьКниги.НачислениеПоОказаниюУслуг
|
||
ИЛИ (ЗаписьКниги.СводныйКорректировочный
|
||
И СтруктураПараметров.ВерсияПостановленияНДС1137 < 4) Тогда
|
||
|
||
ЗаписьКнигиДетальная = ЗаписьКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
|
||
Пока ЗаписьКнигиДетальная.Следующий() Цикл
|
||
|
||
// Счетчики ведем всегда в целом по всем строкам набора,
|
||
// чтобы если какие-то контрагенты будут отфильтрованы, то номера у строк сохранялись те же,
|
||
// какие были бы в полном отчете.
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
Если УчетНДС.ВыводитьСтроку(СтруктураПараметров, ЗаписьКнигиДетальная) Тогда
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(СтруктураПараметров, ПараметрыСтроки,
|
||
ЗаписьКнигиДетальная, Счетчик, ДополнительнаяИнформация);
|
||
|
||
УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
|
||
|
||
ОбластьТабличногоДокумента = ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
УчетНДС.ДобавитьКонтрагентаНаПроверку(
|
||
СтруктураПараметров, ЗаписьКнигиДетальная, ОбластьТабличногоДокумента, , СчетчикСегментов);
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ЗаписьКнигиДетальная,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
Иначе
|
||
УчетНДС.УменьшитьСуммуИтога(СтрокаИтогПоКонтрагенту, ЗаписьКнигиДетальная, СтруктураПараметров);
|
||
УчетНДС.УменьшитьСуммуИтога(СтрокаИтогПоОрганизации, ЗаписьКнигиДетальная, СтруктураПараметров);
|
||
КонецЕсли;
|
||
КонецЦикла; // ЗаписьКнигиДетальная.Следующий()
|
||
|
||
ИначеЕсли ЗаписьКниги.СводныйКомиссионный
|
||
И СтруктураПараметров.ВерсияПостановленияНДС1137 < 4 Тогда
|
||
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
ЗаполнитьСтрокуКнигиПродажСводныйКомиссионный(ЗаписьКниги, СтруктураПараметров, ПараметрыСтроки, Счетчик);
|
||
ОбластьТабличногоДокумента = ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
|
||
Иначе
|
||
|
||
// Счетчики ведем всегда в целом по всем строкам набора,
|
||
// чтобы если какие-то контрагенты будут отфильтрованы, то номера у строк сохранялись те же,
|
||
// какие были бы в полном отчете.
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
ЗаписьКнигиДетальная = ЗаписьКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
ЗаписьКнигиДетальная.Следующий();
|
||
|
||
Если УчетНДС.ВыводитьСтроку(СтруктураПараметров, ЗаписьКниги, , ЗаписьКнигиДетальная) Тогда
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(СтруктураПараметров, ПараметрыСтроки,
|
||
ЗаписьКниги, Счетчик, ДополнительнаяИнформация, ЗаписьКнигиДетальная);
|
||
|
||
УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
|
||
|
||
ОбластьТабличногоДокумента = ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
УчетНДС.ДобавитьКонтрагентаНаПроверку(
|
||
СтруктураПараметров, ЗаписьКниги, ОбластьТабличногоДокумента, ЗаписьКнигиДетальная, СчетчикСегментов);
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ЗаписьКнигиДетальная,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
Иначе
|
||
УчетНДС.УменьшитьСуммуИтога(СтрокаИтогПоКонтрагенту, ЗаписьКниги, СтруктураПараметров);
|
||
УчетНДС.УменьшитьСуммуИтога(СтрокаИтогПоОрганизации, ЗаписьКниги, СтруктураПараметров);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
КонецЦикла; // ЗаписьКниги.Следующий()
|
||
|
||
КонецЦикла; // ИтогПоДоговорАванса.Следующий()
|
||
|
||
КонецЦикла; // ИтогПоСчетФактураДокумент.Следующий()
|
||
|
||
КонецЦикла; // НалоговыеПериоды.Следующий()
|
||
|
||
Если УчетНДС.ВыводитьСтроку(СтруктураПараметров, ИтогПоКонтрагенту, Истина) Тогда
|
||
ТабличныйДокумент.ЗакончитьГруппуСтрок();
|
||
СекцияВсегоКонтрагент.Параметры.Заполнить(СтрокаИтогПоКонтрагенту);
|
||
ТабличныйДокумент.Вывести(СекцияВсегоКонтрагент);
|
||
КонецЕсли;
|
||
|
||
// Группировку по контрагенту не разрываем на разные сегменты,
|
||
// поэтому количество записей в сегменте может быть чуть больше, чем предельное количество.
|
||
Если СчетчикСтрокТекущегоСегмента >= СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментов);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, ЗаголовокЛиста, СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЦикла; // ИтогПоКонтрагенту.Следующий()
|
||
|
||
Иначе
|
||
|
||
ТекстРозничнаяПродажа = НСтр("ru = 'Розничная продажа'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||
|
||
НалоговыеПериоды = ИтогПоОрганизации.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока НалоговыеПериоды.Следующий() Цикл
|
||
|
||
ИтогПоСчетФактураДокумент = НалоговыеПериоды.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ИтогПоСчетФактураДокумент.Следующий() Цикл
|
||
|
||
ИтогПоДоговорАванса = ИтогПоСчетФактураДокумент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ИтогПоДоговорАванса.Следующий() Цикл
|
||
|
||
ЗаписьКниги = ИтогПоДоговорАванса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
|
||
Пока ЗаписьКниги.Следующий() Цикл
|
||
|
||
ЗаписьКнигиДетальная = ЗаписьКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
|
||
Если НЕ ЗаписьКниги.СводнаяСправка
|
||
И ((ЗаписьКниги.Покупатель = ТекстРозничнаяПродажа
|
||
И ЗаписьКнигиДетальная.Количество() > 1)
|
||
ИЛИ ЗаписьКниги.НалоговыйАгентПокупательТоваров
|
||
ИЛИ ЗаписьКниги.НачислениеПоОказаниюУслуг
|
||
ИЛИ (ЗаписьКниги.СводныйКорректировочный
|
||
И СтруктураПараметров.ВерсияПостановленияНДС1137 < 4)) Тогда
|
||
|
||
Пока ЗаписьКнигиДетальная.Следующий() Цикл
|
||
|
||
// Счетчики ведем всегда в целом по всем строкам набора,
|
||
// чтобы если какие-то контрагенты будут отфильтрованы, то номера у строк сохранялись те же,
|
||
// какие были бы в полном отчете.
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
Если УчетНДС.ВыводитьСтроку(СтруктураПараметров, ЗаписьКнигиДетальная) Тогда
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ПараметрыСтроки = ТаблицаДокумента.Добавить();
|
||
КонецЕсли;
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(СтруктураПараметров, ПараметрыСтроки,
|
||
ЗаписьКнигиДетальная, Счетчик, ДополнительнаяИнформация);
|
||
|
||
УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
ИначеЕсли НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
СтруктураСекций.СекцияСтрока.Область(1, , СтруктураСекций.СекцияСтрока.ВысотаТаблицы).Имя = "Строка_" + Формат(Счетчик, "ЧГ=");
|
||
ОбластьТабличногоДокумента = ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
УчетНДС.ДобавитьКонтрагентаНаПроверку(СтруктураПараметров, ЗаписьКнигиДетальная, ОбластьТабличногоДокумента, , СчетчикСегментов);
|
||
КонецЕсли;
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ЗаписьКнигиДетальная,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
Иначе
|
||
УчетНДС.УменьшитьСуммуИтога(СтрокаИтогПоОрганизации, ЗаписьКнигиДетальная, СтруктураПараметров);
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И СчетчикСтрокТекущегоСегмента = СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
// Запишем сегмент
|
||
ПерваяСтрокаСегмента = Счетчик - СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
|
||
СтруктураПараметров.ТаблицаРаздел9.Очистить();
|
||
|
||
Иначе
|
||
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментов);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, ЗаголовокЛиста, СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
КонецЕсли;
|
||
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ШапкаРаздел9);
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЦикла; // ЗаписьКнигиДетальная.Следующий()
|
||
|
||
ИначеЕсли ЗаписьКниги.СводныйКомиссионный
|
||
И СтруктураПараметров.ВерсияПостановленияНДС1137 < 4 Тогда
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ПараметрыСтроки = ТаблицаДокумента.Добавить();
|
||
КонецЕсли;
|
||
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
ЗаполнитьСтрокуКнигиПродажСводныйКомиссионный(ЗаписьКниги, СтруктураПараметров, ПараметрыСтроки, Счетчик);
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
ИЛИ (СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735) Тогда
|
||
СтруктураСекций.СекцияСтрока.Область(1, , СтруктураСекций.СекцияСтрока.ВысотаТаблицы).Имя = "Строка_" + Формат(Счетчик, "ЧГ=");
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И СчетчикСтрокТекущегоСегмента = СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
// Запишем сегмент
|
||
ПерваяСтрокаСегмента = Счетчик - СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
|
||
СтруктураПараметров.ТаблицаРаздел9.Очистить();
|
||
|
||
Иначе
|
||
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментов);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, ЗаголовокЛиста, СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
КонецЕсли;
|
||
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ШапкаРаздел9);
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
Иначе
|
||
|
||
// Счетчики ведем всегда в целом по всем строкам набора,
|
||
// чтобы если какие-то контрагенты будут отфильтрованы, то номера у строк сохранялись те же,
|
||
// какие были бы в полном отчете.
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
ЗаписьКнигиДетальная.Следующий();
|
||
|
||
Если УчетНДС.ВыводитьСтроку(СтруктураПараметров, ЗаписьКниги, , ЗаписьКнигиДетальная) Тогда
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ПараметрыСтроки = ТаблицаДокумента.Добавить();
|
||
КонецЕсли;
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(СтруктураПараметров, ПараметрыСтроки, ЗаписьКниги,
|
||
Счетчик, ДополнительнаяИнформация, ЗаписьКнигиДетальная);
|
||
|
||
УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
ИначеЕсли НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
СтруктураСекций.СекцияСтрока.Область(1, , СтруктураСекций.СекцияСтрока.ВысотаТаблицы).Имя = "Строка_" + Формат(Счетчик, "ЧГ=");
|
||
ОбластьТабличногоДокумента = ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
УчетНДС.ДобавитьКонтрагентаНаПроверку(СтруктураПараметров, ЗаписьКниги, ОбластьТабличногоДокумента, ЗаписьКнигиДетальная, СчетчикСегментов);
|
||
КонецЕсли;
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ЗаписьКнигиДетальная,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
Иначе
|
||
УчетНДС.УменьшитьСуммуИтога(СтрокаИтогПоОрганизации, ЗаписьКниги, СтруктураПараметров);
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И СчетчикСтрокТекущегоСегмента = СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
// Запишем сегмент
|
||
ПерваяСтрокаСегмента = Счетчик - СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
|
||
СтруктураПараметров.ТаблицаРаздел9.Очистить();
|
||
|
||
Иначе
|
||
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментов);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(СтруктураПараметров, ЗаголовокЛиста, СчетчикСегментов, ТабличныйДокумент);
|
||
|
||
КонецЕсли;
|
||
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ШапкаРаздел9);
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЦикла; // ЗаписьКниги.Следующий()
|
||
|
||
КонецЦикла; // ИтогПоДоговорАванса.Следующий()
|
||
|
||
КонецЦикла; // ИтогПоСчетФактураДокумент.Следующий()
|
||
|
||
КонецЦикла; // НалоговыеПериоды.Следующий()
|
||
|
||
КонецЕсли;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
СтруктураПараметров.Вставить("СчетчикСтрокТекущегоСегмента", СчетчикСтрокТекущегоСегмента);
|
||
СтруктураПараметров.Вставить("Счетчик", Счетчик);
|
||
СтруктураПараметров.Вставить("СчетчикСегментов", СчетчикСегментов);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПреобразоватьЗаписиДополнительногоЛистаКнигиПродаж(
|
||
СтруктураПараметров,
|
||
ИтогПоПериодамКорректировки,
|
||
ИтогЗаПериод,
|
||
ТабличныйДокумент,
|
||
СтруктураСекций,
|
||
ТаблицаДокумента)
|
||
|
||
ДополнительнаяИнформация = ПолучитьДополнительнуюИнформациюПоСчетуФактуре(СтруктураПараметров);
|
||
|
||
Если НЕ СтруктураПараметров.Свойство("ЗаполнениеДекларации") Тогда
|
||
СтруктураПараметров.Вставить("ЗаполнениеДекларации", Ложь);
|
||
ИначеЕсли СтруктураПараметров.ЗаполнениеДекларации И СтруктураПараметров.КонецПериода < '20150101' Тогда
|
||
СтруктураПараметров.ЗаполнениеДекларации = Ложь;
|
||
КонецЕсли;
|
||
|
||
ПараметрыСтроки = СтруктураСекций.СекцияСтрока.Параметры;
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5 Тогда
|
||
ПараметрыСтрокиРНПТ = СтруктураСекций.СекцияСтрокаРНПТ.Параметры;
|
||
КонецЕсли;
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
Счетчик = СтруктураПараметров.СчетчикСтрокДопЛиста;
|
||
СчетчикСтрокТекущегоСегмента = СтруктураПараметров.СчетчикСтрокТекущегоСегмента;
|
||
Иначе
|
||
Счетчик = 0;
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.Свойство("СчетчикСегментов") Тогда
|
||
СчетчикСегментов = СтруктураПараметров.СчетчикСегментов + 1;
|
||
Иначе
|
||
СчетчикСегментов = 1;
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.Свойство("СчетчикСегментовНалоговогоПериода") Тогда
|
||
СчетчикСегментовНалоговогоПериода = СтруктураПараметров.СчетчикСегментовНалоговогоПериода;
|
||
Иначе
|
||
СчетчикСегментовНалоговогоПериода = 1;
|
||
КонецЕсли;
|
||
|
||
НалоговыйПериод = ПредставлениеПериода(
|
||
СтруктураПараметров.НалоговыйПериод, КонецДня(СтруктураПараметров.КонецНалоговогоПериода), "ФП = Истина");
|
||
НазваниеРаздела = СтрШаблон(НСтр("ru = 'Доп.листы за %1'"), НалоговыйПериод);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ЗаполнениеДекларации
|
||
И СтруктураПараметров.ГруппироватьПоКонтрагентам
|
||
И НЕ СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме Тогда
|
||
|
||
ИтогПоКонтрагенту = ИтогПоПериодамКорректировки.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока ИтогПоКонтрагенту.Следующий() Цикл
|
||
СтруктураСекций.СекцияКонтрагент.Параметры.Контрагент = ИтогПоКонтрагенту.Покупатель;
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияКонтрагент);
|
||
ТабличныйДокумент.НачатьГруппуСтрок();
|
||
|
||
ЗаписьПоСФ = ИтогПоКонтрагенту.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока ЗаписьПоСФ.Следующий() Цикл
|
||
РазделениеПоДоговоруДляАвансов = ЗаписьПоСФ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока РазделениеПоДоговоруДляАвансов.Следующий() Цикл
|
||
ЗаписьКниги = РазделениеПоДоговоруДляАвансов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока ЗаписьКниги.Следующий() Цикл
|
||
|
||
ДетальнаяЗапись = ЗаписьКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
ДетальнаяЗапись.Следующий();
|
||
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(СтруктураПараметров, ПараметрыСтроки, ЗаписьКниги,
|
||
Счетчик, ДополнительнаяИнформация, ДетальнаяЗапись);
|
||
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ДетальнаяЗапись,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
ИтогЗаПериод.ВсегоПродаж = ИтогЗаПериод.ВсегоПродаж + ЗаписьКниги.ВсегоПродаж;
|
||
ИтогЗаПериод.СуммаБезНДС10 = ИтогЗаПериод.СуммаБезНДС10 + ЗаписьКниги.СуммаБезНДС10;
|
||
ИтогЗаПериод.НДС10 = ИтогЗаПериод.НДС10 + ЗаписьКниги.НДС10;
|
||
ИтогЗаПериод.СуммаБезНДС7 = ИтогЗаПериод.СуммаБезНДС7 + ЗаписьКниги.СуммаБезНДС7;
|
||
ИтогЗаПериод.НДС7 = ИтогЗаПериод.НДС7 + ЗаписьКниги.НДС7;
|
||
ИтогЗаПериод.СуммаБезНДС5 = ИтогЗаПериод.СуммаБезНДС5 + ЗаписьКниги.СуммаБезНДС5;
|
||
ИтогЗаПериод.НДС5 = ИтогЗаПериод.НДС5 + ЗаписьКниги.НДС5;
|
||
ИтогЗаПериод.СуммаБезНДС18 = ИтогЗаПериод.СуммаБезНДС18 + ЗаписьКниги.СуммаБезНДС18;
|
||
ИтогЗаПериод.НДС18 = ИтогЗаПериод.НДС18 + ЗаписьКниги.НДС18;
|
||
ИтогЗаПериод.НДС0 = ИтогЗаПериод.НДС0 + ЗаписьКниги.НДС0;
|
||
ИтогЗаПериод.СуммаБезНДС20 = ИтогЗаПериод.СуммаБезНДС20 + ЗаписьКниги.СуммаБезНДС20;
|
||
ИтогЗаПериод.НДС20 = ИтогЗаПериод.НДС20 + ЗаписьКниги.НДС20;
|
||
ИтогЗаПериод.СуммаБезНДС20Или18 = ИтогЗаПериод.СуммаБезНДС20Или18 + ЗаписьКниги.СуммаБезНДС20Или18;
|
||
ИтогЗаПериод.НДС20Или18 = ИтогЗаПериод.НДС20Или18 + ЗаписьКниги.НДС20Или18;
|
||
ИтогЗаПериод.СуммаБезНДС22 = ИтогЗаПериод.СуммаБезНДС22 + ЗаписьКниги.СуммаБезНДС22;
|
||
ИтогЗаПериод.НДС22 = ИтогЗаПериод.НДС22 + ЗаписьКниги.НДС22;
|
||
ИтогЗаПериод.СуммаСовсемБезНДС = ИтогЗаПериод.СуммаСовсемБезНДС + ЗаписьКниги.СуммаСовсемБезНДС;
|
||
|
||
КонецЦикла; // ЗаписьКниги.Следующий()
|
||
КонецЦикла; // РазделениеПоДоговоруДляАвансов.Следующий()
|
||
КонецЦикла; // ЗаписьПоСФ.Следующий()
|
||
ТабличныйДокумент.ЗакончитьГруппуСтрок();
|
||
СтруктураСекций.СекцияВсегоКонтрагент.Параметры.Заполнить(ИтогПоКонтрагенту);
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияВсегоКонтрагент);
|
||
|
||
// Группировку по контрагенту не разрываем на разные сегменты,
|
||
// поэтому количество записей в сегменте может быть чуть больше, чем предельное количество.
|
||
Если СчетчикСтрокТекущегоСегмента >= СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
// В заголовке в качестве номера порции выводим порцию в пределах налогового периода.
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментовНалоговогоПериода);
|
||
// В общую таблицу передаем в качестве номера раздела глобальный счетчик сегментов (с учетом основных разделов книги).
|
||
ДополнительныеПараметры = Новый Структура();
|
||
ДополнительныеПараметры.Вставить("ЭтоДопЛист", Истина);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(
|
||
СтруктураПараметров,
|
||
ЗаголовокЛиста,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент,
|
||
ДополнительныеПараметры);
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
СчетчикСегментовНалоговогоПериода = СчетчикСегментовНалоговогоПериода + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЦикла; // ИтогПоКонтрагенту.Следующий()
|
||
|
||
Иначе
|
||
|
||
ЗаписьПоСФ = ИтогПоПериодамКорректировки.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока ЗаписьПоСФ.Следующий() Цикл
|
||
РазделениеПоДоговоруДляАвансов = ЗаписьПоСФ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока РазделениеПоДоговоруДляАвансов.Следующий() Цикл
|
||
ЗаписьКниги = РазделениеПоДоговоруДляАвансов.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||
Пока ЗаписьКниги.Следующий() Цикл
|
||
|
||
ДетальнаяЗапись = ЗаписьКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
|
||
Если ЗаписьКниги.НалоговыйАгентПокупательТоваров Тогда
|
||
|
||
Пока ДетальнаяЗапись.Следующий() Цикл
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ПараметрыСтроки = ТаблицаДокумента.Добавить();
|
||
КонецЕсли;
|
||
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(
|
||
СтруктураПараметров, ПараметрыСтроки, ДетальнаяЗапись, Счетчик, ДополнительнаяИнформация);
|
||
|
||
УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735
|
||
ИЛИ НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
СтруктураСекций.СекцияСтрока.Область(
|
||
1, , СтруктураСекций.СекцияСтрока.ВысотаТаблицы).Имя = "Строка_" + Формат(Счетчик, "ЧГ=");
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
КонецЕсли;
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ДетальнаяЗапись,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И СчетчикСтрокТекущегоСегмента = СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
// Запишем сегмент
|
||
ПерваяСтрокаСегмента = Счетчик - СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
|
||
Иначе
|
||
|
||
// В заголовке в качестве номера порции выводим порцию в пределах налогового периода.
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментовНалоговогоПериода);
|
||
// В общую таблицу передаем в качестве номера раздела глобальный счетчик сегментов (с учетом основных разделов книги).
|
||
ДополнительныеПараметры = Новый Структура();
|
||
ДополнительныеПараметры.Вставить("ЭтоДопЛист", Истина);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(
|
||
СтруктураПараметров,
|
||
ЗаголовокЛиста,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент,
|
||
ДополнительныеПараметры);
|
||
|
||
КонецЕсли;
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ШапкаРаздел91);
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
СчетчикСегментовНалоговогоПериода = СчетчикСегментовНалоговогоПериода + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
ИтогЗаПериод.ВсегоПродаж = ИтогЗаПериод.ВсегоПродаж + ДетальнаяЗапись.ВсегоПродаж;
|
||
ИтогЗаПериод.СуммаБезНДС10 = ИтогЗаПериод.СуммаБезНДС10 + ДетальнаяЗапись.СуммаБезНДС10;
|
||
ИтогЗаПериод.НДС10 = ИтогЗаПериод.НДС10 + ДетальнаяЗапись.НДС10;
|
||
ИтогЗаПериод.СуммаБезНДС7 = ИтогЗаПериод.СуммаБезНДС7 + ДетальнаяЗапись.СуммаБезНДС7;
|
||
ИтогЗаПериод.НДС7 = ИтогЗаПериод.НДС7 + ДетальнаяЗапись.НДС7;
|
||
ИтогЗаПериод.СуммаБезНДС5 = ИтогЗаПериод.СуммаБезНДС5 + ДетальнаяЗапись.СуммаБезНДС5;
|
||
ИтогЗаПериод.НДС5 = ИтогЗаПериод.НДС5 + ДетальнаяЗапись.НДС5;
|
||
ИтогЗаПериод.СуммаБезНДС18 = ИтогЗаПериод.СуммаБезНДС18 + ДетальнаяЗапись.СуммаБезНДС18;
|
||
ИтогЗаПериод.НДС18 = ИтогЗаПериод.НДС18 + ДетальнаяЗапись.НДС18;
|
||
ИтогЗаПериод.НДС0 = ИтогЗаПериод.НДС0 + ДетальнаяЗапись.НДС0;
|
||
ИтогЗаПериод.СуммаБезНДС20 = ИтогЗаПериод.СуммаБезНДС20 + ДетальнаяЗапись.СуммаБезНДС20;
|
||
ИтогЗаПериод.НДС20 = ИтогЗаПериод.НДС20 + ДетальнаяЗапись.НДС20;
|
||
ИтогЗаПериод.СуммаБезНДС20Или18 = ИтогЗаПериод.СуммаБезНДС20Или18 + ДетальнаяЗапись.СуммаБезНДС20Или18;
|
||
ИтогЗаПериод.НДС20Или18 = ИтогЗаПериод.НДС20Или18 + ДетальнаяЗапись.НДС20Или18;
|
||
ИтогЗаПериод.СуммаБезНДС22 = ИтогЗаПериод.СуммаБезНДС22 + ДетальнаяЗапись.СуммаБезНДС22;
|
||
ИтогЗаПериод.НДС22 = ИтогЗаПериод.НДС22 + ДетальнаяЗапись.НДС22;
|
||
ИтогЗаПериод.СуммаСовсемБезНДС = ИтогЗаПериод.СуммаСовсемБезНДС + ДетальнаяЗапись.СуммаСовсемБезНДС;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
ИтогЗаПериод.СуммаБезНДС20 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
ИтогЗаПериод.НДС20 = ИтогЗаПериод.НДС20Или18;
|
||
КонецЕсли;
|
||
|
||
КонецЦикла;
|
||
|
||
Иначе
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И НЕ СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
ПараметрыСтроки = ТаблицаДокумента.Добавить();
|
||
КонецЕсли;
|
||
|
||
ДетальнаяЗапись.Следующий();
|
||
|
||
Счетчик = Счетчик + 1;
|
||
СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
ЗаполнитьСтрокуКнигиПродаж(
|
||
СтруктураПараметров, ПараметрыСтроки, ЗаписьКниги, Счетчик, ДополнительнаяИнформация, ДетальнаяЗапись);
|
||
|
||
УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735
|
||
ИЛИ НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
СтруктураСекций.СекцияСтрока.Область(
|
||
1, , СтруктураСекций.СекцияСтрока.ВысотаТаблицы).Имя = "Строка_" + Формат(Счетчик, "ЧГ=");
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СекцияСтрока);
|
||
КонецЕсли;
|
||
|
||
УчетНДС.ЗаполнитьПодстрочникРНПТ(
|
||
ДетальнаяЗапись,
|
||
ЗаписьКниги,
|
||
ПараметрыСтрокиРНПТ,
|
||
СтруктураПараметров,
|
||
СтруктураСекций,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента
|
||
И СчетчикСтрокТекущегоСегмента = СтруктураПараметров.ПредельноеКоличествоЗаписейВРазделеДекларацииПоНДС Тогда
|
||
|
||
// Запишем сегмент
|
||
ПерваяСтрокаСегмента = Счетчик - СчетчикСтрокТекущегоСегмента + 1;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
|
||
Иначе
|
||
|
||
// В заголовке в качестве номера порции выводим порцию в пределах налогового периода.
|
||
ЗаголовокЛиста = УчетНДС.СформироватьЗаголовокЛиста(НазваниеРаздела, СчетчикСегментовНалоговогоПериода);
|
||
// В общую таблицу передаем в качестве номера раздела глобальный счетчик сегментов (с учетом основных разделов книги).
|
||
ДополнительныеПараметры = Новый Структура();
|
||
ДополнительныеПараметры.Вставить("ЭтоДопЛист", Истина);
|
||
ПроверкаКонтрагентов.ДобавитьРазделОтчета(
|
||
СтруктураПараметров,
|
||
ЗаголовокЛиста,
|
||
СчетчикСегментов,
|
||
ТабличныйДокумент,
|
||
ДополнительныеПараметры);
|
||
|
||
КонецЕсли;
|
||
|
||
// Очистим табличный документ и таблицу
|
||
ТабличныйДокумент.Очистить();
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.ШапкаРаздел91);
|
||
КонецЕсли;
|
||
ТабличныйДокумент.Вывести(СтруктураСекций.СтрокиДляПовтора);
|
||
|
||
// Обнулим счетчик текущего сегмента
|
||
СчетчикСтрокТекущегоСегмента = 0;
|
||
СчетчикСегментов = СчетчикСегментов + 1;
|
||
СчетчикСегментовНалоговогоПериода = СчетчикСегментовНалоговогоПериода + 1;
|
||
|
||
КонецЕсли;
|
||
|
||
ИтогЗаПериод.ВсегоПродаж = ИтогЗаПериод.ВсегоПродаж + ЗаписьКниги.ВсегоПродаж;
|
||
ИтогЗаПериод.СуммаБезНДС10 = ИтогЗаПериод.СуммаБезНДС10 + ЗаписьКниги.СуммаБезНДС10;
|
||
ИтогЗаПериод.НДС10 = ИтогЗаПериод.НДС10 + ЗаписьКниги.НДС10;
|
||
ИтогЗаПериод.СуммаБезНДС18 = ИтогЗаПериод.СуммаБезНДС18 + ЗаписьКниги.СуммаБезНДС18;
|
||
ИтогЗаПериод.НДС18 = ИтогЗаПериод.НДС18 + ЗаписьКниги.НДС18;
|
||
ИтогЗаПериод.НДС0 = ИтогЗаПериод.НДС0 + ЗаписьКниги.НДС0;
|
||
ИтогЗаПериод.СуммаБезНДС22 = ИтогЗаПериод.СуммаБезНДС22 + ЗаписьКниги.СуммаБезНДС22;
|
||
ИтогЗаПериод.НДС22 = ИтогЗаПериод.НДС22 + ЗаписьКниги.НДС22;
|
||
ИтогЗаПериод.СуммаБезНДС20Или18 = ИтогЗаПериод.СуммаБезНДС20Или18 + ЗаписьКниги.СуммаБезНДС20Или18;
|
||
ИтогЗаПериод.НДС20Или18 = ИтогЗаПериод.НДС20Или18 + ЗаписьКниги.НДС20Или18;
|
||
ИтогЗаПериод.СуммаБезНДС20 = ИтогЗаПериод.СуммаБезНДС20 + ЗаписьКниги.СуммаБезНДС20;
|
||
ИтогЗаПериод.НДС20 = ИтогЗаПериод.НДС20 + ЗаписьКниги.НДС20;
|
||
ИтогЗаПериод.СуммаБезНДС7 = ИтогЗаПериод.СуммаБезНДС7 + ЗаписьКниги.СуммаБезНДС7;
|
||
ИтогЗаПериод.НДС7 = ИтогЗаПериод.НДС7 + ЗаписьКниги.НДС7;
|
||
ИтогЗаПериод.СуммаБезНДС5 = ИтогЗаПериод.СуммаБезНДС5 + ЗаписьКниги.СуммаБезНДС5;
|
||
ИтогЗаПериод.НДС5 = ИтогЗаПериод.НДС5 + ЗаписьКниги.НДС5;
|
||
ИтогЗаПериод.СуммаСовсемБезНДС = ИтогЗаПериод.СуммаСовсемБезНДС + ЗаписьКниги.СуммаСовсемБезНДС;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
ИтогЗаПериод.СуммаБезНДС20 = ИтогЗаПериод.СуммаБезНДС20Или18;
|
||
ИтогЗаПериод.НДС20 = ИтогЗаПериод.НДС20Или18;
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЦикла;
|
||
КонецЦикла; // РазделениеПоДоговоруДляАвансов.Следующий()
|
||
КонецЦикла; // ЗаписьПоСФ.Следующий()
|
||
КонецЕсли;
|
||
|
||
УправлениеКолонтитулами.УстановитьКолонтитулы(ТабличныйДокумент);
|
||
|
||
Если НЕ СтруктураПараметров.ЗаполнениеДокумента Тогда
|
||
СтруктураПараметров.СчетчикСтрокДопЛиста = Счетчик;
|
||
СтруктураПараметров.СчетчикСтрокТекущегоСегмента = СчетчикСтрокТекущегоСегмента;
|
||
СтруктураПараметров.СчетчикСегментов = СчетчикСегментов;
|
||
СтруктураПараметров.СчетчикСегментовНалоговогоПериода = СчетчикСегментовНалоговогоПериода;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ЗаполнитьСтрокуКнигиПродаж(СтруктураПараметров, Секция, ЗаписьКниги, НомерСтроки, ДополнительнаяИнформация, ДетальнаяЗапись = Неопределено)
|
||
|
||
Если ДетальнаяЗапись <> Неопределено Тогда
|
||
ПараметрыЗаполнения = ДетальнаяЗапись;
|
||
Иначе
|
||
ПараметрыЗаполнения = ЗаписьКниги;
|
||
КонецЕсли;
|
||
|
||
ЗаполнитьЗначенияСвойств(Секция, ПараметрыЗаполнения);
|
||
|
||
// Универсальная структура для заполнения книги по разным версиям постановления.
|
||
СоставСтроки = Новый Структура;
|
||
|
||
// В соответствии с письмом ФНС России от 16.01.2018 N СД-4-3/480@ операции по реализации
|
||
// товаров п.8 ст.161 НК РФ отражаются с прочерками "-" в графах 13б, 17.
|
||
Если ПараметрыЗаполнения.Событие = Перечисления.СобытияПоНДСПродажи.НалогИсчисляетПокупатель Тогда
|
||
ПараметрВсегоПродаж = "-";
|
||
ПараметрНДС22 = "-";
|
||
ПараметрНДС20Или18 = "-";
|
||
ПараметрНДС20 = "-";
|
||
ПараметрНДС18 = "-";
|
||
Иначе
|
||
ПараметрВсегоПродаж = ЗаписьКниги.ВсегоПродаж;
|
||
ПараметрНДС22 = ЗаписьКниги.НДС22;
|
||
ПараметрНДС20Или18 = ЗаписьКниги.НДС20Или18;
|
||
ПараметрНДС20 = ЗаписьКниги.НДС20;
|
||
ПараметрНДС18 = ЗаписьКниги.НДС18;
|
||
КонецЕсли;
|
||
СоставСтроки.Вставить("ВсегоПродаж", ПараметрВсегоПродаж);
|
||
СоставСтроки.Вставить("СуммаБезНДС22", ЗаписьКниги.СуммаБезНДС22);
|
||
СоставСтроки.Вставить("НДС22", ПараметрНДС22);
|
||
СоставСтроки.Вставить("СуммаБезНДС20Или18", ЗаписьКниги.СуммаБезНДС20Или18);
|
||
СоставСтроки.Вставить("НДС20Или18", ПараметрНДС20Или18);
|
||
СоставСтроки.Вставить("СуммаБезНДС20", ЗаписьКниги.СуммаБезНДС20);
|
||
СоставСтроки.Вставить("НДС20", ПараметрНДС20);
|
||
СоставСтроки.Вставить("СуммаБезНДС18", ЗаписьКниги.СуммаБезНДС18);
|
||
СоставСтроки.Вставить("НДС18", ПараметрНДС18);
|
||
СоставСтроки.Вставить("СуммаБезНДС10", ЗаписьКниги.СуммаБезНДС10);
|
||
СоставСтроки.Вставить("НДС10", ЗаписьКниги.НДС10);
|
||
СоставСтроки.Вставить("СуммаБезНДС7", ЗаписьКниги.СуммаБезНДС7);
|
||
СоставСтроки.Вставить("НДС7", ЗаписьКниги.НДС7);
|
||
СоставСтроки.Вставить("СуммаБезНДС5", ЗаписьКниги.СуммаБезНДС5);
|
||
СоставСтроки.Вставить("НДС5", ЗаписьКниги.НДС5);
|
||
СоставСтроки.Вставить("НДС0", ЗаписьКниги.НДС0);
|
||
СоставСтроки.Вставить("СуммаСовсемБезНДС", ЗаписьКниги.СуммаСовсемБезНДС);;
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКниги.СчетФактураДокумент) Тогда
|
||
СоставСтроки.Вставить("СчетФактура", ЗаписьКниги.СчетФактураДокумент);
|
||
ИначеЕсли ДетальнаяЗапись <> Неопределено Тогда
|
||
СоставСтроки.Вставить("СчетФактура", ДетальнаяЗапись.СчетФактура);
|
||
КонецЕсли;
|
||
|
||
ПредставлениеСФ = УчетНДС.ОпределитьДатуИНомерСФ(ПараметрыЗаполнения);
|
||
|
||
СоставСтроки.Вставить("ДатаНомер", ПредставлениеСФ.ДатаНомер);
|
||
СоставСтроки.Вставить("НомерДата", ПредставлениеСФ.НомерДата);
|
||
СоставСтроки.Вставить("НомерОтДата", ПредставлениеСФ.НомерОтДата);
|
||
|
||
СоставСтроки.Вставить("НомерДатаИсправления", ПредставлениеСФ.НомерДатаИсправленный);
|
||
СоставСтроки.Вставить("НомерОтДатаИсправленный", ПредставлениеСФ.НомерОтДатаИсправленный);
|
||
|
||
СоставСтроки.Вставить("НомерДатаКорректировки", ПредставлениеСФ.НомерДатаКорректировочный);
|
||
СоставСтроки.Вставить("НомерОтДатаКорректировочный", ПредставлениеСФ.НомерОтДатаКорректировочный);
|
||
|
||
СоставСтроки.Вставить("НомерДатаИсправленияКорректировки",
|
||
ПредставлениеСФ.НомерДатаИсправленныйКорректировочный);
|
||
СоставСтроки.Вставить("НомерОтДатаИсправленныйКорректировочный",
|
||
ПредставлениеСФ.НомерОтДатаИсправленныйКорректировочный);
|
||
|
||
СоставСтроки.Вставить("Ном", НомерСтроки);
|
||
СоставСтроки.Вставить("КодОперации", ПараметрыЗаполнения.КодВидаОперации);
|
||
|
||
Если ЗначениеЗаполнено(ПараметрыЗаполнения.Покупатель) Тогда
|
||
Если ПараметрыЗаполнения.СводныйКомиссионный Тогда
|
||
Секция.Покупатель = "";
|
||
Секция.Графа8 = "";
|
||
Иначе
|
||
СоставСтроки.Вставить("Покупатель", ПараметрыЗаполнения.Покупатель);
|
||
СоставСтроки.Вставить("ПокупательИНН", ПараметрыЗаполнения.ПокупательИНН);
|
||
СоставСтроки.Вставить("ПокупательКПП", ПараметрыЗаполнения.ПокупательКПП);
|
||
СоставСтроки.Вставить("Графа8", Строка(ПараметрыЗаполнения.ПокупательИНН)
|
||
+ ?(ЗначениеЗаполнено(ПараметрыЗаполнения.ПокупательКПП), "/" + Строка(ПараметрыЗаполнения.ПокупательКПП), ""));
|
||
КонецЕсли;
|
||
СоставСтроки.Вставить("Посредник", ПараметрыЗаполнения.Посредник);
|
||
СоставСтроки.Вставить("ПосредникИНН_КПП", "" + Строка(ПараметрыЗаполнения.ПосредникИНН)
|
||
+ ?(ЗначениеЗаполнено(ПараметрыЗаполнения.ПосредникКПП), "/" + Строка(ПараметрыЗаполнения.ПосредникКПП), ""));
|
||
|
||
ИначеЕсли ПараметрыЗаполнения.КодВидаОперации = "10" Тогда
|
||
Секция.Покупатель = "--";
|
||
Секция.Графа8 = "";
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("Валюта",
|
||
?(ЗначениеЗаполнено(ПараметрыЗаполнения.Валюта),
|
||
"" + ПараметрыЗаполнения.Валюта + ", " + ПараметрыЗаполнения.ВалютаКод, ""));
|
||
СоставСтроки.Вставить("ВсегоПродажВВалюте",
|
||
?(ЗначениеЗаполнено(ПараметрыЗаполнения.Валюта), ПараметрыЗаполнения.ВсегоПродажВВалюте, ""));
|
||
|
||
МассивДокПдтвОпл = Новый Массив(); // Массив документов оплаты НДС для декларации с 1 кв 2015 года
|
||
|
||
ТекстОплаты = "";
|
||
СписокДатОплат = Новый СписокЗначений();
|
||
ТекстОплатыСНомером = "";
|
||
ТекстНомерОтДатаОплаты = "";
|
||
СписокНомеровИДатОплат = Новый СписокЗначений();
|
||
|
||
АвансовыеСчетаФактурыМассив = Новый Массив();
|
||
СвЧастСчФ = Новый Массив();
|
||
СвСчФПродРанВыст = Новый Массив();
|
||
АвансовыеСчетаФактурыТекст = "";
|
||
|
||
СчетаФактуры = Новый Массив();
|
||
|
||
Если ДетальнаяЗапись = Неопределено Тогда
|
||
|
||
// Графа 11а
|
||
ЗаполнитьСведенияОСчетеФактуреНаАванс(
|
||
АвансовыеСчетаФактурыМассив,
|
||
АвансовыеСчетаФактурыТекст,
|
||
ЗаписьКниги,
|
||
СвСчФПродРанВыст,
|
||
СвЧастСчФ);
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКниги.ДатаОплаты) Тогда
|
||
Если СписокДатОплат.НайтиПоЗначению(Формат(ЗаписьКниги.ДатаОплаты, "ДФ=dd.MM.yyyy")) = Неопределено Тогда
|
||
ТекстОплаты = ТекстОплаты + ?(НЕ ЗначениеЗаполнено(ТекстОплаты), "", "," + Символы.ПС)
|
||
+ Формат(ЗаписьКниги.ДатаОплаты, "ДФ=dd.MM.yyyy");
|
||
СписокДатОплат.Добавить(Формат(ЗаписьКниги.ДатаОплаты, "ДФ=dd.MM.yyyy"));
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКниги.НомерДокументаОплаты) Тогда
|
||
|
||
НомерДатаОплаты = СтрШаблон(НСтр("ru='%1;%2'"),
|
||
ЗаписьКниги.НомерДокументаОплаты, Формат(ЗаписьКниги.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy"));
|
||
НомерОтДатаОплаты = СтрШаблон(НСтр("ru='%1 от %2'"),
|
||
ЗаписьКниги.НомерДокументаОплаты, Формат(ЗаписьКниги.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy"));
|
||
|
||
Если СписокНомеровИДатОплат.НайтиПоЗначению(НомерДатаОплаты) = Неопределено Тогда
|
||
|
||
ТекстОплатыСНомером = ТекстОплатыСНомером
|
||
+ ?(НЕ ЗначениеЗаполнено(ТекстОплатыСНомером), "", "," + Символы.ПС) + НомерДатаОплаты;
|
||
ТекстНомерОтДатаОплаты = ТекстНомерОтДатаОплаты
|
||
+ ?(НЕ ЗначениеЗаполнено(ТекстНомерОтДатаОплаты), "", ";" + Символы.ПС) + НомерОтДатаОплаты;
|
||
СписокНомеровИДатОплат.Добавить(НомерДатаОплаты);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СтруктураДокПдтвОпл = Новый Структура("НомДокПдтвОпл,ДатаДокПдтвОпл");
|
||
СтруктураДокПдтвОпл.НомДокПдтвОпл = ЗаписьКниги.НомерДокументаОплаты;
|
||
Иначе
|
||
СтруктураДокПдтвОпл = Новый Структура("НомерДокПдтвОпл,ДатаДокПдтвОпл");
|
||
СтруктураДокПдтвОпл.НомерДокПдтвОпл = ЗаписьКниги.НомерДокументаОплаты;
|
||
КонецЕсли;
|
||
СтруктураДокПдтвОпл.ДатаДокПдтвОпл = Формат(ЗаписьКниги.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy");
|
||
МассивДокПдтвОпл.Добавить(СтруктураДокПдтвОпл);
|
||
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
СчетаФактуры.Добавить(ЗаписьКниги.СчетФактура);
|
||
|
||
Иначе
|
||
|
||
// Получаем новую выборку для обхода, ДетальнуюЗапись не используем, она всегда спозиционирована на первую строку.
|
||
СтрокаЗаписи = ЗаписьКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
|
||
Пока СтрокаЗаписи.Следующий() Цикл
|
||
|
||
// Графа 11а
|
||
ЗаполнитьСведенияОСчетеФактуреНаАванс(
|
||
АвансовыеСчетаФактурыМассив,
|
||
АвансовыеСчетаФактурыТекст,
|
||
СтрокаЗаписи,
|
||
СвСчФПродРанВыст,
|
||
СвЧастСчФ);
|
||
|
||
Если ЗначениеЗаполнено(СтрокаЗаписи.ДатаОплаты) Тогда
|
||
Если СписокДатОплат.НайтиПоЗначению(Формат(СтрокаЗаписи.ДатаОплаты, "ДФ=dd.MM.yyyy")) = Неопределено Тогда
|
||
ТекстОплаты = ТекстОплаты + ?(НЕ ЗначениеЗаполнено(ТекстОплаты), "", "," + Символы.ПС)
|
||
+ Формат(СтрокаЗаписи.ДатаОплаты, "ДФ=dd.MM.yyyy");
|
||
СписокДатОплат.Добавить(Формат(СтрокаЗаписи.ДатаОплаты, "ДФ=dd.MM.yyyy"));
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
Если ЗначениеЗаполнено(СтрокаЗаписи.НомерДокументаОплаты) Тогда
|
||
|
||
НомерДатаОплаты = СтрШаблон(НСтр("ru='%1;%2'"),
|
||
СтрокаЗаписи.НомерДокументаОплаты, Формат(СтрокаЗаписи.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy"));
|
||
НомерОтДатаОплаты = СтрШаблон(НСтр("ru='%1 от %2'"),
|
||
СтрокаЗаписи.НомерДокументаОплаты, Формат(СтрокаЗаписи.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy"));
|
||
|
||
Если СписокНомеровИДатОплат.НайтиПоЗначению(НомерДатаОплаты) = Неопределено Тогда
|
||
|
||
ТекстОплатыСНомером = ТекстОплатыСНомером
|
||
+ ?(НЕ ЗначениеЗаполнено(ТекстОплатыСНомером), "", "," + Символы.ПС) + НомерДатаОплаты;
|
||
ТекстНомерОтДатаОплаты = ТекстНомерОтДатаОплаты
|
||
+ ?(НЕ ЗначениеЗаполнено(ТекстНомерОтДатаОплаты), "", ";" + Символы.ПС) + НомерОтДатаОплаты;
|
||
СписокНомеровИДатОплат.Добавить(НомерДатаОплаты);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
СтруктураДокПдтвОпл = Новый Структура("НомДокПдтвОпл,ДатаДокПдтвОпл");
|
||
СтруктураДокПдтвОпл.НомДокПдтвОпл = СтрокаЗаписи.НомерДокументаОплаты;
|
||
Иначе
|
||
СтруктураДокПдтвОпл = Новый Структура("НомерДокПдтвОпл,ДатаДокПдтвОпл");
|
||
СтруктураДокПдтвОпл.НомерДокПдтвОпл = СтрокаЗаписи.НомерДокументаОплаты;
|
||
КонецЕсли;
|
||
СтруктураДокПдтвОпл.ДатаДокПдтвОпл = Формат(СтрокаЗаписи.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy");
|
||
МассивДокПдтвОпл.Добавить(СтруктураДокПдтвОпл);
|
||
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
СчетаФактуры.Добавить(СтрокаЗаписи.СчетФактура);
|
||
|
||
КонецЦикла; // СтрокаЗаписи.Следующий()
|
||
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("НомерДатаОплаты", ТекстОплатыСНомером);
|
||
СоставСтроки.Вставить("НомерОтДатаОплаты", ТекстНомерОтДатаОплаты);
|
||
СоставСтроки.Вставить("ДатаОплаты", ТекстОплаты);
|
||
СоставСтроки.Вставить("АвансовыеСчетаФактуры", АвансовыеСчетаФактурыТекст);
|
||
|
||
// Код вида товара (ТНВЭД) и РНПТ
|
||
СчетаФактуры = ОбщегоНазначенияБПВызовСервера.УдалитьПовторяющиесяЭлементыМассива(СчетаФактуры);
|
||
СтрокаКодВидаТовара = "";
|
||
МассивСвРегНом = Новый Массив();
|
||
|
||
Для Каждого СчетФактура Из СчетаФактуры Цикл
|
||
Если ЗначениеЗаполнено(СчетФактура) Тогда
|
||
СтрокаДополнительнойИнформации = ДополнительнаяИнформация.Найти(СчетФактура, "Ссылка");
|
||
Иначе
|
||
СтрокаДополнительнойИнформации = Неопределено;
|
||
КонецЕсли;
|
||
Если СтрокаДополнительнойИнформации <> Неопределено Тогда
|
||
Если ЗначениеЗаполнено(СтрокаДополнительнойИнформации.ТНВЭД) Тогда
|
||
СтрокаКодВидаТовара = СтрокаДополнительнойИнформации.ТНВЭД;
|
||
КонецЕсли;
|
||
|
||
Если ЗначениеЗаполнено(СтрокаДополнительнойИнформации.СвРегНом) Тогда
|
||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивСвРегНом, СтрокаДополнительнойИнформации.СвРегНом);
|
||
КонецЕсли;
|
||
|
||
Если ЗначениеЗаполнено(СтрокаДополнительнойИнформации.СвРегНомТД) Тогда
|
||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивСвРегНом, СтрокаДополнительнойИнформации.СвРегНомТД);
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
|
||
Если ПараметрыЗаполнения.ВсегоПродаж < 0 Тогда
|
||
// Для сторнирующей записи необходимо отразить показатели прослеживаемости с отрицательным знаком
|
||
УчетНДСПереопределяемый.ПреобразоватьПоказателиРНПТКСторнирующейЗаписи(МассивСвРегНом);
|
||
КонецЕсли;
|
||
|
||
Если ЗначениеЗаполнено(МассивСвРегНом) Тогда
|
||
// Выводим первую строку и сохраняем коллекцию в параметрах формирования
|
||
ПервыйРНПТ = МассивСвРегНом[0];
|
||
СоставСтроки.Вставить("РегНомер", ПервыйРНПТ.РегНомПросл);
|
||
СоставСтроки.Вставить("КолПрослеж", ПервыйРНПТ.КолТовПросл);
|
||
СоставСтроки.Вставить("СтоимПрослеж", ПервыйРНПТ.СтоимТовПросл);
|
||
СоставСтроки.Вставить("ЕдПрослеж", ПервыйРНПТ.ОКЕИ);
|
||
СтруктураПараметров.Вставить("МассивСвРегНом", МассивСвРегНом);
|
||
Иначе
|
||
СоставСтроки.Вставить("РегНомер", "");
|
||
СоставСтроки.Вставить("КолПрослеж", "");
|
||
СоставСтроки.Вставить("СтоимПрослеж", "");
|
||
СоставСтроки.Вставить("ЕдПрослеж", "");
|
||
СтруктураПараметров.Вставить("МассивСвРегНом", Неопределено);
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("КодВидаТовара", СтрокаКодВидаТовара);
|
||
МассивКодВидаТовара = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаКодВидаТовара, ";");
|
||
|
||
ЗаполнитьЗначенияСвойств(Секция, СоставСтроки);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
ДополнительныеСведения = Новый Структура("Контрагент,ПредставлениеКонтрагента,Документ,ПредставлениеДокумента");
|
||
|
||
СоставСтроки.Вставить("НомерПор", НомерСтроки);
|
||
|
||
СоставСтроки.Вставить("НомСчФПрод", ПредставлениеСФ.Номер);
|
||
СоставСтроки.Вставить("ДатаСчФПрод", ПредставлениеСФ.Дата);
|
||
|
||
СоставСтроки.Вставить("НомИспрСчФ", ПредставлениеСФ.НомерИсправленный);
|
||
СоставСтроки.Вставить("ДатаИспрСчФ", ПредставлениеСФ.ДатаИсправленный);
|
||
|
||
СоставСтроки.Вставить("НомКСчФПрод", ПредставлениеСФ.НомерКорректировочный);
|
||
СоставСтроки.Вставить("ДатаКСчФПрод", ПредставлениеСФ.ДатаКорректировочный);
|
||
|
||
СоставСтроки.Вставить("НомИспрКСчФ", ПредставлениеСФ.НомерИсправленныйКорректировочный);
|
||
СоставСтроки.Вставить("ДатаИспрКСчФ", ПредставлениеСФ.ДатаИсправленныйКорректировочный);
|
||
|
||
СоставСтроки.Вставить("ОКВ", Строка(ПараметрыЗаполнения.ВалютаКод));
|
||
|
||
МассивКодВидОпер = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ПараметрыЗаполнения.КодВидаОперации, ";");
|
||
СоставСтроки.Вставить("КодВидОпер", МассивКодВидОпер);
|
||
|
||
СоставСтроки.Вставить("ДокПдтвОпл", МассивДокПдтвОпл);
|
||
|
||
// Сведения о покупателе
|
||
|
||
МассивСвПок = Новый Массив();
|
||
|
||
Если СоставСтроки.Свойство("ПокупательИНН")
|
||
И (ЗначениеЗаполнено(СоставСтроки.ПокупательИНН)
|
||
ИЛИ ЗначениеЗаполнено(СоставСтроки.ПокупательКПП)) Тогда
|
||
СтруктураРеквизитовКонтрагента = УчетНДС.ПолучитьСтруктуруРеквизитовКонтрагента(ПараметрыЗаполнения.ПокупательИНН, ПараметрыЗаполнения.ПокупательКПП);
|
||
СтруктураРеквизитовКонтрагента.Вставить("Контрагент", ПараметрыЗаполнения.Контрагент);
|
||
СтруктураРеквизитовКонтрагента.Вставить("КонтрагентНаименование", ПараметрыЗаполнения.Покупатель);
|
||
МассивСвПок.Добавить(СтруктураРеквизитовКонтрагента);
|
||
КонецЕсли;
|
||
|
||
ДополнительныеСведения.Контрагент = ПараметрыЗаполнения.Контрагент;
|
||
ДополнительныеСведения.ПредставлениеКонтрагента = ПараметрыЗаполнения.Покупатель;
|
||
|
||
СоставСтроки.Вставить("СвПокуп", МассивСвПок);
|
||
|
||
// Сведения о посреднике
|
||
|
||
Если СоставСтроки.Свойство("Посредник")
|
||
И (ЗначениеЗаполнено(ПараметрыЗаполнения.ПосредникИНН)
|
||
ИЛИ ЗначениеЗаполнено(ПараметрыЗаполнения.ПосредникКПП)) Тогда
|
||
СтруктураРеквизитовПосредника = УчетНДС.ПолучитьСтруктуруРеквизитовКонтрагента(ПараметрыЗаполнения.ПосредникИНН, ПараметрыЗаполнения.ПосредникКПП);
|
||
СтруктураРеквизитовПосредника.Вставить("Контрагент", ПараметрыЗаполнения.ПосредникСсылка);
|
||
СтруктураРеквизитовПосредника.Вставить("КонтрагентНаименование", СоставСтроки.Посредник);
|
||
СоставСтроки.Вставить("СвПос", СтруктураРеквизитовПосредника);
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("СтоимПродСФВ", ПараметрыЗаполнения.ВсегоПродажВВалюте);
|
||
СоставСтроки.Вставить("СтоимПродСФ", ЗаписьКниги.ВсегоПродаж);
|
||
СоставСтроки.Вставить("СтоимПродСФ22", ЗаписьКниги.СуммаБезНДС22);
|
||
СоставСтроки.Вставить("СтоимПродСФ20Или18", ЗаписьКниги.СуммаБезНДС20Или18);
|
||
СоставСтроки.Вставить("СтоимПродСФ20", ЗаписьКниги.СуммаБезНДС20);
|
||
СоставСтроки.Вставить("СтоимПродСФ18", ЗаписьКниги.СуммаБезНДС18);
|
||
СоставСтроки.Вставить("СтоимПродСФ10", ЗаписьКниги.СуммаБезНДС10);
|
||
СоставСтроки.Вставить("СтоимПродСФ0", ЗаписьКниги.НДС0);
|
||
СоставСтроки.Вставить("СтоимПродСФ7", ЗаписьКниги.СуммаБезНДС7);
|
||
СоставСтроки.Вставить("СтоимПродСФ5", ЗаписьКниги.СуммаБезНДС5);
|
||
СоставСтроки.Вставить("СумНДССФ22", ЗаписьКниги.НДС22);
|
||
СоставСтроки.Вставить("СумНДССФ20Или18", ЗаписьКниги.НДС20Или18);
|
||
СоставСтроки.Вставить("СумНДССФ20", ЗаписьКниги.НДС20);
|
||
СоставСтроки.Вставить("СумНДССФ18", ЗаписьКниги.НДС18);
|
||
СоставСтроки.Вставить("СумНДССФ10", ЗаписьКниги.НДС10);
|
||
СоставСтроки.Вставить("СумНДССФ7", ЗаписьКниги.НДС7);
|
||
СоставСтроки.Вставить("СумНДССФ5", ЗаписьКниги.НДС5);
|
||
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
СоставСтроки.Вставить("СтоимПродСФ20", ЗаписьКниги.СуммаБезНДС20Или18);
|
||
СоставСтроки.Вставить("СумНДССФ20", ЗаписьКниги.НДС20Или18);
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("СтоимПродОсв", ЗаписьКниги.СуммаСовсемБезНДС);
|
||
|
||
Если ЗначениеЗаполнено(ПредставлениеСФ.НомерКорректировочный) Тогда
|
||
ДополнительныеСведения.ПредставлениеДокумента = СтрШаблон(
|
||
НСтр("ru='Корректировочный счет-фактура № %1 от %2 на сумму %3 %4'"),
|
||
ПредставлениеСФ.НомерКорректировочный,
|
||
ПредставлениеСФ.ДатаКорректировочный,
|
||
Формат(ЗаписьКниги.ВсегоПродаж, "ЧДЦ=2; ЧН="),
|
||
ПараметрыЗаполнения.ВалютаНаименование);
|
||
Иначе
|
||
ДополнительныеСведения.ПредставлениеДокумента = СтрШаблон(
|
||
НСтр("ru='%1 на сумму %2 %3'"),
|
||
ПредставлениеСФ.Представление,
|
||
Формат(ЗаписьКниги.ВсегоПродаж, "ЧДЦ=2; ЧН="),
|
||
ПараметрыЗаполнения.ВалютаНаименование);
|
||
КонецЕсли;
|
||
|
||
ДополнительныеСведения.Документ = СоставСтроки.СчетФактура;
|
||
СоставСтроки.Вставить("ДополнительныеСведения", ДополнительныеСведения);
|
||
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2019Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2020Кв4"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2021Кв3"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2023Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2025Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
СоставСтроки.Вставить("КодВидТовар", МассивКодВидаТовара);
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2021Кв3"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2023Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2025Кв1"
|
||
ИЛИ СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
СоставСтроки.Вставить("СвРегНом", МассивСвРегНом);
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ПравилаЗаполнения = "2026Кв1" Тогда
|
||
СоставСтроки.Вставить("СвЧастСчФ", СвЧастСчФ);
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаписьДополнительногоЛиста Тогда
|
||
СтрокаРаздела = СтруктураПараметров.ТаблицаРаздел91.Добавить();
|
||
Иначе
|
||
СтрокаРаздела = СтруктураПараметров.ТаблицаРаздел9.Добавить();
|
||
КонецЕсли;
|
||
|
||
ЗаполнитьЗначенияСвойств(СтрокаРаздела, СоставСтроки);
|
||
|
||
ИначеЕсли СтруктураПараметров.ЗаполнениеДокумента
|
||
И СтруктураПараметров.ФорматПоПостановлению735 Тогда
|
||
|
||
СоставСтроки.Вставить("НомПП", НомерСтроки);
|
||
СоставСтроки.Вставить("НомерСчФ", ПредставлениеСФ.Номер);
|
||
СоставСтроки.Вставить("ДатаСчФ", ПредставлениеСФ.Дата);
|
||
СоставСтроки.Вставить("НомИспрСчФ", ПредставлениеСФ.НомерИсправленный);
|
||
СоставСтроки.Вставить("ДатаИспрСчФ", ПредставлениеСФ.ДатаИсправленный);
|
||
СоставСтроки.Вставить("НомерКСчФ", ПредставлениеСФ.НомерКорректировочный);
|
||
СоставСтроки.Вставить("ДатаКСчФ", ПредставлениеСФ.ДатаКорректировочный);
|
||
СоставСтроки.Вставить("НомИспрКСчФ", ПредставлениеСФ.НомерИсправленныйКорректировочный);
|
||
СоставСтроки.Вставить("ДатаИспрКСчФ", ПредставлениеСФ.ДатаИсправленныйКорректировочный);
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 5
|
||
И Не ЗначениеЗаполнено(ПараметрыЗаполнения.ВалютаКод) Тогда
|
||
ВалютаКод = "643";
|
||
Иначе
|
||
ВалютаКод = Строка(ПараметрыЗаполнения.ВалютаКод);
|
||
КонецЕсли;
|
||
СоставСтроки.Вставить("КодОКВ", ВалютаКод);
|
||
СоставСтроки.Вставить("ВидТов", МассивКодВидаТовара);
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 8 Тогда
|
||
СоставСтроки.Вставить("СвСчФПродРанВыст", СвСчФПродРанВыст);
|
||
СоставСтроки.Вставить("СтТовРубКоп22", ЗаписьКниги.СуммаБезНДС22);
|
||
СоставСтроки.Вставить("СумНДСРубКоп22", ЗаписьКниги.НДС22);
|
||
СоставСтроки.Вставить("СумНДСРубКоп18_20", ЗаписьКниги.НДС20Или18);
|
||
СоставСтроки.Вставить("СтТовРубКоп18_20", ЗаписьКниги.СуммаБезНДС20Или18);
|
||
КонецЕсли;
|
||
|
||
// Сведения о покупателе
|
||
|
||
СтруктураРеквизитовКонтрагента = Новый Структура;
|
||
|
||
Если СоставСтроки.Свойство("ПокупательИНН")
|
||
И НЕ ПустаяСтрока(СоставСтроки.ПокупательИНН) Тогда
|
||
|
||
СтруктураРеквизитовКонтрагента = УчетНДС.ПолучитьСтруктуруРеквизитовКонтрагента(
|
||
ПараметрыЗаполнения.ПокупательИНН, ПараметрыЗаполнения.ПокупательКПП);
|
||
|
||
Если СтруктураРеквизитовКонтрагента.Свойство("ИННФЛ") Тогда
|
||
СоставСтроки.Вставить("ИННФЛ", СтруктураРеквизитовКонтрагента.ИННФЛ);
|
||
Иначе
|
||
СоставСтроки.Вставить("ИННЮЛ", СтруктураРеквизитовКонтрагента.ИННЮЛ);
|
||
СоставСтроки.Вставить("КПП", СтруктураРеквизитовКонтрагента.КПП);
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("НаимПок", ПараметрыЗаполнения.Покупатель);
|
||
|
||
МассивКодВидОпер = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ПараметрыЗаполнения.КодВидаОперации, ";");
|
||
СоставСтроки.Вставить("КодВидОпер", МассивКодВидОпер);
|
||
|
||
// Сведения о посреднике
|
||
|
||
Если СоставСтроки.Свойство("Посредник")
|
||
И НЕ ПустаяСтрока(ПараметрыЗаполнения.ПосредникИНН) Тогда
|
||
СоставСтроки.Вставить("СвПосредн",
|
||
УчетНДС.ПолучитьСтруктуруРеквизитовКонтрагента(
|
||
ПараметрыЗаполнения.ПосредникИНН, ПараметрыЗаполнения.ПосредникКПП, СоставСтроки.Посредник));
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("СтТовУчНалВсего", ПараметрыЗаполнения.ВсегоПродажВВалюте);
|
||
СоставСтроки.Вставить("СтТовУчНалРубКоп", ЗаписьКниги.ВсегоПродаж);
|
||
СоставСтроки.Вставить("СтТовРубКоп20", ЗаписьКниги.СуммаБезНДС20);
|
||
СоставСтроки.Вставить("СтТовРубКоп18", ЗаписьКниги.СуммаБезНДС18);
|
||
СоставСтроки.Вставить("СтТовРубКоп10", ЗаписьКниги.СуммаБезНДС10);
|
||
СоставСтроки.Вставить("СтТовРубКоп7", ЗаписьКниги.СуммаБезНДС7);
|
||
СоставСтроки.Вставить("СтТовРубКоп5", ЗаписьКниги.СуммаБезНДС5);
|
||
СоставСтроки.Вставить("СтТовРубКоп0", ЗаписьКниги.НДС0);
|
||
СоставСтроки.Вставить("СумНДСРубКоп20", ЗаписьКниги.НДС20);
|
||
СоставСтроки.Вставить("СумНДСРубКоп18", ЗаписьКниги.НДС18);
|
||
СоставСтроки.Вставить("СумНДСРубКоп10", ЗаписьКниги.НДС10);
|
||
СоставСтроки.Вставить("СумНДСРубКоп7", ЗаписьКниги.НДС7);
|
||
СоставСтроки.Вставить("СумНДСРубКоп5", ЗаписьКниги.НДС5);
|
||
СоставСтроки.Вставить("СтПродОсвНДСРубКоп", ЗаписьКниги.СуммаСовсемБезНДС);
|
||
|
||
СоставСтроки.Вставить("СвДокПдтвОпл", МассивДокПдтвОпл);
|
||
|
||
Если ЗначениеЗаполнено(МассивСвРегНом) Тогда
|
||
СоставСтроки.Вставить("СвРегНом", МассивСвРегНом);
|
||
КонецЕсли;
|
||
|
||
СтрокаРаздела = СтруктураПараметров.Записи.Добавить();
|
||
ЗаполнитьЗначенияСвойств(СтрокаРаздела, СоставСтроки);
|
||
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
// Не используется начиная с вступления в силу постановление № 981 (с 1 октября 2017 года).
|
||
Процедура ЗаполнитьСтрокуКнигиПродажСводныйКомиссионный(ЗаписиКниги, СтруктураПараметров, Секция, НомерСтроки)
|
||
|
||
ЗаписьКнигиДетальная = ЗаписиКниги.Выбрать(ОбходРезультатаЗапроса.Прямой);
|
||
|
||
КоличествоЗаписей = ЗаписьКнигиДетальная.Количество();
|
||
ТекущаяЗапись = 0;
|
||
ВсегоПродаж = 0;
|
||
ВсегоПродажВВалюте = 0;
|
||
СуммаБезНДС18 = 0;
|
||
НДС18 = 0;
|
||
СуммаБезНДС10 = 0;
|
||
НДС10 = 0;
|
||
НДС0 = 0;
|
||
СуммаСовсемБезНДС = 0;
|
||
Покупатель = "";
|
||
Графа8 = "";
|
||
ВалютаКод = "";
|
||
КодВидаОперации = "";
|
||
|
||
ТекстОплатыСНомером = "";
|
||
ТекстНомерОтДатаОплаты = "";
|
||
|
||
МассивДокПдтвОпл = Новый Массив(); // Массив документов оплаты НДС для декларации с 1 кв 2015 года
|
||
МассивСвПок = Новый Массив(); // Сведения о покупателе
|
||
ДополнительныеСведения = Новый Структура("Контрагент,ПредставлениеКонтрагента,Документ,ПредставлениеДокумента");
|
||
|
||
Пока ЗаписьКнигиДетальная.Следующий() Цикл
|
||
|
||
ЗаполнитьЗначенияСвойств(Секция, ЗаписьКнигиДетальная);
|
||
|
||
ТекущаяЗапись = ТекущаяЗапись + 1;
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКнигиДетальная.НомерДокументаОплаты) Тогда
|
||
|
||
НомерДатаОплаты = СтрШаблон(НСтр("ru='%1;%2'"),
|
||
ЗаписьКнигиДетальная.НомерДокументаОплаты, Формат(ЗаписьКнигиДетальная.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy"));
|
||
НомерОтДатаОплаты = СтрШаблон(НСтр("ru='%1 от %2'"),
|
||
ЗаписьКнигиДетальная.НомерДокументаОплаты, Формат(ЗаписьКнигиДетальная.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy"));
|
||
|
||
ТекстОплатыСНомером = ТекстОплатыСНомером
|
||
+ ?(НЕ ЗначениеЗаполнено(ТекстОплатыСНомером), "", "," + Символы.ПС) + НомерДатаОплаты;
|
||
ТекстНомерОтДатаОплаты = ТекстНомерОтДатаОплаты
|
||
+ ?(НЕ ЗначениеЗаполнено(ТекстНомерОтДатаОплаты), "", ";" + Символы.ПС) + НомерОтДатаОплаты;
|
||
|
||
СтруктураДокПдтвОпл = Новый Структура("НомДокПдтвОпл,ДатаДокПдтвОпл");
|
||
СтруктураДокПдтвОпл.НомДокПдтвОпл = ЗаписьКнигиДетальная.НомерДокументаОплаты;
|
||
СтруктураДокПдтвОпл.ДатаДокПдтвОпл = Формат(ЗаписьКнигиДетальная.ДатаДокументаОплаты, "ДФ=dd.MM.yyyy");
|
||
МассивДокПдтвОпл.Добавить(СтруктураДокПдтвОпл);
|
||
|
||
Иначе
|
||
|
||
ВсегоПродаж = ВсегоПродаж + ЗаписьКнигиДетальная.ВсегоПродаж;
|
||
ВсегоПродажВВалюте = ВсегоПродажВВалюте
|
||
+ ?(ЗначениеЗаполнено(ЗаписьКнигиДетальная.Валюта), ЗаписьКнигиДетальная.ВсегоПродажВВалюте, 0);
|
||
|
||
СуммаБезНДС18 = СуммаБезНДС18 + ЗаписьКнигиДетальная.СуммаБезНДС18;
|
||
НДС18 = НДС18 + ЗаписьКнигиДетальная.НДС18;
|
||
СуммаБезНДС10 = СуммаБезНДС10 + ЗаписьКнигиДетальная.СуммаБезНДС10;
|
||
НДС10 = НДС10 + ЗаписьКнигиДетальная.НДС10;
|
||
НДС0 = НДС0 + ЗаписьКнигиДетальная.НДС0;
|
||
СуммаСовсемБезНДС = СуммаСовсемБезНДС + ЗаписьКнигиДетальная.СуммаСовсемБезНДС;
|
||
|
||
Покупатель = Покупатель + ?(Покупатель = "", "", ";" + Символы.ПС) + ЗаписьКнигиДетальная.Покупатель;
|
||
|
||
Графа8 = Графа8 + ?(Графа8 = "", "", ";" + Символы.ПС)
|
||
+ ЗаписьКнигиДетальная.ПокупательИНН
|
||
+ ?(ЗначениеЗаполнено(ЗаписьКнигиДетальная.ПокупательКПП), "/" + ЗаписьКнигиДетальная.ПокупательКПП, "");
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКнигиДетальная.ПокупательИНН)
|
||
ИЛИ ЗначениеЗаполнено(ЗаписьКнигиДетальная.ПокупательКПП) Тогда
|
||
|
||
СтруктураРеквизитовКонтрагента = УчетНДС.ПолучитьСтруктуруРеквизитовКонтрагента(ЗаписьКнигиДетальная.ПокупательИНН, ЗаписьКнигиДетальная.ПокупательКПП);
|
||
СтруктураРеквизитовКонтрагента.Вставить("Контрагент", ЗаписьКнигиДетальная.Контрагент);
|
||
СтруктураРеквизитовКонтрагента.Вставить("КонтрагентНаименование", ЗаписьКнигиДетальная.Покупатель);
|
||
МассивСвПок.Добавить(СтруктураРеквизитовКонтрагента);
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
Если ТекущаяЗапись = КоличествоЗаписей Тогда
|
||
|
||
СоставСтроки = Новый Структура;
|
||
|
||
ПредставлениеСФ = УчетНДС.ОпределитьДатуИНомерСФ(ЗаписьКнигиДетальная);
|
||
|
||
СоставСтроки.Вставить("ДатаНомер", ПредставлениеСФ.ДатаНомер);
|
||
СоставСтроки.Вставить("НомерДата", ПредставлениеСФ.НомерДата);
|
||
СоставСтроки.Вставить("НомерОтДата", ПредставлениеСФ.НомерОтДата);
|
||
|
||
СоставСтроки.Вставить("НомерДатаИсправления", ПредставлениеСФ.НомерДатаИсправленный);
|
||
СоставСтроки.Вставить("НомерОтДатаИсправленный", ПредставлениеСФ.НомерОтДатаИсправленный);
|
||
|
||
СоставСтроки.Вставить("НомерДатаКорректировки", ПредставлениеСФ.НомерДатаКорректировочный);
|
||
СоставСтроки.Вставить("НомерОтДатаКорректировочный", ПредставлениеСФ.НомерОтДатаКорректировочный);
|
||
|
||
СоставСтроки.Вставить("НомерДатаИсправленияКорректировки",
|
||
ПредставлениеСФ.НомерДатаИсправленныйКорректировочный);
|
||
СоставСтроки.Вставить("НомерОтДатаИсправленныйКорректировочный",
|
||
ПредставлениеСФ.НомерОтДатаИсправленныйКорректировочный);
|
||
|
||
СоставСтроки.Вставить("Ном", НомерСтроки);
|
||
СоставСтроки.Вставить("КодОперации", ЗаписьКнигиДетальная.КодВидаОперации);
|
||
СоставСтроки.Вставить("Покупатель", Покупатель);
|
||
СоставСтроки.Вставить("ПокупательИНН", ЗаписьКнигиДетальная.ПокупательИНН);
|
||
СоставСтроки.Вставить("ПокупательКПП", ЗаписьКнигиДетальная.ПокупательКПП);
|
||
СоставСтроки.Вставить("Графа8", Графа8);
|
||
|
||
ДополнительныеСведения.Документ = ЗаписьКнигиДетальная.СчетФактура;
|
||
|
||
// Сведения о посреднике
|
||
|
||
СоставСтроки.Вставить("Посредник", ЗаписьКнигиДетальная.Посредник);
|
||
СоставСтроки.Вставить("ПосредникИНН_КПП","" + ЗаписьКнигиДетальная.ПосредникИНН
|
||
+ ?(ЗначениеЗаполнено(ЗаписьКнигиДетальная.ПосредникКПП), "/" + ЗаписьКнигиДетальная.ПосредникКПП, ""));
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКнигиДетальная.ПосредникИНН)
|
||
ИЛИ ЗначениеЗаполнено(ЗаписьКнигиДетальная.ПосредникКПП) Тогда
|
||
|
||
СтруктуруРеквизитовПосредника = УчетНДС.ПолучитьСтруктуруРеквизитовКонтрагента(ЗаписьКнигиДетальная.ПосредникИНН, ЗаписьКнигиДетальная.ПосредникКПП);
|
||
СтруктуруРеквизитовПосредника.Вставить("Контрагент", ЗаписьКнигиДетальная.ПосредникСсылка);
|
||
СтруктуруРеквизитовПосредника.Вставить("КонтрагентНаименование", ЗаписьКнигиДетальная.Посредник);
|
||
СоставСтроки.Вставить("СвПос", СтруктуруРеквизитовПосредника);
|
||
|
||
КонецЕсли;
|
||
|
||
СоставСтроки.Вставить("Валюта",
|
||
?(ЗначениеЗаполнено(ЗаписьКнигиДетальная.Валюта),
|
||
"" + ЗаписьКнигиДетальная.Валюта + ", " + ЗаписьКнигиДетальная.ВалютаКод, ""));
|
||
|
||
СоставСтроки.Вставить("ВсегоПродажВВалюте", ВсегоПродажВВалюте);
|
||
|
||
КонецЕсли;
|
||
|
||
ВалютаКод = ЗаписьКнигиДетальная.ВалютаКод;
|
||
КодВидаОперации = ЗаписьКнигиДетальная.КодВидаОперации;
|
||
ВалютаНаименование = ЗаписьКнигиДетальная.ВалютаНаименование;
|
||
|
||
КонецЦикла;
|
||
|
||
СоставСтроки.Вставить("ВсегоПродаж", ВсегоПродаж);
|
||
СоставСтроки.Вставить("ВсегоПродажВВалюте", ВсегоПродажВВалюте);
|
||
СоставСтроки.Вставить("СуммаБезНДС18", СуммаБезНДС18);
|
||
СоставСтроки.Вставить("НДС18", НДС18);
|
||
СоставСтроки.Вставить("СуммаБезНДС10", СуммаБезНДС10);
|
||
СоставСтроки.Вставить("НДС10", НДС10);
|
||
СоставСтроки.Вставить("НДС0", НДС0);
|
||
СоставСтроки.Вставить("СуммаСовсемБезНДС", СуммаСовсемБезНДС);
|
||
СоставСтроки.Вставить("Контрагент", Покупатель);
|
||
СоставСтроки.Вставить("НомерДатаОплаты", ТекстОплатыСНомером);
|
||
СоставСтроки.Вставить("НомерОтДатаОплаты", ТекстНомерОтДатаОплаты);
|
||
|
||
ЗаполнитьЗначенияСвойств(Секция, СоставСтроки);
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
ДополнительныеСведения.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
|
||
ДополнительныеСведения.ПредставлениеКонтрагента = НСтр("ru='Сводные счета-фактуры'");
|
||
ДополнительныеСведения.ПредставлениеДокумента = СтрШаблон(
|
||
НСтр("ru='%1 на сумму %2 %3'"),
|
||
ПредставлениеСФ.Представление,
|
||
Формат(ВсегоПродаж, "ЧДЦ=2; ЧН="),
|
||
ВалютаНаименование);
|
||
СоставСтроки.Вставить("ДополнительныеСведения", ДополнительныеСведения);
|
||
|
||
СоставСтроки.Вставить("НомерПор", НомерСтроки);
|
||
|
||
СоставСтроки.Вставить("НомСчФПрод", ПредставлениеСФ.Номер);
|
||
СоставСтроки.Вставить("ДатаСчФПрод", ПредставлениеСФ.Дата);
|
||
|
||
СоставСтроки.Вставить("НомИспрСчФ", ПредставлениеСФ.НомерИсправленный);
|
||
СоставСтроки.Вставить("ДатаИспрСчФ", ПредставлениеСФ.ДатаИсправленный);
|
||
|
||
СоставСтроки.Вставить("НомКСчФПрод", ПредставлениеСФ.НомерКорректировочный);
|
||
СоставСтроки.Вставить("ДатаКСчФПрод", ПредставлениеСФ.ДатаКорректировочный);
|
||
|
||
СоставСтроки.Вставить("НомИспрКСчФ", ПредставлениеСФ.НомерИсправленныйКорректировочный);
|
||
СоставСтроки.Вставить("ДатаИспрКСчФ", ПредставлениеСФ.ДатаИсправленныйКорректировочный);
|
||
|
||
СоставСтроки.Вставить("ОКВ", Строка(ВалютаКод));
|
||
|
||
МассивКодВидОпер = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(КодВидаОперации, ";");
|
||
СоставСтроки.Вставить("КодВидОпер", МассивКодВидОпер);
|
||
|
||
СоставСтроки.Вставить("ДокПдтвОпл", МассивДокПдтвОпл);
|
||
СоставСтроки.Вставить("СвПокуп", МассивСвПок);
|
||
|
||
СоставСтроки.Вставить("СтоимПродСФВ", ВсегоПродажВВалюте);
|
||
СоставСтроки.Вставить("СтоимПродСФ", ВсегоПродаж);
|
||
СоставСтроки.Вставить("СтоимПродСФ22", 0);
|
||
СоставСтроки.Вставить("СтоимПродСФ20", 0);
|
||
СоставСтроки.Вставить("СтоимПродСФ18", СуммаБезНДС18);
|
||
СоставСтроки.Вставить("СтоимПродСФ10", СуммаБезНДС10);
|
||
СоставСтроки.Вставить("СтоимПродСФ0", НДС0);
|
||
СоставСтроки.Вставить("СумНДССФ22", 0);
|
||
СоставСтроки.Вставить("СумНДССФ20", 0);
|
||
СоставСтроки.Вставить("СумНДССФ18", НДС18);
|
||
СоставСтроки.Вставить("СумНДССФ10", НДС10);
|
||
СоставСтроки.Вставить("СтоимПродОсв", СуммаСовсемБезНДС);
|
||
|
||
Если СтруктураПараметров.ЗаписьДополнительногоЛиста Тогда
|
||
СтрокаРаздела = СтруктураПараметров.ТаблицаРаздел91.Добавить();
|
||
Иначе
|
||
СтрокаРаздела = СтруктураПараметров.ТаблицаРаздел9.Добавить();
|
||
КонецЕсли;
|
||
|
||
ЗаполнитьЗначенияСвойств(СтрокаРаздела, СоставСтроки);
|
||
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура УстановитьПараметрыЗапросаКнигиПродаж(Запрос, СтруктураПараметров)
|
||
|
||
Запрос.УстановитьПараметр("НачалоПериода", СтруктураПараметров.НачалоПериода);
|
||
Запрос.УстановитьПараметр("КонецПериода", КонецДня(СтруктураПараметров.КонецПериода));
|
||
Запрос.УстановитьПараметр("Организация", СтруктураПараметров.СписокОрганизаций);
|
||
Запрос.УстановитьПараметр("ОтбиратьПоКонтрагенту",
|
||
НЕ СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме И СтруктураПараметров.ОтбиратьПоКонтрагенту);
|
||
Запрос.УстановитьПараметр("КонтрагентДляОтбора", СтруктураПараметров.КонтрагентДляОтбора);
|
||
Запрос.УстановитьПараметр("ВыводитьПродавцовПоАвансам", СтруктураПараметров.ВыводитьПродавцовПоАвансам);
|
||
Запрос.УстановитьПараметр("ВалютаРегУчета", ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета());
|
||
Запрос.УстановитьПараметр("НаименованиеВалютыРубль", НСтр("ru='руб.'", ОбщегоНазначения.КодОсновногоЯзыка()));
|
||
Запрос.УстановитьПараметр("НачалоПримененияПостановления1137",
|
||
УчетНДСПереопределяемый.ПолучитьДатуНачалаДействияПостановления1137());
|
||
|
||
ЗаполнениеДокументовОтчетности = СтруктураПараметров.ЗаполнениеДокумента ИЛИ СтруктураПараметров.ЗаполнениеДекларации;
|
||
|
||
Если ЗаполнениеДокументовОтчетности И СтруктураПараметров.ЗаписьДополнительногоЛиста Тогда
|
||
Запрос.УстановитьПараметр("НачалоНалоговогоПериода", СтруктураПараметров.НачалоНалоговогоПериода);
|
||
Запрос.УстановитьПараметр("КонецНалоговогоПериода", КонецДня(СтруктураПараметров.КонецНалоговогоПериода));
|
||
КонецЕсли;
|
||
|
||
// Начиная с отчетности за 4 квартал 2017 года (в соответствии с постановлением Правительства от 19.08.2017 №981)
|
||
// при отражении начисления НДС по единому корректировочному счету-фактуре при уменьшении количества и/или стоимости
|
||
// приобретенных ранее товаров в книге продаж в качестве покупателя указывается продавец по счету-фактуре.
|
||
Запрос.УстановитьПараметр("ПравилаПостановления981",
|
||
СтруктураПараметров.ВерсияПостановленияНДС1137 >= 4);
|
||
Запрос.УстановитьПараметр("МассивСтавокНДС",
|
||
Перечисления.СтавкиНДС.СтавкиПоОперациямОтражаемымВКнигеПродаж(СтруктураПараметров.ВерсияПостановленияНДС1137));
|
||
|
||
СтавкиНДС22 = Новый Массив();
|
||
СтавкиНДС22.Добавить(Перечисления.СтавкиНДС.НДС22);
|
||
СтавкиНДС22.Добавить(Перечисления.СтавкиНДС.НДС22_122);
|
||
|
||
СтавкиНДС20 = Новый Массив();
|
||
СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС20);
|
||
СтавкиНДС20.Добавить(Перечисления.СтавкиНДС.НДС20_120);
|
||
|
||
СтавкиНДС18 = Новый Массив();
|
||
СтавкиНДС18.Добавить(Перечисления.СтавкиНДС.НДС18);
|
||
СтавкиНДС18.Добавить(Перечисления.СтавкиНДС.НДС18_118);
|
||
|
||
СтавкиНДС10 = Новый Массив();
|
||
СтавкиНДС10.Добавить(Перечисления.СтавкиНДС.НДС10);
|
||
СтавкиНДС10.Добавить(Перечисления.СтавкиНДС.НДС10_110);
|
||
|
||
СтавкиНДС7 = Новый Массив();
|
||
СтавкиНДС7.Добавить(Перечисления.СтавкиНДС.НДС7);
|
||
СтавкиНДС7.Добавить(Перечисления.СтавкиНДС.НДС7_107);
|
||
|
||
СтавкиНДС5 = Новый Массив();
|
||
СтавкиНДС5.Добавить(Перечисления.СтавкиНДС.НДС5);
|
||
СтавкиНДС5.Добавить(Перечисления.СтавкиНДС.НДС5_105);
|
||
|
||
СтавкаНДС0 = Перечисления.СтавкиНДС.НДС0;
|
||
СтавкаБезНДС = Перечисления.СтавкиНДС.БезНДС;
|
||
|
||
Запрос.УстановитьПараметр("СтавкиНДС22", СтавкиНДС22);
|
||
Запрос.УстановитьПараметр("СтавкиНДС20", СтавкиНДС20);
|
||
Запрос.УстановитьПараметр("СтавкиНДС18", СтавкиНДС18);
|
||
Запрос.УстановитьПараметр("СтавкиНДС10", СтавкиНДС10);
|
||
Запрос.УстановитьПараметр("СтавкиНДС7", СтавкиНДС7);
|
||
Запрос.УстановитьПараметр("СтавкиНДС5", СтавкиНДС5);
|
||
Запрос.УстановитьПараметр("СтавкаНДС0", СтавкаНДС0);
|
||
Запрос.УстановитьПараметр("СтавкаБезНДС", СтавкаБезНДС);
|
||
|
||
ВидыЦенностей_СобственныеСФ = Новый Массив;
|
||
ВидыЦенностей_СобственныеСФ.Добавить(Перечисления.ВидыЦенностей.ВнутреннееПотребление);
|
||
ВидыЦенностей_СобственныеСФ.Добавить(Перечисления.ВидыЦенностей.СМРСобственнымиСилами);
|
||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
|
||
ВидыЦенностей_СобственныеСФ,
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгент(Ложь));
|
||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(
|
||
ВидыЦенностей_СобственныеСФ,
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгентРеализацияТоваров());
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_СобственныеСФ", ВидыЦенностей_СобственныеСФ);
|
||
|
||
ВидыЦенностей_Аванс = Новый Массив;
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыПолученные0);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыПолученныеНалоговыйАгент);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.ВозвратАвансовПолученныхНалоговыйАгент);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.ВозвратАвансовПолученных);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыВыданные);
|
||
ВидыЦенностей_Аванс.Добавить(Перечисления.ВидыЦенностей.АвансыВыданныеНалоговыйАгент);
|
||
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_Аванс", ВидыЦенностей_Аванс);
|
||
|
||
ВидыЦенностей_СуммоваяРазница = Новый Массив;
|
||
ВидыЦенностей_СуммоваяРазница.Добавить(Перечисления.ВидыЦенностей.СуммыСвязанныеСРасчетамиПоОплате);
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_СуммоваяРазница", ВидыЦенностей_СуммоваяРазница);
|
||
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_НалоговыйАгент",
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгент());
|
||
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_НалоговыйАгентПокупатель",
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгентРеализацияТоваров());
|
||
|
||
Запрос.УстановитьПараметр("ВидыЦенностей_НалоговыйАгентВсеВиды",
|
||
Перечисления.ВидыЦенностей.МассивВидовЦенностиНалоговыйАгент(, Истина));
|
||
|
||
МассивДокументовИсправлений = Новый Массив;
|
||
МассивДокументовИсправлений.Добавить(Неопределено);
|
||
ТипыДокументовИсправлений = Метаданные.РегистрыНакопления.НДСЗаписиКнигиПродаж.Измерения.ИсправленныйСчетФактура.Тип;
|
||
|
||
Для Каждого МетаданныеДокумента Из Метаданные.Документы Цикл
|
||
|
||
Если ТипыДокументовИсправлений.СодержитТип(Тип("ДокументСсылка." + МетаданныеДокумента.Имя)) Тогда
|
||
МассивДокументовИсправлений.Добавить(Документы[МетаданныеДокумента.Имя].ПустаяСсылка());
|
||
КонецЕсли;
|
||
|
||
КонецЦикла;
|
||
|
||
Запрос.УстановитьПараметр("ПустыеДокументыИсправления", МассивДокументовИсправлений);
|
||
|
||
Запрос.УстановитьПараметр("ТекстРозничнаяПродажа",
|
||
НСтр("ru = 'Розничная продажа'", ОбщегоНазначения.КодОсновногоЯзыка()));
|
||
|
||
Запрос.УстановитьПараметр("ТипыДокументовРучныхОперацийНДС", УчетНДСПереопределяемый.ТипыДокументовРучныхОперацийНДС());
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ДополнительноеУсловиеЗапроса(СтруктураПараметров, ЗаписьДополнительногоЛиста = Ложь, ИмяТаблицы = "")
|
||
|
||
Если СтруктураПараметров.ПрименяетсяОсвобождениеОтУплатыНДС Тогда
|
||
// В книге продаж только реализации "без НДС" кроме налогового агента
|
||
// или начисления в качестве налогового агента по облагаемой ставке (симметрическая разность).
|
||
// Начисления по ставке 18% и 10% в разделе 12.
|
||
СтрокаУсловия =
|
||
"([ИмяТаблицы]СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) И НЕ [ИмяТаблицы]ВидЦенности В (&ВидыЦенностей_НалоговыйАгентВсеВиды)
|
||
|ИЛИ [ИмяТаблицы]СтавкаНДС <> ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) И [ИмяТаблицы]ВидЦенности В (&ВидыЦенностей_НалоговыйАгентВсеВиды))";
|
||
ИначеЕсли (НЕ СтруктураПараметров.ПлательщикНДС И НЕ СтруктураПараметров.ПлательщикНДСПрименяющийУСН) Тогда
|
||
// Только начисления в качестве налогового агента.
|
||
// Начисления по ставке 18% и 10% в разделе 12.
|
||
СтрокаУсловия = "[ИмяТаблицы]ВидЦенности В (&ВидыЦенностей_НалоговыйАгентВсеВиды) И [ИмяТаблицы]СтавкаНДС <> ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)";
|
||
Иначе
|
||
// Только начисления по ставкам 18% и 10%, включая начисления в качестве налогового агента.
|
||
// Операции без НДС отражаются только до даты действия постановления 735.
|
||
СтрокаУсловия = "[ИмяТаблицы]СтавкаНДС В (&МассивСтавокНДС)";
|
||
КонецЕсли;
|
||
|
||
Если ЗначениеЗаполнено(ИмяТаблицы) Тогда
|
||
СтрокаУсловия = СтрЗаменить(СтрокаУсловия, "[ИмяТаблицы]", ИмяТаблицы + ".");
|
||
Иначе
|
||
СтрокаУсловия = СтрЗаменить(СтрокаУсловия, "[ИмяТаблицы]", "");
|
||
КонецЕсли;
|
||
|
||
Если ЗаписьДополнительногоЛиста Тогда
|
||
ШаблонУсловия = "(%1 ИЛИ НДСЗаписиКнигиПродаж.КорректируемыйПериод <= ДАТАВРЕМЯ(2014, 10, 1))";
|
||
СтрокаУсловия = СтрШаблон(ШаблонУсловия, СтрокаУсловия);
|
||
КонецЕсли;
|
||
|
||
Возврат СтрокаУсловия;
|
||
|
||
КонецФункции
|
||
|
||
#Область ПолучениеЗаписей
|
||
|
||
Функция ЗаписиКнигиПродаж(СтруктураПараметров)
|
||
|
||
УстановитьПривилегированныйРежим(Истина);
|
||
|
||
Запрос = Новый Запрос;
|
||
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
|
||
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
|
||
|
||
Если СтруктураПараметров.ВычетыНалоговогоАгентаОтражаютсяВКнигеПродаж Тогда
|
||
// Дополним текст запроса данными книги покупок.
|
||
Запрос.Текст = Отчеты.КнигаПокупок.ТекстЗапросаВычетыНеплательшикаНДС(Запрос, СтруктураПараметров);
|
||
Запрос.Текст = Запрос.Текст + "УНИЧТОЖИТЬ СписокСчетовФактур";
|
||
Запрос.Выполнить();
|
||
КонецЕсли;
|
||
|
||
УстановитьПараметрыЗапросаКнигиПродаж(Запрос, СтруктураПараметров);
|
||
|
||
ТекстЗапроса = ТекстЗапросаЗаписиРегистраНДСПродажи(СтруктураПараметров);
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 >= 4 Тогда
|
||
ТекстЗапроса = ТекстЗапроса
|
||
+ УчетНДСОтчетыПереопределяемый.ТекстЗапросаРеквизитыСчетовФактурПостановление981КнигаПродаж();
|
||
Иначе
|
||
ТекстЗапроса = ТекстЗапроса
|
||
+ УчетНДСОтчетыПереопределяемый.ТекстЗапросаРеквизитыСчетовФактурПостановление735КнигаПродаж();
|
||
КонецЕсли;
|
||
|
||
Запрос.Текст = ТекстЗапроса + ТекстЗапросаПодготовленныеЗаписиКнигиПродаж(СтруктураПараметров);
|
||
|
||
Запрос.Выполнить();
|
||
|
||
УчетНДСПереопределяемый.РегистрационныеСведенияНаДаты(Запрос.МенеджерВременныхТаблиц);
|
||
|
||
Если СтруктураПараметров.ЗаписьДополнительногоЛиста Тогда
|
||
Запрос.Текст = ТекстЗапросаДополнительныйЛистКнигиПродаж(СтруктураПараметров);
|
||
Иначе
|
||
Запрос.Текст = ТекстЗапросаКнигаПродаж(СтруктураПараметров);
|
||
КонецЕсли;
|
||
|
||
Выборка = Запрос.Выполнить();
|
||
|
||
СтруктураПараметров.Вставить("МенеджерВременныхТаблиц", МенеджерВременныхТаблиц);
|
||
|
||
Возврат Выборка;
|
||
|
||
КонецФункции
|
||
|
||
Функция ТекстЗапросаЗаписиРегистраНДСПродажи(СтруктураПараметров)
|
||
|
||
ТекстыЗапросов = Новый Массив;
|
||
|
||
// Определим документы корректировки.
|
||
ТекстОрганизацияЯвляетсяПокупателем = УчетНДСПереопределяемый.ТекстЗапросаСчетаФактурыВыданныеГдеОрганизацияЯвляетсяПокупателем();
|
||
|
||
ТекстЗапроса = "
|
||
|ВЫБРАТЬ
|
||
| ТаблицаОрганизацияЯвляетсяПокупателем.СчетФактура,
|
||
| ТаблицаОрганизацияЯвляетсяПокупателем.Организация,
|
||
| ТаблицаОрганизацияЯвляетсяПокупателем.ГоловнаяОрганизация,
|
||
| ТаблицаОрганизацияЯвляетсяПокупателем.ЭтоКорректировкаПоступления
|
||
|
|
||
|ПОМЕСТИТЬ ВТ_ТаблицаОрганизацияЯвляетсяПокупателем
|
||
|ИЗ
|
||
| (" + ТекстОрганизацияЯвляетсяПокупателем + ") КАК ТаблицаОрганизацияЯвляетсяПокупателем
|
||
|ИНДЕКСИРОВАТЬ ПО
|
||
| СчетФактура,
|
||
| ГоловнаяОрганизация
|
||
|";
|
||
|
||
ТекстыЗапросов.Добавить(ТекстЗапроса);
|
||
|
||
// Определим счетам-фактуры, которые являются исправлением в книге покупок.
|
||
ТекстСчетаФактурыИсправленияКнигиПродаж = УчетНДСПереопределяемый.ТекстЗапросаСчетаФактурыИсправленияКнигиПродаж();
|
||
|
||
ТекстЗапроса = "
|
||
|ВЫБРАТЬ
|
||
| ТаблицаСчетаФактурыИсправления.СчетФактура,
|
||
| ТаблицаСчетаФактурыИсправления.Организация,
|
||
| ТаблицаСчетаФактурыИсправления.ГоловнаяОрганизация,
|
||
| ТаблицаСчетаФактурыИсправления.ЭтоКорректировкаПоступления,
|
||
| ТаблицаСчетаФактурыИсправления.ЭтоКорректировкаРеализации
|
||
|
|
||
|ПОМЕСТИТЬ ВТ_ТаблицаСчетаФактурыИсправления
|
||
|ИЗ
|
||
| (" + ТекстСчетаФактурыИсправленияКнигиПродаж + ") КАК ТаблицаСчетаФактурыИсправления
|
||
|
|
||
|ИНДЕКСИРОВАТЬ ПО
|
||
| СчетФактура,
|
||
| ГоловнаяОрганизация
|
||
|";
|
||
|
||
ТекстыЗапросов.Добавить(ТекстЗапроса);
|
||
|
||
ТекстЗапроса =
|
||
"ВЫБРАТЬ
|
||
| НДСЗаписиКнигиПродаж.Период КАК Период,
|
||
| НАЧАЛОПЕРИОДА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| ТОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.Период
|
||
| КОНЕЦ, КВАРТАЛ) КАК НалоговыйПериод,
|
||
| КОНЕЦПЕРИОДА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| ТОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.Период
|
||
| КОНЕЦ, КВАРТАЛ) КАК КонецНалоговогоПериода,
|
||
| НДСЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_СобственныеСФ)
|
||
| ИЛИ НДСЗаписиКнигиПродаж.ВидЦенности = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.АвансыВыданные)
|
||
| И НЕ &ВыводитьПродавцовПоАвансам
|
||
| ИЛИ НДСЗаписиКнигиПродаж.ВидЦенности <> ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.АвансыВыданные)
|
||
| И НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС)
|
||
| ИЛИ ЕСТЬNULL(ВТ_ТаблицаОрганизацияЯвляетсяПокупателем.ЭтоКорректировкаПоступления, ЛОЖЬ)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.Организация
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.Покупатель
|
||
| КОНЕЦ КАК Контрагент,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_НалоговыйАгентПокупатель)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК НалоговыйАгентПокупательТоваров,
|
||
| НДСЗаписиКнигиПродаж.Покупатель КАК КонтрагентПоСчетуФактуре,
|
||
| ВЫБОР
|
||
| КОГДА НЕ НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура В (&ПустыеДокументыИсправления)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.СчетФактура
|
||
| КОНЕЦ КАК СчетФактура,
|
||
| НДСЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
|
||
| НДСЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
|
||
| НДСЗаписиКнигиПродаж.Событие КАК Событие,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ДатаСобытия = ДАТАВРЕМЯ(1, 1, 1)
|
||
| ТОГДА ДанныеПервичныхДокументовСчетФактура.ДатаРегистратора
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.ДатаСобытия
|
||
| КОНЕЦ КАК ДатаСобытия,
|
||
| СУММА(НДСЗаписиКнигиПродаж.СуммаБезНДС + НДСЗаписиКнигиПродаж.НДС) КАК ВсегоПродаж,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС22)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаБезНДС22,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС22)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС22,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС20)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаБезНДС20,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС20)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС20,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС18)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаБезНДС18,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС18)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС18,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС10)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаБезНДС10,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС10)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС10,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС7)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаБезНДС7,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС7)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС7,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС5)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаБезНДС5,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС В (&СтавкиНДС5)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС5,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС = &СтавкаНДС0
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС + НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК НДС0,
|
||
| СУММА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СтавкаНДС = &СтавкаБезНДС
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС + НДСЗаписиКнигиПродаж.НДС
|
||
| ИНАЧЕ 0
|
||
| КОНЕЦ) КАК СуммаСовсемБезНДС,
|
||
| НДСЗаписиКнигиПродаж.Организация КАК Организация,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК НаАванс,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_СуммоваяРазница)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК НаСуммовуюРазницу,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| И НЕ ТИПЗНАЧЕНИЯ(НДСЗаписиКнигиПродаж.СчетФактура) В (&ТипыДокументовРучныхОперацийНДС)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СтавкаНДС
|
||
| ИНАЧЕ НЕОПРЕДЕЛЕНО
|
||
| КОНЕЦ КАК СтавкаНДС_Аванс,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
|
||
| ТОГДА НЕОПРЕДЕЛЕНО
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.ДоговорКонтрагента
|
||
| КОНЕЦ КАК ДоговорАванса,
|
||
| ЕСТЬNULL(ДанныеПервичныхДокументовСчетФактура.ДатаРегистратора, ДАТАВРЕМЯ(1, 1, 1)) КАК СчетФактураДата,
|
||
| НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС + НДСЗаписиКнигиПродаж.НДС < 0
|
||
| И (ЕСТЬNULL(ВТ_ТаблицаСчетаФактурыИсправления.ЭтоКорректировкаРеализации, ЛОЖЬ)
|
||
| ИЛИ ЕСТЬNULL(ВТ_ТаблицаСчетаФактурыИсправления.ЭтоКорректировкаПоступления, ЛОЖЬ)
|
||
| ИЛИ НЕ (ВТ_ТаблицаСчетаФактурыИсправления.СчетФактура ЕСТЬ NULL))
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК Исправление,
|
||
| НДСЗаписиКнигиПродаж.НомерДокументаОплаты КАК НомерДокументаОплаты,
|
||
| НДСЗаписиКнигиПродаж.ДатаДокументаОплаты КАК ДатаДокументаОплаты,
|
||
| НДСЗаписиКнигиПродаж.НомерСчетаФактурыНаАванс КАК НомерСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.ДатаСчетаФактурыНаАванс КАК ДатаСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.НомерИсправленияСчетаФактурыНаАванс КАК НомерИсправленияСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.ДатаИсправленияСчетаФактурыНаАванс КАК ДатаИсправленияСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.КодВидаОперации КАК КодВидаОперации
|
||
|ПОМЕСТИТЬ ЗаписиКнигиПродаж
|
||
|ИЗ
|
||
| РегистрНакопления.НДСЗаписиКнигиПродаж КАК НДСЗаписиКнигиПродаж
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументовСчетФактура
|
||
| ПО НДСЗаписиКнигиПродаж.СчетФактура = ДанныеПервичныхДокументовСчетФактура.Документ
|
||
| И НДСЗаписиКнигиПродаж.Организация = ДанныеПервичныхДокументовСчетФактура.Организация
|
||
|
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ТаблицаОрганизацияЯвляетсяПокупателем
|
||
| ПО НДСЗаписиКнигиПродаж.СчетФактура = ВТ_ТаблицаОрганизацияЯвляетсяПокупателем.СчетФактура
|
||
| И НДСЗаписиКнигиПродаж.Организация = ВТ_ТаблицаОрганизацияЯвляетсяПокупателем.Организация
|
||
|
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ТаблицаСчетаФактурыИсправления
|
||
| ПО НДСЗаписиКнигиПродаж.Регистратор = ВТ_ТаблицаСчетаФактурыИсправления.СчетФактура
|
||
| И НДСЗаписиКнигиПродаж.Организация = ВТ_ТаблицаСчетаФактурыИсправления.Организация
|
||
|ГДЕ
|
||
| НДСЗаписиКнигиПродаж.Период МЕЖДУ &НачалоПериода И &КонецПериода
|
||
| И НДСЗаписиКнигиПродаж.Организация В(&Организация)
|
||
| И НЕ НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| И НДСЗаписиКнигиПродаж.Активность
|
||
| И &ДополнительноеУсловие
|
||
| И &ОтборПоКонтрагенту
|
||
|
|
||
|СГРУППИРОВАТЬ ПО
|
||
| НДСЗаписиКнигиПродаж.Период,
|
||
| НАЧАЛОПЕРИОДА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| ТОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.Период
|
||
| КОНЕЦ, КВАРТАЛ),
|
||
| КОНЕЦПЕРИОДА(ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| ТОГДА НДСЗаписиКнигиПродаж.КорректируемыйПериод
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.Период
|
||
| КОНЕЦ, КВАРТАЛ),
|
||
| НДСЗаписиКнигиПродаж.ДатаОплаты,
|
||
| НДСЗаписиКнигиПродаж.ДокументОплаты,
|
||
| НДСЗаписиКнигиПродаж.Событие,
|
||
| ДанныеПервичныхДокументовСчетФактура.ДатаРегистратора,
|
||
| НДСЗаписиКнигиПродаж.Организация,
|
||
| НДСЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста,
|
||
| НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ДатаСобытия = ДАТАВРЕМЯ(1, 1, 1)
|
||
| ТОГДА ДанныеПервичныхДокументовСчетФактура.ДатаРегистратора
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.ДатаСобытия
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_СуммоваяРазница)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_Аванс)
|
||
| И НЕ ТИПЗНАЧЕНИЯ(НДСЗаписиКнигиПродаж.СчетФактура) В (&ТипыДокументовРучныхОперацийНДС)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.СтавкаНДС
|
||
| ИНАЧЕ НЕОПРЕДЕЛЕНО
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НЕ НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура В (&ПустыеДокументыИсправления)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.ИсправленныйСчетФактура
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.СчетФактура
|
||
| КОНЕЦ,
|
||
| НДСЗаписиКнигиПродаж.Покупатель,
|
||
| НДСЗаписиКнигиПродаж.НомерДокументаОплаты,
|
||
| НДСЗаписиКнигиПродаж.ДатаДокументаОплаты,
|
||
| НДСЗаписиКнигиПродаж.НомерСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.ДатаСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.НомерИсправленияСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.ДатаИсправленияСчетаФактурыНаАванс,
|
||
| НДСЗаписиКнигиПродаж.КодВидаОперации,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_СобственныеСФ)
|
||
| ИЛИ НДСЗаписиКнигиПродаж.ВидЦенности = ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.АвансыВыданные)
|
||
| И НЕ &ВыводитьПродавцовПоАвансам
|
||
| ИЛИ НДСЗаписиКнигиПродаж.ВидЦенности <> ЗНАЧЕНИЕ(Перечисление.ВидыЦенностей.АвансыВыданные)
|
||
| И НДСЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.ВосстановлениеНДС)
|
||
| ИЛИ ЕСТЬNULL(ВТ_ТаблицаОрганизацияЯвляетсяПокупателем.ЭтоКорректировкаПоступления, ЛОЖЬ)
|
||
| ТОГДА НДСЗаписиКнигиПродаж.Организация
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.Покупатель
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ВидЦенности В (&ВидыЦенностей_НалоговыйАгентПокупатель)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.СуммаБезНДС + НДСЗаписиКнигиПродаж.НДС < 0
|
||
| И (ЕСТЬNULL(ВТ_ТаблицаСчетаФактурыИсправления.ЭтоКорректировкаРеализации, ЛОЖЬ)
|
||
| ИЛИ ЕСТЬNULL(ВТ_ТаблицаСчетаФактурыИсправления.ЭтоКорректировкаПоступления, ЛОЖЬ)
|
||
| ИЛИ НЕ (ВТ_ТаблицаСчетаФактурыИсправления.СчетФактура ЕСТЬ NULL))
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ,
|
||
| ВЫБОР
|
||
| КОГДА НДСЗаписиКнигиПродаж.ДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
|
||
| ТОГДА НЕОПРЕДЕЛЕНО
|
||
| ИНАЧЕ НДСЗаписиКнигиПродаж.ДоговорКонтрагента
|
||
| КОНЕЦ,
|
||
| НДСЗаписиКнигиПродаж.Организация
|
||
|
|
||
|ИМЕЮЩИЕ
|
||
| НЕ (МАКСИМУМ(НДСЗаписиКнигиПродаж.Исправление)
|
||
| И СУММА(НДСЗаписиКнигиПродаж.СуммаБезНДС + НДСЗаписиКнигиПродаж.НДС) = 0)
|
||
|
|
||
| {ТекстДляЗамены}
|
||
|
|
||
|ИНДЕКСИРОВАТЬ ПО
|
||
| СчетФактура
|
||
|;
|
||
|
|
||
|////////////////////////////////////////////////////////////////////////////////
|
||
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||
| ЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
|
||
| ЗаписиКнигиПродаж.НаАванс КАК НаАванс,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(Контрагенты.СтранаРегистрации, ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)) <> ЗНАЧЕНИЕ(Справочник.СтраныМира.Россия)
|
||
| ТОГДА ЕСТЬNULL(Контрагенты.СтранаРегистрации.УчастникЕАЭС, ЛОЖЬ)
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК УчастникЕАЭС
|
||
|ПОМЕСТИТЬ СписокСчетовФактур
|
||
|ИЗ
|
||
| ЗаписиКнигиПродаж КАК ЗаписиКнигиПродаж
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
|
||
| ПО ЗаписиКнигиПродаж.Контрагент = Контрагенты.Ссылка
|
||
|
|
||
|ИНДЕКСИРОВАТЬ ПО
|
||
| СчетФактура";
|
||
|
||
ДополнительноеУсловиеЗапроса = ДополнительноеУсловиеЗапроса(
|
||
СтруктураПараметров,
|
||
СтруктураПараметров.ЗаписьДополнительногоЛиста,
|
||
"НДСЗаписиКнигиПродаж");
|
||
|
||
ТекстЗапроса = СтрЗаменить(
|
||
ТекстЗапроса,
|
||
"&ДополнительноеУсловие",
|
||
ДополнительноеУсловиеЗапроса);
|
||
|
||
Если НЕ СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме
|
||
И СтруктураПараметров.ОтбиратьПоКонтрагенту Тогда
|
||
|
||
ТекстЗапросаДляОтбора =
|
||
"(НДСЗаписиКнигиПродаж.Покупатель = &КонтрагентДляОтбора
|
||
| ИЛИ НДСЗаписиКнигиПродаж.Покупатель.ОбособленноеПодразделение
|
||
| И НДСЗаписиКнигиПродаж.Покупатель.ГоловнойКонтрагент = &КонтрагентДляОтбора)";
|
||
|
||
Если ОбщегоНазначения.ОбъектЯвляетсяГруппой(СтруктураПараметров.КонтрагентДляОтбора) Тогда
|
||
ТекстЗапросаДляОтбора = СтрЗаменить(ТекстЗапросаДляОтбора,
|
||
" = &КонтрагентДляОтбора", " В ИЕРАРХИИ(&КонтрагентДляОтбора)");
|
||
КонецЕсли;
|
||
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ОтборПоКонтрагенту", ТекстЗапросаДляОтбора);
|
||
|
||
Иначе
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ОтборПоКонтрагенту", "");
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ЗаписьДополнительногоЛиста Тогда
|
||
|
||
Если СтруктураПараметров.ЗаполнениеДокумента И НЕ СтруктураПараметров.ФорматПоПостановлению735
|
||
ИЛИ СтруктураПараметров.ЗаполнениеДекларации Тогда
|
||
|
||
// Учитывается как корректируемый период, так и дата оформления дополнительного листа.
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"И НЕ НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста",
|
||
"И НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| И НДСЗаписиКнигиПродаж.КорректируемыйПериод >= &НачалоНалоговогоПериода
|
||
| И НДСЗаписиКнигиПродаж.КорректируемыйПериод <= &КонецНалоговогоПериода");
|
||
|
||
ИначеЕсли СтруктураПараметров.ЗаполнениеДокумента И СтруктураПараметров.ФорматПоПостановлению735
|
||
ИЛИ СтруктураПараметров.ДополнительныеЛистыЗаТекущийПериод Тогда
|
||
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"Период МЕЖДУ &НачалоПериода И &КонецПериода",
|
||
"Период >= &НачалоПериода");
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"И НЕ НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста",
|
||
"И НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| И НДСЗаписиКнигиПродаж.КорректируемыйПериод >= &НачалоПериода
|
||
| И НДСЗаписиКнигиПродаж.КорректируемыйПериод <= &КонецПериода");
|
||
|
||
Иначе
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"И НЕ НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста",
|
||
"И НДСЗаписиКнигиПродаж.ЗаписьДополнительногоЛиста
|
||
| И НДСЗаписиКнигиПродаж.КорректируемыйПериод >= &НачалоПримененияПостановления1137");
|
||
|
||
КонецЕсли;
|
||
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ВычетыНалоговогоАгентаОтражаютсяВКнигеПродаж Тогда
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"{ТекстДляЗамены}",
|
||
ТекстЗапросаОбъединениеСВычетамиНеплательщикаНДС());
|
||
Иначе
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"{ТекстДляЗамены}",
|
||
"");
|
||
КонецЕсли;
|
||
|
||
ТекстыЗапросов.Добавить(ТекстЗапроса);
|
||
ТекстыЗапросов.Добавить("");
|
||
|
||
Возврат СтрСоединить(ТекстыЗапросов, ОбщегоНазначения.РазделительПакетаЗапросов());
|
||
|
||
КонецФункции
|
||
|
||
Функция ТекстЗапросаПодготовленныеЗаписиКнигиПродаж(СтруктураПараметров)
|
||
|
||
ТекстЗапроса =
|
||
"ВЫБРАТЬ
|
||
| ЗаписиКнигиПродаж.Организация КАК Организация,
|
||
| ЗаписиКнигиПродаж.НалоговыйПериод КАК НалоговыйПериод,
|
||
| ЗаписиКнигиПродаж.КонецНалоговогоПериода КАК КонецНалоговогоПериода,
|
||
| ЗаписиКнигиПродаж.НаАванс КАК НаАванс,
|
||
| ЗаписиКнигиПродаж.НаСуммовуюРазницу КАК НаСуммовуюРазницу,
|
||
| ЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
|
||
| НАЧАЛОПЕРИОДА(ЕСТЬNULL(СчетаФактурыСОсобымПорядкомОтображения.ДатаИсправленногоСчетаФактуры, ЗаписиКнигиПродаж.СчетФактураДата), ДЕНЬ) КАК СчетФактураДата,
|
||
| ВЫБОР
|
||
| КОГДА ТаблицаСчетаФактурыДокументы.СчетФактураДокумент ЕСТЬ НЕ NULL
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.СчетФактураДокумент
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СчетФактура
|
||
| КОНЕЦ КАК СчетФактураДокумент,
|
||
| ВЫБОР
|
||
| КОГДА СчетаФактурыСОсобымПорядкомОтображения.ИсправленныйСчетФактура ЕСТЬ НЕ NULL
|
||
| ТОГДА СчетаФактурыСОсобымПорядкомОтображения.НомерИсправленногоСчетаФактуры
|
||
| КОГДА ТаблицаСчетаФактурыДокументы.НомерСчетаФактуры ЕСТЬ НЕ NULL
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.НомерСчетаФактуры
|
||
| ИНАЧЕ НЕОПРЕДЕЛЕНО
|
||
| КОНЕЦ КАК НомерСчетаФактуры,
|
||
| ВЫБОР
|
||
| КОГДА СчетаФактурыСОсобымПорядкомОтображения.ИсправленныйСчетФактура ЕСТЬ НЕ NULL
|
||
| ТОГДА СчетаФактурыСОсобымПорядкомОтображения.НомерИсправленногоСчетаФактуры
|
||
| КОГДА ТаблицаСчетаФактурыДокументы.НомерСчетаФактурыСортировка ЕСТЬ НЕ NULL
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.НомерСчетаФактурыСортировка
|
||
| КОГДА ТаблицаСчетаФактурыДокументы.НомерСчетаФактуры ЕСТЬ НЕ NULL
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.НомерСчетаФактуры
|
||
| ИНАЧЕ НЕОПРЕДЕЛЕНО
|
||
| КОНЕЦ КАК НомерСчетаФактурыСортировка,
|
||
| ЕСТЬNULL(НАЧАЛОПЕРИОДА(ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА ЗаписиКнигиПродаж.Период
|
||
| КОГДА СчетаФактурыСОсобымПорядкомОтображения.ИсправленныйСчетФактура ЕСТЬ НЕ NULL
|
||
| ТОГДА СчетаФактурыСОсобымПорядкомОтображения.ДатаИсправленногоСчетаФактуры
|
||
| КОГДА НЕ ТаблицаСчетаФактурыДокументы.ДатаСчетаФактурыСортировка ЕСТЬ NULL
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.ДатаСчетаФактурыСортировка
|
||
| ИНАЧЕ ТаблицаСчетаФактурыДокументы.ДатаСчетаФактуры
|
||
| КОНЕЦ, ДЕНЬ), ДАТАВРЕМЯ(1,1,1)) КАК ДатаСчетаФактурыСортировка,
|
||
| ЕСТЬNULL(ВЫБОР
|
||
| КОГДА СчетаФактурыСОсобымПорядкомОтображения.ИсправленныйСчетФактура ЕСТЬ НЕ NULL
|
||
| ТОГДА СчетаФактурыСОсобымПорядкомОтображения.ДатаИсправленногоСчетаФактуры
|
||
| КОГДА НЕ ТаблицаСчетаФактурыДокументы.ДатаСчетаФактуры ЕСТЬ NULL
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.ДатаСчетаФактуры
|
||
| ИНАЧЕ ТаблицаСчетаФактурыДокументы.ДатаСчетаФактуры
|
||
| КОНЕЦ, НЕОПРЕДЕЛЕНО) КАК ДатаСчетаФактуры,
|
||
| ЗаписиКнигиПродаж.СтавкаНДС_Аванс КАК СтавкаНДС_Аванс,
|
||
| ЗаписиКнигиПродаж.ДоговорАванса КАК ДоговорАванса,
|
||
| ВЫБОР
|
||
| КОГДА ТаблицаСчетаФактурыДокументы.СводныйКорректировочный = ИСТИНА
|
||
| И НЕ ЗаписиКнигиПродаж.НаАванс
|
||
| И &ПравилаПостановления981
|
||
| ТОГДА ЗаписиКнигиПродаж.КонтрагентПоСчетуФактуре
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.Контрагент
|
||
| КОНЕЦ КАК Контрагент,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ЭтоРозничнаяПродажа, ЛОЖЬ)
|
||
| И ЗаписиКнигиПродаж.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|
||
| ТОГДА ИСТИНА
|
||
| ИНАЧЕ ЛОЖЬ
|
||
| КОНЕЦ КАК РозничнаяПродажа,
|
||
| ВЫБОР
|
||
| КОГДА ТаблицаСчетаФактурыДокументы.СводныйКорректировочный = ИСТИНА
|
||
| И &ПравилаПостановления981
|
||
| И НЕ ЗаписиКнигиПродаж.НаАванс
|
||
| ТОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.КППКонтрагента, """")
|
||
| КОГДА ЗаписиКнигиПродаж.Контрагент ССЫЛКА Справочник.Организации
|
||
| ТОГДА """"
|
||
| ИНАЧЕ ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.КППКонтрагента, """")
|
||
| КОНЕЦ КАК КППКонтрагента,
|
||
| ЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
|
||
| ЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
|
||
| ЗаписиКнигиПродаж.Событие КАК Событие,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА 0
|
||
| КОГДА ЗаписиКнигиПродаж.НалоговыйПериод < ДАТАВРЕМЯ(2014, 10, 1)
|
||
| ТОГДА ЗаписиКнигиПродаж.ВсегоПродаж
|
||
| КОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.Валюта, &ВалютаРегУчета) = &ВалютаРегУчета
|
||
| ТОГДА ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.ВсегоПродаж < 0
|
||
| ТОГДА -ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ВсегоПродажВВалюте, -ЗаписиКнигиПродаж.ВсегоПродаж)
|
||
| КОГДА ЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста
|
||
| ТОГДА -ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ВсегоПродажВВалюте, ЗаписиКнигиПродаж.ВсегоПродаж)
|
||
| ИНАЧЕ ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ВсегоПродажВВалюте, ЗаписиКнигиПродаж.ВсегоПродаж)
|
||
| КОНЕЦ
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.ВсегоПродаж
|
||
| КОНЕЦ КАК ВсегоПродаж,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА ЗаписиКнигиПродаж.СуммаБезНДС22
|
||
| КОГДА ЗаписиКнигиПродаж.НаАванс
|
||
| И НЕ ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СуммаБезНДС22
|
||
| КОНЕЦ КАК СуммаБезНДС22,
|
||
| ЗаписиКнигиПродаж.НДС22 КАК НДС22,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА ЗаписиКнигиПродаж.СуммаБезНДС20
|
||
| КОГДА ЗаписиКнигиПродаж.НаАванс
|
||
| И НЕ ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СуммаБезНДС20
|
||
| КОНЕЦ КАК СуммаБезНДС20,
|
||
| ЗаписиКнигиПродаж.НДС20 КАК НДС20,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА ЗаписиКнигиПродаж.СуммаБезНДС18
|
||
| КОГДА (ЗаписиКнигиПродаж.НаАванс
|
||
| ИЛИ ЗаписиКнигиПродаж.НаСуммовуюРазницу)
|
||
| И НЕ ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СуммаБезНДС18
|
||
| КОНЕЦ КАК СуммаБезНДС18,
|
||
| ЗаписиКнигиПродаж.НДС18 КАК НДС18,
|
||
| ВЫБОР
|
||
| КОГДА (ЗаписиКнигиПродаж.НаАванс
|
||
| ИЛИ ЗаписиКнигиПродаж.НаСуммовуюРазницу)
|
||
| И НЕ ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СуммаБезНДС10
|
||
| КОНЕЦ КАК СуммаБезНДС10,
|
||
| ЗаписиКнигиПродаж.НДС10 КАК НДС10,
|
||
| ЗаписиКнигиПродаж.НДС0 КАК НДС0,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА ЗаписиКнигиПродаж.СуммаБезНДС7
|
||
| КОГДА ЗаписиКнигиПродаж.НаАванс
|
||
| И НЕ ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СуммаБезНДС7
|
||
| КОНЕЦ КАК СуммаБезНДС7,
|
||
| ЗаписиКнигиПродаж.НДС7 КАК НДС7,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА ЗаписиКнигиПродаж.СуммаБезНДС5
|
||
| КОГДА ЗаписиКнигиПродаж.НаАванс
|
||
| И НЕ ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ЗаписиКнигиПродаж.СуммаБезНДС5
|
||
| КОНЕЦ КАК СуммаБезНДС5,
|
||
| ЗаписиКнигиПродаж.НДС5 КАК НДС5,
|
||
| ЗаписиКнигиПродаж.СуммаСовсемБезНДС КАК СуммаСовсемБезНДС,
|
||
| НАЧАЛОПЕРИОДА(ЗаписиКнигиПродаж.Период, ДЕНЬ) КАК ДатаОформления,
|
||
| ЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
|
||
| ЕСТЬNULL(СчетаФактурыСОсобымПорядкомОтображения.СчетФактура, ЗаписиКнигиПродаж.ИсправленныйСчетФактура) КАК ИсправленныйСчетФактура,
|
||
| ЗаписиКнигиПродаж.Исправление КАК Исправление,
|
||
| ТаблицаСчетаФактурыДокументы.ДатаИсправления КАК ДатаИсправления,
|
||
| ТаблицаСчетаФактурыДокументы.НомерИсправления КАК НомерИсправления,
|
||
| ТаблицаСчетаФактурыДокументы.ДатаКорректировки КАК ДатаКорректировки,
|
||
| ТаблицаСчетаФактурыДокументы.НомерКорректировки КАК НомерКорректировки,
|
||
| ТаблицаСчетаФактурыДокументы.ДатаИсправленияКорректировки КАК ДатаИсправленияКорректировки,
|
||
| ТаблицаСчетаФактурыДокументы.НомерИсправленияКорректировки КАК НомерИсправленияКорректировки,
|
||
| ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ОбрабатыватьНомерДокумента, ЛОЖЬ) КАК ОбрабатыватьНомерДокумента,
|
||
| ЗаписиКнигиПродаж.ДатаСобытия КАК ДатаСобытия,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.КодВидаОперации <> """"
|
||
| ТОГДА ЗаписиКнигиПродаж.КодВидаОперации
|
||
| ИНАЧЕ ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.КодВидаОперации, ""01"")
|
||
| КОНЕЦ КАК КодВидаОперации,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.Валюта, &ВалютаРегУчета) <> &ВалютаРегУчета
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.ВалютаНаименование
|
||
| ИНАЧЕ """"
|
||
| КОНЕЦ КАК Валюта,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.Валюта, &ВалютаРегУчета) <> &ВалютаРегУчета
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.ВалютаКод
|
||
| ИНАЧЕ """"
|
||
| КОНЕЦ КАК ВалютаКод,
|
||
| ВЫБОР
|
||
| КОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.Валюта, &ВалютаРегУчета) <> &ВалютаРегУчета
|
||
| ТОГДА ТаблицаСчетаФактурыДокументы.ВалютаНаименованиеКраткое
|
||
| ИНАЧЕ &НаименованиеВалютыРубль
|
||
| КОНЕЦ КАК ВалютаНаименование,
|
||
| ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.Событие = ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НалогИсчисляетПокупатель)
|
||
| ТОГДА 0
|
||
| КОГДА ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.Валюта, &ВалютаРегУчета) = &ВалютаРегУчета
|
||
| ТОГДА 0
|
||
| ИНАЧЕ ВЫБОР
|
||
| КОГДА ЗаписиКнигиПродаж.ВсегоПродаж < 0
|
||
| ТОГДА -ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ВсегоПродажВВалюте, -ЗаписиКнигиПродаж.ВсегоПродаж)
|
||
| КОГДА ЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста
|
||
| ТОГДА -ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ВсегоПродажВВалюте, ЗаписиКнигиПродаж.ВсегоПродаж)
|
||
| ИНАЧЕ ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.ВсегоПродажВВалюте, ЗаписиКнигиПродаж.ВсегоПродаж)
|
||
| КОНЕЦ
|
||
| КОНЕЦ КАК ВсегоПродажВВалюте,
|
||
| ЗаписиКнигиПродаж.НомерДокументаОплаты КАК НомерДокументаОплаты,
|
||
| ЗаписиКнигиПродаж.ДатаДокументаОплаты КАК ДатаДокументаОплаты,
|
||
| ЗаписиКнигиПродаж.НомерСчетаФактурыНаАванс КАК НомерСчетаФактурыНаАванс,
|
||
| ЗаписиКнигиПродаж.ДатаСчетаФактурыНаАванс КАК ДатаСчетаФактурыНаАванс,
|
||
| ЗаписиКнигиПродаж.НомерИсправленияСчетаФактурыНаАванс КАК НомерИсправленияСчетаФактурыНаАванс,
|
||
| ЗаписиКнигиПродаж.ДатаИсправленияСчетаФактурыНаАванс КАК ДатаИсправленияСчетаФактурыНаАванс,
|
||
| ТаблицаСчетаФактурыДокументы.ПосредникСсылка КАК ПосредникСсылка,
|
||
| ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.СводныйКомиссионный, ЛОЖЬ) КАК СводныйКомиссионный,
|
||
| ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.СводныйКорректировочный, ЛОЖЬ) КАК СводныйКорректировочный,
|
||
| ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.НачислениеПоОказаниюУслуг, ЛОЖЬ) КАК НачислениеПоОказаниюУслуг,
|
||
| ЕСТЬNULL(ТаблицаСчетаФактурыДокументы.СводнаяСправка, ЛОЖЬ) КАК СводнаяСправка,
|
||
| ЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров КАК НалоговыйАгентПокупательТоваров
|
||
|ПОМЕСТИТЬ ПодготовленныеЗаписиКнигиПродаж
|
||
|ИЗ
|
||
| ЗаписиКнигиПродаж КАК ЗаписиКнигиПродаж
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСчетаФактурыДокументы КАК ТаблицаСчетаФактурыДокументы
|
||
| ПО ЗаписиКнигиПродаж.СчетФактура = ТаблицаСчетаФактурыДокументы.СчетФактура
|
||
| И ЗаписиКнигиПродаж.ДоговорАванса = ТаблицаСчетаФактурыДокументы.ДоговорАванса
|
||
| И ЗаписиКнигиПродаж.СтавкаНДС_Аванс = ТаблицаСчетаФактурыДокументы.СтавкаНДСАванса
|
||
| И ЗаписиКнигиПродаж.КонтрагентПоСчетуФактуре = ТаблицаСчетаФактурыДокументы.КонтрагентПоСчетуФактуре
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ СчетаФактурыСОсобымПорядкомОтображения КАК СчетаФактурыСОсобымПорядкомОтображения
|
||
| ПО ЗаписиКнигиПродаж.СчетФактура = СчетаФактурыСОсобымПорядкомОтображения.СчетФактура
|
||
|;
|
||
|
|
||
|////////////////////////////////////////////////////////////////////////////////
|
||
|УНИЧТОЖИТЬ ТаблицаСчетаФактурыДокументы
|
||
|;
|
||
|
|
||
|////////////////////////////////////////////////////////////////////////////////
|
||
|УНИЧТОЖИТЬ ЗаписиКнигиПродаж
|
||
|;
|
||
|
|
||
|////////////////////////////////////////////////////////////////////////////////
|
||
|ВЫБРАТЬ
|
||
| ПодготовленныеЗаписиКнигиПродаж.Контрагент КАК Ссылка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка КАК ДатаСведений
|
||
|ПОМЕСТИТЬ СсылкиНаДаты
|
||
|ИЗ
|
||
| ПодготовленныеЗаписиКнигиПродаж КАК ПодготовленныеЗаписиКнигиПродаж
|
||
|
|
||
|ОБЪЕДИНИТЬ
|
||
|
|
||
|ВЫБРАТЬ
|
||
| ПодготовленныеЗаписиКнигиПродаж.ПосредникСсылка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка
|
||
|ИЗ
|
||
| ПодготовленныеЗаписиКнигиПродаж КАК ПодготовленныеЗаписиКнигиПродаж
|
||
|
|
||
|ИНДЕКСИРОВАТЬ ПО
|
||
| Ссылка";
|
||
|
||
Возврат ТекстЗапроса + ОбщегоНазначения.РазделительПакетаЗапросов();
|
||
|
||
КонецФункции
|
||
|
||
Функция ТекстЗапросаКнигаПродаж(СтруктураПараметров)
|
||
|
||
ТекстЗапроса =
|
||
"ВЫБРАТЬ
|
||
| ПодготовленныеЗаписиКнигиПродаж.Организация КАК Организация,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НалоговыйПериод КАК НалоговыйПериод,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НаАванс КАК НаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НаСуммовуюРазницу КАК НаСуммовуюРазницу,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактураДата КАК СчетФактураДата,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактураДокумент КАК СчетФактураДокумент,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерСчетаФактуры КАК НомерСчетаФактуры,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерСчетаФактурыСортировка КАК НомерСчетаФактурыСортировка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка КАК ДатаСчетаФактурыСортировка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактуры КАК ДатаСчетаФактуры,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СтавкаНДС_Аванс КАК СтавкаНДС_Аванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДоговорАванса КАК ДоговорАванса,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|
||
| ИНАЧЕ ПодготовленныеЗаписиКнигиПродаж.Контрагент
|
||
| КОНЕЦ КАК Контрагент,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА """"
|
||
| ИНАЧЕ ЕСТЬNULL(СведенияОПокупателях.ИНН, """")
|
||
| КОНЕЦ КАК ПокупательИНН,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА """"
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.КППКонтрагента = """"
|
||
| ТОГДА ЕСТЬNULL(СведенияОПокупателях.КПП, """")
|
||
| ИНАЧЕ ПодготовленныеЗаписиКнигиПродаж.КППКонтрагента
|
||
| КОНЕЦ КАК ПокупательКПП,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА &ТекстРозничнаяПродажа
|
||
| ИНАЧЕ ЕСТЬNULL(СведенияОПокупателях.Наименование, """")
|
||
| КОНЕЦ КАК Покупатель,
|
||
| ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа КАК РозничнаяПродажа,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.Событие КАК Событие,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВсегоПродаж КАК ВсегоПродаж,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС22 КАК СуммаБезНДС22,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС22 КАК НДС22,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС20 + ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС18 КАК СуммаБезНДС20Или18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС20 + ПодготовленныеЗаписиКнигиПродаж.НДС18 КАК НДС20Или18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС20 КАК СуммаБезНДС20,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС20 КАК НДС20,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС18 КАК СуммаБезНДС18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС18 КАК НДС18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС10 КАК СуммаБезНДС10,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС10 КАК НДС10,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС0 КАК НДС0,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС7 КАК СуммаБезНДС7,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС7 КАК НДС7,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС5 КАК СуммаБезНДС5,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС5 КАК НДС5,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаСовсемБезНДС КАК СуммаСовсемБезНДС,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
|
||
| ПодготовленныеЗаписиКнигиПродаж.Исправление КАК Исправление,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаИсправления КАК ДатаИсправления,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерИсправления КАК НомерИсправления,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаКорректировки КАК ДатаКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерКорректировки КАК НомерКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаИсправленияКорректировки КАК ДатаИсправленияКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерИсправленияКорректировки КАК НомерИсправленияКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ОбрабатыватьНомерДокумента КАК ОбрабатыватьНомерДокумента,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСобытия КАК ДатаСобытия,
|
||
| ПодготовленныеЗаписиКнигиПродаж.КодВидаОперации КАК КодВидаОперации,
|
||
| ПодготовленныеЗаписиКнигиПродаж.Валюта КАК Валюта,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВалютаНаименование КАК ВалютаНаименование,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВалютаКод КАК ВалютаКод,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВсегоПродажВВалюте КАК ВсегоПродажВВалюте,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерДокументаОплаты КАК НомерДокументаОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаДокументаОплаты КАК ДатаДокументаОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерСчетаФактурыНаАванс КАК НомерСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыНаАванс КАК ДатаСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерИсправленияСчетаФактурыНаАванс КАК НомерИсправленияСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаИсправленияСчетаФактурыНаАванс КАК ДатаИсправленияСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ПосредникСсылка КАК ПосредникСсылка,
|
||
| ЕСТЬNULL(СведенияОПосредниках.Наименование, """") КАК Посредник,
|
||
| ЕСТЬNULL(СведенияОПосредниках.ИНН, """") КАК ПосредникИНН,
|
||
| ЕСТЬNULL(СведенияОПосредниках.КПП, """") КАК ПосредникКПП,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СводныйКомиссионный КАК СводныйКомиссионный,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СводныйКорректировочный КАК СводныйКорректировочный,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НачислениеПоОказаниюУслуг КАК НачислениеПоОказаниюУслуг,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СводнаяСправка КАК СводнаяСправка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров КАК НалоговыйАгентПокупательТоваров
|
||
|ИЗ
|
||
| ПодготовленныеЗаписиКнигиПродаж КАК ПодготовленныеЗаписиКнигиПродаж
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ СведенияОСсылкахНаДаты КАК СведенияОПокупателях
|
||
| ПО ПодготовленныеЗаписиКнигиПродаж.Контрагент = СведенияОПокупателях.Ссылка
|
||
| И ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка = СведенияОПокупателях.ДатаСведений
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ СведенияОСсылкахНаДаты КАК СведенияОПосредниках
|
||
| ПО ПодготовленныеЗаписиКнигиПродаж.ПосредникСсылка = СведенияОПосредниках.Ссылка
|
||
| И ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка = СведенияОПосредниках.ДатаСведений
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный КАК СчетФактураПолученный
|
||
| ПО ПодготовленныеЗаписиКнигиПродаж.СчетФактураДокумент = СчетФактураПолученный.Ссылка
|
||
| И СчетФактураПолученный.Исправление
|
||
|ГДЕ
|
||
| НЕ (ЕСТЬNULL(СчетФактураПолученный.Исправление, Ложь)
|
||
| И НАЧАЛОПЕРИОДА(ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка, КВАРТАЛ) <> НАЧАЛОПЕРИОДА(ПодготовленныеЗаписиКнигиПродаж.СчетФактураДата, КВАРТАЛ))
|
||
|
|
||
|УПОРЯДОЧИТЬ ПО
|
||
| ПодготовленныеЗаписиКнигиПродаж.НалоговыйПериод,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерСчетаФактурыСортировка,
|
||
| ПодготовленныеЗаписиКнигиПродаж.Исправление
|
||
|ИТОГИ
|
||
| МИНИМУМ(НомерСчетаФактурыСортировка),
|
||
| МИНИМУМ(ДатаСчетаФактурыСортировка),
|
||
| МАКСИМУМ(Контрагент),
|
||
| МАКСИМУМ(Покупатель),
|
||
| МАКСИМУМ(ДатаОплаты),
|
||
| МАКСИМУМ(ВсегоПродаж),
|
||
| СУММА(СуммаБезНДС22),
|
||
| СУММА(НДС22),
|
||
| СУММА(СуммаБезНДС20Или18),
|
||
| СУММА(НДС20Или18),
|
||
| СУММА(СуммаБезНДС20),
|
||
| СУММА(НДС20),
|
||
| СУММА(СуммаБезНДС18),
|
||
| СУММА(НДС18),
|
||
| СУММА(СуммаБезНДС10),
|
||
| СУММА(НДС10),
|
||
| СУММА(СуммаБезНДС7),
|
||
| СУММА(НДС7),
|
||
| СУММА(СуммаБезНДС5),
|
||
| СУММА(НДС5),
|
||
| СУММА(НДС0),
|
||
| СУММА(СуммаСовсемБезНДС),
|
||
| МАКСИМУМ(НомерДокументаОплаты),
|
||
| МАКСИМУМ(ДатаДокументаОплаты),
|
||
| МАКСИМУМ(НомерСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(ДатаСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(НомерИсправленияСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(ДатаИсправленияСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(СводныйКомиссионный),
|
||
| МАКСИМУМ(СводныйКорректировочный),
|
||
| МАКСИМУМ(НачислениеПоОказаниюУслуг),
|
||
| МАКСИМУМ(СводнаяСправка),
|
||
| МАКСИМУМ(НалоговыйАгентПокупательТоваров)
|
||
|ПО
|
||
| ОБЩИЕ,
|
||
| НалоговыйПериод,
|
||
| СчетФактураДокумент,
|
||
| ДоговорАванса,
|
||
| Исправление";
|
||
|
||
Если СтруктураПараметров.ГруппироватьПоКонтрагентам И НЕ СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме Тогда
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"ПО
|
||
| ОБЩИЕ,",
|
||
"ПО
|
||
| ОБЩИЕ, Контрагент, ");
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"УПОРЯДОЧИТЬ ПО",
|
||
"УПОРЯДОЧИТЬ ПО Покупатель, ");
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 < 3 Тогда
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"МАКСИМУМ(ВсегоПродаж)",
|
||
"СУММА(ВсегоПродаж)");
|
||
КонецЕсли;
|
||
|
||
Возврат ТекстЗапроса;
|
||
|
||
КонецФункции
|
||
|
||
Функция ТекстЗапросаДополнительныйЛистКнигиПродаж(СтруктураПараметров)
|
||
|
||
ТекстЗапроса =
|
||
"ВЫБРАТЬ
|
||
| ПодготовленныеЗаписиКнигиПродаж.Организация КАК Организация,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НалоговыйПериод КАК НалоговыйПериод,
|
||
| ПодготовленныеЗаписиКнигиПродаж.КонецНалоговогоПериода КАК КонецНалоговогоПериода,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НаАванс КАК НаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НаСуммовуюРазницу КАК НаСуммовуюРазницу,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактура КАК СчетФактура,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактураДата КАК СчетФактураДата,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактураДокумент КАК СчетФактураДокумент,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерСчетаФактуры КАК НомерСчетаФактуры,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактуры КАК ДатаСчетаФактуры,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СтавкаНДС_Аванс КАК СтавкаНДС_Аванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДоговорАванса КАК ДоговорАванса,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|
||
| ИНАЧЕ ПодготовленныеЗаписиКнигиПродаж.Контрагент
|
||
| КОНЕЦ КАК Контрагент,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА """"
|
||
| ИНАЧЕ ЕСТЬNULL(СведенияОПокупателях.ИНН, """")
|
||
| КОНЕЦ КАК ПокупательИНН,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА """"
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.КППКонтрагента = """"
|
||
| ТОГДА ЕСТЬNULL(СведенияОПокупателях.КПП, """")
|
||
| ИНАЧЕ ПодготовленныеЗаписиКнигиПродаж.КППКонтрагента
|
||
| КОНЕЦ КАК ПокупательКПП,
|
||
| ВЫБОР
|
||
| КОГДА ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа
|
||
| ТОГДА &ТекстРозничнаяПродажа
|
||
| ИНАЧЕ ЕСТЬNULL(СведенияОПокупателях.Наименование, """")
|
||
| КОНЕЦ КАК Покупатель,
|
||
| ПодготовленныеЗаписиКнигиПродаж.РозничнаяПродажа КАК РозничнаяПродажа,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаОплаты КАК ДатаОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДокументОплаты КАК ДокументОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.Событие КАК Событие,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВсегоПродаж КАК ВсегоПродаж,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС22 КАК СуммаБезНДС22,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС22 КАК НДС22,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС20 + ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС18 КАК СуммаБезНДС20Или18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС20 + ПодготовленныеЗаписиКнигиПродаж.НДС18 КАК НДС20Или18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС20 КАК СуммаБезНДС20,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС20 КАК НДС20,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС18 КАК СуммаБезНДС18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС18 КАК НДС18,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС10 КАК СуммаБезНДС10,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС10 КАК НДС10,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС7 КАК СуммаБезНДС7,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС7 КАК НДС7,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаБезНДС5 КАК СуммаБезНДС5,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС5 КАК НДС5,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НДС0 КАК НДС0,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СуммаСовсемБезНДС КАК СуммаСовсемБезНДС,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаОформления КАК ДатаОформления,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста КАК СторнирующаяЗаписьДопЛиста,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ИсправленныйСчетФактура КАК ИсправленныйСчетФактура,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаИсправления КАК ДатаИсправления,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерИсправления КАК НомерИсправления,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаКорректировки КАК ДатаКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерКорректировки КАК НомерКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаИсправленияКорректировки КАК ДатаИсправленияКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерИсправленияКорректировки КАК НомерИсправленияКорректировки,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ОбрабатыватьНомерДокумента КАК ОбрабатыватьНомерДокумента,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСобытия КАК ДатаСобытия,
|
||
| ПодготовленныеЗаписиКнигиПродаж.КодВидаОперации КАК КодВидаОперации,
|
||
| ПодготовленныеЗаписиКнигиПродаж.Валюта КАК Валюта,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВалютаНаименование КАК ВалютаНаименование,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВалютаКод КАК ВалютаКод,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ВсегоПродажВВалюте КАК ВсегоПродажВВалюте,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерДокументаОплаты КАК НомерДокументаОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаДокументаОплаты КАК ДатаДокументаОплаты,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерСчетаФактурыНаАванс КАК НомерСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыНаАванс КАК ДатаСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НомерИсправленияСчетаФактурыНаАванс КАК НомерИсправленияСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаИсправленияСчетаФактурыНаАванс КАК ДатаИсправленияСчетаФактурыНаАванс,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ПосредникСсылка КАК ПосредникСсылка,
|
||
| ЕСТЬNULL(СведенияОПосредниках.Наименование, """") КАК Посредник,
|
||
| ЕСТЬNULL(СведенияОПосредниках.ИНН, """") КАК ПосредникИНН,
|
||
| ЕСТЬNULL(СведенияОПосредниках.КПП, """") КАК ПосредникКПП,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СводныйКомиссионный КАК СводныйКомиссионный,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СводныйКорректировочный КАК СводныйКорректировочный,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НачислениеПоОказаниюУслуг КАК НачислениеПоОказаниюУслуг,
|
||
| ПодготовленныеЗаписиКнигиПродаж.НалоговыйАгентПокупательТоваров КАК НалоговыйАгентПокупательТоваров
|
||
|ИЗ
|
||
| ПодготовленныеЗаписиКнигиПродаж КАК ПодготовленныеЗаписиКнигиПродаж
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ СведенияОСсылкахНаДаты КАК СведенияОПокупателях
|
||
| ПО ПодготовленныеЗаписиКнигиПродаж.Контрагент = СведенияОПокупателях.Ссылка
|
||
| И ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка = СведенияОПокупателях.ДатаСведений
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ СведенияОСсылкахНаДаты КАК СведенияОПосредниках
|
||
| ПО ПодготовленныеЗаписиКнигиПродаж.ПосредникСсылка = СведенияОПосредниках.Ссылка
|
||
| И ПодготовленныеЗаписиКнигиПродаж.ДатаСчетаФактурыСортировка = СведенияОПосредниках.ДатаСведений
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный КАК СчетФактураПолученный
|
||
| ПО ПодготовленныеЗаписиКнигиПродаж.СчетФактураДокумент = СчетФактураПолученный.Ссылка
|
||
| И СчетФактураПолученный.Исправление
|
||
| И ПодготовленныеЗаписиКнигиПродаж.Исправление
|
||
| И ПодготовленныеЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста
|
||
|ГДЕ
|
||
| СчетФактураПолученный.Ссылка ЕСТЬ NULL
|
||
|
|
||
|УПОРЯДОЧИТЬ ПО
|
||
| ПодготовленныеЗаписиКнигиПродаж.НалоговыйПериод,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаОформления,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СчетФактураДата,
|
||
| ПодготовленныеЗаписиКнигиПродаж.СторнирующаяЗаписьДопЛиста УБЫВ,
|
||
| ПодготовленныеЗаписиКнигиПродаж.ДатаОплаты
|
||
|ИТОГИ
|
||
| МАКСИМУМ(КонецНалоговогоПериода),
|
||
| МИНИМУМ(СчетФактураДата),
|
||
| МАКСИМУМ(Покупатель),
|
||
| МАКСИМУМ(ДатаОплаты),
|
||
| МАКСИМУМ(ВсегоПродаж),
|
||
| СУММА(СуммаБезНДС22),
|
||
| СУММА(НДС22),
|
||
| СУММА(СуммаБезНДС20Или18),
|
||
| СУММА(НДС20Или18),
|
||
| СУММА(СуммаБезНДС20),
|
||
| СУММА(НДС20),
|
||
| СУММА(СуммаБезНДС18),
|
||
| СУММА(НДС18),
|
||
| СУММА(СуммаБезНДС10),
|
||
| СУММА(НДС10),
|
||
| СУММА(СуммаБезНДС7),
|
||
| СУММА(НДС7),
|
||
| СУММА(СуммаБезНДС5),
|
||
| СУММА(НДС5),
|
||
| СУММА(НДС0),
|
||
| СУММА(СуммаСовсемБезНДС),
|
||
| МАКСИМУМ(НомерДокументаОплаты),
|
||
| МАКСИМУМ(ДатаДокументаОплаты),
|
||
| МАКСИМУМ(НомерСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(ДатаСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(НомерИсправленияСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(ДатаИсправленияСчетаФактурыНаАванс),
|
||
| МАКСИМУМ(СводныйКомиссионный),
|
||
| МАКСИМУМ(СводныйКорректировочный),
|
||
| МАКСИМУМ(НачислениеПоОказаниюУслуг),
|
||
| МАКСИМУМ(НалоговыйАгентПокупательТоваров)
|
||
|ПО
|
||
| НалоговыйПериод,
|
||
| ДатаОформления,
|
||
| СчетФактураДокумент,
|
||
| ДоговорАванса,
|
||
| СторнирующаяЗаписьДопЛиста";
|
||
|
||
Если СтруктураПараметров.ГруппироватьПоКонтрагентам И НЕ СтруктураПараметров.СформироватьОтчетПоСтандартнойФорме Тогда
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"ПО
|
||
| НалоговыйПериод,
|
||
| ДатаОформления,",
|
||
"ПО
|
||
| НалоговыйПериод,
|
||
| ДатаОформления, Контрагент, ");
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"УПОРЯДОЧИТЬ ПО",
|
||
"УПОРЯДОЧИТЬ ПО Покупатель, ");
|
||
КонецЕсли;
|
||
|
||
Если СтруктураПараметров.ВерсияПостановленияНДС1137 < 3 Тогда
|
||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
|
||
"МАКСИМУМ(ВсегоПродаж)",
|
||
"СУММА(ВсегоПродаж)");
|
||
КонецЕсли;
|
||
|
||
Возврат ТекстЗапроса;
|
||
|
||
КонецФункции
|
||
|
||
Функция ТекстЗапросаОбъединениеСВычетамиНеплательщикаНДС()
|
||
|
||
Возврат
|
||
"ОБЪЕДИНИТЬ ВСЕ
|
||
|
|
||
|ВЫБРАТЬ
|
||
| ЗаписиКнигиПокупок.Период,
|
||
| ЗаписиКнигиПокупок.НалоговыйПериод,
|
||
| ЗаписиКнигиПокупок.КонецНалоговогоПериода,
|
||
| ИСТИНА,
|
||
| ЗаписиКнигиПокупок.Организация,
|
||
| ИСТИНА,
|
||
| ЗаписиКнигиПокупок.КонтрагентПоСчетуФактуре,
|
||
| ЗаписиКнигиПокупок.СчетФактура,
|
||
| ЗаписиКнигиПокупок.ДатаОплаты,
|
||
| ЗаписиКнигиПокупок.ДокументОплаты,
|
||
| ЗНАЧЕНИЕ(Перечисление.СобытияПоНДСПродажи.НДСНачисленКУплате),
|
||
| ЗаписиКнигиПокупок.ДатаСобытия,
|
||
| - ЗаписиКнигиПокупок.ВсегоПокупок,
|
||
| 0,
|
||
| 0,
|
||
| - ЗаписиКнигиПокупок.СуммаГрафа170,
|
||
| - ЗаписиКнигиПокупок.НДС18,
|
||
| - ЗаписиКнигиПокупок.СуммаГрафа180,
|
||
| - ЗаписиКнигиПокупок.НДС10,
|
||
| - ЗаписиКнигиПокупок.НДС0,
|
||
| - ЗаписиКнигиПокупок.СуммаСовсемБезНДС,
|
||
| ЗаписиКнигиПокупок.Организация,
|
||
| ЗаписиКнигиПокупок.НаАванс,
|
||
| ЛОЖЬ,
|
||
| ЗаписиКнигиПокупок.СтавкаНДСАванса,
|
||
| ЗаписиКнигиПокупок.ДоговорКонтрагента,
|
||
| ЗаписиКнигиПокупок.СчетФактураДата,
|
||
| ЗаписиКнигиПокупок.ИсправленныйСчетФактура,
|
||
| ЗаписиКнигиПокупок.Исправление,
|
||
| ЗаписиКнигиПокупок.НомерДокументаОплаты,
|
||
| ЗаписиКнигиПокупок.ДатаДокументаОплаты,
|
||
| "",
|
||
| ДАТАВРЕМЯ(1, 1, 1),
|
||
| "",
|
||
| ДАТАВРЕМЯ(1, 1, 1),
|
||
| ЗаписиКнигиПокупок.КодВидаОперации
|
||
|ИЗ
|
||
| ЗаписиКнигиПокупок КАК ЗаписиКнигиПокупок";
|
||
|
||
КонецФункции
|
||
|
||
Функция ПолучитьДополнительнуюИнформациюПоСчетуФактуре(СтруктураПараметров)
|
||
|
||
ДополнительнаяИнформация = НовыйДополнительнаяИнформацияПоСчетуФактуре();
|
||
|
||
Если СтруктураПараметров.ДанныеДляПроверкиКонтрагентов.Свойство("ВыводитьТолькоНекорректныхКонтрагентов")
|
||
И СтруктураПараметров.ДанныеДляПроверкиКонтрагентов.ВыводитьТолькоНекорректныхКонтрагентов Тогда
|
||
Возврат ДополнительнаяИнформация;
|
||
КонецЕсли;
|
||
|
||
Запрос = Новый Запрос;
|
||
Запрос.МенеджерВременныхТаблиц = СтруктураПараметров.МенеджерВременныхТаблиц;
|
||
|
||
УчетНДСПереопределяемый.ДополнитьИнформациейОТНВЭД(ДополнительнаяИнформация, Запрос);
|
||
УчетНДСПереопределяемый.ДополнитьПродажиИнформациейОНомерахДекларацийНаТовары(ДополнительнаяИнформация, СтруктураПараметров, Запрос);
|
||
|
||
|
||
Возврат ДополнительнаяИнформация;
|
||
|
||
КонецФункции
|
||
|
||
Функция НовыйДополнительнаяИнформацияПоСчетуФактуре()
|
||
|
||
ДополнительнаяИнформация = Новый ТаблицаЗначений;
|
||
ДополнительнаяИнформация.Колонки.Добавить("Ссылка", Документы.ТипВсеСсылки());
|
||
ДополнительнаяИнформация.Индексы.Добавить("Ссылка");
|
||
ДополнительнаяИнформация.Колонки.Добавить("ТНВЭД", ОбщегоНазначения.ОписаниеТипаСтрока(0));
|
||
// С 1 июля 2021 года указывается свойство СвРегНом
|
||
ДополнительнаяИнформация.Колонки.Добавить("СвРегНом", Новый ОписаниеТипов("Массив"));
|
||
// С 1 июля 2021 года отдельно получим рег номера деклараций на товары
|
||
ДополнительнаяИнформация.Колонки.Добавить("СвРегНомТД", Новый ОписаниеТипов("Массив"));
|
||
|
||
Возврат ДополнительнаяИнформация;
|
||
|
||
КонецФункции
|
||
|
||
Процедура ЗаполнитьСведенияОСчетеФактуреНаАванс(АвансовыеСчетаФактурыМассив, АвансовыеСчетаФактурыТекст, ЗаписьКниги, СвСчФПродРанВыст, СвЧастСчФ)
|
||
|
||
Если ЗначениеЗаполнено(ЗаписьКниги.НомерСчетаФактурыНаАванс) Тогда
|
||
АвансовыеСчетаФактурыНомерДата = СтрШаблон(НСтр("ru='%1 от %2'"),
|
||
ЗаписьКниги.НомерСчетаФактурыНаАванс, Формат(ЗаписьКниги.ДатаСчетаФактурыНаАванс, "ДФ=dd.MM.yyyy"));
|
||
|
||
Если АвансовыеСчетаФактурыМассив.Найти(АвансовыеСчетаФактурыНомерДата) = Неопределено Тогда
|
||
АвансовыеСчетаФактурыТекст = АвансовыеСчетаФактурыТекст
|
||
+ ?(Не ЗначениеЗаполнено(АвансовыеСчетаФактурыТекст), "", ";" + Символы.ПС) + АвансовыеСчетаФактурыНомерДата;
|
||
АвансовыеСчетаФактурыМассив.Добавить(АвансовыеСчетаФактурыНомерДата);
|
||
// Структура для выгрузки книги продаж
|
||
СтруктураСвСчФПродРанВыст = Новый Структура("НомСчФПродРанВ,ДатаСчФПродРанВ");
|
||
СтруктураСвСчФПродРанВыст.НомСчФПродРанВ = ЗаписьКниги.НомерСчетаФактурыНаАванс;
|
||
СтруктураСвСчФПродРанВыст.ДатаСчФПродРанВ = Формат(ЗаписьКниги.ДатаСчетаФактурыНаАванс, "ДФ=dd.MM.yyyy");
|
||
СвСчФПродРанВыст.Добавить(СтруктураСвСчФПродРанВыст);
|
||
// Структура для выгрузки декларации по НДС
|
||
СтруктураСвЧастСчФ = Новый Структура("НомЧастСчФ,ДатаЧастСчФ");
|
||
СтруктураСвЧастСчФ.НомЧастСчФ = ЗаписьКниги.НомерСчетаФактурыНаАванс;
|
||
СтруктураСвЧастСчФ.ДатаЧастСчФ = Формат(ЗаписьКниги.ДатаСчетаФактурыНаАванс, "ДФ=dd.MM.yyyy");
|
||
СвЧастСчФ.Добавить(СтруктураСвЧастСчФ);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
Функция НоваяСтрокаИтоговКнигиПродаж()
|
||
|
||
Результат = Новый Структура();
|
||
Результат.Вставить("ВсегоПродаж", 0);
|
||
Результат.Вставить("СуммаБезНДС22", 0);
|
||
Результат.Вставить("СуммаБезНДС20Или18", 0);
|
||
Результат.Вставить("СуммаБезНДС20", 0);
|
||
Результат.Вставить("СуммаБезНДС18", 0);
|
||
Результат.Вставить("СуммаБезНДС7", 0);
|
||
Результат.Вставить("СуммаБезНДС5", 0);
|
||
Результат.Вставить("НДС22", 0);
|
||
Результат.Вставить("НДС20Или18", 0);
|
||
Результат.Вставить("НДС20", 0);
|
||
Результат.Вставить("НДС18", 0);
|
||
Результат.Вставить("НДС7", 0);
|
||
Результат.Вставить("НДС5", 0);
|
||
Результат.Вставить("СуммаБезНДС10", 0);
|
||
Результат.Вставить("НДС10", 0);
|
||
Результат.Вставить("НДС0", 0);
|
||
Результат.Вставить("СуммаСовсемБезНДС", 0);
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#КонецЕсли
|