Анализ расходов по УСН / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныйПрограммныйИнтерфейс

// Настройки общей формы отчета подсистемы "Варианты отчетов".
//
// Параметры:
//   Форма - ФормаКлиентскогоПриложения - Форма отчета.
//   КлючВарианта - Строка - Имя предопределенного варианта отчета или уникальный идентификатор пользовательского.
//   Настройки - См. ОтчетыКлиентСервер.ПолучитьНастройкиОтчетаПоУмолчанию
//
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.События.ПриСозданииНаСервере = Ложь;
КонецПроцедуры

// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
//
// Параметры:
//   Форма - ФормаКлиентскогоПриложения - Форма отчета.
//   Отказ - Передается из параметров обработчика "как есть".
//   СтандартнаяОбработка - Передается из параметров обработчика "как есть".
//
// См. также:
//   "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике.
//
Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт
	
	Параметры = ЭтаФорма.Параметры;
	
	Возврат;
	
КонецПроцедуры

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
		
	НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки(); 
	ПериодОтчета = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(НастройкиОтчета, "Период").Значение;
	КонецПериода = ПериодОтчета.ДатаОкончания;
	НачалоПериода = ПериодОтчета.ДатаНачала;
	
	ЭлементыОтбора = НастройкиОтчета.Отбор.Элементы;
	СписокОрганизаций = Новый СписокЗначений;
	Для каждого ЭлементОтбора из ЭлементыОтбора Цикл
		Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") Тогда
			Если ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда
				Организация = ЭлементОтбора.ПравоеЗначение;
				СписокОрганизаций.Добавить(Организация);
			Иначе
				СписокОрганизаций = ЭлементОтбора.ПравоеЗначение;
			КонецЕсли;
			Прервать;
		КонецЕсли;
	КонецЦикла;

	
	ПараметрыУчетаОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Организация, КонецПериода);
	Если ПараметрыУчетаОрганизации.ОсновноеНалогообложениеНДСПродажи = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС Тогда
		КомпоновкаДанныхСервер.ВключитьВыбранноеПолеВПользовательскихНастройках(КомпоновщикНастроек, "ИсключаемаяСуммаНДС");
		КомпоновкаДанныхСервер.ВключитьВыбранноеПолеВПользовательскихНастройках(КомпоновщикНастроек, "НДСНеПризнано");
	КонецЕсли;
	
	НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
	
	МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	ИнициализироватьВременныеТаблицы(МенеджерВременныхТаблиц, СписокОрганизаций, НачалоПериода, КонецПериода);
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина,, МенеджерВременныхТаблиц);

	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыФункции 

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

#КонецЕсли

Связанные материалы