Спасибо за отличный отчет. Съекономил кучу времени.
Пришлось немного допилить версию для БП 2.0
1. В форме ФормаОтчета2013Кв4 не хватало запросов на построение временной таблицы "КоэффициентыЕНВД"
Со строки 3276: ПрименениеЕНВД = НалоговыйУчет.ПрименениеЕНВД(Организация, мДатаКонцаПериодаОтчета);
Вставил код из типогово отчета
// Михаил Вставил от сюда
// заполение временной таблицы коэффициентов ЕНВД
// не хватало в оригинальной обработке
// Выборка коэффициентов распределения ЕНВД.
Если ПрименениеЕНВД Тогда
Если ИДКонфигурации = "УПП" ИЛИ ИДКонфигурации = "КА" Тогда
МассивСчетовЕНВД = Новый Массив();
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.ОсновноеПроизводствоОблагаемоеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.ВспомогательныеПроизводстваОблагаемоеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходыОблагаемыеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходыОблагаемыеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.БракВПроизводствеОблагаемоеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.ОбслуживающиеПроизводстваОблагаемоеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.ИздержкиОбращенияОблагаемыеЕНВД);
МассивСчетовЕНВД.Добавить(ПланыСчетов.Хозрасчетный.КоммерческиеРасходыОблагаемыеЕНВД);
МассивСчетовРаспределяемых = Новый Массив();
МассивСчетовРаспределяемых.Добавить(ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходыРаспределяемые);
МассивСчетовРаспределяемых.Добавить(ПланыСчетов.Хозрасчетный.ОбщехозяйственныеРасходыРаспределяемые);
МассивСчетовРаспределяемых.Добавить(ПланыСчетов.Хозрасчетный.ИздержкиОбращенияРаспределяемые);
МассивСчетовРаспределяемых.Добавить(ПланыСчетов.Хозрасчетный.КоммерческиеРасходыРаспределяемые);
Запрос.УстановитьПараметр("СчетаЕНВД", МассивСчетовЕНВД);
Запрос.УстановитьПараметр("СчетаРаспределяемые", МассивСчетовРаспределяемых);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыборкаКоэффициентов.Ссылка КАК Ссылка,
| СУММА(ВЫБОР
| КОГДА ВыборкаКоэффициентов.СчетЗатрат НЕ В (&СчетаЕНВД) И ВыборкаКоэффициентов.СчетЗатрат НЕ В (&СчетаРаспределяемые)
| ТОГДА ВыборкаКоэффициентов.Коэффициент / ВыборкаСуммыКоэффициентов.СуммаКоэффициентов
| ИНАЧЕ 0
| КОНЕЦ) КАК НеЕНВД,
| СУММА(ВЫБОР
| КОГДА ВыборкаКоэффициентов.СчетЗатрат В (&СчетаРаспределяемые)
| ТОГДА ВыборкаКоэффициентов.Коэффициент / ВыборкаСуммыКоэффициентов.СуммаКоэффициентов
| ИНАЧЕ 0
| КОНЕЦ) КАК Распределение
|
|ПОМЕСТИТЬ
| КоэффициентыЕНВД
|
|ИЗ
| (ВЫБРАТЬ
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК Ссылка,
| СпособыОтраженияРасходовПоАмортизацииСпособы.СчетЗатрат КАК СчетЗатрат,
| СУММА(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК Коэффициент
| ИЗ
| Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
|
| СГРУППИРОВАТЬ ПО
| СпособыОтраженияРасходовПоАмортизацииСпособы.СчетЗатрат,
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВыборкаКоэффициентов
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК Ссылка,
| СУММА(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК СуммаКоэффициентов
| ИЗ
| Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
|
| СГРУППИРОВАТЬ ПО
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВыборкаСуммыКоэффициентов
| ПО ВыборкаСуммыКоэффициентов.Ссылка = ВыборкаКоэффициентов.Ссылка
|ГДЕ
| ВыборкаКоэффициентов.СчетЗатрат НЕ В (&СчетаЕНВД)
|
|СГРУППИРОВАТЬ ПО
| ВыборкаКоэффициентов.Ссылка
|";
Запрос.Выполнить();
ИначеЕсли ИДКонфигурации = "БПКОРП" ИЛИ ИДКонфигурации = "БАУКОРП" ИЛИ ИДКонфигурации = "БАУ"
ИЛИ (ИДКонфигурации = "БП" И РегламентированнаяОтчетность.РедакцияКонфигурации() = "2.0") Тогда
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыборкаКоэффициентов.Ссылка КАК Ссылка,
| СУММА(ВЫБОР
| КОГДА ВыборкаКоэффициентов.ОтношениеКЕНВД = ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ПредпринимательскаяДеятельностьНеОблагаемаяЕНВД)
| ТОГДА ВыборкаКоэффициентов.Коэффициент / ВыборкаСуммыКоэффициентов.СуммаКоэффициентов
| ИНАЧЕ 0
| КОНЕЦ) КАК НеЕНВД,
| СУММА(ВЫБОР
| КОГДА ВыборкаКоэффициентов.ОтношениеКЕНВД = ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ВидДеятельностиОпределяетсяПоДоходам)
| ТОГДА ВыборкаКоэффициентов.Коэффициент / ВыборкаСуммыКоэффициентов.СуммаКоэффициентов
| ИНАЧЕ 0
| КОНЕЦ) КАК Распределение
|
|ПОМЕСТИТЬ
| КоэффициентыЕНВД
|
|ИЗ
| (ВЫБРАТЬ
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК Ссылка,
| ЕСТЬNULL(ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.Субконто1.ВидДеятельностиДляНалоговогоУчетаЗатрат, ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.Субконто2.ВидДеятельностиДляНалоговогоУчетаЗатрат, СпособыОтраженияРасходовПоАмортизацииСпособы.Субконто3.ВидДеятельностиДляНалоговогоУчетаЗатрат)), ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ПредпринимательскаяДеятельностьНеОблагаемаяЕНВД)) КАК ОтношениеКЕНВД,
| СУММА(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК Коэффициент
| ИЗ
| Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
|
| СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.Субконто1.ВидДеятельностиДляНалоговогоУчетаЗатрат, ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.Субконто2.ВидДеятельностиДляНалоговогоУчетаЗатрат, СпособыОтраженияРасходовПоАмортизацииСпособы.Субконто3.ВидДеятельностиДляНалоговогоУчетаЗатрат)), ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ПредпринимательскаяДеятельностьНеОблагаемаяЕНВД)),
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВыборкаКоэффициентов
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК Ссылка,
| СУММА(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК СуммаКоэффициентов
| ИЗ
| Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
|
| СГРУППИРОВАТЬ ПО
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВыборкаСуммыКоэффициентов
| ПО ВыборкаСуммыКоэффициентов.Ссылка = ВыборкаКоэффициентов.Ссылка
|ГДЕ
| ВыборкаКоэффициентов.ОтношениеКЕНВД <> ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ПредпринимательскаяДеятельностьОблагаемаяЕНВД)
|
|СГРУППИРОВАТЬ ПО
| ВыборкаКоэффициентов.Ссылка
|";
Запрос.Выполнить();
Иначе // БП
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВыборкаКоэффициентов.Ссылка КАК Ссылка,
| СУММА(ВЫБОР
| КОГДА ВыборкаКоэффициентов.ОтношениеКЕНВД = ЗНАЧЕНИЕ(Перечисление.ОтнесениеРасходовКДеятельностиЕНВД.РасходыОтносятсяКнеЕНВД)
| ТОГДА ВыборкаКоэффициентов.Коэффициент / ВыборкаСуммыКоэффициентов.СуммаКоэффициентов
| ИНАЧЕ 0
| КОНЕЦ) КАК НеЕНВД,
| СУММА(ВЫБОР
| КОГДА ВыборкаКоэффициентов.ОтношениеКЕНВД = ЗНАЧЕНИЕ(Перечисление.ОтнесениеРасходовКДеятельностиЕНВД.РасходыРаспределяются)
| ТОГДА ВыборкаКоэффициентов.Коэффициент / ВыборкаСуммыКоэффициентов.СуммаКоэффициентов
| ИНАЧЕ 0
| КОНЕЦ) КАК Распределение
|
|ПОМЕСТИТЬ
| КоэффициентыЕНВД
|
|ИЗ
| (ВЫБРАТЬ
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК Ссылка,
| ЕСТЬNULL(ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.СубконтоНУ1.ОтнесениеРасходовКДеятельностиЕНВД, ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.СубконтоНУ2.ОтнесениеРасходовКДеятельностиЕНВД, СпособыОтраженияРасходовПоАмортизацииСпособы.СубконтоНУ3.ОтнесениеРасходовКДеятельностиЕНВД)), ЗНАЧЕНИЕ(Перечисление.ОтнесениеРасходовКДеятельностиЕНВД.РасходыОтносятсяКНеЕНВД)) КАК ОтношениеКЕНВД,
| СУММА(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК Коэффициент
| ИЗ
| Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
|
| СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.СубконтоНУ1.ОтнесениеРасходовКДеятельностиЕНВД, ЕСТЬNULL(СпособыОтраженияРасходовПоАмортизацииСпособы.СубконтоНУ2.ОтнесениеРасходовКДеятельностиЕНВД, СпособыОтраженияРасходовПоАмортизацииСпособы.СубконтоНУ3.ОтнесениеРасходовКДеятельностиЕНВД)), ЗНАЧЕНИЕ(Перечисление.ОтнесениеРасходовКДеятельностиЕНВД.РасходыОтносятсяКНеЕНВД)),
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВыборкаКоэффициентов
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка КАК Ссылка,
| СУММА(СпособыОтраженияРасходовПоАмортизацииСпособы.Коэффициент) КАК СуммаКоэффициентов
| ИЗ
| Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
|
| СГРУППИРОВАТЬ ПО
| СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВыборкаСуммыКоэффициентов
| ПО ВыборкаСуммыКоэффициентов.Ссылка = ВыборкаКоэффициентов.Ссылка
|ГДЕ
| ВыборкаКоэффициентов.ОтношениеКЕНВД <> ЗНАЧЕНИЕ(Перечисление.ОтнесениеРасходовКДеятельностиЕНВД.РасходыОтносятсяКЕНВД)
|
|СГРУППИРОВАТЬ ПО
| ВыборкаКоэффициентов.Ссылка
|";
Запрос.Выполнить();
КонецЕсли;
КонецЕсли;
// Михаил вставил досюда
Показать
2. Почему-то по некоторым ОС в значении ОстаточнаяСтоимость вместо 0 вылезло NULL и мешало рассчитать итоговые суммы по месяцу. В цикле расчета итогов по закладкам месяцов изменил код
Для Каждого ТекЗначение Из ФормаДетализация["ТабличноеПоле"+НЗакладки] Цикл
Если НЕ ТекЗначение.ВключатьВНалоговуюБазу Тогда
// Михаил 22,01,2014
// по некоторым ОС передается остаточная стоимость NULL, надо разбираться в запросе
// пока временная заглушка, для преобразования NULL в 0
ТекЗначение.ОстаточнаяСтоимость = ?(НЕ ТекЗначение.ОстаточнаяСтоимость = NULL, ТекЗначение.ОстаточнаяСтоимость, 0);
СуммаОсновныеПринятыеПосле2013 = СуммаОсновныеПринятыеПосле2013 + ТекЗначение.ОстаточнаяСтоимость;
ИначеЕсли ТекЗначение.ОстаточнаяСтоимость > 0 И ТекЗначение.ВключатьВНалоговуюБазу Тогда
СуммаПоложительных = СуммаПоложительных + ТекЗначение.ОстаточнаяСтоимость;
ИначеЕсли ТекЗначение.ОстаточнаяСтоимость < 0 И ТекЗначение.ВключатьВНалоговуюБазу Тогда
СуммаОтрицательных = СуммаОтрицательных + ТекЗначение.ОстаточнаяСтоимость;
//ИначеЕсли НЕ ТекЗначение.ВключатьВНалоговуюБазу Тогда
// СуммаОсновныеПринятыеПосле2013 = СуммаОсновныеПринятыеПосле2013 + Число(ТекЗначение.ОстаточнаяСтоимость);
КонецЕсли;
КонецЦикла;
Показать
решение не очень, но в запросе колупаться некогда.