#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПриСозданииНаСервере = Ложь;
КонецПроцедуры
Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт
Параметры = ЭтаФорма.Параметры;
Возврат;
КонецПроцедуры
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
ПериодОтчета = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(НастройкиОтчета, "Период").Значение;
КонецПериода = ПериодОтчета.ДатаОкончания;
НачалоПериода = ПериодОтчета.ДатаНачала;
ЭлементыОтбора = НастройкиОтчета.Отбор.Элементы;
СписокОрганизаций = Новый СписокЗначений;
Для каждого ЭлементОтбора из ЭлементыОтбора Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") Тогда
Если ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда
Организация = ЭлементОтбора.ПравоеЗначение;
СписокОрганизаций.Добавить(Организация);
Иначе
СписокОрганизаций = ЭлементОтбора.ПравоеЗначение;
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;
ПараметрыУчетаОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Организация, КонецПериода);
Если ПараметрыУчетаОрганизации.ОсновноеНалогообложениеНДСПродажи = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС Тогда
КомпоновкаДанныхСервер.ВключитьВыбранноеПолеВПользовательскихНастройках(КомпоновщикНастроек, "ИсключаемаяСуммаНДС");
КомпоновкаДанныхСервер.ВключитьВыбранноеПолеВПользовательскихНастройках(КомпоновщикНастроек, "НДСНеПризнано");
КонецЕсли;
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ИнициализироватьВременныеТаблицы(МенеджерВременныхТаблиц, СписокОрганизаций, НачалоПериода, КонецПериода);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина,, МенеджерВременныхТаблиц);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыФункции
Процедура ИнициализироватьВременныеТаблицы(МенеджерВременныхТаблиц,СписокОрганизаций, НачалоПериода, КонецПериода)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("Организации", СписокОрганизаций);
Запрос.Текст ="ВЫБРАТЬ РАЗЛИЧНЫЕ
| НАЧАЛОПЕРИОДА(ДанныеПроизводственногоКалендаря.Дата, МЕСЯЦ) КАК НачалоМесяца
|ПОМЕСТИТЬ ДатыКалендаря
|ИЗ
| РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
|ГДЕ
| ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|;
|
|
|ВЫБРАТЬ
| ДатыКалендаря.НачалоМесяца КАК НачалоМесяца,
| МАКСИМУМ(НастройкиУчетаНДСПриУСН.Период) КАК Период,
| НастройкиУчетаНДСПриУСН.Организация КАК Организация
|ПОМЕСТИТЬ Данные
|ИЗ
| ДатыКалендаря КАК ДатыКалендаря
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетаНДСПриУСН КАК НастройкиУчетаНДСПриУСН
| ПО ДатыКалендаря.НачалоМесяца >= НастройкиУчетаНДСПриУСН.Период
|ГДЕ
| НастройкиУчетаНДСПриУСН.Организация В(&Организации)
|
|СГРУППИРОВАТЬ ПО
| НастройкиУчетаНДСПриУСН.Организация,
| ДатыКалендаря.НачалоМесяца
|;
|
|
|ВЫБРАТЬ
| НастройкиУчетаНДСПриУСН.Организация КАК Организация,
| Данные.НачалоМесяца КАК НачалоМесяца
|ПОМЕСТИТЬ ВТ_ДанныеПоПериоду
|ИЗ
| Данные КАК Данные
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетаНДСПриУСН КАК НастройкиУчетаНДСПриУСН
| ПО Данные.Период = НастройкиУчетаНДСПриУСН.Период
| И Данные.Организация = НастройкиУчетаНДСПриУСН.Организация
|ГДЕ
| НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| НачалоМесяца
|;
|
|ВЫБРАТЬ
| НастройкиУчетаНДСПриУСН.Организация КАК Организация
|ПОМЕСТИТЬ ВТ_ДанныеНаКонецПериода
|ИЗ
| РегистрСведений.НастройкиУчетаНДСПриУСН.СрезПоследних(&КонецПериода, Организация В (&Организации)) КАК НастройкиУчетаНДСПриУСН
|ГДЕ
| НастройкиУчетаНДСПриУСН.ОсновноеНалогообложение = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС)
|
|ИНДЕКСИРОВАТЬ ПО
| Организация
|;
|
|
|УНИЧТОЖИТЬ Данные
|;
|
|
|УНИЧТОЖИТЬ ДатыКалендаря";
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецПроцедуры
#КонецОбласти
#КонецЕсли