#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Область ПрограммныйИнтерфейс #Область ДляВызоваИзДругихПодсистем // Задает расширенные настройки отчета // // Параметры: // Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки. // Процедура НастроитьВариантыОтчета(Настройки) Экспорт ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.КнигаПродаж); ОписаниеВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, ОписаниеОтчета, ""); ОписаниеВарианта.Описание = НСтр("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); Возврат Результат; КонецФункции #КонецОбласти #КонецЕсли