#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область РаспределениеНаФинансовыйРезультат
Функция РаспределитьРасходыНаФинансовыйРезультат(ПараметрыОбработчика, ДокументРаспределения = Неопределено) Экспорт
Период = ПараметрыОбработчика.ПараметрыРасчета.ПериодРегистрации;
Организации = ПараметрыОбработчика.ПараметрыРасчета.МассивОрганизаций;
ДлительнаяОперация = "Документ.РаспределениеПрочихЗатрат.МодульМенеджера.РаспределитьРасходыНаФинансовыйРезультат";
Замер = ОценкаПроизводительности.НачатьЗамерДлительнойОперации(ДлительнаяОперация);
СтруктураПараметровЗапроса = ИнициализироватьПараметрыРаспределенияРасходовНаФинРез(Период, Организации, ДокументРаспределения);
ВременныеТаблицы = ВременныеТаблицыРаспределенияРасходовНаФинансовыйРезультат(СтруктураПараметровЗапроса);
КоличествоФЗ = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров(Справочники.ОперацииЗакрытияМесяца.ПустаяСсылка()).МаксимальноеКоличествоФЗФормированияДокументов;
КоличествоФЗ = ?(КоличествоФЗ < 2 ИЛИ ЗначениеЗаполнено(ДокументРаспределения), 1, КоличествоФЗ);
ВсегоОбработано = РасчетСебестоимостиПрикладныеАлгоритмы.РазмерВременнойТаблицы(ВременныеТаблицы, "РезультатРаспределения");
Если КоличествоФЗ = 1 Тогда
РассчитанныеОрганизации = РаспределитьОчереднуюПорциюРасходовНаФинансовыйРезультат(ПараметрыОбработчика, ВременныеТаблицы, Период);
Иначе
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = ВременныеТаблицы;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.Регистратор
|ИЗ
| РезультатРаспределения КАК Т
|";
РегистраторыРезультата = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Регистратор");
КоличествоСтрок = РегистраторыРезультата.Количество();
СтрокВФЗ = Цел(КоличествоСтрок / ?(КоличествоФЗ = 0, 1, КоличествоФЗ));
Если СтрокВФЗ < 1 Тогда
РассчитанныеОрганизации = РаспределитьОчереднуюПорциюРасходовНаФинансовыйРезультат(ПараметрыОбработчика, ВременныеТаблицы, Период);
Иначе
БылиОшибки = Ложь;
ОбработаноСтрок = 0;
МассивЗаданий = Новый Массив;
МассивРегистраторов = Новый Массив;
Пока ОбработаноСтрок <= КоличествоСтрок Цикл
Если ОбработаноСтрок = 0 ИЛИ ОбработаноСтрок = КоличествоСтрок
ИЛИ (Цел(ОбработаноСтрок/СтрокВФЗ) = ОбработаноСтрок/СтрокВФЗ И МассивЗаданий.Количество() < КоличествоФЗ-1) Тогда
Если ОбработаноСтрок > 0 Тогда
Запрос.УстановитьПараметр("МассивРегистраторов", МассивРегистраторов);
Запрос.Текст =
"ВЫБРАТЬ
| *
|ИЗ
| РезультатРаспределения КАК Т
|ГДЕ
| Т.Регистратор В (&МассивРегистраторов)
|";
ТаблицаРезультата = Новый ХранилищеЗначения(
Запрос.Выполнить().Выгрузить(),
Новый СжатиеДанных(9));
Запрос.Текст =
"ВЫБРАТЬ
| Т.Регистратор
|ИЗ
| ДокументыСНовымиДвижениями КАК Т
|ГДЕ
| Т.Регистратор В (&МассивРегистраторов)
|";
ДокументыСНовымиДвижениями = Новый ХранилищеЗначения(
Запрос.Выполнить().Выгрузить(),
Новый СжатиеДанных(9));
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(ПараметрыОбработчика);
МассивПараметров.Добавить(ТаблицаРезультата);
МассивПараметров.Добавить(ДокументыСНовымиДвижениями);
КлючЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'ФЗ №%1 - %2 (%3)'", ОбщегоНазначения.КодОсновногоЯзыка()),
СокрЛП(МассивЗаданий.Количество() + 1),
СокрЛП(ПараметрыОбработчика.ДанныеЭтапа.Код),
СокрЛП(ПараметрыОбработчика.ИдентификаторРасчета));
Задание = ЗакрытиеМесяцаСервер.ЗапуститьПодчиненноеФоновоеЗаданиеЭтапаРасчета(
ПараметрыОбработчика.ИдентификаторРасчета,
"РаспределениеПрочихЗатратЛокализация.РаспределениеРасходовНаФинансовыйРезультат",
МассивПараметров,
КлючЗадания,
НСтр("ru='Пакетное формирование документов'"));
МассивЗаданий.Добавить(Задание);
КонецЕсли;
Если ОбработаноСтрок = КоличествоСтрок Тогда
Прервать;
КонецЕсли;
МассивРегистраторов = Новый Массив;
КонецЕсли;
МассивРегистраторов.Добавить(РегистраторыРезультата[ОбработаноСтрок]);
ОбработаноСтрок = ОбработаноСтрок + 1;
КонецЦикла;
ЗаданияЗавершены = Ложь;;
Пока НЕ ЗаданияЗавершены Цикл
ВыполненныеЗадания = ФоновыеЗадания.ОжидатьЗавершенияВыполнения(МассивЗаданий);
МассивЗаданий = Новый Массив;
Для Каждого Задание Из ВыполненныеЗадания Цикл
Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
МассивЗаданий.Добавить(Задание);
ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Завершено Тогда
БылиОшибки = Истина;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Фоновое задание формирования документов %1
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
?(Задание.Состояние = СостояниеФоновогоЗадания.Отменено,
НСтр("ru = 'отменено'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'завершено аварийно'", ОбщегоНазначения.КодОсновногоЯзыка())),
?(Задание.ИнформацияОбОшибке = Неопределено,
НСтр("ru = '<Нет описания ошибки>'", ОбщегоНазначения.КодОсновногоЯзыка()),
ПодробноеПредставлениеОшибки(Задание.ИнформацияОбОшибке)));
ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
ПараметрыОбработчика,
ТекстОшибки);
КонецЕсли;
КонецЦикла;
ЗаданияЗавершены = (МассивЗаданий.Количество() = 0);
КонецЦикла;
Если БылиОшибки Тогда
РассчитанныеОрганизации = Новый Массив;
Иначе
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.Организация
|ИЗ
| РезультатРаспределения КАК Т
|";
РассчитанныеОрганизации = Запрос.Выполнить().Выгрузить();
КонецЕсли;
КонецЕсли;
КонецЕсли;
ОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(Замер, ВсегоОбработано);
УдалитьДвиженияРаспределенныхРасходовВСтаромДокументе(СтруктураПараметровЗапроса, ВременныеТаблицы);
Возврат РассчитанныеОрганизации;
КонецФункции
Функция РаспределитьОчереднуюПорциюРасходовНаФинансовыйРезультат(ПараметрыОбработчика, ВременныеТаблицы, Период) Экспорт
УстановитьПривилегированныйРежим(Истина);
РассчитанныеОрганизации = Новый Массив;
Результат = ВыборкаРаспределенияРасходовНаФинансовыйРезультат(ВременныеТаблицы);
ВыборкаПоОрганизациям = Результат[Результат.Количество() - 1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаДвиженийПрочиеАктивыПассивы = Результат[Результат.Количество() - 2].Выбрать();
ВыборкаДвиженийПрочиеРасходыНЗП = Результат[Результат.Количество() - 3].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаДвиженийПрочиеРасходы = Результат[Результат.Количество() - 4].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ФормироватьУправленческийБаланс = ПолучитьФункциональнуюОпцию("ФормироватьУправленческийБаланс");
Пока ВыборкаПоОрганизациям.Следующий() Цикл
БылиОшибки = Ложь;
ВыборкаРегистраторов = ВыборкаПоОрганизациям.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаРегистраторов.Следующий() Цикл
ФинансовыеРезультаты = РегистрыНакопления.ФинансовыеРезультаты.СоздатьНаборЗаписей();
ФинансовыеРезультаты.Отбор.Регистратор.Установить(ВыборкаРегистраторов.Регистратор);
ПрочиеРасходы = РегистрыНакопления.ПрочиеРасходы.СоздатьНаборЗаписей();
ПрочиеРасходы.Отбор.Регистратор.Установить(ВыборкаРегистраторов.Регистратор);
ПрочиеРасходыНЗП = РегистрыНакопления.ПрочиеРасходыНезавершенногоПроизводства.СоздатьНаборЗаписей();
ПрочиеРасходыНЗП.Отбор.Регистратор.Установить(ВыборкаРегистраторов.Регистратор);
ПрочиеАктивыПассив = РегистрыНакопления.ПрочиеАктивыПассивы.СоздатьНаборЗаписей();
ПрочиеАктивыПассив.Отбор.Регистратор.Установить(ВыборкаРегистраторов.Регистратор);
ДвиженияДоходыРасходыПрочиеАктивыПассивы = РегистрыНакопления.ДвиженияДоходыРасходыПрочиеАктивыПассивы.СоздатьНаборЗаписей();
ДвиженияДоходыРасходыПрочиеАктивыПассивы.Отбор.Регистратор.Установить(ВыборкаРегистраторов.Регистратор);
ДвиженияПоПрочимАктивамПассивам = РегистрыНакопления.ДвиженияПоПрочимАктивамПассивам.СоздатьНаборЗаписей();
ДвиженияПоПрочимАктивамПассивам.Отбор.Регистратор.Установить(ВыборкаРегистраторов.Регистратор);
ВыборкаДетальная = ВыборкаРегистраторов.Выбрать();
Пока ВыборкаДетальная.Следующий() Цикл
ИдентификаторФинЗаписи = Строка(Новый УникальныйИдентификатор());
Если Не (ВыборкаДетальная.Сумма = 0
И ВыборкаДетальная.СуммаБезНДС = 0
И ВыборкаДетальная.СуммаУпр = 0
И ВыборкаДетальная.СуммаРегл = 0
И ВыборкаДетальная.ПостояннаяРазница = 0
И ВыборкаДетальная.ВременнаяРазница = 0) Тогда
НоваяЗапись = ПрочиеРасходы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, ВыборкаДетальная);
НоваяЗапись.КорНаправлениеДеятельности = ВыборкаДетальная.НаправлениеДеятельностиПриемник;
НоваяЗапись.НастройкаХозяйственнойОперации = Справочники.НастройкиХозяйственныхОпераций.РаспределениеРасходовПоНаправлениямДеятельности;
НоваяЗапись.ИдентификаторФинЗаписи = ИдентификаторФинЗаписи;
НоваяЗапись.РасчетСебестоимости = Истина;
КонецЕсли;
Если Не ВыборкаДетальная.Сумма = 0 Тогда
НоваяЗапись = ПрочиеАктивыПассив.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, ВыборкаДетальная, "Период, Регистратор, Организация, Подразделение, НаправлениеДеятельности, Сумма");
НоваяЗапись.Статья = ПланыВидовХарактеристик.СтатьиАктивовПассивов.ПрибылиИУбытки;
НоваяЗапись.Аналитика = Неопределено;
НоваяЗапись.РасчетСебестоимости = Истина;
КонецЕсли;
Если Не (ВыборкаДетальная.Сумма = 0
И ВыборкаДетальная.СуммаБезНДС = 0
И ВыборкаДетальная.СуммаУпр = 0
И ВыборкаДетальная.СуммаРегл = 0) Тогда
НоваяЗапись = ДвиженияДоходыРасходыПрочиеАктивыПассивы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, ВыборкаДетальная,
"Период, Регистратор, Организация, Подразделение, НаправлениеДеятельности,
|АналитикаРасходов, ХозяйственнаяОперация, Сумма, СуммаУпр, СуммаРегл");
НоваяЗапись.Статья = ВыборкаДетальная.СтатьяРасходов;
НоваяЗапись.КорСтатья = ПланыВидовХарактеристик.СтатьиАктивовПассивов.ПрибылиИУбытки;
НоваяЗапись.КорНаправлениеДеятельности = ВыборкаДетальная.НаправлениеДеятельностиПриемник;
КонецЕсли;
Если Не ВыборкаДетальная.Расходы = 0 Тогда
НоваяЗапись = ФинансовыеРезультаты.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, ВыборкаДетальная);
НоваяЗапись.НаправлениеДеятельности = ВыборкаДетальная.НаправлениеДеятельностиПриемник;
НоваяЗапись.РасчетСебестоимости = Истина;
КонецЕсли;
Если Не (ВыборкаДетальная.Сумма = 0
И ВыборкаДетальная.СуммаУпр = 0
И ВыборкаДетальная.СуммаРегл = 0
И ВыборкаДетальная.ПостояннаяРазница = 0
И ВыборкаДетальная.ВременнаяРазница = 0) Тогда
НоваяЗапись = ДвиженияПоПрочимАктивамПассивам.Добавить();
ЗаполнитьЗначенияСвойств(НоваяЗапись, ВыборкаДетальная);
Если ВыборкаДетальная.ВидДвижения = ВидДвиженияНакопления.Расход Тогда
НоваяЗапись.ДебетКредит = Перечисления.ВидыДвиженийПрочихАктивовПассивов.Дебет;
Иначе
НоваяЗапись.ДебетКредит = Перечисления.ВидыДвиженийПрочихАктивовПассивов.Кредит;
КонецЕсли;
НоваяЗапись.НаправлениеДеятельности = ВыборкаДетальная.НаправлениеДеятельностиПриемник;
НоваяЗапись.Статья = ПланыВидовХарактеристик.СтатьиАктивовПассивов.ПрибылиИУбытки;
НоваяЗапись.Аналитика = Неопределено;
НоваяЗапись.СуммаСНДС = ВыборкаДетальная.Сумма;
НоваяЗапись.НастройкаХозяйственнойОперации = Справочники.НастройкиХозяйственныхОпераций.РаспределениеРасходовПоНаправлениямДеятельности;
НоваяЗапись.ИдентификаторФинЗаписи = ИдентификаторФинЗаписи;
НоваяЗапись.РасчетСебестоимости = Истина;
КонецЕсли;
КонецЦикла;
ВыборкаДвиженийПрочиеРасходы.Сбросить();
КлючПоискаДвижений = Новый Структура("Регистратор", ВыборкаРегистраторов.Регистратор);
Пока ВыборкаДвиженийПрочиеРасходы.НайтиСледующий(КлючПоискаДвижений) Цикл
ВыборкаДетальныеЗаписи = ВыборкаДвиженийПрочиеРасходы.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ПрочиеРасходы.Добавить(), ВыборкаДетальныеЗаписи);
КонецЦикла;
КонецЦикла;
ВыборкаДвиженийПрочиеРасходыНЗП.Сбросить();
КлючПоискаДвижений = Новый Структура("Регистратор", ВыборкаРегистраторов.Регистратор);
Пока ВыборкаДвиженийПрочиеРасходыНЗП.НайтиСледующий(КлючПоискаДвижений) Цикл
ВыборкаДетальныеЗаписи = ВыборкаДвиженийПрочиеРасходыНЗП.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ПрочиеРасходыНЗП.Добавить(), ВыборкаДетальныеЗаписи);
КонецЦикла;
КонецЦикла;
ВыборкаДвиженийПрочиеАктивыПассивы.Сбросить();
КлючПоискаДвижений = Новый Структура("Регистратор", ВыборкаРегистраторов.Регистратор);
Пока ВыборкаДвиженийПрочиеАктивыПассивы.НайтиСледующий(КлючПоискаДвижений) Цикл
ЗаполнитьЗначенияСвойств(ПрочиеАктивыПассив.Добавить(), ВыборкаДвиженийПрочиеАктивыПассивы);
КонецЦикла;
НачатьТранзакцию();
Попытка
Если ФормироватьУправленческийБаланс Тогда
ДвиженияУпрБаланса = Новый Структура;
ДвиженияУпрБаланса.Вставить("ПрочиеРасходы", ПрочиеРасходы.Выгрузить());
ДвиженияУпрБаланса.Вставить("ПрочиеРасходыНезавершенногоПроизводства", ПрочиеРасходыНЗП.Выгрузить());
ДвиженияУпрБаланса.Вставить("ПрочиеАктивыПассивы", ПрочиеАктивыПассив.Выгрузить());
УправленческийУчетПроведениеСервер.ОбновитьДвиженияАктивовПассивов(ВыборкаРегистраторов.Регистратор, ДвиженияУпрБаланса);
ПрочиеАктивыПассив.Загрузить(ДвиженияУпрБаланса.ПрочиеАктивыПассивы);
КонецЕсли;
ФинансовыеРезультаты.Записать();
ПрочиеРасходы.Записать();
ПрочиеАктивыПассив.Записать();
ДвиженияДоходыРасходыПрочиеАктивыПассивы.Записать();
ДвиженияПоПрочимАктивамПассивам.Записать();
РаспределениеПрочихЗатратЛокализация.ЗарегистрироватьОтражениеДокумента(
ВыборкаРегистраторов.Регистратор);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
БылиОшибки = Истина;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось обработать документ ""%1"" из-за ошибки:
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
ВыборкаРегистраторов.Регистратор,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
ПараметрыОбработчика,
ТекстОшибки,
ВыборкаРегистраторов.Организация,
,
,
ВыборкаРегистраторов.Регистратор);
КонецПопытки;
КонецЦикла;
Если Не БылиОшибки Тогда
РассчитанныеОрганизации.Добавить(ВыборкаПоОрганизациям.Организация);
КонецЕсли;
КонецЦикла;
Обработки.ОперацииЗакрытияМесяца.ЗарегистрироватьПроблемыРасчетаЭтапа(ПараметрыОбработчика);
Возврат РассчитанныеОрганизации;
КонецФункции
Процедура ПодготовитьТаблицыКРасчету(ПараметрыРасчета, Запрос = Неопределено) Экспорт
Если Запрос = Неопределено Тогда
Запрос = Новый Запрос;
РасчетСебестоимостиПрикладныеАлгоритмы.ИнициализироватьСвойстваЗапроса(
Запрос,
ПараметрыРасчета);
КонецЕсли;
Если ТипЗнч(ПараметрыРасчета) = Тип("Структура") И ПараметрыРасчета.Свойство("Регистратор") Тогда
Запрос.УстановитьПараметр("Регистратор", ПараметрыРасчета.Регистратор);
Запрос.УстановитьПараметр("ПоВсемДокументам", ПараметрыРасчета.Регистратор = Неопределено);
Иначе
Запрос.УстановитьПараметр("Регистратор", Неопределено);
Запрос.УстановитьПараметр("ПоВсемДокументам", Истина);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ
| Реквизиты.Ссылка КАК Регистратор,
| Реквизиты.Дата КАК Дата,
| Реквизиты.НазначениеНастройкиРаспределения,
| Реквизиты.НаправлениеРаспределения,
| ВЫБОР
| КОГДА Реквизиты.НаправлениеРаспределения = ЗНАЧЕНИЕ(Перечисление.НаправлениеРаспределенияПоПодразделениям.ПоКоэффициентам)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ПустаяСсылка)
| ИНАЧЕ
| Реквизиты.БазаРаспределенияПоПартиям
| КОНЕЦ КАК БазаРаспределенияПоПартиям,
| Реквизиты.НаЛюбыеНаправлениеДеятельности,
| Реквизиты.БазаРаспределенияПоПодразделениям,
| Реквизиты.Показатель,
| Реквизиты.СтатьяКалькуляции,
| Реквизиты.РаспределятьПоПартиям,
| Реквизиты.РаспределятьПоПодразделениям,
| Реквизиты.РаспределятьНаСтатьи,
| Реквизиты.ОставитьВНЗП,
| Реквизиты.НаВыпускТекущегоМесяца,
| Реквизиты.ПартииУказаныВручную,
| Реквизиты.ПодразделенияУказаныВручную,
| ЗНАЧЕНИЕ(Перечисление.ПравилаОтнесенияНаВыпуск.ПустаяСсылка) КАК ПравилоОтнесенияНаВыпуск,
| ЕСТЬNULL(ВтОВЗ.ЭтоОВЗ,ЛОЖЬ) КАК ЭтоОВЗ,
| Реквизиты.Организация КАК Организация,
| Реквизиты.Подразделение КАК Подразделение,
| Реквизиты.СтатьяРасходов КАК СтатьяРасходов,
| Реквизиты.АналитикаРасходов КАК АналитикаРасходов,
| Реквизиты.НаправлениеДеятельности КАК НаправлениеДеятельности,
| (НЕ Реквизиты.НаправлениеРаспределения = ЗНАЧЕНИЕ(Перечисление.НаправлениеРаспределенияПоПодразделениям.Текущее)) КАК ТребуетсяРаспределение,
| Реквизиты.УправленческийУчет КАК УправленческийУчет,
| Реквизиты.РегламентированныйУчет КАК РегламентированныйУчет,
| Реквизиты.НалоговыйУчет КАК НалоговыйУчет,
| ВЫБОР
| КОГДА Реквизиты.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| ТОГДА Реквизиты.ИсточникДанных
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ИсточникиДанныхДляРаспределенияРасходов.ПустаяСсылка)
| КОНЕЦ КАК ИсточникДанных
|ПОМЕСТИТЬ Регистраторы
|ИЗ
| Документ.РаспределениеПрочихЗатрат КАК Реквизиты
| ЛЕВОЕ СОЕДИНЕНИЕ ВтОВЗ КАК ВтОВЗ
| ПО Реквизиты.АналитикаРасходов = ВтОВЗ.ОВЗ
| И Реквизиты.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
|ГДЕ
| Реквизиты.Проведен
| И (
| Реквизиты.НазначениеНастройкиРаспределения =
| ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| ИЛИ (
| Реквизиты.НазначениеНастройкиРаспределения В (
| ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| )
| И Реквизиты.НалоговыйУчет
| И Реквизиты.СтатьяРасходов.ВариантРаспределенияРасходовНУ =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| )
| )
| И Реквизиты.Организация В (&МассивОрганизаций)
| И Реквизиты.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И (Реквизиты.Ссылка = &Регистратор
| ИЛИ &ПоВсемДокументам)
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| НаправлениеДеятельности,
| Подразделение,
| Организация
|;
|
|
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Документ.РаспределениеПрочихЗатрат.ПустаяСсылка) КАК Регистратор,
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ПустаяСсылка) КАК БазаРаспределенияПоПодразделениям,
| ЗНАЧЕНИЕ(Справочник.ПравилаРаспределенияРасходов.ПустаяСсылка) КАК Показатель,
| ЛОЖЬ КАК ПодразделенияУказаныВручную
|ПОМЕСТИТЬ РаспределитьПоПодразделениям
|;
|
|ВЫБРАТЬ
| Т.Регистратор
|ПОМЕСТИТЬ РаспределитьПоЭтапам
|ИЗ
| Регистраторы КАК Т
|ГДЕ
| Т.ТребуетсяРаспределение
| И НЕ Т.БазаРаспределенияПоПартиям В (
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.КоличествоТоваров),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВаловаяПрибыль),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж))
|";
Запрос.Выполнить();
КонецПроцедуры
Функция ИнициализироватьПараметрыРаспределенияРасходовНаФинРез(Период, Организации, ДокументРаспределения = Неопределено) Экспорт
СтруктураПараметровЗапроса = Новый Структура;
СтруктураПараметровЗапроса.Вставить("Период", Период);
СтруктураПараметровЗапроса.Вставить("НачалоПериода", НачалоМесяца(Период));
СтруктураПараметровЗапроса.Вставить("КонецПериода", КонецМесяца(Период));
СтруктураПараметровЗапроса.Вставить("МассивОрганизаций", Организации);
СтруктураПараметровЗапроса.Вставить("ДокументРаспределения", ДокументРаспределения);
Возврат СтруктураПараметровЗапроса;
КонецФункции
Функция ВременныеТаблицыРаспределенияРасходовНаФинансовыйРезультат(Параметры) Экспорт
ПараметрыРасчета = Неопределено;
ПараметрыРасчета = РасчетСебестоимостиПостатейныеЗатраты.ПодготовитьБазуПоПрямымЗатрат(Параметры);
ВременныеТаблицы = ?(ПараметрыРасчета = Неопределено, Новый МенеджерВременныхТаблиц, ПараметрыРасчета.МенеджерВременныхТаблиц);
РаспределениеРасходовНаФинансовыйРезультатДополнитьПараметрамиПоУмолчанию(Параметры);
Запрос = РасчетСебестоимостиПрикладныеАлгоритмы.ИнициализироватьЗапросПоПараметрам(Параметры, ВременныеТаблицы);
ПодготовитьСлужебныеТаблицы(Параметры.Период, Параметры.МассивОрганизаций, Запрос);
РежимОтладкиПоИсточникам = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров().ФормироватьВтИсточникиРасходов;
Запрос.Текст = ТекстЗапросаВременныхТаблицРаспределенияНаФинансовыйРезультат(РежимОтладкиПоИсточникам);
Запрос.Выполнить();
Возврат Запрос.МенеджерВременныхТаблиц;
КонецФункции
Функция ТекстЗапросаВременныхТаблицРаспределенияНаФинансовыйРезультат(РежимОтладкиПоИсточникам = Ложь) Экспорт
ЗапросыВременныхТаблиц = Новый Массив;
ЗапросыВременныхТаблиц.Добавить(ТекстПредварительныеОстаткиРасходов());
ЗапросыВременныхТаблиц.Добавить(ТекстОстаткиРасходов(РежимОтладкиПоИсточникам));
ЗапросыВременныхТаблиц.Добавить(ТекстСписаниеНУ());
ЗапросыВременныхТаблиц.Добавить(ТекстРасходыКРаспределению(РежимОтладкиПоИсточникам));
ЗапросыВременныхТаблиц.Добавить(ТекстВтАктуальныеНаправленияДеятельности());
ЗапросыВременныхТаблиц.Добавить(ТекстФинансовыеРезультаты());
ЗапросыВременныхТаблиц.Добавить(ТекстВыручкаИСебестоимостьПродаж());
ЗапросыВременныхТаблиц.Добавить(ТекстБазаРаспределения());
ЗапросыВременныхТаблиц.Добавить(ТекстБазыРаспределенияСводно());
ЗапросыВременныхТаблиц.Добавить(ТекстРаспределенныеРасходы());
ЗапросыВременныхТаблиц.Добавить(ТекстДокументыРаспределения());
ЗапросыВременныхТаблиц.Добавить(ТекстМаксимальныеКоэффициентыПоРегистраторам());
ЗапросыВременныхТаблиц.Добавить(ТекстНаправленияДеятельностиДляПогрешности());
ЗапросыВременныхТаблиц.Добавить(ТекстПогрешностиОкругления());
ЗапросыВременныхТаблиц.Добавить(ТекстРегистраторыКОчисткеДвижений(РежимОтладкиПоИсточникам));
ЗапросыВременныхТаблиц.Добавить(ТекстРаспределенныеАналитикиРасходов());
ЗапросыВременныхТаблиц.Добавить(ТекстДокументыСНовымиДвижениями());
ЗапросыВременныхТаблиц.Добавить(ТекстРезультатРаспределения(РежимОтладкиПоИсточникам));
ТекстЗапроса = СтрСоединить(ЗапросыВременныхТаблиц, ОбщегоНазначения.РазделительПакетаЗапросов());
Если РежимОтладкиПоИсточникам Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//РежимОтладки", "");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаВыборкиРаспределенияНаФинансовыйРезультат() Экспорт
ЗапросыВыборки = Новый Массив;
ЗапросыВыборки.Добавить(ТекстВыборкаПрочиеРасходы());
ЗапросыВыборки.Добавить(ТекстВыборкаПрочиеРасходыНЗП());
ЗапросыВыборки.Добавить(ТекстВыборкаПрочиеАктивыПассивы());
ЗапросыВыборки.Добавить(ТекстВыборкаРезультатРаспределения());
Возврат СтрСоединить(ЗапросыВыборки, ОбщегоНазначения.РазделительПакетаЗапросов());
КонецФункции
#КонецОбласти
#Область Проведение
Процедура ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента) Экспорт
МеханизмыДокумента.Добавить("РеестрДокументов");
МеханизмыДокумента.Добавить("УчетПрочихАктивовПассивов");
МеханизмыДокумента.Добавить("УчетНДС");
РаспределениеПрочихЗатратЛокализация.ЗарегистрироватьУчетныеМеханизмы(МеханизмыДокумента);
КонецПроцедуры
Функция ДанныеДокументаДляПроведения(Документ, Регистры, ДопПараметры = Неопределено) Экспорт
Если ДопПараметры = Неопределено Тогда
ДопПараметры = ПроведениеДокументов.ДопПараметрыИнициализироватьДанныеДокументаДляПроведения();
КонецЕсли;
Если ТипЗнч(Документ) = Тип("ДокументОбъект.РаспределениеПрочихЗатрат") Тогда
ДокументСсылка = Документ.Ссылка;
Иначе
ДокументСсылка = Документ;
КонецЕсли;
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
Если Не ДопПараметры.ПолучитьТекстыЗапроса Тогда
ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка);
ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры);
РаспределениеПрочихЗатратЛокализация.ДополнитьТекстыЗапросовПроведения(Запрос, ТекстыЗапроса, Регистры);
КонецЕсли;
Возврат ПроведениеДокументов.ИнициализироватьДанныеДокументаДляПроведения(Запрос, ТекстыЗапроса, ДопПараметры);
КонецФункции
#КонецОбласти
#Область Описание_СтатьиКРаспределению
#КонецОбласти
Функция СтатьиКРаспределению(Период, Организации, Подразделения, Состояние, ВариантРаспределения = Неопределено) Экспорт
ПараметрыЗапроса = ОписаниеПараметровЗапросаПолученияДанныхДляРаспределения();
ПараметрыЗапроса.Период = Период;
ПараметрыЗапроса.Организации = Организации;
ПараметрыЗапроса.Подразделения = Подразделения;
ПараметрыЗапроса.Состояние = Состояние;
ПараметрыЗапроса.ВариантРаспределения = ВариантРаспределения;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ИнициализироватьЗапросПолученияДанныхДляРаспределения(Запрос, ПараметрыЗапроса);
Запрос.Текст = ТекстЗапросаДанныеДляРаспределения();
УстановитьПривилегированныйРежим(Истина);
Результат = Запрос.Выполнить();
Возврат Результат.Выгрузить();
КонецФункции
Процедура СтатьиКРаспределениюВФоне(Параметры, АдресХранилища) Экспорт
Замер = ОценкаПроизводительности.НачатьЗамерДлительнойОперации(
"Документ.РаспределениеПрочихЗатрат.МодульМенеджера.СтатьиКРаспределениюВФоне");
Подразделения = Новый Массив;
Если ЗначениеЗаполнено(Параметры.Подразделение) Тогда
Подразделения.Добавить(Параметры.Подразделение);
КонецЕсли;
Организации = Новый Массив;
Если ЗначениеЗаполнено(Параметры.Организация) Тогда
Организации.Добавить(Параметры.Организация);
КонецЕсли;
Статьи = СтатьиКРаспределению(Параметры.Период, Организации,
Подразделения, Параметры.Состояние);
ПоместитьВоВременноеХранилище(Статьи, АдресХранилища);
ОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(Замер, Статьи.Количество() / 100);
КонецПроцедуры
Функция СформироватьДокумент(ПараметрыЗаполнения) Экспорт
ПроверитьБлокировкуВходящихДанныхПриОбновленииИБ(НСтр("ru = 'Распределение прочих затрат'"));
ПараметрыВидовУчета = Новый Структура;
ПараметрыВидовУчета.Вставить("УправленческийУчет",
Новый Структура("Состояние, Документ, ОписаниеОшибки", "СостояниеУпр", "ДокументУпр", "ОписаниеОшибкиУпр"));
ПараметрыВидовУчета.Вставить("РегламентированныйУчет",
Новый Структура("Состояние, Документ, ОписаниеОшибки", "СостояниеРегл", "ДокументРегл", "ОписаниеОшибкиРегл"));
ПараметрыВидовУчета.Вставить("НалоговыйУчет",
Новый Структура("Состояние, Документ, ОписаниеОшибки", "СостояниеНал", "ДокументНал", "ОписаниеОшибкиНал"));
Если РасчетСебестоимостиЛокализация.ПолучитьФункциональнуюОпциюУчетПоНДД() Тогда
ПараметрыВидовУчета.Вставить("НДД",
Новый Структура("Состояние, Документ, ОписаниеОшибки", "СостояниеНДД", "ДокументНДД", "ОписаниеОшибкиНДД"));
КонецЕсли;
ДокументыКПроведению = Новый Массив;
ПараметрыПередачи = Новый Структура;
Для Каждого ВидУчета Из ПараметрыВидовУчета Цикл
РеквизитыВидаУчета = ВидУчета.Значение;
Если ЗначениеЗаполнено(ПараметрыЗаполнения[РеквизитыВидаУчета.Документ])
Или ПараметрыЗаполнения[ПараметрыВидовУчета[ВидУчета.Ключ].Состояние] = Перечисления.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента
Или ПараметрыЗаполнения[ПараметрыВидовУчета[ВидУчета.Ключ].Состояние] = Перечисления.СостоянияРаспределенияРасходов.НеТребуется Тогда
Продолжить;
КонецЕсли;
Док = ПодобратьПодходящийДокумент(ДокументыКПроведению, ВидУчета.Ключ, ПараметрыЗаполнения);
Если Не Док = Неопределено Тогда
Если ЗначениеЗаполнено(ПараметрыЗаполнения[РеквизитыВидаУчета.Документ])
И Не ПараметрыЗаполнения[РеквизитыВидаУчета.Документ] = Док.Ссылка Тогда
Попытка
ПредыдущийДокумент = ПараметрыЗаполнения[РеквизитыВидаУчета.Документ].ПолучитьОбъект();
ПредыдущийДокумент.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Исключение
ЗаписьЖурналаРегистрации(Док.Метаданные().Имя,
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ШаблонОшибки = НСтр("ru = 'Не удалось обновить настройки распределения по виду учета ""%1"" по причине: %2.'", ОбщегоНазначения.КодОсновногоЯзыка());
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["Состояние"],
Перечисления.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе);
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["Документ"],
ПараметрыЗаполнения[РеквизитыВидаУчета.Документ]);
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["ОписаниеОшибки"],
СтрШаблон(ШаблонОшибки, ВидУчета.Ключ, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
Продолжить;
КонецПопытки;
КонецЕсли;
Док[ВидУчета.Ключ] = Истина;
Продолжить;
КонецЕсли;
Если Не ЗначениеЗаполнено(ПараметрыЗаполнения[РеквизитыВидаУчета.Документ])
Или (Не Док = Неопределено
И Док.Ссылка = ПараметрыЗаполнения[РеквизитыВидаУчета.Документ]) Тогда
Док = Документы.РаспределениеПрочихЗатрат.СоздатьДокумент();
Иначе
Док = ПараметрыЗаполнения[РеквизитыВидаУчета.Документ].ПолучитьОбъект();
Док.УправленческийУчет = Ложь;
Док.РегламентированныйУчет = Ложь;
Док.НалоговыйУчет = Ложь;
Док.НДД = Ложь;
КонецЕсли;
Док[ВидУчета.Ключ] = Истина;
Док.Заполнить(ПараметрыЗаполнения);
ДокументыКПроведению.Вставить(0, Док);
КонецЦикла;
Для Каждого ДокументКПроведению Из ДокументыКПроведению Цикл
Если ДокументКПроведению.ПроверитьЗаполнение() Тогда
Попытка
ДокументКПроведению.Записать(РежимЗаписиДокумента.Проведение);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(ДокументКПроведению.Метаданные().Имя,
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
Сообщение.УстановитьДанные(ДокументКПроведению);
Сообщение.Сообщить();
КонецПопытки;
КонецЕсли;
ТекстОшибки = "";
ТекстыОшибок = Новый Массив;
Ошибки = ПолучитьСообщенияПользователю(Истина);
Для Индекс = 0 По Ошибки.Количество() - 1 Цикл
ТекстыОшибок.Добавить(Ошибки[Индекс].Текст);
КонецЦикла;
ТекстОшибки = Символы.Таб + СтрСоединить(ТекстыОшибок, Символы.ПС + Символы.Таб);
Для Каждого ВидУчета Из ПараметрыВидовУчета Цикл
Если Не ДокументКПроведению[ВидУчета.Ключ] Тогда
Продолжить;
КонецЕсли;
РеквизитыВидаУчета = ВидУчета.Значение;
Если Не ПустаяСтрока(ТекстОшибки) Тогда
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["Состояние"],
Перечисления.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент);
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["ОписаниеОшибки"], ТекстОшибки);
Иначе
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["Состояние"], Перечисления.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе);
ПараметрыПередачи.Вставить(РеквизитыВидаУчета["Документ"], ДокументКПроведению.Ссылка);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат ПараметрыПередачи;
КонецФункции
Функция ТекстЗапросаПоступилоПрочихРасходов(ВариантРасчета = "ПредварительныйРасчет", ИнициализацияОВЗ = Истина) Экспорт
ТекстСтатьиРасходовКРаспределениюПоВидамУчета =
"ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| Реквизиты.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиРасходовКРаспределениюУпр
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| И Реквизиты.ВариантРаспределенияРасходовУпр <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| Реквизиты.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиРасходовКРаспределениюРегл
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| И Реквизиты.ВариантРаспределенияРасходовРегл <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|
|;
|ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| Реквизиты.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиРасходовКРаспределениюНУ
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| И Реквизиты.ВариантРаспределенияРасходовНУ <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
ТекстСтатьиОВЗПоВидамУчета =
"ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| Реквизиты.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиОВЗУпр
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| Реквизиты.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиОВЗРегл
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|
|;
|ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| Реквизиты.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиОВЗНУ
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
ТекстСтатьиРасходовКРаспределениюНДД = РасчетСебестоимостиЛокализация.ТекстЗапросаСтатьиКРаспределениюНДД();
ТекстСтатьиРасходовКРаспределению =
"ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка) КАК ВариантРаспределенияРасходов
|ПОМЕСТИТЬ СтатьиРасходовКРаспределению
|ИЗ
| СтатьиРасходовКРаспределениюУпр КАК Реквизиты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)
|ИЗ
| СтатьиРасходовКРаспределениюРегл КАК Реквизиты
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.Предопределенный КАК Предопределенный,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка) КАК ВариантРаспределенияРасходов
|ИЗ
| СтатьиРасходовКРаспределениюНУ КАК Реквизиты
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|";
ТекстОВЗКРаспределениюПоВидамУчета = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Реквизиты.ОВЗ КАК ОВЗ
|ПОМЕСТИТЬ ОВЗКРаспределениюУпр
|ИЗ
| ВтОВЗ КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
|
|ИНДЕКСИРОВАТЬ ПО
| ОВЗ
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Реквизиты.ОВЗ КАК ОВЗ
|ПОМЕСТИТЬ ОВЗКРаспределениюРегл
|ИЗ
| ВтОВЗ КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
|
|ИНДЕКСИРОВАТЬ ПО
| ОВЗ
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Реквизиты.ОВЗ КАК ОВЗ
|ПОМЕСТИТЬ ОВЗКРаспределениюНУ
|ИЗ
| ВтОВЗ КАК Реквизиты
|ГДЕ
| Реквизиты.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
|
|ИНДЕКСИРОВАТЬ ПО
| ОВЗ
|";
ТекстОВЗКРаспределениюНДД = РасчетСебестоимостиЛокализация.ТекстОВЗКРаспределениюНДД();
ТекстОВЗКРаспределению = "
|ВЫБРАТЬ
| Реквизиты.ОВЗ КАК ОВЗ
|ПОМЕСТИТЬ ОВЗКРаспределению
|ИЗ
| ОВЗКРаспределениюУпр КАК Реквизиты
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| Реквизиты.ОВЗ
|ИЗ
| ОВЗКРаспределениюРегл КАК Реквизиты
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| Реквизиты.ОВЗ
|ИЗ
| ОВЗКРаспределениюНУ КАК Реквизиты
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| Реквизиты.ОВЗ
|ИЗ
| ОВЗКРаспределениюНДД КАК Реквизиты
|
|ИНДЕКСИРОВАТЬ ПО
| ОВЗ
|";
ТекстРасходыКРаспределению =
"////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Т.Организация КАК Организация,
| Т.Подразделение КАК Подразделение,
| Т.СтатьяРасходов КАК СтатьяРасходов,
| Т.АналитикаРасходов КАК АналитикаРасходов,
| Т.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Т.СуммаОстаток КАК СуммаОстаток,
| Т.СуммаБезНДСОстаток КАК СуммаБезНДСОстаток,
| Т.СуммаУпрОстаток КАК СуммаУпрОстаток,
| Т.СуммаРеглОстаток КАК СуммаРеглОстаток,
| Т.ПостояннаяРазницаОстаток КАК ПостояннаяРазницаОстаток,
| Т.ВременнаяРазницаОстаток КАК ВременнаяРазницаОстаток,
| Т.СуммаНДДОстаток КАК СуммаНДДОстаток
|ПОМЕСТИТЬ ВтПрочиеРасходыОстатки
|ИЗ
| РегистрНакопления.ПрочиеРасходы.Остатки(
| &ГраницаКонецПериода,
| (&ПоВсемОрганизациям
| ИЛИ Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Подразделение В (&СписокПодразделений))
|) КАК Т
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| Организация,
| Подразделение,
| НаправлениеДеятельности,
| АналитикаРасходов
|;
|
|// Для целей отладки предусмотрен вывод источников расходов в исходном виде
|// ВтИсточникиРасходов
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходов КАК СтатьяРасходов,
| Расходы.АналитикаРасходов КАК АналитикаРасходов,
| Расходы.НаправлениеДеятельностиДляСвязи КАК НаправлениеДеятельностиДляСвязи,
| Расходы.СтатьяРасходовДляСвязи КАК СтатьяРасходовДляСвязи,
| НЕ Расходы.СтатьяРасходовДляСвязи = Расходы.СтатьяРасходов КАК ЭтоРасходОВЗ,
| СУММА(Расходы.РасчетноеКоличество) <> 0 ИЛИ
| МАКСИМУМ(Расходы.РасчетнаяСумма) КАК РасчетнаяСумма,
| СУММА(Расходы.Сумма) КАК Сумма,
| СУММА(Расходы.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Расходы.СуммаРегл) КАК СуммаРегл,
| СУММА(Расходы.ПостояннаяРазница) КАК ПостояннаяРазница,
| СУММА(Расходы.ВременнаяРазница) КАК ВременнаяРазница,
| СУММА(Расходы.СуммаНДД) КАК СуммаНДД,
| СУММА(Расходы.СуммаУпр) КАК СуммаУпр,
| СУММА(Расходы.СуммаРеглРасход) КАК СуммаРеглРасход,
| СУММА(Расходы.ПостояннаяРазницаРасход) КАК ПостояннаяРазницаРасход,
| СУММА(Расходы.ВременнаяРазницаРасход) КАК ВременнаяРазницаРасход,
| СУММА(Расходы.СуммаНДДРасход) КАК СуммаНДДРасход
|ПОМЕСТИТЬ РасходыКРаспределению
|ИЗ
| &ИсточникиРасходов КАК Расходы
|
|СГРУППИРОВАТЬ ПО
| Расходы.Организация,
| Расходы.Подразделение,
| Расходы.НаправлениеДеятельности,
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.НаправлениеДеятельностиДляСвязи,
| Расходы.СтатьяРасходовДляСвязи,
| НЕ Расходы.СтатьяРасходовДляСвязи = Расходы.СтатьяРасходов
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение,
| НаправлениеДеятельности,
| Организация
|";
ТекстНастройкиРаспределенияСтатейНДД = РасчетСебестоимостиЛокализация.ТекстЗапросаНастроекНДД("РасходыКРаспределению",
"РаспределениеПрочихЗатрат_ТекстЗапросаПоступилоПрочихРасходов");
ТекстРасходыКРаспределениюСводно =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.НаправлениеДеятельностиДляСвязи КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходовДляСвязи КАК СтатьяРасходов,
| Расходы.АналитикаРасходов КАК АналитикаРасходов,
| &ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияРасходовУпр,
| &ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРасходовРегл,
| &ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияРасходовНУ,
| &ВариантРаспределенияРасходовНДД КАК ВариантРаспределенияРасходовНДД,
| МАКСИМУМ(Расходы.РасчетнаяСумма) КАК РасчетнаяСумма,
| СУММА(Расходы.Сумма) КАК Сумма,
| СУММА(Расходы.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Расходы.СуммаРегл) КАК СуммаРегл,
| СУММА(Расходы.ПостояннаяРазница) КАК ПостояннаяРазница,
| СУММА(Расходы.ВременнаяРазница) КАК ВременнаяРазница,
| СУММА(Расходы.СуммаНДД) КАК СуммаНДД,
| СУММА(Расходы.СуммаУпр) КАК СуммаУпр,
| СУММА(Расходы.СуммаРеглРасход) КАК СуммаРеглРасход,
| СУММА(Расходы.ПостояннаяРазницаРасход) КАК ПостояннаяРазницаРасход,
| СУММА(Расходы.ВременнаяРазницаРасход) КАК ВременнаяРазницаРасход,
| СУММА(Расходы.СуммаНДДРасход) КАК СуммаНДДРасход
|ПОМЕСТИТЬ РасходыКРаспределениюСводно
|ИЗ
| РасходыКРаспределению КАК Расходы
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиНДД
| ПО Расходы.СтатьяРасходов = НастройкиНДД.СтатьяРасходов
| И &Расходы_ОбъектРаздельногоУчетаНДД = НастройкиНДД.ОбъектРаздельногоУчетаНДД
| И Расходы.Организация = НастройкиНДД.Организация
| И НастройкиНДД.РасходыВключаютсяВСтоимость
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДДПоОВЗ КАК НастройкиРаспределенияСтатейНДДПоОВЗ
| ПО Расходы.АналитикаРасходов = НастройкиРаспределенияСтатейНДДПоОВЗ.ОВЗ
| И НастройкиРаспределенияСтатейНДДПоОВЗ.РасходыВключаютсяВСтоимость
|
|СГРУППИРОВАТЬ ПО
| Расходы.Организация,
| Расходы.Подразделение,
| Расходы.АналитикаРасходов,
| Расходы.НаправлениеДеятельностиДляСвязи,
| Расходы.СтатьяРасходовДляСвязи,
| &ВариантРаспределенияРасходовУпр,
| &ВариантРаспределенияРасходовРегл,
| &ВариантРаспределенияРасходовНУ,
| &ВариантРаспределенияРасходовНДД
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходов КАК СтатьяРасходов,
| Расходы.АналитикаРасходов КАК АналитикаРасходов
|ПОМЕСТИТЬ РасходыКРаспределениюСводноСтатьяЗаполнена
|ИЗ
| РасходыКРаспределениюСводно КАК Расходы
|ГДЕ
| Расходы.СтатьяРасходов <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| НаправлениеДеятельности,
| Подразделение,
| Организация
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.АналитикаРасходов КАК АналитикаРасходов
|ПОМЕСТИТЬ РасходыКРаспределениюСводноОВЗ
|ИЗ
| РасходыКРаспределениюСводно КАК Расходы
|ГДЕ
| Расходы.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И ТИПЗНАЧЕНИЯ(Расходы.АналитикаРасходов) = ТИП(Справочник.ОбъектыВозникновенияЗатрат)
| И Расходы.АналитикаРасходов <> ЗНАЧЕНИЕ(Справочник.ОбъектыВозникновенияЗатрат.ПустаяСсылка)
|
|ИНДЕКСИРОВАТЬ ПО
| АналитикаРасходов,
| Подразделение,
| Организация
|;
|";
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(ТекстСтатьиРасходовКРаспределениюПоВидамУчета);
ТекстыЗапроса.Добавить(ТекстСтатьиОВЗПоВидамУчета);
ТекстыЗапроса.Добавить(ТекстСтатьиРасходовКРаспределениюНДД);
ТекстыЗапроса.Добавить(ТекстСтатьиРасходовКРаспределению);
ТекстыЗапроса.Добавить(ТекстОВЗКРаспределениюПоВидамУчета);
ТекстыЗапроса.Добавить(ТекстОВЗКРаспределениюНДД);
ТекстыЗапроса.Добавить(ТекстОВЗКРаспределению);
ТекстыЗапроса.Добавить(ТекстРасходыКРаспределению);
ТекстыЗапроса.Добавить(ТекстНастройкиРаспределенияСтатейНДД);
ТекстыЗапроса.Добавить(ТекстРасходыКРаспределениюСводно);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВПакете());
ВариантУпр = "Расходы.СтатьяРасходов.ВариантРаспределенияРасходовУпр";
ВариантРегл = "Расходы.СтатьяРасходов.ВариантРаспределенияРасходовРегл";
ВариантНУ = "Расходы.СтатьяРасходов.ВариантРаспределенияРасходовНУ";
ВариантНДД = "ЕСТЬNULL(НастройкиНДД.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка))";
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоОбъектамВозникновенияЗатрат") Тогда
ВариантУпр = "
|ВЫБОР
| КОГДА
| Расходы.СтатьяРасходовДляСвязи = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА Расходы.АналитикаРасходов.ВариантРаспределенияРасходовУпр
| ИНАЧЕ Расходы.СтатьяРасходов.ВариантРаспределенияРасходовУпр
| КОНЕЦ";
ВариантРегл = "
|ВЫБОР
| КОГДА
| Расходы.СтатьяРасходовДляСвязи = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА Расходы.АналитикаРасходов.ВариантРаспределенияРасходовРегл
| ИНАЧЕ Расходы.СтатьяРасходов.ВариантРаспределенияРасходовРегл
| КОНЕЦ";
ВариантНУ = "
|ВЫБОР
| КОГДА
| Расходы.СтатьяРасходовДляСвязи = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА Расходы.АналитикаРасходов.ВариантРаспределенияРасходовНУ
| ИНАЧЕ Расходы.СтатьяРасходов.ВариантРаспределенияРасходовНУ
| КОНЕЦ";
ВариантНДД = "
| ВЫБОР
| КОГДА
| Расходы.СтатьяРасходовДляСвязи = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка))
| ИНАЧЕ ЕСТЬNULL(НастройкиНДД.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка))
| КОНЕЦ";
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВариантРаспределенияРасходовУпр", ВариантУпр);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВариантРаспределенияРасходовРегл", ВариантРегл);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВариантРаспределенияРасходовНУ",
?(ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет"), ВариантНУ, ВариантРегл));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ВариантРаспределенияРасходовНДД", ВариантНДД);
РасчетСебестоимостиЛокализация.ПодставитьВЗапросеТипОбъектаРаздельногоУчетаНДД(ТекстЗапроса, "Расходы_ОбъектРаздельногоУчетаНДД");
РежимОтладкиПоИсточникам = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров().ФормироватьВтИсточникиРасходов;
Если РежимОтладкиПоИсточникам Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"// ВтИсточникиРасходов",
ТекстЗапросаПоступилоПрочихРасходовИсточники(ВариантРасчета)+";");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ИсточникиРасходов",
"ВтИсточникиРасходов"
);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"//РежимОтладки",
""
);
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ИсточникиРасходов",
"("+ТекстЗапросаПоступилоПрочихРасходовИсточники(ВариантРасчета)+")");
КонецЕсли;
Возврат
?(ИнициализацияОВЗ, РасчетСебестоимостиПостатейныеЗатраты.ТекстВТпоОВЗ()
+ РасчетСебестоимостиПостатейныеЗатраты.ТекстЗначенияПоказателейРаспределенияНаОВЗ(),"") +
ТекстЗапроса;
КонецФункции
Функция ТекстЗапросаДанныеДляРаспределения(ВыбиратьПервые = 0, ПоместитьСостояниеРасходовВВТ = Ложь, ВызовДляСКД = Ложь) Экспорт
ТекстЗапроса = ТекстЗапросаПоступилоПрочихРасходов("РабочееМесто", ВызовДляСКД) + "
|ВЫБРАТЬ
| ПрочиеРасходы.Организация КАК Организация,
| ПрочиеРасходы.Подразделение КАК Подразделение,
| ПрочиеРасходы.СтатьяРасходов КАК СтатьяРасходов,
| ПрочиеРасходы.АналитикаРасходов КАК АналитикаРасходов,
| ПрочиеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| СУММА(ПрочиеРасходы.ПостояннаяРазница) КАК ПостояннаяРазница
|ПОМЕСТИТЬ ВТПрочиеРасходыРегламентныеДвижения
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы
|ГДЕ
| ПрочиеРасходы.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И ПрочиеРасходы.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТИПЗНАЧЕНИЯ(ПрочиеРасходы.Регистратор) = ТИП(Документ.РегламентнаяОперация)
| И НЕ ПрочиеРасходы.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеКосвенныхРасходов)
|СГРУППИРОВАТЬ ПО
| ПрочиеРасходы.Организация,
| ПрочиеРасходы.Подразделение,
| ПрочиеРасходы.СтатьяРасходов,
| ПрочиеРасходы.АналитикаРасходов,
| ПрочиеРасходы.НаправлениеДеятельности
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ПрочиеРасходы.Организация КАК Организация,
| ПрочиеРасходы.Подразделение КАК Подразделение,
| ПрочиеРасходы.СтатьяРасходов КАК СтатьяРасходов,
| ПрочиеРасходы.АналитикаРасходов КАК АналитикаРасходов,
| ПрочиеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| -СУММА(ПрочиеРасходы.ПостояннаяРазница) КАК ПостояннаяРазница
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы
|ГДЕ
| ПрочиеРасходы.Период МЕЖДУ НАЧАЛОПЕРИОДА(КОНЕЦПЕРИОДА(&КонецПериода, ГОД), МЕСЯЦ) И КОНЕЦПЕРИОДА(&КонецПериода, ГОД)
| И ТИПЗНАЧЕНИЯ(ПрочиеРасходы.Регистратор) = ТИП(Документ.РегламентнаяОперация)
| И ПрочиеРасходы.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ЗакрытиеМесяца)
|СГРУППИРОВАТЬ ПО
| ПрочиеРасходы.Организация,
| ПрочиеРасходы.Подразделение,
| ПрочиеРасходы.СтатьяРасходов,
| ПрочиеРасходы.АналитикаРасходов,
| ПрочиеРасходы.НаправлениеДеятельности
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение,
| НаправлениеДеятельности,
| Организация
|;
|
|ВЫБРАТЬ
| ДанныеПоРасходам.Организация КАК Организация,
| ДанныеПоРасходам.Подразделение КАК Подразделение,
| ДанныеПоРасходам.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеПоРасходам.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеПоРасходам.АналитикаРасходов КАК АналитикаРасходов,
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаРегл,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаРегл,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаРегл,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовРегл
| )))
| КАК ПравилоРаспределенияРегл,
| ВЫБОР
| КОГДА
| НЕ &ИспользоватьРеглУчет ИЛИ ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаНУ,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаНУ,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаНУ,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовНУ
| )))
| = ЗНАЧЕНИЕ(Справочник.ПравилаРаспределенияРасходов.ПустаяСсылка)
| ТОГДА
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаРегл,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаРегл,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаРегл,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовРегл
| )))
| ИНАЧЕ
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаНУ,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаНУ,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаНУ,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовНУ
| )))
| КОНЕЦ КАК ПравилоРаспределенияНал,
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаУпр,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаУпр,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаУпр,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовУпр
| )))
| КАК ПравилоРаспределенияУпр,
| НастройкиНДД.ПравилоРаспределенияРасходовНДД КАК ПравилоРаспределенияНДД
|ПОМЕСТИТЬ ПравилаРаспределенияПоНастройкам
|ИЗ
| РасходыКРаспределениюСводно КАК ДанныеПоРасходам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК РеквизитыСтатьи
| ПО ДанныеПоРасходам.СтатьяРасходов = РеквизитыСтатьи.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиРаспределенияПостатейныхРасходов КАК НастройкиПоОрганизации
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиПоОрганизации.СтатьяРасходов
| И ДанныеПоРасходам.Организация = НастройкиПоОрганизации.Организация
| И (НастройкиПоОрганизации.Подразделение = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиРаспределенияПостатейныхРасходов КАК НастройкиПоПодразделению
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиПоПодразделению.СтатьяРасходов
| И ДанныеПоРасходам.Подразделение = НастройкиПоПодразделению.Подразделение
| И (НастройкиПоПодразделению.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиРаспределенияПостатейныхРасходов КАК НастройкиПоОрганизацииИПодразделению
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиПоОрганизацииИПодразделению.СтатьяРасходов
| И ДанныеПоРасходам.Организация = НастройкиПоОрганизацииИПодразделению.Организация
| И ДанныеПоРасходам.Подразделение = НастройкиПоОрганизацииИПодразделению.Подразделение
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиНДД
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиНДД.СтатьяРасходов
| И &ДанныеПоРасходам_ОбъектРаздельногоУчетаНДД = НастройкиНДД.ОбъектРаздельногоУчетаНДД
| И ДанныеПоРасходам.Организация = НастройкиНДД.Организация
| И НастройкиНДД.РасходыВключаютсяВСтоимость
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение,
| НаправлениеДеятельности,
| Организация;
|
|
|ВЫБРАТЬ
| Правила.Ссылка КАК Правило,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты) КАК ВариантРаспределения
|ПОМЕСТИТЬ ПравилаРаспределенияСРучнымВводом
|ИЗ Справочник.ПравилаРаспределенияРасходов КАК Правила
|ГДЕ Правила.НазначениеПравила = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И Правила.УточнятьПартииВДокументе
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| Правила.Ссылка КАК Правило,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
|ИЗ Справочник.ПравилаРаспределенияРасходов КАК Правила
|ГДЕ Правила.НазначениеПравила = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| И Правила.НаправлениеРаспределения = ЗНАЧЕНИЕ(Перечисление.НаправлениеРаспределенияПоПодразделениям.ПоКоэффициентам)
|СГРУППИРОВАТЬ ПО
| Правила.Ссылка
|ИМЕЮЩИЕ КОЛИЧЕСТВО(Правила.НаправленияДеятельности.НомерСтроки) = 0
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.ПравилаРаспределенияРасходов.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
|ГДЕ &УчетПоНаправлениямДеятельности
|ИНДЕКСИРОВАТЬ ПО
| Правило,
| ВариантРаспределения
|;
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Реквизиты.Ссылка КАК Ссылка,
| Реквизиты.ВариантРаспределенияРасходовУпр В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства)) КАК БезСтатьиКалькуляцииУпр,
| Реквизиты.ВариантРаспределенияРасходовНУ В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства)) КАК БезСтатьиКалькуляцииНУ,
| Реквизиты.ВариантРаспределенияРасходовРегл В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства)) КАК БезСтатьиКалькуляцииРегл,
| ЕСТЬNULL(НастройкиНДД.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)) В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства)) КАК БезСтатьиКалькуляцииНДД
|ПОМЕСТИТЬ СтатьиРасходовБезСтатьиКалькуляции
|ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Реквизиты
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиНДД
| ПО Реквизиты.Ссылка = НастройкиНДД.СтатьяРасходов
| И НастройкиНДД.РасходыВключаютсяВСтоимость
|ГДЕ
| Реквизиты.СтатьяКалькуляции = ЗНАЧЕНИЕ(Справочник.СтатьиКалькуляции.ПустаяСсылка)
| И (Реквизиты.ВариантРаспределенияРасходовУпр В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства))
| ИЛИ Реквизиты.ВариантРаспределенияРасходовНУ В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства))
| ИЛИ Реквизиты.ВариантРаспределенияРасходовРегл В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства))
| ИЛИ ЕСТЬNULL(НастройкиНДД.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)) В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства))
| )
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДД.Организация КАК Организация,
| ДД.Подразделение КАК Подразделение,
| ЕСТЬNULL(РаспределениеРасходов.НаправлениеДеятельности, ДД.НаправлениеДеятельности) КАК НаправлениеДеятельности,
| ЕСТЬNULL(РаспределениеРасходов.СтатьяРасходов, ДД.СтатьяРасходов) КАК СтатьяРасходов,
| ДД.АналитикаРасходов КАК АналитикаРасходов,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (ДД.Сумма <> 0 ИЛИ ДД.СуммаБезНДС <> 0 ИЛИ ДД.СуммаУпр <> 0))) КАК ЕстьДвиженияМеждуОВЗУпр,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И ДД.СуммаРегл <> 0)) КАК ЕстьДвиженияМеждуОВЗРегл,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (ДД.СуммаРегл - ДД.ПостояннаяРазница - ДД.ВременнаяРазница <> 0))) КАК ЕстьДвиженияМеждуОВЗНал,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (ДД.СуммаНДД <> 0))) КАК ЕстьДвиженияМеждуОВЗНДД,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И (ДД.Сумма <> 0 ИЛИ ДД.СуммаБезНДС <> 0 ИЛИ ДД.СуммаУпр <> 0))) КАК ЕстьДвиженияНаФинансовыйРезультатУпр,
| МАКСИМУМ(НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (ДД.Сумма <> 0 ИЛИ ДД.СуммаБезНДС <> 0 ИЛИ ДД.СуммаУпр <> 0)) КАК ЕстьДвиженияНаПроизводствоУпр,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И ДД.СуммаРегл <> 0)) КАК ЕстьДвиженияНаФинансовыйРезультатРегл,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И (ДД.СуммаРегл - ДД.ПостояннаяРазница - ДД.ВременнаяРазница <> 0))) КАК ЕстьДвиженияНаФинансовыйРезультатНал,
| МАКСИМУМ((ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И (ДД.СуммаНДД <> 0))) КАК ЕстьДвиженияНаФинансовыйРезультатНДД,
| МАКСИМУМ(НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И ДД.СуммаРегл <> 0) ЕстьДвиженияНаПроизводствоРегл,
| МАКСИМУМ(НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (ДД.СуммаРегл - ДД.ПостояннаяРазница - ДД.ВременнаяРазница <> 0)) ЕстьДвиженияНаПроизводствоНал,
| МАКСИМУМ(НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
| И НЕ ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (ДД.СуммаНДД <> 0)) ЕстьДвиженияНаПроизводствоНДД,
| МАКСИМУМ(ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И (ДД.Сумма <> 0 ИЛИ ДД.СуммаБезНДС <> 0 ИЛИ ДД.СуммаУпр <> 0)) ЕстьДвиженияНаДругиеСтатьиУпр,
| МАКСИМУМ(ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И ДД.СуммаРегл <> 0) ЕстьДвиженияНаДругиеСтатьиРегл,
| МАКСИМУМ(ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И (ДД.СуммаРегл - ДД.ПостояннаяРазница - ДД.ВременнаяРазница <> 0)) ЕстьДвиженияНаДругиеСтатьиНал,
| МАКСИМУМ(ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеПрочихРасходов)
| И (ДД.СуммаНДД <> 0)) ЕстьДвиженияНаДругиеСтатьиНДД,
| МАКСИМУМ(ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
| И (ДД.ПостояннаяРазница <> 0 ИЛИ ДД.ВременнаяРазница <> 0)) КАК ЕстьСписаниеНУ,
| МАКСИМУМ(ДД.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеСуммНДД)
| И ДД.СуммаНДД <> 0) КАК ЕстьСписаниеНДД
|ПОМЕСТИТЬ ДвиженияСтатейРасходов
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК ДД
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК РаспределениеРасходов
| ПО ДД.Регистратор = РаспределениеРасходов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеДоходовПоНаправлениямДеятельности КАК РаспределениеДоходов
| ПО ДД.Регистратор = РаспределениеДоходов.Ссылка
|ГДЕ
| ДД.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И (&ПоВсемОрганизациям ИЛИ ДД.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям ИЛИ ДД.Подразделение В (&СписокПодразделений))
| И ДД.Активность
| И ДД.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И НЕ (РаспределениеРасходов.Ссылка ЕСТЬ NULL
| И РаспределениеДоходов.Ссылка ЕСТЬ NULL)
|
|СГРУППИРОВАТЬ ПО
| ДД.Организация,
| ДД.Подразделение,
| ЕСТЬNULL(РаспределениеРасходов.НаправлениеДеятельности, ДД.НаправлениеДеятельности),
| ЕСТЬNULL(РаспределениеРасходов.СтатьяРасходов, ДД.СтатьяРасходов),
| ДД.АналитикаРасходов
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Реквизиты.Ссылка КАК Документ,
| Реквизиты.УправленческийУчет,
| Реквизиты.РегламентированныйУчет,
| Реквизиты.НалоговыйУчет,
| Реквизиты.НДД,
| Реквизиты.ОставитьВНЗП,
| Реквизиты.ДоляСтоимостиНаНЗП,
| Реквизиты.ВсегоДолейСтоимости,
| Реквизиты.НазначениеНастройкиРаспределения КАК НазначениеНастройкиРаспределения,
| Реквизиты.Организация КАК Организация,
| Реквизиты.Дата КАК Дата,
| Реквизиты.Подразделение КАК Подразделение,
| Реквизиты.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Реквизиты.СтатьяРасходов КАК СтатьяРасходов,
| Реквизиты.АналитикаРасходов КАК АналитикаРасходов
|ПОМЕСТИТЬ ДокументыРаспределения
|ИЗ
| Документ.РаспределениеПрочихЗатрат КАК Реквизиты
|ГДЕ
| Реквизиты.Дата МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ)
| И (&ПоВсемОрганизациям ИЛИ Реквизиты.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям ИЛИ Реквизиты.Подразделение В (&СписокПодразделений))
| И Реквизиты.Проведен
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение,
| Организация,
| НаправлениеДеятельности
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.Организация,
| Т.Подразделение,
| Т.НаправлениеДеятельности,
| Т.СтатьяРасходов,
| Т.АналитикаРасходов
|ПОМЕСТИТЬ НормированиеНаСчетахУчетах
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Т
|ГДЕ
| Т.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Т.Активность
| И Т.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
|;
|
|
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| НеРаспределенные.Организация КАК Организация,
| НеРаспределенные.Подразделение КАК Подразделение,
| НеРаспределенные.СтатьяРасходов КАК СтатьяРасходов,
| НеРаспределенные.АналитикаРасходов КАК АналитикаРасходов,
| НеРаспределенные.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВЫБОР
| КОГДА НЕ НеРаспределенные.ВариантРаспределенияРасходовУпр В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))
| ТОГДА ИСТИНА
| КОГДА НЕ МАКСИМУМ(НеРаспределенные.ЕстьПогрешностьРасчетаУУ)
| ТОГДА (СУММА(НеРаспределенные.СуммаОстаток) = 0
| И СУММА(НеРаспределенные.СуммаБезНДСОстаток) = 0
| И СУММА(НеРаспределенные.СуммаУпрОстаток) = 0)
| ИНАЧЕ (СУММА(НеРаспределенные.СуммаОстаток) МЕЖДУ -&ЗначениеПогрешностиУпр И &ЗначениеПогрешностиУпр
| И СУММА(НеРаспределенные.СуммаБезНДСОстаток) МЕЖДУ -&ЗначениеПогрешностиУпр И &ЗначениеПогрешностиУпр
| И СУММА(НеРаспределенные.СуммаУпрОстаток) МЕЖДУ -&ЗначениеПогрешностиУпр И &ЗначениеПогрешностиУпр)
| КОНЕЦ КАК РаспределеноВУУ,
| ВЫБОР
| КОГДА НЕ НеРаспределенные.ВариантРаспределенияРасходовРегл В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))
| ТОГДА ИСТИНА
| КОГДА СУММА(НеРаспределенные.СуммаРеглОстаток) = 0 И СУММА(НеРаспределенные.СуммаНУОстаток) = 0
| ТОГДА СУММА(НеРаспределенные.ПостояннаяРазницаОстаток) = 0
| КОГДА НЕ МАКСИМУМ(НеРаспределенные.ЕстьПогрешностьРасчетаБУ)
| ТОГДА СУММА(НеРаспределенные.СуммаРеглОстаток) = 0
| ИНАЧЕ СУММА(НеРаспределенные.СуммаРеглОстаток) МЕЖДУ -&ЗначениеПогрешностиРегл И &ЗначениеПогрешностиРегл
| КОНЕЦ КАК РаспределеноВБУ,
| ВЫБОР
| КОГДА НЕ НеРаспределенные.ВариантРаспределенияРасходовНУ В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))
| ТОГДА ИСТИНА
| КОГДА НЕ МАКСИМУМ(НеРаспределенные.ЕстьПогрешностьРасчетаНУ)
| ТОГДА (СУММА(НеРаспределенные.СуммаНУОстаток) = 0)
| ИНАЧЕ (СУММА(НеРаспределенные.СуммаНУОстаток) МЕЖДУ -&ЗначениеПогрешностиРегл И &ЗначениеПогрешностиРегл)
| КОНЕЦ КАК РаспределеноВНУ,
| ВЫБОР
| КОГДА НЕ НеРаспределенные.ВариантРаспределенияРасходовНДД В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))
| ТОГДА ИСТИНА
| КОГДА НЕ МАКСИМУМ(НеРаспределенные.ЕстьПогрешностьРасчетаНДД)
| ТОГДА (СУММА(НеРаспределенные.СуммаНДДОстаток) = 0)
| ИНАЧЕ (СУММА(НеРаспределенные.СуммаНДДОстаток) МЕЖДУ -&ЗначениеПогрешностиРегл И &ЗначениеПогрешностиРегл)
| КОНЕЦ КАК РаспределеноВНДД
|ПОМЕСТИТЬ РасходыПослеРаспределения
|ИЗ
| &ИсточникиНераспределенныхРасходов КАК НеРаспределенные
|
|СГРУППИРОВАТЬ ПО
| НеРаспределенные.Организация,
| НеРаспределенные.Подразделение,
| НеРаспределенные.НаправлениеДеятельности,
| НеРаспределенные.СтатьяРасходов,
| НеРаспределенные.АналитикаРасходов,
| НеРаспределенные.ВариантРаспределенияРасходовУпр,
| НеРаспределенные.ВариантРаспределенияРасходовРегл,
| НеРаспределенные.ВариантРаспределенияРасходовНУ,
| НеРаспределенные.ВариантРаспределенияРасходовНДД
|
|ИНДЕКСИРОВАТЬ ПО
| НеРаспределенные.СтатьяРасходов,
| НеРаспределенные.АналитикаРасходов,
| НеРаспределенные.Подразделение
|;
|
|
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Т.Организация КАК Организация,
| МИНИМУМ(Т.Месяц) КАК Месяц
|ПОМЕСТИТЬ Задания
|ИЗ
| (ВЫБРАТЬ
| Задания.Организация КАК Организация,
| НАЧАЛОПЕРИОДА(Задания.Месяц, МЕСЯЦ) КАК Месяц
| ИЗ
| РегистрСведений.ЗаданияКРасчетуСебестоимости КАК Задания
| ГДЕ
| (&ПоВсемОрганизациям
| ИЛИ Задания.Организация В (&МассивОрганизаций))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ ПЕРВЫЕ 1
| РасчетСебестоимостиТоваров.Организация КАК Организация,
| НАЧАЛОПЕРИОДА(РасчетСебестоимостиТоваров.Дата, МЕСЯЦ) КАК Месяц
| ИЗ
| Документ.РасчетСебестоимостиТоваров КАК РасчетСебестоимостиТоваров
| ГДЕ
| РасчетСебестоимостиТоваров.Организация.Ссылка В (&МассивОрганизаций)
| И РасчетСебестоимостиТоваров.Дата МЕЖДУ &НачалоПериода И &КонецПериода
| И РасчетСебестоимостиТоваров.Проведен
| И РасчетСебестоимостиТоваров.ТипЗаписи = ЗНАЧЕНИЕ(Перечисление.ТипыЗаписейПартий.ПустаяСсылка)
| И РасчетСебестоимостиТоваров.РежимЗакрытияМесяца
| = ЗНАЧЕНИЕ(Перечисление.РежимыЗакрытияМесяца.ПредварительноеЗакрытие)
| ) КАК Т
|
|СГРУППИРОВАТЬ ПО
| Т.Организация
|;
|
|ВЫБРАТЬ
| Т.Организация КАК Организация,
| Т.Подразделение КАК Подразделение,
| Т.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Т.СтатьяРасходов КАК СтатьяРасходов,
| Т.АналитикаРасходов КАК АналитикаРасходов,
| СтатьяРасходов.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров) КАК НеРаспределяетсяВУпр,
| СтатьяРасходов.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров) КАК НеРаспределяетсяВРегл,
| СтатьяРасходов.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров) КАК НеРаспределяетсяВНУ,
| Т.ВариантРаспределенияРасходовНДД = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров) КАК НеРаспределяетсяВНДД
|ПОМЕСТИТЬ НераспределяемыеРасходыНаСебестоимостьТоваров
|ИЗ
| РасходыКРаспределениюСводно КАК Т
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК СтатьиРасходов
| ПО Т.СтатьяРасходов = СтатьиРасходов.Ссылка
|ГДЕ
| (СтатьяРасходов.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров)
| ИЛИ СтатьяРасходов.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров)
| ИЛИ СтатьяРасходов.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров)
| ИЛИ Т.ВариантРаспределенияРасходовНДД = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров)
| )
| И ИСТИНА В (ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА
| ИЗ РегистрСведений.РеестрДокументов КАК ДД
| ГДЕ ДД.Ссылка = Т.АналитикаРасходов
| И (ДД.ДатаДокументаИБ > &Конецпериода
| ИЛИ НЕ ДД.Проведен)
| )
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| Подразделение,
| Организация,
| НаправлениеДеятельности
|;
|
|ВЫБРАТЬ
| Источник.Организация КАК Организация,
| Источник.Подразделение КАК Подразделение,
| Источник.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Источник.СтатьяРасходов КАК СтатьяРасходов,
| Источник.АналитикаРасходов КАК АналитикаРасходов,
| ЕСТЬNULL(ДокументыУпр.Документ, ЗНАЧЕНИЕ(Документ.РаспределениеПрочихЗатрат.ПустаяСсылка)) КАК ДокументУпр,
| ЕСТЬNULL(ДокументыРегл.Документ, ЗНАЧЕНИЕ(Документ.РаспределениеПрочихЗатрат.ПустаяСсылка)) КАК ДокументРегл,
| ЕСТЬNULL(ДокументыНал.Документ, ЗНАЧЕНИЕ(Документ.РаспределениеПрочихЗатрат.ПустаяСсылка)) КАК ДокументНал,
| ЕСТЬNULL(ДокументыНДД.Документ, ЗНАЧЕНИЕ(Документ.РаспределениеПрочихЗатрат.ПустаяСсылка)) КАК ДокументНДД,
| Источник.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияРасходовУпр,
| Источник.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРасходовРегл,
| Источник.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияРасходовНУ,
| Источник.ВариантРаспределенияРасходовНДД КАК ВариантРаспределенияРасходовНДД,
| Источник.Сумма КАК Сумма,
| Источник.СуммаБезНДС КАК СуммаБезНДС,
| Источник.СуммаРегл КАК СуммаРегл,
| Источник.СуммаНДД КАК СуммаНДД,
| Источник.СуммаУпр КАК СуммаУпр,
| Источник.ПостояннаяРазница КАК ПостояннаяРазница,
| Источник.ВременнаяРазница КАК ВременнаяРазница,
| ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА) КАК РаспределеноВУУ,
| ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА) КАК РаспределеноВБУ,
| ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА) КАК РаспределеноВНУ,
| ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА) КАК РаспределеноВНДД,
| ВЫБОР
| КОГДА НЕ Источник.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА ЕСТЬNULL(НераспределяемыеРасходы.НеРаспределяетсяВУпр, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА НЕ Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Источник.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
| И НЕ (
| ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатУпр, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоУпр, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаДругиеСтатьиУпр, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗУпр, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыУпр.Документ ЕСТЬ NULL
| И НЕ (
| ПравилаУпр.Правило ЕСТЬ NULL
| И ПравилаУпрОВЗ.Правило ЕСТЬ NULL
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыУпр.Документ ЕСТЬ NULL
| И ЕСТЬNULL(БезСтатьиКалькуляции.БезСтатьиКалькуляцииУпр, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА Задания.Месяц > &КонецПериода И ДокументыУпр.Документ ЕСТЬ NULL
| И Источник.ВариантРаспределенияРасходовУпр <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено)
| КОГДА ДокументыУпр.Документ ЕСТЬ NULL И (НЕ ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА) ИЛИ Источник.РасчетнаяСумма)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовУпр
| В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства))
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоУпр, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовУпр
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗУпр, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовУпр
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатУпр, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА)
| И (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатУпр, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоУпр, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаДругиеСтатьиУпр, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗУпр, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыУпр.ОставитьВНЗП И ДокументыУпр.ДоляСтоимостиНаНЗП = ДокументыУпр.ВсегоДолейСтоимости
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА Задания.Месяц < &КонецПериода И ЕСТЬNULL(Остатки.РаспределеноВУУ, ИСТИНА) И НЕ Источник.РасчетнаяСумма
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ КАК СостояниеУУ,
| ВЫБОР
| КОГДА Источник.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И НЕ Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Не Источник.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА ЕСТЬNULL(НераспределяемыеРасходы.НеРаспределяетсяВРегл, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА)
| И НЕ (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатРегл, ЛОЖЬ) ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоРегл, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаДругиеСтатьиРегл, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗРегл, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И Источник.СтатьяРасходов.ВидРасходов = ЗНАЧЕНИЕ(Перечисление.ВидыРасходовНУ.ТранспортныеРасходы)
| И ДолиСписания.ДоляСписания = 0
| И НЕ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатРегл, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыРегл.Документ ЕСТЬ NULL
| И НЕ (
| ПравилаРегл.Правило ЕСТЬ NULL
| И ПравилаРеглОВЗ.Правило ЕСТЬ NULL
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыРегл.Документ ЕСТЬ NULL
| И ЕСТЬNULL(БезСтатьиКалькуляции.БезСтатьиКалькуляцииРегл, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА Задания.Месяц > &КонецПериода И ДокументыРегл.Документ ЕСТЬ NULL
| И Источник.ВариантРаспределенияРасходовРегл <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено)
| КОГДА ДокументыРегл.Документ ЕСТЬ NULL И (НЕ ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА) ИЛИ Источник.РасчетнаяСумма)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовРегл
| В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства))
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоРегл, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовРегл
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗРегл, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовРегл
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатРегл, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА ЕСТЬNULL(НераспределяемыеРасходы.НеРаспределяетсяВНУ, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА)
| И (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатРегл, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоРегл, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗРегл, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыРегл.ОставитьВНЗП И ДокументыРегл.ДоляСтоимостиНаНЗП = ДокументыРегл.ВсегоДолейСтоимости
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА Задания.Месяц < &КонецПериода И ЕСТЬNULL(Остатки.РаспределеноВБУ, ИСТИНА) И НЕ Источник.РасчетнаяСумма
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ КАК СостояниеБУ
| ,ВЫБОР
| КОГДА Источник.СтатьяРасходов <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И НЕ Источник.СтатьяРасходов.ПринятиеКНалоговомуУчету
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Источник.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И НЕ Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА НЕ Источник.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА ЕСТЬNULL(НераспределяемыеРасходы.НеРаспределяетсяВНУ, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| И НЕ (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНал, ЛОЖЬ) ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоНал, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьСписаниеНУ, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаДругиеСтатьиНал, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗНал, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И Источник.СтатьяРасходов.ВидРасходов = ЗНАЧЕНИЕ(Перечисление.ВидыРасходовНУ.ТранспортныеРасходы)
| И ДолиСписания.ДоляСписания = 0
| И НЕ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНал, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыНал.Документ ЕСТЬ NULL
| И НЕ (
| ПравилаНал.Правило ЕСТЬ NULL
| И ПравилаНалОВЗ.Правило ЕСТЬ NULL
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыНал.Документ ЕСТЬ NULL
| И ЕСТЬNULL(БезСтатьиКалькуляции.БезСтатьиКалькуляцииНУ, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА Задания.Месяц > &КонецПериода И ДокументыНал.Документ ЕСТЬ NULL
| И Источник.ВариантРаспределенияРасходовНУ <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено)
| КОГДА ДокументыНал.Документ ЕСТЬ NULL И (НЕ ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА) ИЛИ Источник.РасчетнаяСумма)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| И (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНал, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьСписаниеНУ, ЛОЖЬ))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовНУ
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоНал, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовНУ
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗНал, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовНУ
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНал, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА)
| И (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНал, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоНал, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗНал, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыНал.ОставитьВНЗП И ДокументыНал.ДоляСтоимостиНаНЗП = ДокументыНал.ВсегоДолейСтоимости
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА Задания.Месяц < &КонецПериода И ЕСТЬNULL(Остатки.РаспределеноВНУ, ИСТИНА) И НЕ Источник.РасчетнаяСумма
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ КАК СостояниеНУ
| ,ВЫБОР
| КОГДА Источник.ВариантРаспределенияРасходовНУ В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаВнеоборотныеАктивы),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаРасходыБудущихПериодов))
| И Источник.ВариантРаспределенияРасходовНДД = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Источник.СтатьяРасходов <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И НастройкиРаспределенияСтатейНДД.ВариантПризнанияРасходов ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И ВтОВЗ.ОВЗ ЕСТЬ НЕ NULL
| И НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантПризнанияРасходов ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Источник.СтатьяРасходов <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И НЕ Источник.СтатьяРасходов.ПризнаютсяВРасходахНДД
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Источник.ВариантРаспределенияРасходовНДД = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И НЕ Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА НЕ Источник.ВариантРаспределенияРасходовНДД В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| И НЕ (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьСписаниеНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаДругиеСтатьиНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗНДД, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И Источник.СтатьяРасходов.ВидРасходов = ЗНАЧЕНИЕ(Перечисление.ВидыРасходовНУ.ТранспортныеРасходы)
| И ДолиСписания.ДоляСписания = 0
| И НЕ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНДД, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА (Задания.Месяц > &КонецПериода ИЛИ Задания.Месяц ЕСТЬ NULL)
| И ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА ДокументыНДД.Документ ЕСТЬ NULL
| И НЕ (
| ПравилаНДД.Правило ЕСТЬ NULL
| И ПравилаНДДОВЗ.Правило ЕСТЬ NULL
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыНДД.Документ ЕСТЬ NULL
| И ЕСТЬNULL(БезСтатьиКалькуляции.БезСтатьиКалькуляцииНДД, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА Задания.Месяц > &КонецПериода И ДокументыНДД.Документ ЕСТЬ NULL
| И Источник.ВариантРаспределенияРасходовНДД <> ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено)
| КОГДА ДокументыНДД.Документ ЕСТЬ NULL
| И (НЕ ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| ИЛИ Источник.РасчетнаяСумма)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| И (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьСписаниеНДД, ЛОЖЬ))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовНДД
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоНДД, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовНДД
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗНДД, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА Задания.Месяц > &КонецПериода И НЕ ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| И Источник.ВариантРаспределенияРасходовНДД
| = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНДД, ЛОЖЬ)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ОшибкаРаспределения)
| КОГДА ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА)
| И (ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаФинансовыйРезультатНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияНаПроизводствоНДД, ЛОЖЬ)
| ИЛИ ЕСТЬNULL(ДвиженияСтатейРасходов.ЕстьДвиженияМеждуОВЗНДД, ЛОЖЬ)
| )
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено)
| КОГДА Задания.Месяц < &КонецПериода И ЕСТЬNULL(Остатки.РаспределеноВНДД, ИСТИНА) И НЕ Источник.РасчетнаяСумма
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА ИСТИНА
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОГДА ИСТИНА
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОНЕЦ КАК СостояниеНДД
|
|ПОМЕСТИТЬ ВТДанныеДляРаспределения
|ИЗ
| РасходыКРаспределениюСводно КАК Источник
| ЛЕВОЕ СОЕДИНЕНИЕ Задания КАК Задания
| ПО Источник.Организация = Задания.Организация
|
| ЛЕВОЕ СОЕДИНЕНИЕ ВтОВЗ КАК ВтОВЗ
| ПО Источник.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Источник.АналитикаРасходов = ВтОВЗ.ОВЗ
|
| ЛЕВОЕ СОЕДИНЕНИЕ РасходыПослеРаспределения КАК Остатки
| ПО Источник.СтатьяРасходов = Остатки.СтатьяРасходов
| И Источник.АналитикаРасходов = Остатки.АналитикаРасходов
| И Источник.Подразделение = Остатки.Подразделение
| И Источник.Организация = Остатки.Организация
| И Источник.НаправлениеДеятельности = Остатки.НаправлениеДеятельности
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыУпр
| ПО Источник.СтатьяРасходов = ДокументыУпр.СтатьяРасходов
| И Источник.АналитикаРасходов = ДокументыУпр.АналитикаРасходов
| И Источник.Подразделение = ДокументыУпр.Подразделение
| И Источник.НаправлениеДеятельности = ДокументыУпр.НаправлениеДеятельности
| И Источник.Организация = ДокументыУпр.Организация
| И ДокументыУпр.УправленческийУчет
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРегл
| ПО Источник.СтатьяРасходов = ДокументыРегл.СтатьяРасходов
| И Источник.АналитикаРасходов = ДокументыРегл.АналитикаРасходов
| И Источник.Подразделение = ДокументыРегл.Подразделение
| И Источник.НаправлениеДеятельности = ДокументыРегл.НаправлениеДеятельности
| И Источник.Организация = ДокументыРегл.Организация
| И ДокументыРегл.РегламентированныйУчет
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыНал
| ПО Источник.СтатьяРасходов = ДокументыНал.СтатьяРасходов
| И Источник.АналитикаРасходов = ДокументыНал.АналитикаРасходов
| И Источник.Подразделение = ДокументыНал.Подразделение
| И Источник.НаправлениеДеятельности = ДокументыНал.НаправлениеДеятельности
| И Источник.Организация = ДокументыНал.Организация
| И ДокументыНал.НалоговыйУчет
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыНДД
| ПО Источник.СтатьяРасходов = ДокументыНДД.СтатьяРасходов
| И Источник.АналитикаРасходов = ДокументыНДД.АналитикаРасходов
| И Источник.Подразделение = ДокументыНДД.Подразделение
| И Источник.НаправлениеДеятельности = ДокументыНДД.НаправлениеДеятельности
| И Источник.Организация = ДокументыНДД.Организация
| И ДокументыНДД.НДД
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияСтатейРасходов КАК ДвиженияСтатейРасходов
| ПО Источник.СтатьяРасходов = ДвиженияСтатейРасходов.СтатьяРасходов
| И Источник.АналитикаРасходов = ДвиженияСтатейРасходов.АналитикаРасходов
| И Источник.Подразделение = ДвиженияСтатейРасходов.Подразделение
| И Источник.НаправлениеДеятельности = ДвиженияСтатейРасходов.НаправлениеДеятельности
| И Источник.Организация = ДвиженияСтатейРасходов.Организация
|
| ЛЕВОЕ СОЕДИНЕНИЕ НераспределяемыеРасходыНаСебестоимостьТоваров КАК НераспределяемыеРасходы
| ПО Источник.СтатьяРасходов = НераспределяемыеРасходы.СтатьяРасходов
| И Источник.АналитикаРасходов = НераспределяемыеРасходы.АналитикаРасходов
| И Источник.Подразделение = НераспределяемыеРасходы.Подразделение
| И Источник.НаправлениеДеятельности = НераспределяемыеРасходы.НаправлениеДеятельности
| И Источник.Организация = НераспределяемыеРасходы.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО Источник.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И Источник.Организация = ДолиСписания.Организация
| И ДолиСписания.Транспортные
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДДПоОВЗ КАК НастройкиРаспределенияСтатейНДДПоОВЗ
| ПО Источник.АналитикаРасходов = НастройкиРаспределенияСтатейНДДПоОВЗ.ОВЗ
| И НастройкиРаспределенияСтатейНДДПоОВЗ.РасходыВключаютсяВСтоимость
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиРаспределенияСтатейНДД
| ПО Источник.СтатьяРасходов = НастройкиРаспределенияСтатейНДД.СтатьяРасходов
| И &Источник_ОбъектРаздельногоУчетаНДД = НастройкиРаспределенияСтатейНДД.ОбъектРаздельногоУчетаНДД
| И Источник.Организация = НастройкиРаспределенияСтатейНДД.Организация
| И НастройкиРаспределенияСтатейНДД.РасходыВключаютсяВСтоимость
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияПоНастройкам КАК Правила
| ПО Источник.СтатьяРасходов = Правила.СтатьяРасходов
| И Источник.АналитикаРасходов = Правила.АналитикаРасходов
| И Источник.Подразделение = Правила.Подразделение
| И Источник.НаправлениеДеятельности = Правила.НаправлениеДеятельности
| И Источник.Организация = Правила.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ СтатьиРасходовБезСтатьиКалькуляции КАК БезСтатьиКалькуляции
| ПО Источник.СтатьяРасходов = БезСтатьиКалькуляции.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаУпр
| ПО Правила.ПравилоРаспределенияУпр = ПравилаУпр.Правило
| И Источник.ВариантРаспределенияРасходовУпр = ПравилаУпр.ВариантРаспределения
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаРегл
| ПО Правила.ПравилоРаспределенияРегл = ПравилаРегл.Правило
| И Источник.ВариантРаспределенияРасходовРегл = ПравилаРегл.ВариантРаспределения
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаНал
| ПО Правила.ПравилоРаспределенияНал = ПравилаНал.Правило
| И Источник.ВариантРаспределенияРасходовНУ = ПравилаНал.ВариантРаспределения
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаНДД
| ПО НастройкиРаспределенияСтатейНДД.ПравилоРаспределенияРасходовНДД = ПравилаНДД.Правило
| И НастройкиРаспределенияСтатейНДД.РасходыВключаютсяВСтоимость
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаУпрОВЗ
| ПО ВтОВЗ.ПравилоРаспределенияРасходовУпр = ПравилаУпрОВЗ.Правило
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаРеглОВЗ
| ПО ВтОВЗ.ПравилоРаспределенияРасходовРегл = ПравилаРеглОВЗ.Правило
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаНалОВЗ
| ПО ВЫБОР
| КОГДА ВтОВЗ.ПравилоРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Справочник.ПравилаРаспределенияРасходов.ПустаяСсылка)
| ТОГДА ВтОВЗ.ПравилоРаспределенияРасходовРегл = ПравилаНалОВЗ.Правило
| ИНАЧЕ ВтОВЗ.ПравилоРаспределенияРасходовНУ = ПравилаНалОВЗ.Правило
| КОНЕЦ
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаНДДОВЗ
| ПО НастройкиРаспределенияСтатейНДДПоОВЗ.ПравилоРаспределенияРасходовНДД = ПравилаНДДОВЗ.Правило
| И НастройкиРаспределенияСтатейНДДПоОВЗ.РасходыВключаютсяВСтоимость
|
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОбъектыВозникновенияЗатрат.Организация,
| ОбъектыВозникновенияЗатрат.Подразделение,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка),
| ОбъектыВозникновенияЗатрат.Ссылка,
| ДокументыУпр.Ссылка,
| ДокументыРегл.Ссылка,
| ДокументыНал.Ссылка,
| ДокументыНДД.Ссылка,
| ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовУпр,
| ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовРегл,
| ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовНУ,
| ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)),
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| Задания.Месяц > &КонецПериода,
| Задания.Месяц > &КонецПериода,
| Задания.Месяц > &КонецПериода,
| Задания.Месяц > &КонецПериода,
| ВЫБОР
| КОГДА НЕ ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Задания.Месяц > &КонецПериода
| И ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовУпр
| В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА ДокументыУпр.Ссылка ЕСТЬ NULL
| И ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| И НЕ ПравилаУпр.Правило ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыУпр.Ссылка ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Задания.Месяц > &КонецПериода
| И ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовРегл
| В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА ДокументыРегл.Ссылка ЕСТЬ NULL
| И ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| И НЕ ПравилаРегл.Правило ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыРегл.Ссылка ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ
| ,
| ВЫБОР
| КОГДА НЕ ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Задания.Месяц > &КонецПериода
| И ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовНУ
| В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА ДокументыНал.Ссылка ЕСТЬ NULL
| И ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| И НЕ ПравилаНал.Правило ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыНал.Ссылка ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ
| ,ВЫБОР
| КОГДА НЕ ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)) В (&ВариантыРаспределенияРасходов)
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантПризнанияРасходов ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| КОГДА Задания.Месяц > &КонецПериода
| И ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка))
| В (ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат))
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы)
| КОГДА ДокументыНДД.Ссылка ЕСТЬ NULL
| И ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)) = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| И ПравилаНДДОВЗ.Правило ЕСТЬ НЕ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяРучнойВводДокумента)
| КОГДА ДокументыНДД.Ссылка ЕСТЬ NULL
| ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе)
| КОНЕЦ
|ИЗ
| РегистрСведений.ЗначенияПоказателейДляРаспределенияРасходовНаОВЗ.СрезПоследних(&КонецПериода) КАК ЗначенияНаОВЗ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОбъектыВозникновенияЗатрат КАК ОбъектыВозникновенияЗатрат
| ПО ОбъектыВозникновенияЗатрат.Ссылка = ЗначенияНаОВЗ.ОВЗ
| ЛЕВОЕ СОЕДИНЕНИЕ Задания КАК Задания
| ПО ОбъектыВозникновенияЗатрат.Организация = Задания.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДДПоОВЗ КАК НастройкиРаспределенияСтатейНДДПоОВЗ
| ПО ЗначенияНаОВЗ.ОВЗ = НастройкиРаспределенияСтатейНДДПоОВЗ.ОВЗ
| И НастройкиРаспределенияСтатейНДДПоОВЗ.РасходыВключаютсяВСтоимость
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК ДокументыУпр
| ПО ДокументыУпр.АналитикаРасходов = ОбъектыВозникновенияЗатрат.Ссылка
| И ДокументыУпр.Организация = ОбъектыВозникновенияЗатрат.Организация
| И ДокументыУпр.Подразделение = ОбъектыВозникновенияЗатрат.Подразделение
| И ДокументыУпр.УправленческийУчет
| И ДокументыУпр.Проведен
| И НАЧАЛОПЕРИОДА(ДокументыУпр.Дата, МЕСЯЦ) = &НачалоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК ДокументыРегл
| ПО ДокументыРегл.АналитикаРасходов = ОбъектыВозникновенияЗатрат.Ссылка
| И ДокументыРегл.Организация = ОбъектыВозникновенияЗатрат.Организация
| И ДокументыРегл.Подразделение = ОбъектыВозникновенияЗатрат.Подразделение
| И ДокументыРегл.РегламентированныйУчет
| И ДокументыРегл.Проведен
| И НАЧАЛОПЕРИОДА(ДокументыРегл.Дата, МЕСЯЦ) = &НачалоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК ДокументыНал
| ПО ДокументыНал.АналитикаРасходов = ОбъектыВозникновенияЗатрат.Ссылка
| И ДокументыНал.Организация = ОбъектыВозникновенияЗатрат.Организация
| И ДокументыНал.Подразделение = ОбъектыВозникновенияЗатрат.Подразделение
| И ДокументыНал.НалоговыйУчет
| И ДокументыНал.Проведен
| И НАЧАЛОПЕРИОДА(ДокументыНал.Дата, МЕСЯЦ) = &НачалоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК ДокументыНДД
| ПО ДокументыНДД.АналитикаРасходов = ОбъектыВозникновенияЗатрат.Ссылка
| И ДокументыНДД.Организация = ОбъектыВозникновенияЗатрат.Организация
| И ДокументыНДД.Подразделение = ОбъектыВозникновенияЗатрат.Подразделение
| И ДокументыНДД.НДД
| И ДокументыНДД.Проведен
| И НАЧАЛОПЕРИОДА(ДокументыНДД.Дата, МЕСЯЦ) = &НачалоПериода
| ЛЕВОЕ СОЕДИНЕНИЕ РасходыКРаспределению КАК РасходыДругогоСегмента
| ПО ОбъектыВозникновенияЗатрат.Ссылка = РасходыДругогоСегмента.АналитикаРасходов
| И ОбъектыВозникновенияЗатрат.Подразделение = РасходыДругогоСегмента.Подразделение
| И ОбъектыВозникновенияЗатрат.Организация = РасходыДругогоСегмента.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаУпр
| ПО ОбъектыВозникновенияЗатрат.ПравилоРаспределенияРасходовУпр = ПравилаУпр.Правило
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаРегл
| ПО ОбъектыВозникновенияЗатрат.ПравилоРаспределенияРасходовРегл = ПравилаРегл.Правило
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаНал
| ПО ВЫБОР
| КОГДА ОбъектыВозникновенияЗатрат.ПравилоРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Справочник.ПравилаРаспределенияРасходов.ПустаяСсылка)
| ТОГДА ОбъектыВозникновенияЗатрат.ПравилоРаспределенияРасходовРегл = ПравилаНал.Правило
| ИНАЧЕ ОбъектыВозникновенияЗатрат.ПравилоРаспределенияРасходовНУ = ПравилаНал.Правило
| КОНЕЦ
| ЛЕВОЕ СОЕДИНЕНИЕ ПравилаРаспределенияСРучнымВводом КАК ПравилаНДДОВЗ
| ПО НастройкиРаспределенияСтатейНДДПоОВЗ.ПравилоРаспределенияРасходовНДД = ПравилаНДДОВЗ.Правило
|ГДЕ
| (ЗначенияНаОВЗ.Показатель.БазаРаспределения = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВводитсяЕжемесячно)
| И ЗначенияНаОВЗ.Период = &НачалоПериода
| ИЛИ ЗначенияНаОВЗ.Показатель.БазаРаспределения = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВводитсяПриИзменении))
| И НЕ ЗначенияНаОВЗ.ЗначениеПоказателя = 0
| И (&ПоВсемОрганизациям
| ИЛИ ОбъектыВозникновенияЗатрат.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ ОбъектыВозникновенияЗатрат.Подразделение В (&СписокПодразделений))
| И РасходыДругогоСегмента.Организация ЕСТЬ NULL
| И (ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ИЛИ ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| ИЛИ ОбъектыВозникновенияЗатрат.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| ИЛИ ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД, ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка)) В (&ВариантыРаспределенияРасходов)
| )
|;
|
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 100
| ВТДанныеДляЗагрузки.Организация КАК Организация,
| ВТДанныеДляЗагрузки.Подразделение КАК Подразделение,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &СтатьяРасходов КАК СтатьяРасходов,
| ЕСТЬNULL(СтатьиРасходов.Родитель, ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)) КАК ГруппаСтатей,
| ВТДанныеДляЗагрузки.АналитикаРасходов КАК АналитикаРасходов,
| ВТДанныеДляЗагрузки.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) КАК ЭтоОВЗ,
| ВТДанныеДляЗагрузки.ДокументУпр КАК ДокументУпр,
| ВТДанныеДляЗагрузки.ДокументРегл КАК ДокументРегл,
| ВТДанныеДляЗагрузки.ДокументНал КАК ДокументНал,
| ВТДанныеДляЗагрузки.ДокументНДД КАК ДокументНДД,
| ВТДанныеДляЗагрузки.СостояниеУУ КАК СостояниеУпр,
| ВТДанныеДляЗагрузки.СостояниеБУ КАК СостояниеРегл
| ,
| ВТДанныеДляЗагрузки.СостояниеНУ КАК СостояниеНал
| ,
| ВТДанныеДляЗагрузки.СостояниеНДД КАК СостояниеНДД
|ПОМЕСТИТЬ СостояниеРаспределенияРасходов
|ИЗ
| ВТДанныеДляРаспределения КАК ВТДанныеДляЗагрузки
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК СтатьиРасходов
| ПО ВТДанныеДляЗагрузки.СтатьяРасходов = СтатьиРасходов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаправленияДеятельности КАК СпрНаправленияДеятельности
| ПО ВТДанныеДляЗагрузки.НаправлениеДеятельности = СпрНаправленияДеятельности.Ссылка
|ГДЕ
| ВЫБОР
| КОГДА &ФильтрПоСостоянию = ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ
| (ВТДанныеДляЗагрузки.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| И ВТДанныеДляЗагрузки.СостояниеУУ = &ФильтрПоСостоянию)
| ИЛИ
| (ВТДанныеДляЗагрузки.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| И ВТДанныеДляЗагрузки.СостояниеБУ = &ФильтрПоСостоянию)
| ИЛИ
| (ВТДанныеДляЗагрузки.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| И ВТДанныеДляЗагрузки.СостояниеНУ = &ФильтрПоСостоянию)
| ИЛИ
| (ВТДанныеДляЗагрузки.ВариантРаспределенияРасходовНДД В (&ВариантыРаспределенияРасходов)
| И ВТДанныеДляЗагрузки.СостояниеНДД = &ФильтрПоСостоянию)
| КОНЕЦ
| И НЕ (
| ВТДанныеДляЗагрузки.СостояниеУУ В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы))
| И ВТДанныеДляЗагрузки.СостояниеБУ В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы))
| И ВТДанныеДляЗагрузки.СостояниеНУ В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеПоступилиРасходы))
| И ВТДанныеДляЗагрузки.СостояниеНДД = ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| )
|;
|";
РежимОтладкиПоИсточникам = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров().ФормироватьВтИсточникиРасходов;
Если РежимОтладкиПоИсточникам Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"// ВтИсточникиНераспределенныхРасходов",
ТекстЗапросаРасходыПослеРаспределенияИсточники()+";");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ИсточникиНераспределенныхРасходов",
"ВтИсточникиНераспределенныхРасходов"
);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"//РежимОтладки",
""
);
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ИсточникиНераспределенныхРасходов",
"("+ТекстЗапросаРасходыПослеРаспределенияИсточники()+")");
КонецЕсли;
ЗаменяемыйТекст =
"ПЕРВЫЕ 100";
Если ВыбиратьПервые > 0 Тогда
ЗаменяющийТекст =
"ПЕРВЫЕ "
+ Строка(ВыбиратьПервые);
Иначе
ЗаменяющийТекст = "";
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ЗаменяемыйТекст, ЗаменяющийТекст);
Если Не ПоместитьСостояниеРасходовВВТ Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"ПОМЕСТИТЬ СостояниеРаспределенияРасходов",
"");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&СтатьяРасходов КАК СтатьяРасходов",
"ВТДанныеДляЗагрузки.СтатьяРасходов КАК СтатьяРасходов"
);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&НаправлениеДеятельности КАК НаправлениеДеятельности",
"ВТДанныеДляЗагрузки.НаправлениеДеятельности КАК НаправлениеДеятельности"
);
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&СтатьяРасходов КАК СтатьяРасходов",
"СтатьиРасходов.Ссылка КАК СтатьяРасходов"
);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&НаправлениеДеятельности КАК НаправлениеДеятельности",
"СпрНаправленияДеятельности.Ссылка КАК НаправлениеДеятельности"
);
КонецЕсли;
ПараметрыОбъектаРаздельногоУчетаНДД = Новый Массив;
ПараметрыОбъектаРаздельногоУчетаНДД.Добавить("Источник_ОбъектРаздельногоУчетаНДД");
ПараметрыОбъектаРаздельногоУчетаНДД.Добавить("НеРаспределенные_ОбъектРаздельногоУчетаНДД");
ПараметрыОбъектаРаздельногоУчетаНДД.Добавить("ДанныеПоРасходам_ОбъектРаздельногоУчетаНДД");
ПараметрыОбъектаРаздельногоУчетаНДД.Добавить("РегламентныеДвижения_ОбъектРаздельногоУчетаНДД");
ПараметрыОбъектаРаздельногоУчетаНДД.Добавить("Расходы_ОбъектРаздельногоУчетаНДД");
СписокПараметровОбъектаРаздельногоУчетаНДД = СтрСоединить(ПараметрыОбъектаРаздельногоУчетаНДД, ",");
РасчетСебестоимостиЛокализация.ПодставитьВЗапросеТипОбъектаРаздельногоУчетаНДД(ТекстЗапроса, СписокПараметровОбъектаРаздельногоУчетаНДД);
Возврат ТекстЗапроса;
КонецФункции
Процедура ИнициализироватьЗапросПолученияДанныхДляРаспределения(Запрос, ПараметрыЗапроса) Экспорт
ПараметрыЗакрытия = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров();
ПоддерживаемыеВариантыРаспределения = Новый Массив;
Если ПараметрыЗапроса.ВариантРаспределения = Неопределено Тогда
ПоддерживаемыеВариантыРаспределения.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты);
ПоддерживаемыеВариантыРаспределения.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства);
Если (ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоОбъектамВозникновенияЗатрат")) Тогда
ПоддерживаемыеВариантыРаспределения.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат);
КонецЕсли;
ПоддерживаемыеВариантыРаспределения.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
Если РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(НачалоМесяца(ПараметрыЗапроса.Период)) Тогда
ПоддерживаемыеВариантыРаспределения.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров);
КонецЕсли;
ИначеЕсли ТипЗнч(ПараметрыЗапроса.ВариантРаспределения) = Тип("Массив") Тогда
Для каждого ЗначениеМассива Из ПараметрыЗапроса.ВариантРаспределения Цикл
ПоддерживаемыеВариантыРаспределения.Добавить(ЗначениеМассива);
КонецЦикла;
Иначе
ПоддерживаемыеВариантыРаспределения.Добавить(ПараметрыЗапроса.ВариантРаспределения);
КонецЕсли;
Если Не Запрос.Параметры.Свойство("НачалоПериода")
Или Не ЗначениеЗаполнено(Запрос.Параметры.НачалоПериода) Тогда
Если ЗначениеЗаполнено(ПараметрыЗапроса.НачалоПериода) Тогда
Запрос.УстановитьПараметр("НачалоПериода", ПараметрыЗапроса.НачалоПериода);
Иначе
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ПараметрыЗапроса.Период));
КонецЕсли;
КонецЕсли;
Если Не Запрос.Параметры.Свойство("КонецПериода")
Или Не ЗначениеЗаполнено(Запрос.Параметры.КонецПериода) Тогда
Если ЗначениеЗаполнено(ПараметрыЗапроса.КонецПериода) Тогда
Запрос.УстановитьПараметр("КонецПериода", ПараметрыЗапроса.КонецПериода);
Иначе
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ПараметрыЗапроса.Период));
КонецЕсли;
КонецЕсли;
Если Не Запрос.Параметры.Свойство("МассивОрганизаций")
Или Запрос.Параметры.МассивОрганизаций.Количество() = 0 Тогда
Если ПараметрыЗапроса.Организации.Количество() = 0 Тогда
Запрос.УстановитьПараметр("МассивОрганизаций", Справочники.Организации.ДоступныеОрганизации(Истина));
Иначе
Запрос.УстановитьПараметр("МассивОрганизаций", ПараметрыЗапроса.Организации);
КонецЕсли;
КонецЕсли;
Запрос.УстановитьПараметр("ГраницаКонецПериода",
Новый Граница(Запрос.Параметры.КонецПериода, ВидГраницы.Включая));
Запрос.УстановитьПараметр("СписокПодразделений", ПараметрыЗапроса.Подразделения);
Запрос.УстановитьПараметр("ПоВсемПодразделениям", Запрос.Параметры.СписокПодразделений.Количество() = 0);
Запрос.УстановитьПараметр("ПоВсемОрганизациям", Запрос.Параметры.МассивОрганизаций.Количество() = 0);
Запрос.УстановитьПараметр("ФильтрПоСостоянию", ПараметрыЗапроса.Состояние);
Запрос.УстановитьПараметр("ИсключитьИзКонтроляРазницы", ПараметрыЗапроса.ИсключитьИзКонтроляРазницы);
Запрос.УстановитьПараметр("ЗначениеПогрешностиУпр", ПараметрыЗакрытия.ЗначениеПогрешностиРасходыУпр);
Запрос.УстановитьПараметр("ЗначениеПогрешностиРегл", ПараметрыЗакрытия.ЗначениеПогрешностиРасходыРегл);
Запрос.УстановитьПараметр("ВариантыРаспределенияРасходов", ПоддерживаемыеВариантыРаспределения);
Запрос.УстановитьПараметр("УчетПоНаправлениямДеятельности", ПолучитьФункциональнуюОпцию("ФормироватьФинансовыйРезультат"));
Запрос.УстановитьПараметр("ИспользоватьУчетЗатратПоНаправлениямДеятельности", ПолучитьФункциональнуюОпцию("ИспользоватьУчетЗатратПоНаправлениямДеятельности"));
Запрос.УстановитьПараметр("ИспользоватьРеглУчет", ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет"));
Запрос.УстановитьПараметр("ВидыРасходовНормируемые", Перечисления.ВидыРасходовНУ.НормируемыеРасходы());
ПодготовитьСлужебныеТаблицы(Запрос.Параметры.КонецПериода,
Запрос.Параметры.МассивОрганизаций, Запрос, ПараметрыЗапроса.ИсключитьТранспортныеРасходы);
КонецПроцедуры
Функция ОписаниеПараметровЗапросаПолученияДанныхДляРаспределения() Экспорт
ОписаниеПараметров = Новый Структура;
ОписаниеПараметров.Вставить("Период", Дата(1, 1, 1));
ОписаниеПараметров.Вставить("НачалоПериода", Дата(1, 1, 1));
ОписаниеПараметров.Вставить("КонецПериода", Дата(1, 1, 1));
ОписаниеПараметров.Вставить("Организации", Новый Массив);
ОписаниеПараметров.Вставить("Подразделения", Новый Массив);
ОписаниеПараметров.Вставить("Состояние", Перечисления.СостоянияРаспределенияРасходов.ПустаяСсылка());
ОписаниеПараметров.Вставить("ИсключитьИзКонтроляРазницы", Ложь);
ОписаниеПараметров.Вставить("ИсключитьТранспортныеРасходы", Ложь);
ОписаниеПараметров.Вставить("ВариантРаспределения", Неопределено);
Возврат ОписаниеПараметров;
КонецФункции
Функция ПолучитьНастройкиРаспределенияСтатейРасходов(ПараметрыРасходов, МассивОрганизаций, ПериодРегистрации) Экспорт
Если ТипЗнч(ПараметрыРасходов) = Тип("Массив") Тогда
ТаблицаДанных = КонвертироватьДанные(ПараметрыРасходов);
Иначе
ТаблицаДанных = ПараметрыРасходов;
КонецЕсли;
ТекстЗапросаДанныеПоРасходам = "
|ВЫБРАТЬ
| ДанныеПоРасходам.Дата КАК Дата,
| ДанныеПоРасходам.ИДСтроки КАК ИДСтроки,
| ДанныеПоРасходам.ДокументУпр КАК ДокументУпр,
| ДанныеПоРасходам.ДокументНал КАК ДокументНал,
| ДанныеПоРасходам.ДокументРегл КАК ДокументРегл,
| ДанныеПоРасходам.ДокументНДД КАК ДокументНДД,
| ДанныеПоРасходам.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеПоРасходам.АналитикаРасходов КАК АналитикаРасходов,
| ДанныеПоРасходам.Организация КАК Организация,
| ДанныеПоРасходам.Подразделение КАК Подразделение,
| ДанныеПоРасходам.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ДанныеПоРасходам.СостояниеУпр КАК СостояниеУпр,
| ДанныеПоРасходам.СостояниеНал КАК СостояниеНал,
| ДанныеПоРасходам.СостояниеРегл КАК СостояниеРегл,
| ДанныеПоРасходам.СостояниеНДД КАК СостояниеНДД
|ПОМЕСТИТЬ ДанныеПоРасходам
|ИЗ
| &ДанныеПоРасходам КАК ДанныеПоРасходам
|";
ТекстЗапросаПредварительныеНастройки = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеПоРасходам.Дата КАК Дата,
| ДанныеПоРасходам.ИДСтроки КАК ИДСтроки,
| ДанныеПоРасходам.ДокументУпр КАК ДокументУпр,
| ДанныеПоРасходам.ДокументНал КАК ДокументНал,
| ДанныеПоРасходам.ДокументРегл КАК ДокументРегл,
| ДанныеПоРасходам.ДокументНДД КАК ДокументНДД,
| ДанныеПоРасходам.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеПоРасходам.АналитикаРасходов КАК АналитикаРасходов,
| ДанныеПоРасходам.СостояниеУпр КАК СостояниеУпр,
| ДанныеПоРасходам.СостояниеНал КАК СостояниеНал,
| ДанныеПоРасходам.СостояниеРегл КАК СостояниеРегл,
| ДанныеПоРасходам.СостояниеНДД КАК СостояниеНДД,
| РеквизитыСтатьи.СтатьяКалькуляции КАК СтатьяКалькуляции,
| РеквизитыСтатьи.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРегл,
| РеквизитыСтатьи.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияНал,
| РеквизитыСтатьи.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияУпр,
| ДанныеПоРасходам.Организация КАК Организация,
| ДанныеПоРасходам.Подразделение КАК Подразделение,
| ДанныеПоРасходам.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаРегл,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаРегл,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаРегл,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовРегл
| )))
| КАК ПравилоРаспределенияРегл,
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаНУ,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаНУ,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаНУ,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовНУ
| )))
| КАК ПравилоРаспределенияНал,
| ЕСТЬNULL(НастройкиПоОрганизацииИПодразделению.НастройкаУпр,
| ЕСТЬNULL(НастройкиПоОрганизации.НастройкаУпр,
| ЕСТЬNULL(НастройкиПоПодразделению.НастройкаУпр,
| РеквизитыСтатьи.ПравилоРаспределенияРасходовУпр
| )))
| КАК ПравилоРаспределенияУпр
|ПОМЕСТИТЬ ПредварительныеНастройки
|ИЗ
| ДанныеПоРасходам КАК ДанныеПоРасходам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК РеквизитыСтатьи
| ПО ДанныеПоРасходам.СтатьяРасходов = РеквизитыСтатьи.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиРаспределенияПостатейныхРасходов КАК НастройкиПоОрганизации
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиПоОрганизации.СтатьяРасходов
| И ДанныеПоРасходам.Организация = НастройкиПоОрганизации.Организация
| И (НастройкиПоОрганизации.Подразделение = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиРаспределенияПостатейныхРасходов КАК НастройкиПоПодразделению
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиПоПодразделению.СтатьяРасходов
| И ДанныеПоРасходам.Подразделение = НастройкиПоПодразделению.Подразделение
| И (НастройкиПоПодразделению.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиРаспределенияПостатейныхРасходов КАК НастройкиПоОрганизацииИПодразделению
| ПО ДанныеПоРасходам.СтатьяРасходов = НастройкиПоОрганизацииИПодразделению.СтатьяРасходов
| И ДанныеПоРасходам.Организация = НастройкиПоОрганизацииИПодразделению.Организация
| И ДанныеПоРасходам.Подразделение = НастройкиПоОрганизацииИПодразделению.Подразделение
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ДанныеПоРасходам.Дата КАК Дата,
| ДанныеПоРасходам.ИДСтроки КАК ИДСтроки,
| ДанныеПоРасходам.ДокументУпр КАК ДокументУпр,
| ДанныеПоРасходам.ДокументНал КАК ДокументНал,
| ДанныеПоРасходам.ДокументРегл КАК ДокументРегл,
| ДанныеПоРасходам.ДокументНДД КАК ДокументНДД,
| ДанныеПоРасходам.СтатьяРасходов КАК СтатьяРасходов,
| ДанныеПоРасходам.АналитикаРасходов КАК АналитикаРасходов,
| ДанныеПоРасходам.СостояниеУпр КАК СостояниеУпр,
| ДанныеПоРасходам.СостояниеНал КАК СостояниеНал,
| ДанныеПоРасходам.СостояниеРегл КАК СостояниеРегл,
| ДанныеПоРасходам.СостояниеНДД КАК СостояниеНДД,
| РеквизитыОВЗ.СтатьяКалькуляции КАК СтатьяКалькуляции,
| РеквизитыОВЗ.ВариантРаспределенияРасходовРегл КАК ВариантРаспределенияРегл,
| РеквизитыОВЗ.ВариантРаспределенияРасходовНУ КАК ВариантРаспределенияНал,
| РеквизитыОВЗ.ВариантРаспределенияРасходовУпр КАК ВариантРаспределенияУпр,
| ДанныеПоРасходам.Организация КАК Организация,
| ДанныеПоРасходам.Подразделение КАК Подразделение,
| ДанныеПоРасходам.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РеквизитыОВЗ.ПравилоРаспределенияРасходовРегл КАК ПравилоРаспределенияРегл,
| РеквизитыОВЗ.ПравилоРаспределенияРасходовНУ КАК ПравилоРаспределенияНал,
| РеквизитыОВЗ.ПравилоРаспределенияРасходовУпр КАК ПравилоРаспределенияУпр
|ИЗ
| ДанныеПоРасходам КАК ДанныеПоРасходам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОбъектыВозникновенияЗатрат КАК РеквизитыОВЗ
| ПО ДанныеПоРасходам.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И ДанныеПоРасходам.АналитикаРасходов = РеквизитыОВЗ.Ссылка
|";
ТекстЗапросаНастройкиРаспределенияСтатейНДД = РасчетСебестоимостиЛокализация.ТекстЗапросаНастроекНДД("ДанныеПоРасходам", "РаспределениеПрочихЗатрат_ПолучитьНастройкиРаспределенияСтатейРасходов");
ТекстЗапросаНастройки = "
|ВЫБРАТЬ
| Настройки.Дата КАК Дата,
| Настройки.ИДСтроки КАК ИДСтроки,
| Настройки.ДокументУпр КАК ДокументУпр,
| Настройки.ДокументНал КАК ДокументНал,
| Настройки.ДокументРегл КАК ДокументРегл,
| Настройки.ДокументНДД КАК ДокументНДД,
| Настройки.СтатьяРасходов КАК СтатьяРасходов,
| Настройки.АналитикаРасходов КАК АналитикаРасходов,
| Настройки.СостояниеУпр КАК СостояниеУпр,
| Настройки.СостояниеНал КАК СостояниеНал,
| Настройки.СостояниеРегл КАК СостояниеРегл,
| Настройки.СостояниеНДД КАК СостояниеНДД,
| Настройки.СтатьяКалькуляции КАК СтатьяКалькуляции,
| Настройки.ВариантРаспределенияРегл,
| Настройки.ВариантРаспределенияНал КАК ВариантРаспределенияНал,
| Настройки.ВариантРаспределенияУпр,
| ЕСТЬNULL(НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ВариантРаспределенияРасходовНДД,
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.ПустаяСсылка))) КАК ВариантРаспределенияНДД,
| Настройки.Организация КАК Организация,
| Настройки.Подразделение КАК Подразделение,
| Настройки.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Настройки.ПравилоРаспределенияРегл,
| ВЫБОР
| КОГДА Настройки.ВариантРаспределенияНал В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты)
| )
| И Настройки.ВариантРаспределенияНал = Настройки.ВариантРаспределенияРегл
| ТОГДА Настройки.ПравилоРаспределенияРегл
| ИНАЧЕ Настройки.ПравилоРаспределенияНал
| КОНЕЦ КАК ПравилоРаспределенияНал,
| ЕСТЬNULL(НастройкиРаспределенияСтатейНДД.ПравилоРаспределенияРасходовНДД,
| ЕСТЬNULL(НастройкиРаспределенияСтатейНДДПоОВЗ.ПравилоРаспределенияРасходовНДД,
| ЗНАЧЕНИЕ(Справочник.ПравилаРаспределенияРасходов.ПустаяСсылка))) КАК ПравилоРаспределенияНДД,
| Настройки.ПравилоРаспределенияУпр
|ИЗ ПредварительныеНастройки КАК Настройки
|
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиРаспределенияСтатейНДД
| ПО Настройки.СтатьяРасходов = НастройкиРаспределенияСтатейНДД.СтатьяРасходов
| И &Настройки_ОбъектРаздельногоУчетаНДД = НастройкиРаспределенияСтатейНДД.ОбъектРаздельногоУчетаНДД
| И Настройки.Организация = НастройкиРаспределенияСтатейНДД.Организация
|
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДДПоОВЗ КАК НастройкиРаспределенияСтатейНДДПоОВЗ
| ПО Настройки.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Настройки.АналитикаРасходов = НастройкиРаспределенияСтатейНДДПоОВЗ.ОВЗ
|";
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(ТекстЗапросаДанныеПоРасходам);
ТекстыЗапроса.Добавить(ТекстЗапросаПредварительныеНастройки);
ТекстыЗапроса.Добавить(ТекстЗапросаНастройкиРаспределенияСтатейНДД);
ТекстыЗапроса.Добавить(ТекстЗапросаНастройки);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
РасчетСебестоимостиЛокализация.ПодставитьВЗапросеТипОбъектаРаздельногоУчетаНДД(ТекстЗапроса, "Настройки_ОбъектРаздельногоУчетаНДД");
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("ДанныеПоРасходам", ТаблицаДанных);
Запрос.УстановитьПараметр("Период", ПериодРегистрации);
Запрос.УстановитьПараметр("Организация", МассивОрганизаций);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
МассивНастроек = Новый Массив;
Пока Выборка.Следующий() Цикл
ФорматДанныхРаспределенияСтатьиРасходов = ФорматДанныхРаспределенияСтатьиРасходов();
ЗаполнитьЗначенияСвойств(ФорматДанныхРаспределенияСтатьиРасходов, Выборка);
МассивНастроек.Добавить(ФорматДанныхРаспределенияСтатьиРасходов);
КонецЦикла;
Возврат МассивНастроек;
КонецФункции
Функция СформироватьДокументы(Параметры, АдресХранилища) Экспорт
Перем ПараметрыРасходов, МассивОрганизаций, ПериодРегистрации;
Замер = ОценкаПроизводительности.НачатьЗамерДлительнойОперации(
"Документ.РаспределениеПрочихЗатрат.МодульМенеджера.СформироватьДокументы");
Параметры.Свойство("ПараметрыРасходов", ПараметрыРасходов);
Параметры.Свойство("МассивОрганизаций", МассивОрганизаций);
Параметры.Свойство("ПериодРегистрации", ПериодРегистрации);
РезультатыФормированияДокументов = Новый Соответствие();
ШаблонСообщения = НСтр("ru = '%6 (%7): не удалось создать документ распределения по %1 учету для статьи %2 с аналитикой %3 по причине: %4 %5.'", ОбщегоНазначения.КодОсновногоЯзыка());
НастройкиРаспределенияСтатьиРасходов =
ПолучитьНастройкиРаспределенияСтатейРасходов(ПараметрыРасходов, МассивОрганизаций, ПериодРегистрации);
Для Каждого НастройкаРаспределения Из НастройкиРаспределенияСтатьиРасходов Цикл
ДетализацияРезультатовФормирования = РезультатыФормированияДокументов.Получить(НастройкаРаспределения.Организация);
Если ДетализацияРезультатовФормирования = Неопределено Тогда
ДетализацияРезультатов = Новый Структура;
ДетализацияРезультатов.Вставить("СформированоДокументов", 0);
ДетализацияРезультатов.Вставить("ОбновленныеДанные", Новый Массив);
ДетализацияРезультатов.Вставить("ОписаниеОшибок", Новый Массив);
РезультатыФормированияДокументов.Вставить(НастройкаРаспределения.Организация,
ДетализацияРезультатов);
КонецЕсли;
Результат = СформироватьДокумент(НастройкаРаспределения);
МесяцНастройки = ТРег(Формат(НастройкаРаспределения.Дата, "ДФ='MMMM yyyy';"));
Если Результат.Свойство("ОписаниеОшибкиРегл") Тогда
ТекстСообщения = СтрШаблон(
ШаблонСообщения,
НСтр("ru = 'бухгалтерскому'", ОбщегоНазначения.КодОсновногоЯзыка()),
НастройкаРаспределения.СтатьяРасходов,
НастройкаРаспределения.АналитикаРасходов,
Символы.ПС,
Результат.ОписаниеОшибкиРегл,
НастройкаРаспределения.Организация,
МесяцНастройки);
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("СтатьяРасходов", НастройкаРаспределения.СтатьяРасходов);
ОписаниеОшибки.Вставить("ТекстОшибки", ТекстСообщения);
ДетализацияРезультатов.ОписаниеОшибок.Добавить(ОписаниеОшибки);
Иначе
ДетализацияРезультатов.СформированоДокументов = ДетализацияРезультатов.СформированоДокументов + 1;
КонецЕсли;
Если Результат.Свойство("ОписаниеОшибкиНал") Тогда
ТекстСообщения = СтрШаблон(
ШаблонСообщения,
НСтр("ru = 'налоговому'", ОбщегоНазначения.КодОсновногоЯзыка()),
НастройкаРаспределения.СтатьяРасходов,
НастройкаРаспределения.АналитикаРасходов,
Символы.ПС,
Результат.ОписаниеОшибкиНал,
НастройкаРаспределения.Организация,
МесяцНастройки);
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("СтатьяРасходов", НастройкаРаспределения.СтатьяРасходов);
ОписаниеОшибки.Вставить("ТекстОшибки", ТекстСообщения);
ДетализацияРезультатов.ОписаниеОшибок.Добавить(ОписаниеОшибки);
Иначе
ДетализацияРезультатов.СформированоДокументов = ДетализацияРезультатов.СформированоДокументов + 1;
КонецЕсли;
Если Результат.Свойство("ОписаниеОшибкиУпр") Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонСообщения,
НСтр("ru = 'управленческому'", ОбщегоНазначения.КодОсновногоЯзыка()),
НастройкаРаспределения.СтатьяРасходов,
НастройкаРаспределения.АналитикаРасходов,
Символы.ПС,
Результат.ОписаниеОшибкиУпр,
НастройкаРаспределения.Организация,
МесяцНастройки);
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("СтатьяРасходов", НастройкаРаспределения.СтатьяРасходов);
ОписаниеОшибки.Вставить("ТекстОшибки", ТекстСообщения);
ДетализацияРезультатов.ОписаниеОшибок.Добавить(ОписаниеОшибки);
Иначе
ДетализацияРезультатов.СформированоДокументов = ДетализацияРезультатов.СформированоДокументов + 1;
КонецЕсли;
Если Результат.Свойство("ОписаниеОшибкиНДД") Тогда
ТекстСообщения = СтрШаблон(
ШаблонСообщения,
НСтр("ru = 'НДД'", ОбщегоНазначения.КодОсновногоЯзыка()),
НастройкаРаспределения.СтатьяРасходов,
НастройкаРаспределения.АналитикаРасходов,
Символы.ПС,
Результат.ОписаниеОшибкиНДД,
НастройкаРаспределения.Организация,
МесяцНастройки);
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("СтатьяРасходов", НастройкаРаспределения.СтатьяРасходов);
ОписаниеОшибки.Вставить("ТекстОшибки", ТекстСообщения);
ДетализацияРезультатов.ОписаниеОшибок.Добавить(ОписаниеОшибки);
Иначе
ДетализацияРезультатов.СформированоДокументов = ДетализацияРезультатов.СформированоДокументов + 1;
КонецЕсли;
НовыеЗначения = Новый Структура("СтатьяРасходов, АналитикаРасходов, Организация, Подразделение, НаправлениеДеятельности, ИдСтроки");
ЗаполнитьЗначенияСвойств(НовыеЗначения, НастройкаРаспределения);
Для Каждого КлючИЗначение Из Результат Цикл
НовыеЗначения.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
ДетализацияРезультатов.ОбновленныеДанные.Добавить(НовыеЗначения);
КонецЦикла;
Если Не АдресХранилища = Неопределено Тогда
ПоместитьВоВременноеХранилище(РезультатыФормированияДокументов, АдресХранилища);
КонецЕсли;
СформированоДокументов = 0;
Для Каждого РезультатПоОрганизации Из РезультатыФормированияДокументов Цикл
СформированоДокументов = СформированоДокументов + РезультатПоОрганизации.Значение.СформированоДокументов;
КонецЦикла;
ОценкаПроизводительности.ЗакончитьЗамерДлительнойОперации(Замер, СформированоДокументов);
Возврат РезультатыФормированияДокументов;
КонецФункции
Функция ПодразделенияПоНаправлению(Подразделение, НаправлениеРаспределения) Экспорт
Если Не ЗначениеЗаполнено(НаправлениеРаспределения) Тогда
Возврат Новый Массив;
КонецЕсли;
Если НаправлениеРаспределения = Перечисления.НаправлениеРаспределенияПоПодразделениям.Текущее Тогда
МассивПодразделений = Новый Массив;
МассивПодразделений.Добавить(Подразделение);
Возврат МассивПодразделений;
КонецЕсли;
Если НаправлениеРаспределения = Перечисления.НаправлениеРаспределенияПоПодразделениям.Вышестоящее Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| СтруктураПредприятия.Родитель КАК Подразделение
|ИЗ
| Справочник.СтруктураПредприятия КАК СтруктураПредприятия
|ГДЕ
| СтруктураПредприятия.Ссылка = &Подразделение";
ИначеЕсли НаправлениеРаспределения = Перечисления.НаправлениеРаспределенияПоПодразделениям.Нижестоящие Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| СтруктураПредприятия.Ссылка КАК Подразделение
|ИЗ
| Справочник.СтруктураПредприятия КАК СтруктураПредприятия
|ГДЕ
| СтруктураПредприятия.Ссылка В ИЕРАРХИИ(&Подразделение)
| И СтруктураПредприятия.Ссылка <> &Подразделение";
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Подразделение", Подразделение);
МассивПодразделений = Новый Массив;
ПодходящиеПодразделения = Запрос.Выполнить().Выбрать();
Пока ПодходящиеПодразделения.Следующий() Цикл
МассивПодразделений.Добавить(ПодходящиеПодразделения.Подразделение);
КонецЦикла;
Возврат МассивПодразделений;
КонецФункции
Функция ПараметрыНастройкиСчетовУчета() Экспорт
ПараметрыНастройки = НастройкаСчетовУчетаСервер.ПараметрыНастройки();
ПараметрыНастройки.ДоступностьПоОперации = Истина;
ПараметрыНастройки.ПутьКДанным = "Объект.Списание";
ПараметрыНастройки.ТипСтатьи = "ТипСтатьи";
ПараметрыНастройки.ЭлементыФормы.Добавить("СписаниеПредставлениеОтраженияОперации");
Возврат ПараметрыНастройки;
КонецФункции
Функция ПараметрыВыбораСтатейИАналитик() Экспорт
ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
ПараметрыВыбора.ПутьКДанным = "Объект.Списание";
ПараметрыВыбора.Статья = "СтатьяРасходов";
ПараметрыВыбора.ТипСтатьи = "ТипСтатьи";
ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходов";
ПараметрыВыбора.АналитикаАктивовПассивов = "АналитикаАктивовПассивов";
ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
МассивВариантов = Новый Массив;
МассивВариантов.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
МассивВариантов.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаРасходыБудущихПериодов);
МассивВариантов.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров);
МассивВариантов.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПродаж);
МассивВариантов.Добавить(Перечисления.ВариантыРаспределенияРасходов.НаПрочиеАктивы);
МассивВариантов.Добавить(Перечисления.ВариантыРаспределенияРасходов.НеРаспределять);
ПараметрыВыбора.ОтборСтатейРасходов.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СписаниеТоваровПоТребованию;
ПараметрыВыбора.ОтборСтатейРасходов.ВариантРаспределенияРасходов = МассивВариантов;
ПараметрыВыбора.ВыборСтатьиАктивовПассивов = Истина;
ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СписаниеСтатьяРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("СписаниеАналитикаРасходов");
ПараметрыВыбора.ЭлементыФормы.АналитикаАктивовПассивов.Добавить("СписаниеАналитикаАктивовПассивов");
Возврат ПараметрыВыбора;
КонецФункции
Процедура УстановитьДоступностьВидовУчета(Форма) Экспорт
Элементы = Форма.Элементы;
Объект = Форма.Объект;
УчетПоНДД = РасчетСебестоимостиЛокализация.ПолучитьФункциональнуюОпциюУчетПоНДД();
Элементы.УправленческийУчет.Доступность = Истина;
Элементы.РегламентированныйУчет.Доступность = Истина;
Элементы.НалоговыйУчет.Доступность = Истина;
Элементы.НДД.Доступность = УчетПоНДД;
НастройкиРаспределения = ПолучитьНастройкиРаспределенияПоДокументу(Объект);
Если Объект.УправленческийУчет Тогда
Элементы.РегламентированныйУчет.Доступность = Объект.РегламентированныйУчет
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовУпр = НастройкиРаспределения.ВариантРаспределенияРасходовРегл;
Элементы.НалоговыйУчет.Доступность = Объект.НалоговыйУчет
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовУпр = НастройкиРаспределения.ВариантРаспределенияРасходовНУ;
Элементы.НДД.Доступность = УчетПоНДД И (Объект.НДД
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовНДД = НастройкиРаспределения.ВариантРаспределенияРасходовУпр);
ИначеЕсли Объект.РегламентированныйУчет Тогда
Элементы.УправленческийУчет.Доступность =
НастройкиРаспределения.ВариантРаспределенияРасходовУпр = НастройкиРаспределения.ВариантРаспределенияРасходовРегл;
Элементы.НалоговыйУчет.Доступность = Объект.НалоговыйУчет
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовРегл = НастройкиРаспределения.ВариантРаспределенияРасходовНУ;
Элементы.НДД.Доступность = УчетПоНДД И (Объект.НДД
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовНДД = НастройкиРаспределения.ВариантРаспределенияРасходовРегл);
ИначеЕсли Объект.НалоговыйУчет Тогда
Элементы.УправленческийУчет.Доступность =
НастройкиРаспределения.ВариантРаспределенияРасходовУпр = НастройкиРаспределения.ВариантРаспределенияРасходовНУ;
Элементы.РегламентированныйУчет.Доступность =
НастройкиРаспределения.ВариантРаспределенияРасходовРегл = НастройкиРаспределения.ВариантРаспределенияРасходовНУ;
Элементы.НДД.Доступность = УчетПоНДД И (Объект.НДД
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовНДД = НастройкиРаспределения.ВариантРаспределенияРасходовНУ);
ИначеЕсли УчетПоНДД И Объект.НДД Тогда
Элементы.УправленческийУчет.Доступность =
НастройкиРаспределения.ВариантРаспределенияРасходовУпр = НастройкиРаспределения.ВариантРаспределенияРасходовНДД;
Элементы.РегламентированныйУчет.Доступность =
НастройкиРаспределения.ВариантРаспределенияРасходовРегл = НастройкиРаспределения.ВариантРаспределенияРасходовНДД;
Элементы.НалоговыйУчет.Доступность =
НастройкиРаспределения.ВариантРаспределенияРасходовНУ = НастройкиРаспределения.ВариантРаспределенияРасходовНДД;
КонецЕсли;
КонецПроцедуры
Процедура СинхронизироватьВидыУчетаБУиНУ(Форма, ВидУчета) Экспорт
Если ВидУчета = "УправленческийУчет" Тогда
Возврат;
КонецЕсли;
Объект = Форма.Объект;
УстановитьПризнакиБУиНУ(Объект, ВидУчета);
КонецПроцедуры
#Область СтандартныеПодсистемы
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
РаспределениеПрочихЗатратЛокализация.ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры);
КонецПроцедуры
Функция ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании) Экспорт
Если ПравоДоступа("Добавление", Метаданные.Документы.РаспределениеПрочихЗатрат) Тогда
КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.РаспределениеПрочихЗатрат.ПолноеИмя();
КомандаСоздатьНаОсновании.Представление = ОбщегоНазначенияУТ.ПредставлениеОбъекта(Метаданные.Документы.РаспределениеПрочихЗатрат);
КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
КомандаСоздатьНаОсновании.ФункциональныеОпции = "ИспользоватьПроизводство,ИспользоватьУчетПрочихДоходовРасходов";
Возврат КомандаСоздатьНаОсновании;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Отчеты.БазаРаспределенияПроизводственныхРасходов.ДобавитьКомандуОтчета(КомандыОтчетов);
РаспределениеПрочихЗатратЛокализация.ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры);
КонецПроцедуры
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
РаспределениеПрочихЗатратЛокализация.ДобавитьКомандыПечати(КомандыПечати);
КонецПроцедуры
#КонецОбласти
#Область РегламентированныйУчет
Функция ТекстОтраженияВРеглУчете() Экспорт
Возврат РаспределениеПрочихЗатратЛокализация.ТекстОтраженияВРеглУчете();
КонецФункции
Функция ТекстЗапросаВТОтраженияВРеглУчете() Экспорт
Возврат РаспределениеПрочихЗатратЛокализация.ТекстЗапросаВТОтраженияВРеглУчете();
КонецФункции
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Организация)
| И ЗначениеРазрешено(Подразделение)";
КонецПроцедуры
#КонецОбласти
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецЕсли
#Область ОбработчикиСобытий
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если Не ВидФормы = "ФормаОбъекта" Тогда
Возврат;
КонецЕсли;
НаФР = ПредопределенноеЗначение("Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат");
НаПартии = ПредопределенноеЗначение("Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства");
НаОВЗ = ПредопределенноеЗначение("Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаОВЗ");
НаПроизводство = ПредопределенноеЗначение("Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаСебестоимостьПроизводства");
НаСебестоимость = ПредопределенноеЗначение("Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаСебестоимостьТоваров");
ФормыПоНазначению = Новый Соответствие;
ФормыПоНазначению.Вставить(НаФР, "ФормаНастроекНаФР");
ФормыПоНазначению.Вставить(НаПартии, "ФормаНастроекНаПартии");
ФормыПоНазначению.Вставить(НаОВЗ, "ФормаНастроекНаОВЗ");
ФормыПоНазначению.Вставить(НаПроизводство, "ФормаНастроекНаПроизводствоПрямые");
ФормыПоНазначению.Вставить(НаСебестоимость, "ФормаНастроекНаСебестоимостьТоваров");
Если Параметры.Свойство("Ключ") Тогда
ВыбраннаяФорма = ФормыПоНазначению.Получить(
ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(
Параметры.Ключ,
"НазначениеНастройкиРаспределения"));
ИначеЕсли Параметры.Свойство("Основание") Тогда
НазначенияПоВарианту = Новый Соответствие;
НазначенияПоВарианту.Вставить(
ПредопределенноеЗначение("Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности"),
НаФР);
НазначенияПоВарианту.Вставить(
ПредопределенноеЗначение("Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты"),
НаПартии);
НазначенияПоВарианту.Вставить(
ПредопределенноеЗначение("Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат"),
НаОВЗ);
НазначенияПоВарианту.Вставить(
ПредопределенноеЗначение("Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства"),
НаПроизводство);
НазначенияПоВарианту.Вставить(
ПредопределенноеЗначение("Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров"),
НаСебестоимость);
Если Параметры.Основание.НалоговыйУчет Тогда
ВыбраннаяФорма = ФормыПоНазначению.Получить(НазначенияПоВарианту.Получить(Параметры.Основание.ВариантРаспределенияНал));
КонецЕсли;
Если Параметры.Основание.УправленческийУчет Тогда
ВыбраннаяФорма = ФормыПоНазначению.Получить(НазначенияПоВарианту.Получить(Параметры.Основание.ВариантРаспределенияУпр));
КонецЕсли;
Если Параметры.Основание.РегламентированныйУчет Тогда
ВыбраннаяФорма = ФормыПоНазначению.Получить(НазначенияПоВарианту.Получить(Параметры.Основание.ВариантРаспределенияРегл));
КонецЕсли;
Если Параметры.Основание.НДД Тогда
ВыбраннаяФорма = ФормыПоНазначению.Получить(НазначенияПоВарианту.Получить(Параметры.Основание.ВариантРаспределенияНДД));
КонецЕсли;
ИначеЕсли Параметры.Свойство("ЗначенияЗаполнения")
И Параметры.ЗначенияЗаполнения.Свойство("НазначениеНастройкиРаспределения") Тогда
ВыбраннаяФорма = ФормыПоНазначению.Получить(Параметры.ЗначенияЗаполнения.НазначениеНастройкиРаспределения);
КонецЕсли;
Если ЗначениеЗаполнено(ВыбраннаяФорма) Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
#Область СлужебныйПрограммныйИнтерфейс
#Область ОбработчикиЭтаповЗакрытияМесяца
#Область ОформлениеДокументовРаспределенияРасходов
Процедура ДобавитьЭтап_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ТаблицаЭтапов, ТекущийРодитель) Экспорт
НоваяСтрока = ЗакрытиеМесяцаСервер.ДобавитьЭтапВТаблицу(ТаблицаЭтапов, ТекущийРодитель,
Справочники.ОперацииЗакрытияМесяца.ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности);
НоваяСтрока.МультиязычноеНаименование = "ru = 'Оформление документов распределения расходов'";
НоваяСтрока.ТекстВыполнить = НСтр("ru = 'Оформить'");
НоваяСтрока.ДействиеИспользование = ЗакрытиеМесяцаСервер.ОписаниеДействия_СервернаяПроцедура(
"Документы.РаспределениеПрочихЗатрат.Использование_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности");
НоваяСтрока.ДействиеВыполнить = ЗакрытиеМесяцаСервер.ОписаниеДействия_ВыполнитьРасчет(
"Документы.РаспределениеПрочихЗатрат.Выполнить_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности");
НоваяСтрока.ДействиеПодробнее = ЗакрытиеМесяцаСервер.ОписаниеДействия_ОткрытьФорму(
Метаданные.Документы.РаспределениеПрочихЗатрат.Формы.ФормаРабочееМесто.ПолноеИмя());
НоваяСтрока.ДействиеПодробнее.ПараметрыФормы.Вставить("Подразделение", Справочники.СтруктураПредприятия.ПустаяСсылка());
НоваяСтрока.ДействиеПодробнее.ПараметрыФормы.Вставить("Состояние", Перечисления.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент);
КонецПроцедуры
Процедура Использование_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ПараметрыОбработчика) Экспорт
Запрос = Новый Запрос;
ЗакрытиеМесяцаСервер.ИнициализироватьЗапрос(Запрос, ПараметрыОбработчика);
ПараметрыЗапроса = ОписаниеПараметровЗапросаПолученияДанныхДляРаспределения();
ПараметрыЗапроса.Состояние = Перечисления.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент;
ПараметрыЗапроса.ВариантРаспределения =
ОбщегоНазначенияУТКлиентСервер.Массив(Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
Документы.РаспределениеПрочихЗатрат.ИнициализироватьЗапросПолученияДанныхДляРаспределения(Запрос, ПараметрыЗапроса);
Запрос.Текст = ТекстЗапросаДанныеДляРаспределения(, Истина);
Запрос.Выполнить();
РазмерыВременныхТаблиц = ЗакрытиеМесяцаСервер.РазмерыВременныхТаблиц(Запрос, ПараметрыОбработчика);
Если ПараметрыОбработчика.ДанныеЭтапа.Состояние = Перечисления.СостоянияОперацийЗакрытияМесяца.НеТребуется Тогда
Возврат;
КонецЕсли;
Если РазмерыВременныхТаблиц.ВТДанныеДляРаспределения = 0 Тогда
ЗакрытиеМесяцаСервер.УстановитьСостояниеНеТребуется(
ПараметрыОбработчика,
НСтр("ru = 'Нет данных для распределения расходов.'", ОбщегоНазначения.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
Если РазмерыВременныхТаблиц.СостояниеРаспределенияРасходов = 0 Тогда
ЗакрытиеМесяцаСервер.УстановитьСостояниеНеТребуется(
ПараметрыОбработчика,
НСтр("ru = 'По всем расходам заданы настройки распределения.'", ОбщегоНазначения.КодОсновногоЯзыка()));
Иначе
ЗакрытиеМесяцаСервер.УстановитьСостояниеНеВыполнен(
ПараметрыОбработчика,
НСтр("ru = 'Требуется оформление документов распределения расходов.'"));
КонецЕсли;
КонецПроцедуры
Процедура Выполнить_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ПараметрыОбработчика) Экспорт
ПараметрыРасчета = ПараметрыОбработчика.ПараметрыРасчета;
СтатьиКРаспределению = СтатьиКРаспределению(
ПараметрыРасчета.ПериодРегистрации,
ПараметрыРасчета.МассивОрганизаций,
Новый Массив,
Перечисления.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент,
Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
КоличествоСтрок = СтатьиКРаспределению.Количество();
Если КоличествоСтрок = 0 Тогда
Возврат;
КонецЕсли;
СтатьиКРаспределению.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
СтатьиКРаспределению.Колонки.Добавить("ИДСтроки", Новый ОписаниеТипов("Число"));
СтатьиКРаспределению.ЗаполнитьЗначения(КонецМесяца(ПараметрыРасчета.ПериодРегистрации), "Дата");
КоличествоФЗ = РасчетСебестоимостиПовтИсп.ЗначенияТехнологическихПараметров(Справочники.ОперацииЗакрытияМесяца.ПустаяСсылка()).МаксимальноеКоличествоФЗФормированияДокументов;
СтрокВФЗ = Цел(КоличествоСтрок / ?(КоличествоФЗ = 0, 1, КоличествоФЗ));
Если КоличествоФЗ < 2 ИЛИ СтрокВФЗ < 1 Тогда
РаспределениеПрочихЗатратЛокализация.ФормированиеДокументовРаспределениеПрочихЗатрат(ПараметрыОбработчика, СтатьиКРаспределению);
Возврат;
КонецЕсли;
ОбработаноСтрок = 0;
МассивЗаданий = Новый Массив;
ТаблицаСтатей = Неопределено;
Пока ОбработаноСтрок <= КоличествоСтрок Цикл
Если ОбработаноСтрок = 0 ИЛИ ОбработаноСтрок = КоличествоСтрок
ИЛИ (Цел(ОбработаноСтрок/СтрокВФЗ) = ОбработаноСтрок/СтрокВФЗ И МассивЗаданий.Количество() < КоличествоФЗ-1) Тогда
Если ОбработаноСтрок > 0 Тогда
МассивПараметров = Новый Массив;
МассивПараметров.Добавить(ПараметрыОбработчика);
МассивПараметров.Добавить(ТаблицаСтатей);
КлючЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'ФЗ №%1 - %2 (%3)'", ОбщегоНазначения.КодОсновногоЯзыка()),
СокрЛП(МассивЗаданий.Количество() + 1),
СокрЛП(ПараметрыОбработчика.ДанныеЭтапа.Код),
СокрЛП(ПараметрыОбработчика.ИдентификаторРасчета));
Задание = ЗакрытиеМесяцаСервер.ЗапуститьПодчиненноеФоновоеЗаданиеЭтапаРасчета(
ПараметрыОбработчика.ИдентификаторРасчета,
"РаспределениеПрочихЗатратЛокализация.ФормированиеДокументовРаспределениеПрочихЗатрат",
МассивПараметров,
КлючЗадания,
НСтр("ru='Пакетное формирование документов'"));
МассивЗаданий.Добавить(Задание);
КонецЕсли;
Если ОбработаноСтрок = КоличествоСтрок Тогда
Прервать;
КонецЕсли;
ТаблицаСтатей = СтатьиКРаспределению.СкопироватьКолонки();
КонецЕсли;
ЗаполнитьЗначенияСвойств(ТаблицаСтатей.Добавить(), СтатьиКРаспределению[ОбработаноСтрок]);
ОбработаноСтрок = ОбработаноСтрок + 1;
КонецЦикла;
ЗаданияЗавершены = Ложь;;
Пока НЕ ЗаданияЗавершены Цикл
ВыполненныеЗадания = ФоновыеЗадания.ОжидатьЗавершенияВыполнения(МассивЗаданий);
МассивЗаданий = Новый Массив;
Для Каждого Задание Из ВыполненныеЗадания Цикл
Если Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
МассивЗаданий.Добавить(Задание);
ИначеЕсли Задание.Состояние <> СостояниеФоновогоЗадания.Завершено Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Фоновое задание формирования документов %1
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
?(Задание.Состояние = СостояниеФоновогоЗадания.Отменено,
НСтр("ru = 'отменено'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'завершено аварийно'", ОбщегоНазначения.КодОсновногоЯзыка())),
?(Задание.ИнформацияОбОшибке = Неопределено,
НСтр("ru = '<Нет описания ошибки>'", ОбщегоНазначения.КодОсновногоЯзыка()),
ПодробноеПредставлениеОшибки(Задание.ИнформацияОбОшибке)));
ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
ПараметрыОбработчика,
ТекстОшибки);
КонецЕсли;
КонецЦикла;
ЗаданияЗавершены = (МассивЗаданий.Количество() = 0);
КонецЦикла;
КонецПроцедуры
Процедура ОписаниеПроверок_ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ТаблицаПроверок) Экспорт
ОписаниеПроверки = ЗакрытиеМесяцаСервер.ДобавитьОписаниеНовойПроверки(ТаблицаПроверок,
"НеВыполненаОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности",
Справочники.ОперацииЗакрытияМесяца.ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности,
Перечисления.МоментЗапускаПроверкиОперацииЗакрытияМесяца.ПослеРасчета,
"Документы.РаспределениеПрочихЗатрат.ПроверкаНеобходимостиОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности");
ЗакрытиеМесяцаСервер.ЗаполнитьПредставлениеНовойПроверки(ОписаниеПроверки,
НСтр("ru = 'Есть неоформленные документы распределения расходов'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'Все производственные расходы должны быть распределены по направлениям деятельности.'", ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПроцедуры
Процедура ПроверкаНеобходимостиОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности(ПараметрыПроверки) Экспорт
Если НЕ ЗакрытиеМесяцаСервер.ПроверкаВыполняетсяМеханизмомЗакрытияМесяца(ПараметрыПроверки) Тогда
Возврат;
КонецЕсли;
СписокПолей = Новый СписокЗначений;
СписокПолей.Добавить("Организация", НСтр("ru = 'Организация'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("Подразделение", НСтр("ru = 'Подразделение'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("НаправлениеДеятельности", НСтр("ru = 'Направление деятельности'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("СтатьяРасходов", НСтр("ru = 'Статья расходов'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("АналитикаРасходов", НСтр("ru = 'Аналитика расходов'", ОбщегоНазначения.КодОсновногоЯзыка()));
ПараметрыРегистрации = ЗакрытиеМесяцаСервер.ИнициализироватьПараметрыРегистрацииПроблемПроверки(
"СостояниеРаспределенияРасходов",
НСтр("ru = 'Есть неоформленные документы распределения расходов по организации ""%1"" на конец периода %2'", ОбщегоНазначения.КодОсновногоЯзыка()),
СписокПолей);
ЗакрытиеМесяцаСервер.ЗарегистрироватьПроблемыВыполненияПроверки(
ПараметрыПроверки,
ПараметрыРегистрации);
КонецПроцедуры
#КонецОбласти
#Область РаспределениеРасходовПоНаправлениямДеятельности
Процедура ДобавитьЭтап_РаспределениеРасходовПоНаправлениямДеятельности(ТаблицаЭтапов,ТекущийРодитель) Экспорт
НоваяСтрока = ЗакрытиеМесяцаСервер.ДобавитьЭтапВТаблицу(ТаблицаЭтапов, ТекущийРодитель,
Справочники.ОперацииЗакрытияМесяца.РаспределениеРасходовПоНаправлениямДеятельности);
НоваяСтрока.МультиязычноеНаименование = "ru = 'Распределение расходов по направлениям деятельности'";
НоваяСтрока.ПредшествующиеЭтапы.Добавить(Справочники.ОперацииЗакрытияМесяца.РасчетПартийИСебестоимости);
НоваяСтрока.ПредшествующиеЭтапы.Добавить(Справочники.ОперацииЗакрытияМесяца.РаспределениеНДС);
НоваяСтрока.ПредшествующиеЭтапы.Добавить(Справочники.ОперацииЗакрытияМесяца.ОформлениеДокументовРаспределенияРасходовПоНаправлениямДеятельности);
НоваяСтрока.ТекстВыполнить = НСтр("ru = 'Распределить'");
НоваяСтрока.ДействиеИспользование = ЗакрытиеМесяцаСервер.ОписаниеДействия_СервернаяПроцедура(
"Документы.РаспределениеПрочихЗатрат.Использование_РаспределениеРасходовПоНаправлениямДеятельности");
НоваяСтрока.ДействиеВыполнить = ЗакрытиеМесяцаСервер.ОписаниеДействия_ВыполнитьРасчет(
"Документы.РаспределениеПрочихЗатрат.Выполнить_РаспределениеРасходовПоНаправлениямДеятельности");
НоваяСтрока.ДействиеПодробнее = ЗакрытиеМесяцаСервер.ОписаниеДействия_ОткрытьФорму(
Метаданные.Документы.РаспределениеПрочихЗатрат.Формы.ФормаРабочееМесто.ПолноеИмя());
КонецПроцедуры
Процедура Использование_РаспределениеРасходовПоНаправлениямДеятельности(ПараметрыОбработчика) Экспорт
Если ПараметрыОбработчика.ДанныеЭтапа.Состояние = Перечисления.СостоянияОперацийЗакрытияМесяца.НеТребуется Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
ЗакрытиеМесяцаСервер.ИнициализироватьЗапрос(Запрос, ПараметрыОбработчика);
ПараметрыЗапроса = ОписаниеПараметровЗапросаПолученияДанныхДляРаспределения();
ПараметрыЗапроса.ВариантРаспределения =
ОбщегоНазначенияУТКлиентСервер.Массив(Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
ИнициализироватьЗапросПолученияДанныхДляРаспределения(Запрос, ПараметрыЗапроса);
Запрос.Текст = ТекстЗапросаДанныеДляРаспределения();
Результат = Запрос.Выполнить();
РазмерыВременныхТаблиц = ЗакрытиеМесяцаСервер.РазмерыВременныхТаблиц(Запрос, ПараметрыОбработчика);
Если РазмерыВременныхТаблиц.ВТДанныеДляРаспределения = 0 Тогда
ЗакрытиеМесяцаСервер.УстановитьСостояниеНеТребуется(
ПараметрыОбработчика,
НСтр("ru = 'Нет данных для распределения расходов.'", ОбщегоНазначения.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ
| *
|ПОМЕСТИТЬ ВТОстаткиПрочихРасходовПредварительная
|ИЗ
| ВТДанныеДляРаспределения КАК Т
|ГДЕ
| НЕ Т.РаспределеноВУУ
| И Т.ДокументУпр.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| ИЛИ НЕ Т.РаспределеноВБУ
| И Т.ДокументРегл.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| И НЕ Т.СостояниеБУ В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| )
| ИЛИ НЕ Т.РаспределеноВНУ
| И Т.ДокументНал.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| И НЕ Т.СостояниеНУ В (
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.Распределено),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено),
| ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеТребуется)
| )
| ИЛИ НЕ Т.РаспределеноВНУ
| И Т.ДокументРегл.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И Т.СтатьяРасходов.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И Т.СостояниеНУ <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено)
| ИЛИ НЕ Т.РаспределеноВНУ
| И Т.ДокументРегл.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И Т.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Т.АналитикаРасходов.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И Т.СостояниеНУ <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаспределенияРасходов.НеРаспределено)
| ИЛИ НЕ Т.РаспределеноВБУ
| И НЕ Т.ПостояннаяРазница = 0
| И Т.СтатьяРасходов.ВидРасходов В (&ВидыРасходовНормируемые)
| И Т.ДокументРегл.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
|;
|ВЫБРАТЬ
| *
|ПОМЕСТИТЬ ВТОстаткиПрочихРасходовОВЗ
|ИЗ
| ВТОстаткиПрочихРасходовПредварительная КАК Т
|ГДЕ
| Т.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
|;
|ВЫБРАТЬ
| *
|ПОМЕСТИТЬ ВТОстаткиПрочихРасходов
|ИЗ
| ВТОстаткиПрочихРасходовПредварительная КАК Т
|ГДЕ
| Т.СтатьяРасходов <> ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
|;
|ВЫБРАТЬ ПЕРВЫЕ 1
| *
|ИЗ
| ВТОстаткиПрочихРасходовПредварительная";
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
ЗакрытиеМесяцаСервер.УстановитьСостояниеНеВыполнен(
ПараметрыОбработчика,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Требуется пересчет за период %1.'", ОбщегоНазначения.КодОсновногоЯзыка()),
РасчетСебестоимостиПротоколРасчета.ПредставлениеПериодаРасчета(ПараметрыОбработчика.ПараметрыРасчета.ПериодРегистрации)));
КонецЕсли;
КонецПроцедуры
Процедура Выполнить_РаспределениеРасходовПоНаправлениямДеятельности(ПараметрыОбработчика) Экспорт
ПараметрыРасчета = ПараметрыОбработчика.ПараметрыРасчета;
НачалоПериода = НачалоМесяца(ПараметрыРасчета.ПериодРегистрации);
КонецПериода = КонецМесяца(ПараметрыРасчета.ПериодРегистрации);
НомерЗаданияДоРасчета = ЗакрытиеМесяцаСервер.УвеличитьНомерЗадания();
Попытка
РассчитанныеОрганизации = РаспределитьРасходыНаФинансовыйРезультат(ПараметрыОбработчика);
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Распределение расходов по направлениям деятельности за период %1 завершилось с ошибкой:
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
РасчетСебестоимостиПротоколРасчета.ПредставлениеПериодаРасчета(ПараметрыОбработчика.ПараметрыРасчета.ПериодРегистрации),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
ПараметрыОбработчика,
ТекстОшибки);
КонецПопытки;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("ГраницаПериода", Новый Граница(КонецПериода, ВидГраницы.Включая));
Запрос.УстановитьПараметр("Организации", РассчитанныеОрганизации);
Запрос.Текст =
"ВЫБРАТЬ
| Т.Организация КАК Организация,
| Т.Подразделение КАК Подразделение,
| Т.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Т.СтатьяРасходов КАК СтатьяРасходов,
| Т.АналитикаРасходов КАК АналитикаРасходов
|ПОМЕСТИТЬ СписаниеНУ
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Т
|ГДЕ
| Т.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Т.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ)
| И Т.Организация В(&Организации)
|;
|
|
|ВЫБРАТЬ
| Т.Организация КАК Организация,
| МАКСИМУМ(Т.БылоСписаниеНУ) КАК БылоСписаниеНУ
|ИЗ
| (ВЫБРАТЬ
| СписаниеНУ.Организация КАК Организация,
| ИСТИНА КАК БылоСписаниеНУ
| ИЗ
| СписаниеНУ КАК СписаниеНУ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПрочиеРасходы.Остатки(
| &ГраницаПериода,
| (Организация, Подразделение, НаправлениеДеятельности, СтатьяРасходов, АналитикаРасходов) В
| (ВЫБРАТЬ
| Аналитики.Организация,
| Аналитики.Подразделение,
| Аналитики.НаправлениеДеятельности,
| Аналитики.СтатьяРасходов,
| Аналитики.АналитикаРасходов
| ИЗ
| СписаниеНУ КАК Аналитики)) КАК Остатки
| ПО СписаниеНУ.Организация = Остатки.Организация
| И СписаниеНУ.Подразделение = Остатки.Подразделение
| И СписаниеНУ.НаправлениеДеятельности = Остатки.НаправлениеДеятельности
| И СписаниеНУ.СтатьяРасходов = Остатки.СтатьяРасходов
| И СписаниеНУ.АналитикаРасходов = Остатки.АналитикаРасходов
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.Организация,
| ЛОЖЬ
| ИЗ
| РегистрСведений.ЗаданияКЗакрытиюМесяца КАК Т
| ЛЕВОЕ СОЕДИНЕНИЕ СписаниеНУ КАК СписаниеНУ
| ПО Т.Организация = СписаниеНУ.Организация
| ГДЕ
| Т.Месяц = &НачалоПериода
| И Т.Организация В(&Организации)
| И Т.Операция = ЗНАЧЕНИЕ(Справочник.ОперацииЗакрытияМесяца.РаспределениеРасходовПоНаправлениямДеятельности)
| И СписаниеНУ.Организация ЕСТЬ NULL) КАК Т
|
|СГРУППИРОВАТЬ ПО
| Т.Организация";
ДанныеПоСписаниюНУ = Запрос.Выполнить().Выгрузить();
Если ДанныеПоСписаниюНУ.Количество() > 0 Тогда
НачатьТранзакцию();
Попытка
ЗакрытиеМесяцаСервер.ЗаблокироватьРегистрЗаданий(
НомерЗаданияДоРасчета,
ДанныеПоСписаниюНУ.ВыгрузитьКолонку("Организация"),
ПараметрыОбработчика.ДанныеЭтапа.Код);
Для Каждого Данные Из ДанныеПоСписаниюНУ Цикл
НаборЗаписей = РегистрыСведений.ЗаданияКЗакрытиюМесяца.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Месяц.Установить(НачалоПериода);
НаборЗаписей.Отбор.Организация.Установить(Данные.Организация);
НаборЗаписей.Отбор.Операция.Установить(ПараметрыОбработчика.ДанныеЭтапа.Код);
НаборЗаписей.Записать();
Если Данные.БылоСписаниеНУ Тогда
РегистрыСведений.ЗаданияКЗакрытиюМесяца.СоздатьЗаписьРегистра(
КонецПериода + 1,
,
Данные.Организация,
ПараметрыОбработчика.ДанныеЭтапа.Код);
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='При выполнении расчета за период %1 произошла ошибка:
|%2'"),
РасчетСебестоимостиПротоколРасчета.ПредставлениеПериодаРасчета(ПараметрыРасчета.ПериодРегистрации),
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗакрытиеМесяцаСервер.ЗафиксироватьНаличиеПроблемыПриВыполненииРасчета(
ПараметрыОбработчика,
ТекстОшибки,
ДанныеПоСписаниюНУ.ВыгрузитьКолонку("Организация"),
ПараметрыРасчета.ПериодРегистрации);
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Процедура ОписаниеПроверок_РаспределениеРасходовПоНаправлениямДеятельности(ТаблицаПроверок) Экспорт
ОписаниеПроверки = ЗакрытиеМесяцаСервер.ДобавитьОписаниеНовойПроверки(ТаблицаПроверок,
"ПроверкаОстатковПрочихРасходов",
Справочники.ОперацииЗакрытияМесяца.РаспределениеРасходовПоНаправлениямДеятельности,
Перечисления.МоментЗапускаПроверкиОперацииЗакрытияМесяца.ПослеРасчета,
"Документы.РаспределениеПрочихЗатрат.ПроверкаОстатковПрочихРасходов");
ЗакрытиеМесяцаСервер.ЗаполнитьПредставлениеНовойПроверки(ОписаниеПроверки,
НСтр("ru = 'Не распределены прочие расходы на финансовый результат'", ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'Все прочие расходы должны быть распределены на финансовый результат.'", ОбщегоНазначения.КодОсновногоЯзыка()));
КонецПроцедуры
Процедура ПроверкаОстатковПрочихРасходов(ПараметрыПроверки) Экспорт
Если НЕ ЗакрытиеМесяцаСервер.ПроверкаВыполняетсяМеханизмомЗакрытияМесяца(ПараметрыПроверки) Тогда
Возврат;
КонецЕсли;
СписокПолей = Новый СписокЗначений;
СписокПолей.Добавить("Организация", НСтр("ru = 'Организация'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("Подразделение", НСтр("ru = 'Подразделение'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("НаправлениеДеятельности", НСтр("ru = 'Направление деятельности'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("СтатьяРасходов", НСтр("ru = 'Статья расходов'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("АналитикаРасходов", НСтр("ru = 'Аналитика расходов'", ОбщегоНазначения.КодОсновногоЯзыка()));
ПараметрыРегистрации = ЗакрытиеМесяцаСервер.ИнициализироватьПараметрыРегистрацииПроблемПроверки(
"ВТОстаткиПрочихРасходов",
НСтр("ru = 'По организации ""%1"" на конец периода %2 есть остатки в регистре прочих расходов по статьям.'", ОбщегоНазначения.КодОсновногоЯзыка()),
СписокПолей,
,
Метаданные.РегистрыНакопления.ПрочиеРасходы.ПолноеИмя());
ЗакрытиеМесяцаСервер.ЗарегистрироватьПроблемыВыполненияПроверки(
ПараметрыПроверки,
ПараметрыРегистрации);
СписокПолей = Новый СписокЗначений;
СписокПолей.Добавить("Организация", НСтр("ru = 'Организация'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("Подразделение", НСтр("ru = 'Подразделение'", ОбщегоНазначения.КодОсновногоЯзыка()));
СписокПолей.Добавить("АналитикаРасходов", НСтр("ru = 'Аналитика расходов'", ОбщегоНазначения.КодОсновногоЯзыка()));
ПараметрыРегистрации = ЗакрытиеМесяцаСервер.ИнициализироватьПараметрыРегистрацииПроблемПроверки(
"ВТОстаткиПрочихРасходовОВЗ",
НСтр("ru = 'По организации ""%1"" на конец периода %2 есть остатки в регистре прочих расходов по ОВЗ.'", ОбщегоНазначения.КодОсновногоЯзыка()),
СписокПолей,
,
Метаданные.РегистрыНакопления.ПрочиеРасходы.ПолноеИмя());
ЗакрытиеМесяцаСервер.ЗарегистрироватьПроблемыВыполненияПроверки(
ПараметрыПроверки,
ПараметрыРегистрации);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
Процедура РаспределениеРасходовНаФинансовыйРезультатДополнитьПараметрамиПоУмолчанию(Параметры) Экспорт
Параметры.Вставить("ГраницаПериода", Новый Граница(Параметры.КонецПериода, ВидГраницы.Включая));
Если ТипЗнч(Параметры.МассивОрганизаций) = Тип("Массив") Тогда
Параметры.Вставить("ПоВсемОрганизациям", Параметры.МассивОрганизаций.Количество() = 0);
ИначеЕсли ТипЗнч(Параметры.МассивОрганизаций) = Тип("СправочникСсылка.Организации") Тогда
Параметры.Вставить("МассивОрганизаций", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметры.МассивОрганизаций));
Параметры.Вставить("ПоВсемОрганизациям", Ложь);
Иначе
Параметры.Вставить("ПоВсемОрганизациям", Истина);
КонецЕсли;
Параметры.Вставить("ФормироватьФинансовыйРезультат", ПолучитьФункциональнуюОпцию("ФормироватьФинансовыйРезультат"));
Параметры.Вставить("ПредварительныйРасчет", Не Параметры.ДокументРаспределения = Неопределено);
Параметры.Вставить("ВидыРасходовНормируемые", Перечисления.ВидыРасходовНУ.НормируемыеРасходы());
КонецПроцедуры
#КонецОбласти
#Область Проведение
Процедура ЗаполнитьПараметрыИнициализации(Запрос, ДокументСсылка)
Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДанныеДокумента.Ссылка КАК Ссылка,
| ДанныеДокумента.ПометкаУдаления КАК ПометкаУдаления,
| ДанныеДокумента.Номер КАК Номер,
| ДанныеДокумента.Дата КАК Период,
| ДанныеДокумента.Проведен КАК Проведен,
| ДанныеДокумента.Организация КАК Организация,
| ДанныеДокумента.Подразделение КАК Подразделение,
| ДанныеДокумента.Ответственный КАК Ответственный,
| ДанныеДокумента.Комментарий КАК Комментарий,
| ДанныеДокумента.НаправлениеДеятельности КАК НаправлениеДеятельности
|ИЗ
| Документ.РаспределениеПрочихЗатрат КАК ДанныеДокумента
|ГДЕ
| ДанныеДокумента.Ссылка = &Ссылка";
Результат = Запрос.Выполнить();
Реквизиты = Результат.Выбрать();
Реквизиты.Следующий();
Для Каждого Колонка Из Результат.Колонки Цикл
Запрос.УстановитьПараметр(Колонка.Имя, Реквизиты[Колонка.Имя]);
КонецЦикла;
Запрос.УстановитьПараметр("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Тип("ДокументСсылка.РаспределениеПрочихЗатрат")));
Запрос.УстановитьПараметр("НомерНаПечать", ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Реквизиты.Номер));
КонецПроцедуры
Функция ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, Регистры)
ИмяРегистра = "РеестрДокументов";
Если НЕ ПроведениеДокументов.ТребуетсяТаблицаДляДвижений(ИмяРегистра, Регистры) Тогда
Возврат "";
КонецЕсли;
ТекстЗапроса =
"ВЫБРАТЬ
| &Ссылка КАК Ссылка,
| НЕОПРЕДЕЛЕНО КАК РазделительЗаписи,
| &Период КАК ДатаДокументаИБ,
| &Номер КАК НомерДокументаИБ,
| &ИдентификаторМетаданных КАК ТипСсылки,
| &Организация КАК Организация,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеРасходовНаПартииПроизводства) КАК ХозяйственнаяОперация,
| &НаправлениеДеятельности КАК НаправлениеДеятельности,
| &Подразделение КАК Подразделение,
| &Ответственный КАК Ответственный,
| &Комментарий КАК Комментарий,
| 0 КАК Сумма,
| &Проведен КАК Проведен,
| &ПометкаУдаления КАК ПометкаУдаления,
| ЛОЖЬ КАК ДополнительнаяЗапись,
| """" КАК Дополнительно,
| &Период КАК ДатаПервичногоДокумента,
| &НомерНаПечать КАК НомерПервичногоДокумента,
| &Подразделение КАК МестоХранения,
| &Период КАК ДатаОтраженияВУчете,
| НЕОПРЕДЕЛЕНО КАК Приоритет
|";
ТекстыЗапроса.Добавить(ТекстЗапроса, ИмяРегистра);
Возврат ТекстЗапроса;
КонецФункции
Функция АдаптированныйТекстЗапросаДвиженийПоРегистру(ИмяРегистра) Экспорт
Запрос = Новый Запрос;
ТекстыЗапроса = Новый СписокЗначений;
ПолноеИмяДокумента = "Документ.РаспределениеПрочихЗатрат";
СинонимТаблицыДокумента = "";
ВЗапросеЕстьИсточник = Истина;
ПереопределениеРасчетаПараметров = Новый Структура;
ПереопределениеРасчетаПараметров.Вставить("НомерНаПечать", """""");
ЗначенияПараметров = Новый Структура;
ЗначенияПараметров.Вставить("ИдентификаторМетаданных",
ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмяДокумента));
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ТекстЗапросаТаблицаРеестрДокументов(Запрос, ТекстыЗапроса, ИмяРегистра);
ВЗапросеЕстьИсточник = Ложь;
Иначе
ТекстИсключения = НСтр("ru = 'В документе %ПолноеИмяДокумента% не реализована адаптация текста запроса формирования движений по регистру %ИмяРегистра%.'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ПолноеИмяДокумента%", ПолноеИмяДокумента);
ТекстИсключения = СтрЗаменить(ТекстИсключения, "%ИмяРегистра%", ИмяРегистра);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
Если ИмяРегистра = "РеестрДокументов" Тогда
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросПроведенияПоНезависимомуРегистру(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ВЗапросеЕстьИсточник,
ПереопределениеРасчетаПараметров);
Иначе
ТекстЗапроса = ОбновлениеИнформационнойБазыУТ.АдаптироватьЗапросМеханизмаПроведения(
ТекстЗапроса,
ПолноеИмяДокумента,
СинонимТаблицыДокумента,
ПереопределениеРасчетаПараметров);
КонецЕсли;
Результат = ОбновлениеИнформационнойБазыУТ.РезультатАдаптацииЗапроса();
Результат.ЗначенияПараметров = ЗначенияПараметров;
Результат.ТекстЗапроса = ТекстЗапроса;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область ФормированиеГиперссылкиВЖурналеПроизводства
Функция СформироватьГиперссылкуКОформлению(Параметры) Экспорт
Если Не ПравоДоступа("Изменение", Метаданные.Документы.РаспределениеПрочихЗатрат) Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Новый ФорматированнаяСтрока(НСтр("ru = 'Распределение расходов'"),,,,
"Документ.РаспределениеПрочихЗатрат.Форма.ФормаРабочееМесто");
КонецФункции
Процедура СформироватьГиперссылкуКОформлениюФоновоеЗадание(Параметры, АдресХранилища) Экспорт
КОформлению = ОбщегоНазначенияУТ.СформироватьГиперссылкуКОформлению(Параметры[0], Параметры[1]);
ПоместитьВоВременноеХранилище(КОформлению, АдресХранилища);
КонецПроцедуры
#КонецОбласти
#Область Заполнение
Функция КонвертироватьДанные(ДанныеПоРасходам)
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
ТаблицаДанных.Колонки.Добавить("ИДСтроки", Новый ОписаниеТипов("Число"));
ТаблицаДанных.Колонки.Добавить("ДокументУпр", Новый ОписаниеТипов("ДокументСсылка.РаспределениеПрочихЗатрат"));
ТаблицаДанных.Колонки.Добавить("ДокументРегл", Новый ОписаниеТипов("ДокументСсылка.РаспределениеПрочихЗатрат"));
ТаблицаДанных.Колонки.Добавить("ДокументНал", Новый ОписаниеТипов("ДокументСсылка.РаспределениеПрочихЗатрат"));
ТаблицаДанных.Колонки.Добавить("ДокументНДД", Новый ОписаниеТипов("ДокументСсылка.РаспределениеПрочихЗатрат"));
ТаблицаДанных.Колонки.Добавить("СостояниеУпр", Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияРаспределенияРасходов"));
ТаблицаДанных.Колонки.Добавить("СостояниеРегл", Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияРаспределенияРасходов"));
ТаблицаДанных.Колонки.Добавить("СостояниеНал", Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияРаспределенияРасходов"));
ТаблицаДанных.Колонки.Добавить("СостояниеНДД", Новый ОписаниеТипов("ПеречислениеСсылка.СостоянияРаспределенияРасходов"));
ТаблицаДанных.Колонки.Добавить("СтатьяРасходов", Новый ОписаниеТипов("ПланВидовХарактеристикСсылка.СтатьиРасходов"));
ТаблицаДанных.Колонки.Добавить("АналитикаРасходов", Метаданные.ПланыВидовХарактеристик.СтатьиРасходов.Тип);
ТаблицаДанных.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
ТаблицаДанных.Колонки.Добавить("Подразделение", Новый ОписаниеТипов("СправочникСсылка.СтруктураПредприятия"));
ТаблицаДанных.Колонки.Добавить("НаправлениеДеятельности", Новый ОписаниеТипов("СправочникСсылка.НаправленияДеятельности"));
Для Каждого ДанныеПоРасходу Из ДанныеПоРасходам Цикл
ЗаполнитьЗначенияСвойств(ТаблицаДанных.Добавить(), ДанныеПоРасходу);
КонецЦикла;
Возврат ТаблицаДанных;
КонецФункции
Функция ФорматДанныхРаспределенияСтатьиРасходов()
СтруктураЗаполнения = Новый Структура;
СтруктураЗаполнения.Вставить("Дата");
СтруктураЗаполнения.Вставить("ИДСтроки");
СтруктураЗаполнения.Вставить("ДокументУпр");
СтруктураЗаполнения.Вставить("ДокументРегл");
СтруктураЗаполнения.Вставить("ДокументНал");
СтруктураЗаполнения.Вставить("ДокументНДД");
СтруктураЗаполнения.Вставить("СостояниеУпр");
СтруктураЗаполнения.Вставить("СостояниеРегл");
СтруктураЗаполнения.Вставить("СостояниеНал");
СтруктураЗаполнения.Вставить("СостояниеНДД");
СтруктураЗаполнения.Вставить("СтатьяРасходов");
СтруктураЗаполнения.Вставить("АналитикаРасходов");
СтруктураЗаполнения.Вставить("СтатьяКалькуляции");
СтруктураЗаполнения.Вставить("ВариантРаспределенияРегл");
СтруктураЗаполнения.Вставить("ВариантРаспределенияНал");
СтруктураЗаполнения.Вставить("ВариантРаспределенияУпр");
СтруктураЗаполнения.Вставить("ВариантРаспределенияНДД");
СтруктураЗаполнения.Вставить("Организация");
СтруктураЗаполнения.Вставить("Подразделение");
СтруктураЗаполнения.Вставить("НаправлениеДеятельности");
СтруктураЗаполнения.Вставить("ПравилоРаспределенияУпр");
СтруктураЗаполнения.Вставить("ПравилоРаспределенияРегл");
СтруктураЗаполнения.Вставить("ПравилоРаспределенияНал");
СтруктураЗаполнения.Вставить("ПравилоРаспределенияНДД");
Возврат СтруктураЗаполнения;
КонецФункции
Процедура УстановитьПризнакиБУиНУ(Объект, ВидУчета)
НастройкиРаспределения = ПолучитьНастройкиРаспределенияПоДокументу(Объект);
НастройкиБУиНУСоответствуют =
Не РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, Неопределено))
И НастройкиРаспределения.ВариантРаспределенияРасходовНУ = НастройкиРаспределения.ВариантРаспределенияРасходовРегл
И НастройкиРаспределения.ВариантРаспределенияРасходовНУ =
ПредопределенноеЗначение("Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты")
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовНУ = НастройкиРаспределения.ВариантРаспределенияРасходовРегл
И (НастройкиРаспределения.ПравилоРаспределенияРасходовНУ = НастройкиРаспределения.ПравилоРаспределенияРасходовРегл
ИЛИ НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределенияНУ(НастройкиРаспределения.ВариантРаспределенияРасходовНУ)
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства
ИЛИ НастройкиРаспределения.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности);
Если НастройкиБУиНУСоответствуют Тогда
Если ВидУчета = "РегламентированныйУчет" Тогда
Объект.НалоговыйУчет = Объект.РегламентированныйУчет;
ИначеЕсли ВидУчета = "НалоговыйУчет" Тогда
Объект.РегламентированныйУчет = Объект.НалоговыйУчет;
КонецЕсли;
КонецЕсли;
РаспределениеПрочихЗатратЛокализация.УстановитьПризнакиБУиНУ(Объект, ВидУчета, НастройкиРаспределения, НастройкиБУиНУСоответствуют);
Возврат;
Если ВидУчета = "РегламентированныйУчет" Тогда
Объект.НалоговыйУчет = Объект.РегламентированныйУчет;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область БлокировкаПриОбновленииИБ
Процедура ПроверитьБлокировкуВходящихДанныхПриОбновленииИБ(ПредставлениеОперации)
ВходящиеДанные = Новый Соответствие;
ВходящиеДанные.Вставить(Метаданные.Документы.РаспределениеПрочихЗатрат);
ВходящиеДанные.Вставить(Метаданные.РегистрыНакопления.МатериалыИРаботыВПроизводстве);
ВходящиеДанные.Вставить(Метаданные.РегистрыНакопления.ПрочиеРасходы);
ВходящиеДанные.Вставить(Метаданные.РегистрыНакопления.СебестоимостьТоваров);
ВходящиеДанные.Вставить(Метаданные.РегистрыНакопления.ПрочиеРасходыНезавершенногоПроизводства);
ЗакрытиеМесяцаСервер.ПроверитьБлокировкуВходящихДанныхПриОбновленииИБ(ВходящиеДанные, ПредставлениеОперации);
КонецПроцедуры
#КонецОбласти
#Область РаспределениеНаФинансовыйРезультат
Процедура ПодготовитьСлужебныеТаблицы(Период, Знач Организации, Знач Запрос, ИсключитьТранспортныеРасходы = Ложь) Экспорт
Если Организации.Количество() = 0 Тогда
Организации = Справочники.Организации.ДоступныеОрганизации(Истина);
КонецЕсли;
Если ИсключитьТранспортныеРасходы Тогда
НалоговыйУчет.СоздатьПустуюВременнуюТаблицуДолиТранспортныхРасходов(Запрос.МенеджерВременныхТаблиц);
Иначе
УстановитьПривилегированныйРежим(Истина);
НалоговыйУчет.ДоляТранспортныхРасходовТекущегоМесяца(Период, Организации, Запрос.МенеджерВременныхТаблиц);
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
НалоговыйУчет.СоздатьВременнуюТаблицуДолиСписанияКосвенныхРасходов(
Период, Организации, Запрос.МенеджерВременныхТаблиц);
УстановитьПривилегированныйРежим(Ложь);
Если Не РасчетСебестоимостиПрикладныеАлгоритмы.ВременнаяТаблицаСуществует(Запрос.МенеджерВременныхТаблиц, "ВтДолиСписанияКосвенныхРасходов") Тогда
Запрос.Текст =
"ВЫБРАТЬ
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) КАК СтатьяРасходов,
| ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
| ЛОЖЬ КАК НовыйАлгоритмСписания,
| ЛОЖЬ КАК Нормируемые,
| ЛОЖЬ КАК Транспортные,
| 1 КАК ДоляСписания
|ПОМЕСТИТЬ ВтДолиСписанияКосвенныхРасходов";
Запрос.Выполнить();
КонецЕсли;
Если Не РасчетСебестоимостиПрикладныеАлгоритмы.ВременнаяТаблицаСуществует(Запрос.МенеджерВременныхТаблиц, "ВтОВЗ") Тогда
Запрос.Текст = РасчетСебестоимостиПостатейныеЗатраты.ТекстВТпоОВЗ();
УстановитьПривилегированныйРежим(Истина);
Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Если Не РасчетСебестоимостиПрикладныеАлгоритмы.ВременнаяТаблицаСуществует(Запрос.МенеджерВременныхТаблиц, "ЗначенияПоказателейОВЗ") Тогда
Запрос.Текст = РасчетСебестоимостиПостатейныеЗатраты.ТекстЗначенияПоказателейРаспределенияНаОВЗ();
УстановитьПривилегированныйРежим(Истина);
Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Если Не РасчетСебестоимостиПрикладныеАлгоритмы.ВременнаяТаблицаСуществует(Запрос.МенеджерВременныхТаблиц, "Регистраторы") Тогда
ПодготовитьТаблицыКРасчету(Неопределено, Запрос);
КонецЕсли;
КонецПроцедуры
Функция ВыборкаРаспределенияРасходовНаФинансовыйРезультат(ВременныеТаблицы)
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = ВременныеТаблицы;
Запрос.Текст = ТекстЗапросаВыборкиРаспределенияНаФинансовыйРезультат();
РезультатЗапроса = Запрос.ВыполнитьПакет();
Возврат РезультатЗапроса;
КонецФункции
#КонецОбласти
#Область КорректировкаУстаревшихДокументов
Функция ЕстьУстаревшиеДокументыСРасходами(Запрос)
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| РаспределениеДоходовПоНаправлениямДеятельностиРасходы.Ссылка КАК Ссылка
|ИЗ
| Документ.РаспределениеДоходовПоНаправлениямДеятельности.Расходы КАК РаспределениеДоходовПоНаправлениямДеятельностиРасходы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РаспределениеДоходовПоНаправлениямДеятельности КАК РаспределениеДоходовПоНаправлениямДеятельности
| ПО РаспределениеДоходовПоНаправлениямДеятельностиРасходы.Ссылка = РаспределениеДоходовПоНаправлениямДеятельности.Ссылка
|ГДЕ
| РаспределениеДоходовПоНаправлениямДеятельности.Организация В(&МассивОрганизаций)
| И РаспределениеДоходовПоНаправлениямДеятельности.Проведен
| И РаспределениеДоходовПоНаправлениямДеятельности.Дата МЕЖДУ &НачалоПериода И &КонецПериода";
Возврат Не Запрос.Выполнить().Пустой();
КонецФункции
Процедура УдалитьДвиженияРаспределенныхРасходовВСтаромДокументе(Параметры, ВременнаяТаблица)
Запрос = РасчетСебестоимостиПрикладныеАлгоритмы.ИнициализироватьЗапросПоПараметрам(Параметры, ВременнаяТаблица);
Если Не ЕстьУстаревшиеДокументыСРасходами(Запрос) Тогда
Возврат;
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Движения.Регистратор
|ПОМЕСТИТЬ РегистраторыКПерезаписиДвижений
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РаспределенныеАналитикиРасходов КАК Аналитики
| ПО Движения.Организация = Аналитики.Организация
| И Движения.Подразделение = Аналитики.Подразделение
| И Движения.НаправлениеДеятельности = Аналитики.НаправлениеДеятельности
| И Движения.СтатьяРасходов = Аналитики.СтатьяРасходов
| И Движения.АналитикаРасходов = Аналитики.АналитикаРасходов
|ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И ТИПЗНАЧЕНИЯ(Движения.Регистратор) = ТИП(Документ.РаспределениеДоходовПоНаправлениямДеятельности)
|;
|
|
|ВЫБРАТЬ
| Движения.*,
| (НЕ Аналитики.Организация ЕСТЬ NULL) КАК ПропуститьЗапись
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистраторыКПерезаписиДвижений КАК Регистраторы
| ПО Движения.Регистратор = Регистраторы.Регистратор
| ЛЕВОЕ СОЕДИНЕНИЕ РаспределенныеАналитикиРасходов КАК Аналитики
| ПО Движения.Организация = Аналитики.Организация
| И Движения.Подразделение = Аналитики.Подразделение
| И Движения.НаправлениеДеятельности = Аналитики.НаправлениеДеятельности
| И Движения.СтатьяРасходов = Аналитики.СтатьяРасходов
| И Движения.АналитикаРасходов = Аналитики.АналитикаРасходов
|
|ИТОГИ ПО
| Движения.Регистратор";
Результат = Запрос.Выполнить();
ОрганизацииКПересчету = Новый СписокЗначений;
ВыборкаРегистраторовНовыхДвижений = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаРегистраторовНовыхДвижений.Следующий() Цикл
ОрганизацииКПересчету.Очистить();
ПрочиеРасходы = РегистрыНакопления.ПрочиеРасходы.СоздатьНаборЗаписей();
ПрочиеРасходы.Отбор.Регистратор.Установить(ВыборкаРегистраторовНовыхДвижений.Регистратор);
ВыборкаДетальная = ВыборкаРегистраторовНовыхДвижений.Выбрать();
Пока ВыборкаДетальная.Следующий() Цикл
Если ОрганизацииКПересчету.НайтиПоЗначению(ВыборкаДетальная.Организация) = Неопределено Тогда
ОрганизацииКПересчету.Добавить(ВыборкаДетальная.Организация);
КонецЕсли;
Если ВыборкаДетальная.ПропуститьЗапись Тогда
Продолжить;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ПрочиеРасходы.Добавить(), ВыборкаДетальная);
КонецЦикла;
ПрочиеРасходы.Записать();
Для Каждого ПересчитываемаяОрганизация Из ОрганизацииКПересчету Цикл
РегистрыСведений.ЗаданияКЗакрытиюМесяца.СоздатьЗаписьРегистра(Параметры.НачалоПериода,
ВыборкаРегистраторовНовыхДвижений.Регистратор,
ПересчитываемаяОрганизация.Значение,
Справочники.ОперацииЗакрытияМесяца.РаспределениеДоходовПоНаправлениямДеятельности);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ПоступилоПрочихРасходов
Функция ЗаменитьПоШаблону(ТекстЗапроса, Шаблон, Настройка) Экспорт
ТекстЗапросаРезультат = ТекстЗапроса;
Замены = Неопределено;
Шаблон.Свойство(Настройка, Замены);
Для Каждого Замена Из Замены Цикл
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, Замена.Ключ, Замена.Значение);
КонецЦикла;
Возврат ТекстЗапросаРезультат;
КонецФункции
Функция ТекстЗапросаПоступилоПрочихРасходовИсточники(ВариантРасчета) Экспорт
ШаблонЗамен = ШаблонЗамен();
#Область ТекстОписаниеДанных
ТекстОписаниеДанных = "
| ВЫБРАТЬ ПЕРВЫЕ 0
| "" КАК ЗапросИсточник,
| ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
| ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка) КАК Подразделение,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК СуммаНДД,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРеглРасход,
| 0 КАК ПостояннаяРазницаРасход,
| 0 КАК ВременнаяРазницаРасход,
| 0 КАК СуммаНДДРасход,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиДляСвязи,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) КАК СтатьяРасходовДляСвязи
|
|";
#КонецОбласти
#Область ТекстОстаткиПрочихРасходов
ТекстОстаткиПрочихРасходов = "
| ВЫБРАТЬ
|
| Расходы.Организация,
| Расходы.Подразделение,
| Расходы.НаправлениеДеятельности,
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.СуммаОстаток,
| Расходы.СуммаБезНДСОстаток,
| Расходы.СуммаРеглОстаток,
| Расходы.ПостояннаяРазницаОстаток,
| Расходы.ВременнаяРазницаОстаток,
| Расходы.СуммаНДДОстаток,
| Расходы.СуммаУпрОстаток,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| Расходы.НаправлениеДеятельности,
| Расходы.СтатьяРасходов
| ИЗ
| СтатьиРасходовКРаспределению КАК Т
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПрочиеРасходыОстатки КАК Расходы
| ПО Расходы.СтатьяРасходов = Т.Ссылка
|";
ТекстОстаткиПрочихРасходовУпр = ЗаменитьПоШаблону(ТекстОстаткиПрочихРасходов, ШаблонЗамен, "ТекстОстаткиПрочихРасходовУпр");
ТекстОстаткиПрочихРасходовРегл = ЗаменитьПоШаблону(ТекстОстаткиПрочихРасходов, ШаблонЗамен, "ТекстОстаткиПрочихРасходовРегл");
ТекстОстаткиПрочихРасходовНУ = ЗаменитьПоШаблону(ТекстОстаткиПрочихРасходов, ШаблонЗамен, "ТекстОстаткиПрочихРасходовНУ");
ТекстОстаткиПрочихРасходовНДД = РасчетСебестоимостиЛокализация.ТекстОстаткиПрочихРасходовНДД();
#КонецОбласти
#Область ТекстДвиженияПрочихРасходов
ТекстДвиженияПрочихРасходов = "
| ВЫБРАТЬ
| "",
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| Движения.Сумма,
| Движения.СуммаБезНДС,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| Движения.СуммаНДД,
| Движения.СуммаУпр,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| Движения.СуммаНДД,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЕСТЬNULL(ДД.НаправлениеДеятельности, Движения.НаправлениеДеятельности),
| ЕСТЬNULL(ДД.СтатьяРасходов, Движения.СтатьяРасходов)
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК СтатьиКРаспределению
| ПО Движения.СтатьяРасходов = СтатьиКРаспределению.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК ДД
| ПО Движения.Регистратор = ДД.Ссылка
| И ДД.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И (ТИПЗНАЧЕНИЯ(Движения.Регистратор) В (
| ТИП(Документ.РасчетСебестоимостиТоваров),
| ТИП(Документ.РаспределениеПрочихЗатрат),
| ТИП(Документ.РаспределениеДоходовПоНаправлениямДеятельности))
| И НЕ Движения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| ИЛИ ТИПЗНАЧЕНИЯ(Движения.Регистратор) = ТИП(Документ.РегламентнаяОперация)
| И НЕ Движения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеКосвенныхРасходов)
| ИЛИ СтатьиКРаспределению.ВариантРаспределенияРасходов = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров)
| )
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И Движения.ХозяйственнаяОперация <> ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеОшибокОкругления)
| И (&ПоВсемОрганизациям
| ИЛИ Движения.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Движения.Подразделение В (&СписокПодразделений))
|";
ТекстДвиженияПрочихРасходовУпр = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовУпр");
ТекстДвиженияПрочихРасходовРегл = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовРегл");
ТекстДвиженияПрочихРасходовНУ = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНУ");
ТекстДвиженияПрочихРасходовНДД = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНДД");
#КонецОбласти
#Область ТекстДвиженияПартийПрочихРасходов
ТекстДвиженияПартийПрочихРасходов = "
| ВЫБРАТЬ
|
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ИСТИНА КАК РасчетнаяСумма,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов
| ИЗ
| РегистрНакопления.ПартииПрочихРасходов КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК СтатьиКРаспределению
| ПО Движения.СтатьяРасходов = СтатьиКРаспределению.Ссылка
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И Движения.Регистратор ССЫЛКА Документ.НачислениеРеверсивногоНДС
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (&ПоВсемОрганизациям
| ИЛИ Движения.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Движения.Подразделение В (&СписокПодразделений))
|";
ТекстДвиженияПартийПрочихРасходовУпр = ЗаменитьПоШаблону(ТекстДвиженияПартийПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовУпр");
ТекстДвиженияПартийПрочихРасходовРегл = ЗаменитьПоШаблону(ТекстДвиженияПартийПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовРегл");
ТекстДвиженияПартийПрочихРасходовНУ = ЗаменитьПоШаблону(ТекстДвиженияПартийПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНУ");
ТекстДвиженияПартийПрочихРасходовНДД = ЗаменитьПоШаблону(ТекстДвиженияПартийПрочихРасходов, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНДД");
#КонецОбласти
#Область ТекстДвиженияПрочихРасходовВторичногоКонтура
ТекстДвиженияПрочихРасходовВторичногоКонтура = "
| ВЫБРАТЬ
|
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| -Движения.Сумма,
| -Движения.СуммаБезНДС,
| -Движения.СуммаРегл,
| -Движения.ПостояннаяРазница,
| -Движения.ВременнаяРазница,
| -Движения.СуммаНДД,
| -Движения.СуммаУпр,
| -Движения.СуммаРегл,
| -Движения.ПостояннаяРазница,
| -Движения.ВременнаяРазница,
| -Движения.СуммаНДД,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК СтатьиКРаспределению
| ПО Движения.СтатьяРасходов = СтатьиКРаспределению.Ссылка
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И (ТИПЗНАЧЕНИЯ(Движения.Регистратор) В (
| ТИП(Документ.РасчетСебестоимостиТоваров),
| ТИП(Документ.РаспределениеПрочихЗатрат),
| ТИП(Документ.РаспределениеДоходовПоНаправлениямДеятельности))
| И СтатьиКРаспределению.ВариантРаспределенияРасходов В (
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты),
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства)
| )
| И СтатьиКРаспределению.Предопределенный
| )
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (&ПоВсемОрганизациям
| ИЛИ Движения.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Движения.Подразделение В (&СписокПодразделений))
|";
ТекстДвиженияПрочихРасходовВторичногоКонтураУпр = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовВторичногоКонтура, ШаблонЗамен, "ТекстДвиженияПрочихРасходовУпр");
ТекстДвиженияПрочихРасходовВторичногоКонтураРегл = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовВторичногоКонтура, ШаблонЗамен, "ТекстДвиженияПрочихРасходовРегл");
ТекстДвиженияПрочихРасходовВторичногоКонтураНУ = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовВторичногоКонтура, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНУ");
ТекстДвиженияПрочихРасходовВторичногоКонтураНДД = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовВторичногоКонтура, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНДД");
#КонецОбласти
#Область ТекстДвиженияНаСебестоимостьПроизводства
ТекстДвиженияНаСебестоимостьПроизводства = "
| ВЫБРАТЬ
| "",
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| Движения.Сумма,
| Движения.СуммаБезНДС,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| Движения.СуммаНДД,
| Движения.СуммаУпр,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| Движения.СуммаНДД,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК СтатьиКРаспределению
| ПО Движения.СтатьяРасходов = СтатьиКРаспределению.Ссылка
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И (ТИПЗНАЧЕНИЯ(Движения.Регистратор) В (
| ТИП(Документ.ВыпускПродукции),
| ТИП(Документ.ОтчетПереработчика),
| ТИП(Документ.ОтчетПереработчика2_5),
| ТИП(Документ.ПроизводствоБезЗаказа))
| )
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И Движения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовНаСебестоимостьПроизводства)
| И (&ПоВсемОрганизациям
| ИЛИ Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Подразделение В (&СписокПодразделений))
|";
ТекстДвиженияНаСебестоимостьПроизводстваУпр = ЗаменитьПоШаблону(ТекстДвиженияНаСебестоимостьПроизводства, ШаблонЗамен, "ТекстДвиженияПрочихРасходовУпр");
ТекстДвиженияНаСебестоимостьПроизводстваРегл = ЗаменитьПоШаблону(ТекстДвиженияНаСебестоимостьПроизводства, ШаблонЗамен, "ТекстДвиженияПрочихРасходовРегл");
ТекстДвиженияНаСебестоимостьПроизводстваНУ = ЗаменитьПоШаблону(ТекстДвиженияНаСебестоимостьПроизводства, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНУ");
ТекстДвиженияНаСебестоимостьПроизводстваНДД = ЗаменитьПоШаблону(ТекстДвиженияНаСебестоимостьПроизводства, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНДД");
#КонецОбласти
#Область ТекстСписаниеРаспределениеТМЦ
ТекстСписаниеРаспределениеТМЦ = "
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| "",
| СебестоимостьТоваров.Организация,
| СебестоимостьТоваров.Подразделение,
| СебестоимостьТоваров.КорНаправлениеДеятельности,
| СебестоимостьТоваров.СтатьяРасходовСписания,
| СебестоимостьТоваров.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| СебестоимостьТоваров.Количество КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| СебестоимостьТоваров.КорНаправлениеДеятельности,
| СебестоимостьТоваров.СтатьяРасходовСписания
| ИЗ
| РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК Статьи
| ПО (Статьи.Ссылка = СебестоимостьТоваров.СтатьяРасходовСписания)
| ГДЕ
| СебестоимостьТоваров.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И СебестоимостьТоваров.Активность
| И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТИПЗНАЧЕНИЯ(СебестоимостьТоваров.Регистратор) В (
| ТИП(Документ.Сторно),
| ТИП(Документ.ВнутреннееПотребление),
| ТИП(Документ.ОтчетОСписанииТоваровСХранения),
| ТИП(Документ.ВыпускПродукции),
| ТИП(Документ.РаспределениеПроизводственныхЗатрат),
| ТИП(Документ.ПроизводствоБезЗаказа),
| ТИП(Документ.ОтчетПереработчика),
| ТИП(Документ.ОтчетПереработчика2_5),
| ТИП(Документ.СписаниеОтгруженныхТоваров),
| ТИП(Документ.ПрочееОприходованиеТоваров),
| ТИП(Документ.СписаниеНедостачТоваров))
| И НЕ СебестоимостьТоваров.РасчетСебестоимости
| И (&ПоВсемОрганизациям
| ИЛИ СебестоимостьТоваров.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ СебестоимостьТоваров.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстСписаниеРаспределениеТМЦвДругуюОрганизацию
ТекстСписаниеРаспределениеТМЦвДругуюОрганизацию = "
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| "",
| СебестоимостьТоваров.КорОрганизация,
| СебестоимостьТоваров.Подразделение,
| СебестоимостьТоваров.КорНаправлениеДеятельности,
| СебестоимостьТоваров.СтатьяРасходовСписания,
| СебестоимостьТоваров.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| СебестоимостьТоваров.Количество КАК РасчетноеКоличество,
| ИСТИНА КАК РасчетнаяСумма,
| СебестоимостьТоваров.КорНаправлениеДеятельности,
| СебестоимостьТоваров.СтатьяРасходовСписания
| ИЗ
| РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК Статьи
| ПО (Статьи.Ссылка = СебестоимостьТоваров.СтатьяРасходовСписания)
| ГДЕ
| СебестоимостьТоваров.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И СебестоимостьТоваров.Активность
| И СебестоимостьТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТИПЗНАЧЕНИЯ(СебестоимостьТоваров.Регистратор) В (
| ТИП(Документ.Сторно),
| ТИП(Документ.ВнутреннееПотребление),
| ТИП(Документ.ВыпускПродукции),
| ТИП(Документ.РаспределениеПроизводственныхЗатрат),
| ТИП(Документ.ПроизводствоБезЗаказа),
| ТИП(Документ.ОтчетПереработчика),
| ТИП(Документ.СписаниеОтгруженныхТоваров),
| ТИП(Документ.ПрочееОприходованиеТоваров),
| ТИП(Документ.СписаниеНедостачТоваров))
| И НЕ СебестоимостьТоваров.РасчетСебестоимости
| И НЕ СебестоимостьТоваров.КорОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| И НЕ СебестоимостьТоваров.КорОрганизация = СебестоимостьТоваров.Организация
| И (&ПоВсемОрганизациям
| ИЛИ СебестоимостьТоваров.КорОрганизация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ СебестоимостьТоваров.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстРаспределениеМатериалыИРаботы
ТекстРаспределениеМатериалыИРаботы = "
| ВЫБРАТЬ РАЗЛИЧНЫЕ
|
| Затраты.Организация,
| Затраты.Подразделение,
| ЕСТЬNULL(Затраты.Назначение.НаправлениеДеятельности, ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)),
| ВЫРАЗИТЬ(Затраты.СтатьяРасходов КАК ПланВидовХарактеристик.СтатьиРасходов),
| Затраты.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ИСТИНА КАК РасчетнаяСумма,
| ЕСТЬNULL(Затраты.Назначение.НаправлениеДеятельности, ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)),
| ВЫРАЗИТЬ(Затраты.СтатьяРасходов КАК ПланВидовХарактеристик.СтатьиРасходов)
| ИЗ
| РегистрНакопления.МатериалыИРаботыВПроизводстве КАК Затраты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ СтатьиРасходовКРаспределению КАК Статьи
| ПО (Статьи.Ссылка = Затраты.СтатьяРасходов)
| ГДЕ
| Затраты.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Затраты.Активность
| И Затраты.Регистратор ССЫЛКА Документ.РаспределениеПроизводственныхЗатрат
| И (&ПоВсемОрганизациям
| ИЛИ Затраты.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Затраты.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстОстаткиПрочихРасходовОВЗ
ТекстОстаткиПрочихРасходовОВЗ = "
| ВЫБРАТЬ
|
| Расходы.Организация,
| Расходы.Подразделение,
| Расходы.НаправлениеДеятельности,
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.СуммаОстаток,
| Расходы.СуммаБезНДСОстаток,
| Расходы.СуммаРеглОстаток,
| Расходы.ПостояннаяРазницаОстаток,
| Расходы.ВременнаяРазницаОстаток,
| 0,
| Расходы.СуммаУпрОстаток,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| ОВЗКРаспределению КАК Т
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПрочиеРасходыОстатки КАК Расходы
| ПО Расходы.АналитикаРасходов = Т.ОВЗ
| И СтатьяРасходов В
| (ВЫБРАТЬ
| Т.Ссылка
| ИЗ
| СтатьиОВЗ КАК Т)
|";
ТекстОстаткиПрочихРасходовОВЗУпр = ЗаменитьПоШаблону(ТекстОстаткиПрочихРасходовОВЗ, ШаблонЗамен, "ТекстОстаткиПрочихРасходовУпр");
ТекстОстаткиПрочихРасходовОВЗРегл = ЗаменитьПоШаблону(ТекстОстаткиПрочихРасходовОВЗ, ШаблонЗамен, "ТекстОстаткиПрочихРасходовРегл");
ТекстОстаткиПрочихРасходовОВЗНУ = ЗаменитьПоШаблону(ТекстОстаткиПрочихРасходовОВЗ, ШаблонЗамен, "ТекстОстаткиПрочихРасходовНУ");
ТекстОстаткиПрочихРасходовОВЗНДД = РасчетСебестоимостиЛокализация.ТекстОстаткиПрочихРасходовОВЗНДД();
#КонецОбласти
#Область ТекстДвиженияПрочихРасходовИзОВЗ
ТекстДвиженияПрочихРасходовИзОВЗ = "
| ВЫБРАТЬ
| "",
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| Движения.Сумма,
| Движения.СуммаБезНДС,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| 0,
| Движения.СуммаУпр,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| 0,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОВЗКРаспределению КАК ОВЗКРаспределению
| ПО Движения.АналитикаРасходов = ОВЗКРаспределению.ОВЗ
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И (ТИПЗНАЧЕНИЯ(Движения.Регистратор) В (
| ТИП(Документ.РаспределениеПрочихЗатрат),
| ТИП(Документ.РаспределениеДоходовПоНаправлениямДеятельности))
| ИЛИ ТИПЗНАЧЕНИЯ(Движения.Регистратор) = ТИП(Документ.РегламентнаяОперация)
| И НЕ Движения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеКосвенныхРасходов)
| )
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И (&ПоВсемОрганизациям
| ИЛИ Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Подразделение В (&СписокПодразделений))
|";
ТекстДвиженияПрочихРасходовИзОВЗУпр = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовИзОВЗ, ШаблонЗамен, "ТекстДвиженияПрочихРасходовУпр");
ТекстДвиженияПрочихРасходовИзОВЗРегл = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовИзОВЗ, ШаблонЗамен, "ТекстДвиженияПрочихРасходовРегл");
ТекстДвиженияПрочихРасходовИзОВЗНУ = ЗаменитьПоШаблону(ТекстДвиженияПрочихРасходовИзОВЗ, ШаблонЗамен, "ТекстДвиженияПрочихРасходовНУ");
ТекстДвиженияПрочихРасходовИзОВЗНДД = РасчетСебестоимостиЛокализация.ТекстДвиженияПрочихРасходовИзОВЗНДД();
#КонецОбласти
#Область ТекстСписаниеРаспределениеТМЦНаОВЗ
ТекстСписаниеРаспределениеТМЦНаОВЗ = "
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| "",
| СебестоимостьТоваров.Организация,
| СебестоимостьТоваров.Подразделение,
| СебестоимостьТоваров.КорНаправлениеДеятельности,
| СебестоимостьТоваров.СтатьяРасходовСписания,
| СебестоимостьТоваров.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ИСТИНА КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОВЗКРаспределению КАК ОВЗКРаспределению
| ПО СебестоимостьТоваров.АналитикаРасходов = ОВЗКРаспределению.ОВЗ
| ГДЕ
| СебестоимостьТоваров.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И СебестоимостьТоваров.Активность
| И ТИПЗНАЧЕНИЯ(СебестоимостьТоваров.Регистратор) В (
| ТИП(Документ.ВнутреннееПотребление),
| ТИП(Документ.РаспределениеПроизводственныхЗатрат),
| ТИП(Документ.ПроизводствоБезЗаказа),
| ТИП(Документ.ОтчетПереработчика),
| ТИП(Документ.ПрочееОприходованиеТоваров),
| ТИП(Документ.СписаниеНедостачТоваров))
| И НЕ СебестоимостьТоваров.РасчетСебестоимости
| И (&ПоВсемОрганизациям
| ИЛИ СебестоимостьТоваров.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ СебестоимостьТоваров.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстРаспределениеМатериалыИРаботыНаОВЗ
ТекстРаспределениеМатериалыИРаботыНаОВЗ = "
| ВЫБРАТЬ РАЗЛИЧНЫЕ
|
| Затраты.Организация,
| Затраты.Подразделение,
| ЕСТЬNULL(Затраты.Назначение.НаправлениеДеятельности, ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)),
| ВЫРАЗИТЬ(Затраты.СтатьяРасходов КАК ПланВидовХарактеристик.СтатьиРасходов),
| Затраты.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ИСТИНА КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| РегистрНакопления.МатериалыИРаботыВПроизводстве КАК Затраты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОВЗКРаспределению КАК ОВЗКРаспределению
| ПО Затраты.АналитикаРасходов = ОВЗКРаспределению.ОВЗ
| ГДЕ
| Затраты.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Затраты.Активность
| И Затраты.Регистратор ССЫЛКА Документ.РаспределениеПроизводственныхЗатрат
| И (&ПоВсемОрганизациям
| ИЛИ Затраты.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Затраты.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстДвиженияПрочихРасходовМеждуОВЗРасход
ТекстДвиженияПрочихРасходовМеждуОВЗРасход = "
| ВЫБРАТЬ
|
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| Движения.Сумма,
| Движения.СуммаБезНДС,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| Движения.СуммаНДД,
| Движения.СуммаУпр,
| Движения.СуммаРегл,
| Движения.ПостояннаяРазница,
| Движения.ВременнаяРазница,
| Движения.СуммаНДД,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОбъектыВозникновенияЗатрат КАК ОВЗ
| ПО Движения.АналитикаРасходов = ОВЗ.Ссылка
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТИПЗНАЧЕНИЯ(Движения.Регистратор) = ТИП(Документ.РаспределениеПрочихЗатрат)
| И Движения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (&ПоВсемОрганизациям
| ИЛИ Движения.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Движения.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстПрочихДвиженияРасходовМеждуОВЗПриход
ТекстДвиженияПрочихРасходовМеждуОВЗПриход = "
| ВЫБРАТЬ
|
| Движения.Организация,
| Движения.Подразделение,
| Движения.НаправлениеДеятельности,
| Движения.СтатьяРасходов,
| Движения.АналитикаРасходов,
| -Движения.Сумма,
| -Движения.СуммаБезНДС,
| -Движения.СуммаРегл,
| -Движения.ПостояннаяРазница,
| -Движения.ВременнаяРазница,
| -Движения.СуммаНДД,
| -Движения.СуммаУпр,
| -Движения.СуммаРегл,
| -Движения.ПостояннаяРазница,
| -Движения.ВременнаяРазница,
| -Движения.СуммаНДД,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| РегистрНакопления.ПрочиеРасходы КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОбъектыВозникновенияЗатрат КАК ОВЗ
| ПО Движения.АналитикаРасходов = ОВЗ.Ссылка
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ТИПЗНАЧЕНИЯ(Движения.Регистратор) = ТИП(Документ.РаспределениеПрочихЗатрат)
| И Движения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ТранзитРасходовМеждуОВЗ)
| И (&ПоВсемОрганизациям
| ИЛИ Движения.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Движения.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
#Область ТекстТранзитРасходовМеждуОВЗпоГрафу
ТекстТранзитРасходовМеждуОВЗпоГрафу = "
| ВЫБРАТЬ
|
| Расходы.Организация,
| Расходы.КорПодразделение,
| Расходы.НаправлениеДеятельности,
| Расходы.СтатьяРасходов,
| Расходы.КорАналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0,
| 0 КАК РасчетноеКоличество,
| ИСТИНА КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ИЗ
| ВтТранзитРасходовМеждуОВЗ КАК Расходы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОВЗКРаспределению КАК ОВЗКРаспределению
| ПО Расходы.КорАналитикаРасходов = ОВЗКРаспределению.ОВЗ
|";
ТекстТранзитРасходовМеждуОВЗПоГрафуНДД = РасчетСебестоимостиЛокализация.ТекстТранзитРасходовМеждуОВЗПоГрафуНДД();
#КонецОбласти
#Область ТекстСторноПроизводственныхЗатрат
ТекстСторноПроизводственныхЗатрат = "
| ВЫБРАТЬ
|
| Движения.Организация,
| Движения.Подразделение,
| ПартииПроизводства.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.СторноПроизводственныхЗатрат) КАК СтатьяРасходов,
| ПартииПроизводства.ОсновноеИзделиеНоменклатура КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК СуммаНДД,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРеглРасход,
| 0 КАК ПостояннаяРазницаРасход,
| 0 КАК ВременнаяРазницаРасход,
| 0 КАК СуммаНДДРасход,
| 0 КАК РасчетноеКоличество,
| ЛОЖЬ КАК РасчетнаяСумма,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельностиДляСвязи,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) КАК СтатьяРасходовДляСвязи
| ИЗ
| РегистрНакопления.ТрудозатратыНезавершенногоПроизводства КАК Движения
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПартииПроизводства КАК ПартииПроизводства
| ПО ПартииПроизводства.Ссылка = Движения.ПартияПроизводства
| ГДЕ
| Движения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Движения.Активность
| И ТИПЗНАЧЕНИЯ(Движения.Регистратор) = ТИП(Документ.Сторно)
| И Движения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И (&ПоВсемОрганизациям
| ИЛИ Движения.Организация В (&МассивОрганизаций))
| И (&ПоВсемПодразделениям
| ИЛИ Движения.Подразделение В (&СписокПодразделений))
|";
#КонецОбласти
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(ТекстОписаниеДанных);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовУпр);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовРегл);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовНУ);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовНДД);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовУпр);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовРегл);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовНУ);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовНДД);
ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовУпр);
ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовРегл);
ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовНУ);
ТекстыЗапроса.Добавить(ТекстДвиженияПартийПрочихРасходовНДД);
ТекстыЗапроса.Добавить(ТекстСписаниеРаспределениеТМЦ);
ТекстыЗапроса.Добавить(ТекстСписаниеРаспределениеТМЦвДругуюОрганизацию);
ТекстыЗапроса.Добавить(ТекстДвиженияНаСебестоимостьПроизводстваУпр);
ТекстыЗапроса.Добавить(ТекстДвиженияНаСебестоимостьПроизводстваРегл);
ТекстыЗапроса.Добавить(ТекстДвиженияНаСебестоимостьПроизводстваНУ);
ТекстыЗапроса.Добавить(ТекстДвиженияНаСебестоимостьПроизводстваНДД);
ТекстыЗапроса.Добавить(ТекстРаспределениеМатериалыИРаботы);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовВторичногоКонтураУпр);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовВторичногоКонтураРегл);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовВторичногоКонтураНУ);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовВторичногоКонтураНДД);
ТекстыЗапроса.Добавить(ТекстСторноПроизводственныхЗатрат);
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоОбъектамВозникновенияЗатрат") Тогда
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовОВЗУпр);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовОВЗРегл);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовОВЗНУ);
ТекстыЗапроса.Добавить(ТекстОстаткиПрочихРасходовОВЗНДД);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовИзОВЗУпр);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовИзОВЗРегл);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовИзОВЗНУ);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовИзОВЗНДД);
ТекстыЗапроса.Добавить(ТекстСписаниеРаспределениеТМЦНаОВЗ);
ТекстыЗапроса.Добавить(ТекстРаспределениеМатериалыИРаботыНаОВЗ);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовМеждуОВЗРасход);
ТекстыЗапроса.Добавить(ТекстДвиженияПрочихРасходовМеждуОВЗПриход);
Если ВариантРасчета = "ФактическийРасчет" Тогда
ТекстыЗапроса.Добавить(ТекстТранзитРасходовМеждуОВЗпоГрафу);
ТекстыЗапроса.Добавить(ТекстТранзитРасходовМеждуОВЗПоГрафуНДД);
КонецЕсли;
КонецЕсли;
Возврат СтрСоединить(ТекстыЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении())
КонецФункции
Функция ШаблонЗамен()
СтруктураВозврата = Новый Структура;
СтатьиРасходовКРаспределениюУпр = Новый Соответствие;
СтатьиРасходовКРаспределениюУпр.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюУпр");
СтруктураВозврата.Вставить("СтатьиРасходовКРаспределениюУпр", СтатьиРасходовКРаспределениюУпр);
СтатьиРасходовКРаспределениюРегл = Новый Соответствие;
СтатьиРасходовКРаспределениюРегл.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюРегл");
СтруктураВозврата.Вставить("СтатьиРасходовКРаспределениюРегл", СтатьиРасходовКРаспределениюРегл);
СтатьиРасходовКРаспределениюНУ = Новый Соответствие;
СтатьиРасходовКРаспределениюНУ.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюРегл");
СтруктураВозврата.Вставить("СтатьиРасходовКРаспределениюРегл", СтатьиРасходовКРаспределениюРегл);
ТекстОстаткиПрочихРасходовУпр = Новый Соответствие;
ТекстОстаткиПрочихРасходовУпр.Вставить("Расходы.СуммаРеглОстаток,", "0,");
ТекстОстаткиПрочихРасходовУпр.Вставить("Расходы.ПостояннаяРазницаОстаток,", "0,");
ТекстОстаткиПрочихРасходовУпр.Вставить("Расходы.ВременнаяРазницаОстаток,", "0,");
ТекстОстаткиПрочихРасходовУпр.Вставить("Расходы.СуммаНДДОстаток,", "0,");
ТекстОстаткиПрочихРасходовУпр.Вставить("Расходы.СуммаНДД,", "0,");
ТекстОстаткиПрочихРасходовУпр.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюУпр");
ТекстОстаткиПрочихРасходовУпр.Вставить("СтатьиОВЗ", "СтатьиОВЗУпр");
ТекстОстаткиПрочихРасходовУпр.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюУпр");
СтруктураВозврата.Вставить("ТекстОстаткиПрочихРасходовУпр", ТекстОстаткиПрочихРасходовУпр);
ТекстОстаткиПрочихРасходовРегл = Новый Соответствие;
ТекстОстаткиПрочихРасходовРегл.Вставить("Расходы.СуммаОстаток,", "0,");
ТекстОстаткиПрочихРасходовРегл.Вставить("Расходы.СуммаБезНДСОстаток,", "0,");
ТекстОстаткиПрочихРасходовРегл.Вставить("Расходы.СуммаУпрОстаток,", "0,");
ТекстОстаткиПрочихРасходовРегл.Вставить("Расходы.ВременнаяРазницаОстаток,", "Расходы.СуммаРеглОстаток - Расходы.ПостояннаяРазницаОстаток ,");
ТекстОстаткиПрочихРасходовРегл.Вставить("Расходы.СуммаНДДОстаток,", "0,");
ТекстОстаткиПрочихРасходовРегл.Вставить("Расходы.СуммаНДД,", "0,");
ТекстОстаткиПрочихРасходовРегл.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюРегл");
ТекстОстаткиПрочихРасходовРегл.Вставить("СтатьиОВЗ", "СтатьиОВЗРегл");
ТекстОстаткиПрочихРасходовРегл.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюРегл");
СтруктураВозврата.Вставить("ТекстОстаткиПрочихРасходовРегл", ТекстОстаткиПрочихРасходовРегл);
ТекстОстаткиПрочихРасходовНУ = Новый Соответствие;
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.СуммаОстаток,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.СуммаБезНДСОстаток,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.СуммаУпрОстаток,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.СуммаРеглОстаток,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.ПостояннаяРазницаОстаток,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.ВременнаяРазницаОстаток,", "Расходы.ПостояннаяРазницаОстаток + Расходы.ВременнаяРазницаОстаток - Расходы.СуммаРеглОстаток ,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.СуммаНДДОстаток,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("Расходы.СуммаНДД,", "0,");
ТекстОстаткиПрочихРасходовНУ.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюНУ");
ТекстОстаткиПрочихРасходовНУ.Вставить("СтатьиОВЗ", "СтатьиОВЗНУ");
ТекстОстаткиПрочихРасходовНУ.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюНУ");
СтруктураВозврата.Вставить("ТекстОстаткиПрочихРасходовНУ", ТекстОстаткиПрочихРасходовНУ);
ТекстОстаткиПрочихРасходовНДД = Новый Соответствие;
ТекстОстаткиПрочихРасходовНДД.Вставить("Расходы.СуммаОстаток,", "0,");
ТекстОстаткиПрочихРасходовНДД.Вставить("Расходы.СуммаБезНДСОстаток,", "0,");
ТекстОстаткиПрочихРасходовНДД.Вставить("Расходы.СуммаУпрОстаток,", "0,");
ТекстОстаткиПрочихРасходовНДД.Вставить("Расходы.СуммаРеглОстаток,", "0,");
ТекстОстаткиПрочихРасходовНДД.Вставить("Расходы.ПостояннаяРазницаОстаток,", "0,");
ТекстОстаткиПрочихРасходовНДД.Вставить("Расходы.ВременнаяРазницаОстаток,", "0,");
ТекстОстаткиПрочихРасходовНДД.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюНДД");
ТекстОстаткиПрочихРасходовНДД.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюНДД");
СтруктураВозврата.Вставить("ТекстОстаткиПрочихРасходовНДД", ТекстОстаткиПрочихРасходовНДД);
ТекстДвиженияПрочихРасходовУпр = Новый Соответствие;
ТекстДвиженияПрочихРасходовУпр.Вставить("Движения.СуммаРегл,", "0,");
ТекстДвиженияПрочихРасходовУпр.Вставить("Движения.ПостояннаяРазница,", "0,");
ТекстДвиженияПрочихРасходовУпр.Вставить("Движения.ВременнаяРазница,", "0,");
ТекстДвиженияПрочихРасходовУпр.Вставить("Движения.СуммаНДД,", "0,");
ТекстДвиженияПрочихРасходовУпр.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюУпр");
ТекстДвиженияПрочихРасходовУпр.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюУпр");
СтруктураВозврата.Вставить("ТекстДвиженияПрочихРасходовУпр", ТекстДвиженияПрочихРасходовУпр);
ТекстДвиженияПрочихРасходовРегл = Новый Соответствие;
ТекстДвиженияПрочихРасходовРегл.Вставить("Движения.Сумма,", "0,");
ТекстДвиженияПрочихРасходовРегл.Вставить("Движения.СуммаБезНДС,", "0,");
ТекстДвиженияПрочихРасходовРегл.Вставить("Движения.СуммаУпр,", "0,");
ТекстДвиженияПрочихРасходовРегл.Вставить("Движения.ВременнаяРазница,", "Движения.СуммаРегл - Движения.ПостояннаяРазница ,");
ТекстДвиженияПрочихРасходовРегл.Вставить("Движения.СуммаНДД,", "0,");
ТекстДвиженияПрочихРасходовРегл.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюРегл");
ТекстДвиженияПрочихРасходовРегл.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюРегл");
СтруктураВозврата.Вставить("ТекстДвиженияПрочихРасходовРегл", ТекстДвиженияПрочихРасходовРегл);
ТекстДвиженияПрочихРасходовНУ = Новый Соответствие;
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.Сумма,", "0,");
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.СуммаБезНДС,", "0,");
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.СуммаУпр,", "0,");
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.СуммаРегл,", "0,");
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.ПостояннаяРазница,", "0,");
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.ВременнаяРазница,", "Движения.ПостояннаяРазница + Движения.ВременнаяРазница - Движения.СуммаРегл ,");
ТекстДвиженияПрочихРасходовНУ.Вставить("Движения.СуммаНДД,", "0,");
ТекстДвиженияПрочихРасходовНУ.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюНУ");
ТекстДвиженияПрочихРасходовНУ.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюНУ");
СтруктураВозврата.Вставить("ТекстДвиженияПрочихРасходовНУ", ТекстДвиженияПрочихРасходовНУ);
ТекстДвиженияПрочихРасходовНДД = Новый Соответствие;
ТекстДвиженияПрочихРасходовНДД.Вставить("Движения.Сумма,", "0,");
ТекстДвиженияПрочихРасходовНДД.Вставить("Движения.СуммаБезНДС,", "0,");
ТекстДвиженияПрочихРасходовНДД.Вставить("Движения.СуммаУпр,", "0,");
ТекстДвиженияПрочихРасходовНДД.Вставить("Движения.СуммаРегл,", "0,");
ТекстДвиженияПрочихРасходовНДД.Вставить("Движения.ПостояннаяРазница,", "0,");
ТекстДвиженияПрочихРасходовНДД.Вставить("Движения.ВременнаяРазница,", "0,");
ТекстДвиженияПрочихРасходовНДД.Вставить("СтатьиРасходовКРаспределению", "СтатьиРасходовКРаспределениюНДД");
ТекстДвиженияПрочихРасходовНДД.Вставить("ОВЗКРаспределению", "ОВЗКРаспределениюНДД");
СтруктураВозврата.Вставить("ТекстДвиженияПрочихРасходовНДД", ТекстДвиженияПрочихРасходовНДД);
Возврат СтруктураВозврата
КонецФункции
#КонецОбласти
#Область РасходыПослеРаспределения
Функция ТекстЗапросаРасходыПослеРаспределенияИсточники() Экспорт
Возврат "
|ВЫБРАТЬ
|"" КАК ЗапросИсточник,
| НеРаспределенные.Организация КАК Организация,
| НеРаспределенные.Подразделение КАК Подразделение,
| НеРаспределенные.СтатьяРасходов КАК СтатьяРасходов,
| НеРаспределенные.АналитикаРасходов КАК АналитикаРасходов,
| НеРаспределенные.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Статьи.ВариантРаспределенияРасходовУпр,
| Статьи.ВариантРаспределенияРасходовРегл,
| Статьи.ВариантРаспределенияРасходовНУ,
| НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ИЛИ Статьи.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаОстаток
| КОНЕЦ КАК СуммаОстаток,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ИЛИ Статьи.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаБезНДСОстаток
| КОНЕЦ КАК СуммаБезНДСОстаток,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ИЛИ Статьи.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаУпрОстаток
| КОНЕЦ КАК СуммаУпрОстаток,
| ВЫБОР
| КОГДА Статьи.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| ТОГДА НеРаспределенные.СуммаРеглОстаток - НеРаспределенные.ПостояннаяРазницаОстаток - НеРаспределенные.ВременнаяРазницаОстаток
| ИНАЧЕ
| 0
| КОНЕЦ +
| 0 КАК СуммаНУОстаток,
| ВЫБОР
| КОГДА НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД В (&ВариантыРаспределенияРасходов)
| ТОГДА НеРаспределенные.СуммаНДДОстаток
| ИНАЧЕ
| 0
| КОНЕЦ КАК СуммаНДДОстаток,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| ИЛИ Статьи.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаРеглОстаток
| КОНЕЦ КАК СуммаРеглОстаток,
| ВЫБОР
| КОГДА &ИсключитьИзКонтроляРазницы
| ТОГДА 0
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| ИЛИ Статьи.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.ПостояннаяРазницаОстаток
| КОНЕЦ +
| 0 КАК ПостояннаяРазницаОстаток,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаУУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаБУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаНУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаНДД
|
| ИЗ
| РасходыКРаспределениюСводноСтатьяЗаполнена КАК РасходыКРаспределениюСводно
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПрочиеРасходыОстатки КАК НеРаспределенные
| ПО РасходыКРаспределениюСводно.Организация = НеРаспределенные.Организация
| И РасходыКРаспределениюСводно.Подразделение = НеРаспределенные.Подразделение
| И РасходыКРаспределениюСводно.НаправлениеДеятельности = НеРаспределенные.НаправлениеДеятельности
| И РасходыКРаспределениюСводно.СтатьяРасходов = НеРаспределенные.СтатьяРасходов
| И РасходыКРаспределениюСводно.АналитикаРасходов = НеРаспределенные.АналитикаРасходов
|
| ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК Статьи
| ПО РасходыКРаспределениюСводно.СтатьяРасходов = Статьи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиРаспределенияСтатейНДД
| ПО НеРаспределенные.СтатьяРасходов = НастройкиРаспределенияСтатейНДД.СтатьяРасходов
| И &НеРаспределенные_ОбъектРаздельногоУчетаНДД = НастройкиРаспределенияСтатейНДД.ОбъектРаздельногоУчетаНДД
| И НеРаспределенные.Организация = НастройкиРаспределенияСтатейНДД.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО НеРаспределенные.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И НеРаспределенные.Организация = ДолиСписания.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ НормированиеНаСчетахУчетах КАК НормированиеНаСчетахУчетах
| ПО НеРаспределенные.Организация = НормированиеНаСчетахУчетах.Организация
| И НеРаспределенные.Подразделение = НормированиеНаСчетахУчетах.Подразделение
| И НеРаспределенные.НаправлениеДеятельности = НормированиеНаСчетахУчетах.НаправлениеДеятельности
| И НеРаспределенные.СтатьяРасходов = НормированиеНаСчетахУчетах.СтатьяРасходов
| И НеРаспределенные.АналитикаРасходов = НормированиеНаСчетахУчетах.АналитикаРасходов
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
|
| РегламентныеДвижения.Организация КАК Организация,
| РегламентныеДвижения.Подразделение КАК Подразделение,
| РегламентныеДвижения.СтатьяРасходов КАК СтатьяРасходов,
| РегламентныеДвижения.АналитикаРасходов КАК АналитикаРасходов,
| РегламентныеДвижения.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Статьи.ВариантРаспределенияРасходовУпр,
| Статьи.ВариантРаспределенияРасходовРегл,
| Статьи.ВариантРаспределенияРасходовНУ,
| НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| 0 КАК СуммаОстаток,
| 0 КАК СуммаБезНДСОстаток,
| 0 КАК СуммаУпрОстаток,
| - РегламентныеДвижения.ПостояннаяРазница КАК СуммаНУОстаток,
| 0 КАК СуммаНДДОстаток,
| 0 КАК СуммаРеглОстаток,
| РегламентныеДвижения.ПостояннаяРазница КАК ПостояннаяРазницаОстаток,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаУУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаБУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаНУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаНДД
| ИЗ
| ПланВидовХарактеристик.СтатьиРасходов КАК Статьи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РасходыКРаспределению КАК Расходы
| ПО Статьи.Ссылка = Расходы.СтатьяРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПрочиеРасходыРегламентныеДвижения КАК РегламентныеДвижения
| ПО (РегламентныеДвижения.Организация = Расходы.Организация)
| И (РегламентныеДвижения.Подразделение = Расходы.Подразделение)
| И (РегламентныеДвижения.НаправлениеДеятельности = Расходы.НаправлениеДеятельности)
| И (РегламентныеДвижения.СтатьяРасходов = Расходы.СтатьяРасходов)
| И (РегламентныеДвижения.АналитикаРасходов = Расходы.АналитикаРасходов)
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиРаспределенияСтатейНДД
| ПО РегламентныеДвижения.СтатьяРасходов = НастройкиРаспределенияСтатейНДД.СтатьяРасходов
| И &РегламентныеДвижения_ОбъектРаздельногоУчетаНДД = НастройкиРаспределенияСтатейНДД.ОбъектРаздельногоУчетаНДД
| И РегламентныеДвижения.Организация = НастройкиРаспределенияСтатейНДД.Организация
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
|
| Расходы.Организация,
| Расходы.Подразделение,
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.НаправлениеДеятельности,
| Статьи.ВариантРаспределенияРасходовУпр,
| Статьи.ВариантРаспределенияРасходовРегл,
| Статьи.ВариантРаспределенияРасходовНУ,
| НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.Сумма * ДокументыРаспределенияУУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияУУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.СуммаБезНДС * ДокументыРаспределенияУУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияУУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.СуммаУпр * ДокументыРаспределенияУУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияУУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияНУ.Документ ЕСТЬ NULL
| ТОГДА (
| ВЫБОР
| КОГДА ДокументыРаспределенияНУ.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И Статьи.ВариантРаспределенияРасходовНУ = Статьи.ВариантРаспределенияРасходовРегл
| ТОГДА
| Расходы.СуммаРегл - Расходы.ПостояннаяРазница - Расходы.ВременнаяРазница
| ИНАЧЕ
| 0
| КОНЕЦ) * ДокументыРаспределенияНУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияНУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ * -1,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияНДД.Документ ЕСТЬ NULL
| ТОГДА (
| ВЫБОР
| КОГДА ДокументыРаспределенияНДД.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД = Статьи.ВариантРаспределенияРасходовРегл
| ТОГДА
| Расходы.СуммаНДД
| ИНАЧЕ
| 0
| КОНЕЦ) * ДокументыРаспределенияНДД.ДоляСтоимостиНаНЗП / ДокументыРаспределенияНДД.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ * -1,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.СуммаРегл * ДокументыРаспределенияБУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияБУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА &ИсключитьИзКонтроляРазницы
| ТОГДА 0
| КОГДА НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.ПостояннаяРазница * ДокументыРаспределенияБУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияБУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| (НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL),
| (НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL),
| (НЕ ДокументыРаспределенияНУ.Документ ЕСТЬ NULL),
| (НЕ ДокументыРаспределенияНДД.Документ ЕСТЬ NULL)
| ИЗ
| РасходыКРаспределениюСводно КАК Расходы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК Статьи
| ПО Расходы.СтатьяРасходов = Статьи.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияУУ
| ПО Расходы.Организация = ДокументыРаспределенияУУ.Организация
| И Расходы.Подразделение = ДокументыРаспределенияУУ.Подразделение
| И Расходы.НаправлениеДеятельности = ДокументыРаспределенияУУ.НаправлениеДеятельности
| И Расходы.СтатьяРасходов = ДокументыРаспределенияУУ.СтатьяРасходов
| И Расходы.АналитикаРасходов = ДокументыРаспределенияУУ.АналитикаРасходов
| И ДокументыРаспределенияУУ.УправленческийУчет
| И (ДокументыРаспределенияУУ.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияБУ
| ПО Расходы.Организация = ДокументыРаспределенияБУ.Организация
| И Расходы.Подразделение = ДокументыРаспределенияБУ.Подразделение
| И Расходы.НаправлениеДеятельности = ДокументыРаспределенияБУ.НаправлениеДеятельности
| И Расходы.СтатьяРасходов = ДокументыРаспределенияБУ.СтатьяРасходов
| И Расходы.АналитикаРасходов = ДокументыРаспределенияБУ.АналитикаРасходов
| И ДокументыРаспределенияБУ.РегламентированныйУчет
| И (ДокументыРаспределенияБУ.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияНУ
| ПО Расходы.Организация = ДокументыРаспределенияНУ.Организация
| И Расходы.Подразделение = ДокументыРаспределенияНУ.Подразделение
| И Расходы.НаправлениеДеятельности = ДокументыРаспределенияНУ.НаправлениеДеятельности
| И Расходы.СтатьяРасходов = ДокументыРаспределенияНУ.СтатьяРасходов
| И Расходы.АналитикаРасходов = ДокументыРаспределенияНУ.АналитикаРасходов
| И ДокументыРаспределенияНУ.НалоговыйУчет
| И (ДокументыРаспределенияНУ.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияНДД
| ПО Расходы.Организация = ДокументыРаспределенияНДД.Организация
| И Расходы.Подразделение = ДокументыРаспределенияНДД.Подразделение
| И Расходы.НаправлениеДеятельности = ДокументыРаспределенияНДД.НаправлениеДеятельности
| И Расходы.СтатьяРасходов = ДокументыРаспределенияНДД.СтатьяРасходов
| И Расходы.АналитикаРасходов = ДокументыРаспределенияНДД.АналитикаРасходов
| И ДокументыРаспределенияНДД.НДД
| И (ДокументыРаспределенияНДД.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиРаспределенияСтатейНДД
| ПО Расходы.СтатьяРасходов = НастройкиРаспределенияСтатейНДД.СтатьяРасходов
| И &Расходы_ОбъектРаздельногоУчетаНДД = НастройкиРаспределенияСтатейНДД.ОбъектРаздельногоУчетаНДД
| И Расходы.Организация = НастройкиРаспределенияСтатейНДД.Организация
| ГДЕ
| НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ИЛИ НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL
| ИЛИ НЕ ДокументыРаспределенияНУ.Документ ЕСТЬ NULL
| ИЛИ НЕ ДокументыРаспределенияНДД.Документ ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
|
| Расходы.Организация,
| Расходы.Подразделение,
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.НаправлениеДеятельности,
| Статьи.ВариантРаспределенияРасходовУпр,
| Статьи.ВариантРаспределенияРасходовРегл,
| Статьи.ВариантРаспределенияРасходовНУ,
| НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| 0 КАК СуммаОстаток,
| 0 КАК СуммаБезНДСОстаток,
| 0 КАК СуммаУпрОстаток,
| ВЫБОР
| КОГДА НЕ ДолиСписания.Транспортные
| ТОГДА 0
| ИНАЧЕ
| ВЫРАЗИТЬ((Расходы.СуммаРегл - Расходы.ПостояннаяРазница - Расходы.ВременнаяРазница) * (ДолиСписания.ДоляСписания - 1) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК СуммаНУОстаток,
| ВЫБОР
| КОГДА НЕ ДолиСписания.Транспортные
| ТОГДА 0
| ИНАЧЕ
| ВЫРАЗИТЬ((Расходы.СуммаНДД) * (ДолиСписания.ДоляСписания - 1) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК СуммаНДДОстаток,
| ВЫБОР
| КОГДА НЕ ДолиСписания.Транспортные
| ТОГДА 0
| ИНАЧЕ
| ВЫРАЗИТЬ(Расходы.СуммаРегл * (ДолиСписания.ДоляСписания - 1) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК СуммаРеглОстаток,
| ВЫБОР
| КОГДА НЕ ДолиСписания.Транспортные
| ТОГДА 0
| ИНАЧЕ
| ВЫРАЗИТЬ(Расходы.ПостояннаяРазница * (ДолиСписания.ДоляСписания - 1) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК ПостояннаяРазницаОстаток,
| ЛОЖЬ,
| ВЫБОР
| КОГДА ВЫРАЗИТЬ(Расходы.СуммаРегл * ДолиСписания.ДоляСписания КАК ЧИСЛО(31, 2)) = 0
| И ВЫРАЗИТЬ(Расходы.ПостояннаяРазница * ДолиСписания.ДоляСписания КАК ЧИСЛО(31, 2)) = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ
| ЕСТЬNULL(ВозможныеДвижения.ЕстьДвиженияНаФинансовыйРезультатРегл, ЛОЖЬ)
| КОНЕЦ,
| ВЫБОР
| КОГДА ВЫРАЗИТЬ(
| (Расходы.СуммаРегл - Расходы.ПостояннаяРазница - Расходы.ВременнаяРазница) * ДолиСписания.ДоляСписания КАК ЧИСЛО(31, 2)) = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ
| ЕСТЬNULL(ВозможныеДвижения.ЕстьДвиженияНаФинансовыйРезультатНал, ЛОЖЬ)
| КОНЕЦ,
| ВЫБОР
| КОГДА ВЫРАЗИТЬ(
| (Расходы.СуммаНДД) * ДолиСписания.ДоляСписания КАК ЧИСЛО(31, 2)) = 0
| ТОГДА ЛОЖЬ
| ИНАЧЕ
| ЕСТЬNULL(ВозможныеДвижения.ЕстьДвиженияНаФинансовыйРезультатНДД, ЛОЖЬ)
| КОНЕЦ
| ИЗ
| РасходыКРаспределению КАК Расходы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК Статьи
| ПО Расходы.СтатьяРасходов = Статьи.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО Расходы.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И Расходы.Организация = ДолиСписания.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ ДвиженияСтатейРасходов КАК ВозможныеДвижения
| ПО Расходы.Организация = ВозможныеДвижения.Организация
| И Расходы.Подразделение = ВозможныеДвижения.Подразделение
| И Расходы.НаправлениеДеятельности = ВозможныеДвижения.НаправлениеДеятельности
| И Расходы.СтатьяРасходов = ВозможныеДвижения.СтатьяРасходов
| И Расходы.АналитикаРасходов = ВозможныеДвижения.АналитикаРасходов
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДД КАК НастройкиРаспределенияСтатейНДД
| ПО Расходы.СтатьяРасходов = НастройкиРаспределенияСтатейНДД.СтатьяРасходов
| И &Расходы_ОбъектРаздельногоУчетаНДД = НастройкиРаспределенияСтатейНДД.ОбъектРаздельногоУчетаНДД
| И Расходы.Организация = НастройкиРаспределенияСтатейНДД.Организация
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
|
| НеРаспределенные.Организация КАК Организация,
| НеРаспределенные.Подразделение КАК Подразделение,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка) КАК СтатьяРасходов,
| НеРаспределенные.АналитикаРасходов КАК АналитикаРасходов,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка) КАК НаправлениеДеятельности,
| Т.ВариантРаспределенияРасходовУпр,
| Т.ВариантРаспределенияРасходовРегл,
| Т.ВариантРаспределенияРасходовНУ,
| НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ Т.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаОстаток
| КОНЕЦ КАК СуммаОстаток,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ Т.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаБезНДСОстаток
| КОНЕЦ КАК СуммаБезНДСОстаток,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ Т.ВариантРаспределенияРасходовУпр В (&ВариантыРаспределенияРасходов)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаУпрОстаток
| КОНЕЦ КАК СуммаУпрОстаток,
| ВЫБОР
| КОГДА &ИсключитьИзКонтроляРазницы
| ТОГДА 0
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ Т.ВариантРаспределенияРасходовНУ В (&ВариантыРаспределенияРасходов)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаРеглОстаток - НеРаспределенные.ПостояннаяРазницаОстаток - НеРаспределенные.ВременнаяРазницаОстаток
| КОНЕЦ КАК СуммаНУОстаток,
| ВЫБОР
| КОГДА НЕ (Статьи.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ Статьи.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат))
| ТОГДА 0
| КОГДА НЕ НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД В (&ВариантыРаспределенияРасходов)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаНДДОстаток
| КОНЕЦ КАК СуммаНДДОстаток,
| ВЫБОР
| КОГДА НЕ Статьи.ВариантРаспределенияРасходовРегл = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ Т.ВариантРаспределенияРасходовРегл В (&ВариантыРаспределенияРасходов)
| ТОГДА 0
| ИНАЧЕ
| НеРаспределенные.СуммаРеглОстаток
| КОНЕЦ КАК СуммаРеглОстаток,
| ВЫБОР
| КОГДА &ИсключитьИзКонтроляРазницы
| ТОГДА 0
| КОГДА Статьи.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И Т.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА НеРаспределенные.ПостояннаяРазницаОстаток
| ИНАЧЕ
| 0
| КОНЕЦ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаУУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаБУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаНУ,
| ЛОЖЬ КАК ЕстьПогрешностьРасчетаНДД
| ИЗ
| РасходыКРаспределениюСводноОВЗ КАК РасходыКРаспределениюСводно
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтПрочиеРасходыОстатки КАК НеРаспределенные
| ПО РасходыКРаспределениюСводно.Организация = НеРаспределенные.Организация
| И РасходыКРаспределениюСводно.Подразделение = НеРаспределенные.Подразделение
| И РасходыКРаспределениюСводно.АналитикаРасходов = НеРаспределенные.АналитикаРасходов
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыВозникновенияЗатрат КАК Т
| ПО РасходыКРаспределениюСводно.АналитикаРасходов = Т.Ссылка
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК Статьи
| ПО НеРаспределенные.СтатьяРасходов = Статьи.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДДПоОВЗ КАК НастройкиРаспределенияСтатейНДД
| ПО НеРаспределенные.АналитикаРасходов = НастройкиРаспределенияСтатейНДД.ОВЗ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
|
| Расходы.Организация,
| Расходы.Подразделение,
| ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка),
| Расходы.АналитикаРасходов,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| Т.ВариантРаспределенияРасходовУпр,
| Т.ВариантРаспределенияРасходовРегл,
| Т.ВариантРаспределенияРасходовНУ,
| НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.Сумма * ДокументыРаспределенияУУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияУУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.СуммаБезНДС * ДокументыРаспределенияУУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияУУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.СуммаУпр * ДокументыРаспределенияУУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияУУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА &ИсключитьИзКонтроляРазницы
| ТОГДА 0
| КОГДА НЕ ДокументыРаспределенияНУ.Документ ЕСТЬ NULL
| ТОГДА (
| ВЫБОР
| КОГДА ДокументыРаспределенияНУ.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И Т.ВариантРаспределенияРасходовНУ = Т.ВариантРаспределенияРасходовРегл
| ТОГДА
| Расходы.СуммаРегл - Расходы.ПостояннаяРазница - Расходы.ВременнаяРазница
| ИНАЧЕ
| 0
| КОНЕЦ) * ДокументыРаспределенияНУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияНУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ * -1,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияНДД.Документ ЕСТЬ NULL
| ТОГДА (
| ВЫБОР
| КОГДА ДокументыРаспределенияНДД.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеСтатейРасходовПоЭтапамПроизводства)
| И НастройкиРаспределенияСтатейНДД.ВариантРаспределенияРасходовНДД = Т.ВариантРаспределенияРасходовРегл
| ТОГДА
| Расходы.СуммаНДД
| ИНАЧЕ
| 0
| КОНЕЦ) * ДокументыРаспределенияНДД.ДоляСтоимостиНаНЗП / ДокументыРаспределенияНДД.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ * -1,
| ВЫБОР
| КОГДА НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.СуммаРегл * ДокументыРаспределенияБУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияБУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА &ИсключитьИзКонтроляРазницы
| ТОГДА 0
| КОГДА НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL
| ТОГДА -Расходы.ПостояннаяРазница * ДокументыРаспределенияБУ.ДоляСтоимостиНаНЗП / ДокументыРаспределенияБУ.ВсегоДолейСтоимости
| ИНАЧЕ 0
| КОНЕЦ,
| (НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL),
| (НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL),
| (НЕ ДокументыРаспределенияНУ.Документ ЕСТЬ NULL),
| (НЕ ДокументыРаспределенияНДД.Документ ЕСТЬ NULL)
| ИЗ
| РасходыКРаспределениюСводно КАК Расходы
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РасходыКРаспределениюСводноОВЗ КАК РасходыКРаспределениюСводноОВЗ
| ПО Расходы.Организация = РасходыКРаспределениюСводноОВЗ.Организация
| И Расходы.Подразделение = РасходыКРаспределениюСводноОВЗ.Подразделение
| И Расходы.АналитикаРасходов = РасходыКРаспределениюСводноОВЗ.АналитикаРасходов
| И Расходы.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
|
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияУУ
| ПО Расходы.Организация = ДокументыРаспределенияУУ.Организация
| И Расходы.Подразделение = ДокументыРаспределенияУУ.Подразделение
| И ДокументыРаспределенияУУ.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Расходы.АналитикаРасходов = ДокументыРаспределенияУУ.АналитикаРасходов
| И ДокументыРаспределенияУУ.УправленческийУчет
| И (ДокументыРаспределенияУУ.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияБУ
| ПО Расходы.Организация = ДокументыРаспределенияБУ.Организация
| И Расходы.Подразделение = ДокументыРаспределенияБУ.Подразделение
| И ДокументыРаспределенияБУ.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Расходы.АналитикаРасходов = ДокументыРаспределенияБУ.АналитикаРасходов
| И ДокументыРаспределенияБУ.РегламентированныйУчет
| И (ДокументыРаспределенияБУ.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияНУ
| ПО Расходы.Организация = ДокументыРаспределенияНУ.Организация
| И Расходы.Подразделение = ДокументыРаспределенияНУ.Подразделение
| И ДокументыРаспределенияНУ.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Расходы.АналитикаРасходов = ДокументыРаспределенияНУ.АналитикаРасходов
| И ДокументыРаспределенияНУ.НалоговыйУчет
| И (ДокументыРаспределенияНУ.ОставитьВНЗП)
| ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределенияНДД
| ПО Расходы.Организация = ДокументыРаспределенияНДД.Организация
| И Расходы.Подразделение = ДокументыРаспределенияНДД.Подразделение
| И ДокументыРаспределенияНДД.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И Расходы.АналитикаРасходов = ДокументыРаспределенияНДД.АналитикаРасходов
| И ДокументыРаспределенияНДД.НДД
| И (ДокументыРаспределенияНДД.ОставитьВНЗП)
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОбъектыВозникновенияЗатрат КАК Т
| ПО Расходы.АналитикаРасходов = Т.Ссылка
|
| ЛЕВОЕ СОЕДИНЕНИЕ НастройкиРаспределенияСтатейНДДПоОВЗ КАК НастройкиРаспределенияСтатейНДД
| ПО Расходы.АналитикаРасходов = НастройкиРаспределенияСтатейНДД.ОВЗ
|
| ГДЕ
| НЕ ДокументыРаспределенияУУ.Документ ЕСТЬ NULL
| ИЛИ НЕ ДокументыРаспределенияБУ.Документ ЕСТЬ NULL
| ИЛИ НЕ ДокументыРаспределенияНУ.Документ ЕСТЬ NULL
| ИЛИ НЕ ДокументыРаспределенияНДД.Документ ЕСТЬ NULL
|";
КонецФункции
#КонецОбласти
#Область ФормированиеДокументов
Функция ПодобратьПодходящийДокумент(ДокументыКПроведению, ВидУчета, ПараметрыЗаполнения)
ПодходящийДокумент = Неопределено;
Для Каждого ДокументРаспределения Из ДокументыКПроведению Цикл
ДокументНайден = Ложь;
Если ВидУчета = "УправленческийУчет" Тогда
Если ДокументРаспределения.РегламентированныйУчет Тогда
ДокументНайден = ПроверитьСоответствиеНастроекУпрРегл(ПараметрыЗаполнения);
ИначеЕсли ДокументРаспределения.НалоговыйУчет Тогда
ДокументНайден = ПроверитьСоответствиеНастроекУпрНал(ПараметрыЗаполнения);
КонецЕсли;
ИначеЕсли ВидУчета = "РегламентированныйУчет" Тогда
Если ДокументРаспределения.УправленческийУчет Тогда
ДокументНайден = ПроверитьСоответствиеНастроекУпрРегл(ПараметрыЗаполнения);
ИначеЕсли ДокументРаспределения.НалоговыйУчет Тогда
ДокументНайден = ПроверитьСоответствиеНастроекРеглНал(ПараметрыЗаполнения);
КонецЕсли;
ИначеЕсли ВидУчета = "НалоговыйУчет" Тогда
Если ДокументРаспределения.РегламентированныйУчет Тогда
ДокументНайден = ПроверитьСоответствиеНастроекРеглНал(ПараметрыЗаполнения);
ИначеЕсли ДокументРаспределения.УправленческийУчет Тогда
ДокументНайден = ПроверитьСоответствиеНастроекУпрНал(ПараметрыЗаполнения);
КонецЕсли;
ИначеЕсли ВидУчета = "НДД" Тогда
ДокументНайден = РаспределениеПрочихЗатратЛокализация.ПодобратьПодходящийДокумент(
ДокументРаспределения,
ВидУчета,
ПараметрыЗаполнения
);
КонецЕсли;
Если ДокументНайден Тогда
ПодходящийДокумент = ДокументРаспределения;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ПодходящийДокумент;
КонецФункции
Функция ПроверитьСоответствиеНастроекУпрРегл(ПараметрыЗаполнения)
НастройкиСоответствуют =
Не РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ПараметрыЗаполнения.Дата)
И ПараметрыЗаполнения.ВариантРаспределенияРегл = ПараметрыЗаполнения.ВариантРаспределенияУпр
И ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = ПараметрыЗаполнения.ВариантРаспределенияУпр
И ПараметрыЗаполнения.ПравилоРаспределенияРегл = ПараметрыЗаполнения.ПравилоРаспределенияУпр
И ПараметрыЗаполнения.ДокументУпр = ПараметрыЗаполнения.ДокументРегл;
Возврат НастройкиСоответствуют;
КонецФункции
Функция ПроверитьСоответствиеНастроекУпрНал(ПараметрыЗаполнения)
НастройкиСоответствуют =
Не РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ПараметрыЗаполнения.Дата)
И ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияУпр
И ПараметрыЗаполнения.ВариантРаспределенияНал = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияУпр
И (ПараметрыЗаполнения.ПравилоРаспределенияНал = ПараметрыЗаполнения.ПравилоРаспределенияУпр
ИЛИ НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределенияНУ(ПараметрыЗаполнения.ВариантРаспределенияНал)
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияУпр = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияУпр = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияУпр = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
И ПараметрыЗаполнения.ДокументУпр = ПараметрыЗаполнения.ДокументНал;
Возврат НастройкиСоответствуют;
КонецФункции
Функция ПроверитьСоответствиеНастроекРеглНал(ПараметрыЗаполнения)
НастройкиСоответствуют =
Не РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22(ПараметрыЗаполнения.Дата)
И ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияРегл
И ПараметрыЗаполнения.ВариантРаспределенияНал = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияНал = ПараметрыЗаполнения.ВариантРаспределенияРегл
И (ПараметрыЗаполнения.ПравилоРаспределенияНал = ПараметрыЗаполнения.ПравилоРаспределенияРегл
ИЛИ НЕ Перечисления.ВариантыРаспределенияРасходов.ВариантИспользуетПравилоРаспределенияНУ(ПараметрыЗаполнения.ВариантРаспределенияНал)
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьТоваров
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаСебестоимостьПроизводства
ИЛИ ПараметрыЗаполнения.ВариантРаспределенияРегл = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
И ПараметрыЗаполнения.ДокументРегл = ПараметрыЗаполнения.ДокументНал;
Возврат НастройкиСоответствуют;
КонецФункции
Функция ПолучитьНастройкиРаспределенияПоДокументу(ДокументРаспределения)
ИсточникВариантовРаспределения = ДокументРаспределения.СтатьяРасходов;
РаспределениеИзОВЗ = Ложь;
Если Не ЗначениеЗаполнено(ИсточникВариантовРаспределения)
И ТипЗнч(ДокументРаспределения.АналитикаРасходов) = Тип("СправочникСсылка.ОбъектыВозникновенияЗатрат")
Тогда
ИсточникВариантовРаспределения = ДокументРаспределения.АналитикаРасходов;
РаспределениеИзОВЗ = Истина;
КонецЕсли;
НастройкиРаспределения = ОбщегоНазначенияУТВызовСервера.ЗначенияРеквизитовОбъекта(ИсточникВариантовРаспределения,
"ВариантРаспределенияРасходовУпр,ВариантРаспределенияРасходовРегл,ПравилоРаспределенияРасходовУпр,ПравилоРаспределенияРасходовРегл
|,ВариантРаспределенияРасходовНУ,ПравилоРаспределенияРасходовНУ
|");
Если НастройкиРаспределения.ВариантРаспределенияРасходовНУ = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты
И НастройкиРаспределения.ВариантРаспределенияРасходовНУ = НастройкиРаспределения.ВариантРаспределенияРасходовРегл
Тогда
НастройкиРаспределения.ПравилоРаспределенияРасходовНУ = НастройкиРаспределения.ПравилоРаспределенияРасходовРегл;
КонецЕсли;
Если РасчетСебестоимостиЛокализация.ПолучитьФункциональнуюОпциюУчетПоНДД() Тогда
НастройкиРаспределенияНДД = РасчетСебестоимостиЛокализация.ПолучитьНастройкиРаспределенияПоДокументу(ДокументРаспределения, РаспределениеИзОВЗ);
Если ЗначениеЗаполнено(НастройкиРаспределенияНДД) Тогда
НастройкиРаспределения.Вставить("ВариантРаспределенияРасходовНДД", НастройкиРаспределенияНДД.ВариантРаспределенияРасходовНДД);
НастройкиРаспределения.Вставить("ПравилоРаспределенияРасходовНДД", НастройкиРаспределенияНДД.ПравилоРаспределенияРасходовНДД);
Иначе
НастройкиРаспределения.Вставить("ВариантРаспределенияРасходовНДД", Перечисления.ВариантыРаспределенияРасходов.ПустаяСсылка());
НастройкиРаспределения.Вставить("ПравилоРаспределенияРасходовНДД", Справочники.ПравилаРаспределенияРасходов.ПустаяСсылка());
КонецЕсли;
КонецЕсли;
Возврат НастройкиРаспределения;
КонецФункции
#КонецОбласти
#Область ТекстыЗапросов
#Область РаспределениеРасходовНаФинансовыйРезультат
Функция ТекстПредварительныеОстаткиРасходов()
ТекстЗапроса =
"ВЫБРАТЬ
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходов КАК СтатьяРасходов,
| Расходы.АналитикаРасходов КАК АналитикаРасходов,
| Расходы.СуммаОстаток КАК Сумма,
| Расходы.СуммаБезНДСОстаток КАК СуммаБезНДС,
| Расходы.СуммаРеглОстаток КАК СуммаРегл,
| Расходы.ПостояннаяРазницаОстаток +
| 0 КАК ПостояннаяРазница,
| Расходы.ВременнаяРазницаОстаток +
| 0 КАК ВременнаяРазница,
| Расходы.СуммаРеглОстаток - Расходы.ПостояннаяРазницаОстаток - Расходы.ВременнаяРазницаОстаток КАК СуммаНУ,
| Расходы.СуммаУпрОстаток КАК СуммаУпр
|ПОМЕСТИТЬ ПредварительныеОстаткиРасходов
|ИЗ
| РегистрНакопления.ПрочиеРасходы.Остатки(
| &ГраницаПериода,
| (Организация, Подразделение, НаправлениеДеятельности, СтатьяРасходов, АналитикаРасходов) В
| (ВЫБРАТЬ
| НастроенныеРасходы.Организация,
| НастроенныеРасходы.Подразделение,
| НастроенныеРасходы.НаправлениеДеятельности,
| НастроенныеРасходы.СтатьяРасходов,
| НастроенныеРасходы.АналитикаРасходов
| ИЗ
| Регистраторы КАК НастроенныеРасходы
| ГДЕ НЕ НастроенныеРасходы.ЭтоОВЗ
| )
| ИЛИ
| (Организация, Подразделение, АналитикаРасходов) В
| (ВЫБРАТЬ
| НастроенныеРасходы.Организация,
| НастроенныеРасходы.Подразделение,
| НастроенныеРасходы.АналитикаРасходов
| ИЗ
| Регистраторы КАК НастроенныеРасходы
| ГДЕ НастроенныеРасходы.ЭтоОВЗ
| )
|) КАК Расходы
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| НаправлениеДеятельности,
| Подразделение,
| Организация";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстОстаткиРасходов(РежимОтладкиПоИсточникам)
ТекстыВложенногоЗапроса = Новый Массив;
#Область ИнициализацияВременнойТаблицыОстаткиРасходовПредварительная
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 0
|
| НЕОПРЕДЕЛЕНО КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК СуммаНУ,
| 0 КАК СуммаУпр
|ПОМЕСТИТЬ ОстаткиРасходовПредварительная";
Если РежимОтладкиПоИсточникам Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ПредварительныеОстаткиРасходов
ТекстЗапроса =
"ВЫБРАТЬ
|
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходов КАК СтатьяРасходов,
| Расходы.АналитикаРасходов КАК АналитикаРасходов,
| Расходы.Сумма КАК Сумма,
| Расходы.СуммаБезНДС КАК СуммаБезНДС,
| Расходы.СуммаРегл КАК СуммаРегл,
| Расходы.ПостояннаяРазница КАК ПостояннаяРазница,
| Расходы.ВременнаяРазница КАК ВременнаяРазница,
| Расходы.СуммаНУ КАК СуммаНУ,
| Расходы.СуммаУпр КАК СуммаУпр
|ИЗ ПредварительныеОстаткиРасходов КАК Расходы";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область ТекущиеДвижения
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| ТекущиеДвижения.Организация,
| ТекущиеДвижения.Подразделение,
| ТекущиеДвижения.НаправлениеДеятельности,
| ТекущиеДвижения.СтатьяРасходов,
| ТекущиеДвижения.АналитикаРасходов,
| ТекущиеДвижения.Сумма КАК Сумма,
| ТекущиеДвижения.СуммаБезНДС КАК СуммаБезНДС,
| ТекущиеДвижения.СуммаРегл КАК СуммаРегл,
| ТекущиеДвижения.ПостояннаяРазница КАК ПостояннаяРазница,
| ТекущиеДвижения.ВременнаяРазница КАК ВременнаяРазница,
| ТекущиеДвижения.СуммаРегл - ТекущиеДвижения.ПостояннаяРазница - ТекущиеДвижения.ВременнаяРазница КАК СуммаНУ,
| ТекущиеДвижения.СуммаУпр КАК СуммаУпр
|ИЗ
| ПредварительныеОстаткиРасходов КАК Остатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПрочиеРасходы КАК ТекущиеДвижения
| ПО ТекущиеДвижения.Организация = Остатки.Организация
| И ТекущиеДвижения.Подразделение = Остатки.Подразделение
| И ТекущиеДвижения.НаправлениеДеятельности = Остатки.НаправлениеДеятельности
| И ТекущиеДвижения.СтатьяРасходов = Остатки.СтатьяРасходов
| И ТекущиеДвижения.АналитикаРасходов = Остатки.АналитикаРасходов
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК РеквизитыДокументаРаспределения
| ПО РеквизитыДокументаРаспределения.Ссылка = ТекущиеДвижения.Регистратор
|ГДЕ
| НЕ &ПредварительныйРасчет И
| ТекущиеДвижения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И ТекущиеДвижения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
| И ТекущиеДвижения.Активность
| И (
| ТекущиеДвижения.Регистратор ССЫЛКА Документ.РаспределениеПрочихЗатрат
| И ТекущиеДвижения.ХозяйственнаяОперация В (
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ))
| ИЛИ ТекущиеДвижения.Регистратор ССЫЛКА Документ.РаспределениеДоходовПоНаправлениямДеятельности
| И ТекущиеДвижения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| ИЛИ ТекущиеДвижения.Регистратор ССЫЛКА Документ.РегламентнаяОперация
| И НЕ ТекущиеДвижения.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.СписаниеКосвенныхРасходов)
| )";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область ТекущиеДвиженияУказанногоДокумента
ТекстЗапроса =
"ВЫБРАТЬ
|
| ТекущиеДвижения.Организация,
| ТекущиеДвижения.Подразделение,
| ТекущиеДвижения.НаправлениеДеятельности,
| ТекущиеДвижения.СтатьяРасходов,
| ТекущиеДвижения.АналитикаРасходов,
| ТекущиеДвижения.Сумма,
| ТекущиеДвижения.СуммаБезНДС,
| ТекущиеДвижения.СуммаРегл,
| ТекущиеДвижения.ПостояннаяРазница,
| ТекущиеДвижения.ВременнаяРазница,
| ТекущиеДвижения.СуммаРегл
| - ТекущиеДвижения.ПостояннаяРазница
| - ТекущиеДвижения.ВременнаяРазница,
| ТекущиеДвижения.СуммаУпр
|ИЗ
| РегистрНакопления.ПрочиеРасходы КАК ТекущиеДвижения
|ГДЕ
| &ПредварительныйРасчет И
| ТекущиеДвижения.Регистратор = &ДокументРаспределения";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
СтрокаВложенногоЗапроса = СтрСоединить(ТекстыВложенногоЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстЗапроса =
"ВЫБРАТЬ
| Расходы.Организация КАК Организация,
| Расходы.Подразделение КАК Подразделение,
| Расходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| Расходы.СтатьяРасходов КАК СтатьяРасходов,
| Расходы.АналитикаРасходов КАК АналитикаРасходов,
| СУММА(Расходы.Сумма) КАК Сумма,
| СУММА(Расходы.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(Расходы.СуммаРегл) КАК СуммаРегл,
| СУММА(Расходы.ПостояннаяРазница) КАК ПостояннаяРазница,
| СУММА(Расходы.ВременнаяРазница) КАК ВременнаяРазница,
| СУММА(Расходы.СуммаНУ) КАК СуммаНУ,
| СУММА(Расходы.СуммаУпр) КАК СуммаУпр
|ПОМЕСТИТЬ ОстаткиРасходов
|ИЗ
| ОстаткиРасходовПредварительная КАК Расходы
|
|СГРУППИРОВАТЬ ПО
| Расходы.СтатьяРасходов,
| Расходы.АналитикаРасходов,
| Расходы.НаправлениеДеятельности,
| Расходы.Подразделение,
| Расходы.Организация
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| НаправлениеДеятельности,
| Подразделение,
| Организация";
Если РежимОтладкиПоИсточникам Тогда
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(СтрокаВложенногоЗапроса);
ТекстыЗапроса.Добавить(ТекстЗапроса);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ОстаткиРасходовПредварительная", "(" + СтрокаВложенногоЗапроса + ")");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстСписаниеНУ()
ТекстыЗапросаОбъединения = Новый Массив;
#Область НулеваяВыборкаПомещениеВоВременнуюТаблицу
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 0
|
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Дата,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ) КАК ХозяйственнаяОперация
|ПОМЕСТИТЬ СписаниеНУ";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет") Тогда
Возврат ТекстЗапроса;
КонецЕсли;
#Область НормируемыеРасходы
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| Регистраторы.Регистратор КАК Регистратор,
| ОстаткиРасходов.Организация КАК Организация,
| Регистраторы.Дата КАК Дата,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫБОР
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| ИНАЧЕ 0
| КОНЕЦ
| КАК ПостояннаяРазница,
| ВЫБОР
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ
| КАК ВременнаяРазница,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ) КАК ХозяйственнаяОперация
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК ИсточникНастроек
| ПО ОстаткиРасходов.СтатьяРасходов = ИсточникНастроек.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| Регистраторы.НалоговыйУчет
| И ИсточникНастроек.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И ДолиСписания.Нормируемые
| И ОстаткиРасходов.СуммаНУ <> 0";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
#Область НеНормируемыеРасходы
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| Регистраторы.Регистратор КАК Регистратор,
| ОстаткиРасходов.Организация КАК Организация,
| Регистраторы.Дата КАК Дата,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫРАЗИТЬ (
| ВЫБОР
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА 0
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| ИНАЧЕ 0
| КОНЕЦ
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ПостояннаяРазница,
| ВЫРАЗИТЬ (
| ВЫБОР
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница + ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ВременнаяРазница,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| КАК ХозяйственнаяОперация
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК ИсточникНастроек
| ПО ОстаткиРасходов.СтатьяРасходов = ИсточникНастроек.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| НЕ Регистраторы.РегламентированныйУчет И Регистраторы.НалоговыйУчет
| И ИсточникНастроек.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И НЕ ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ)
| И ОстаткиРасходов.СуммаНУ <> 0";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
#Область НеНормируемыеРасходыОВЗ
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| Регистраторы.Регистратор КАК Регистратор,
| ОстаткиРасходов.Организация КАК Организация,
| Регистраторы.Дата КАК Дата,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫРАЗИТЬ (
| ВЫБОР
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА 0
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| ИНАЧЕ 0
| КОНЕЦ
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ПостояннаяРазница,
| ВЫРАЗИТЬ (
| ВЫБОР
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница + ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ВременнаяРазница,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности)
| КАК ХозяйственнаяОперация
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И Регистраторы.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| И Регистраторы.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтОВЗ КАК ИсточникНастроек
| ПО ОстаткиРасходов.АналитикаРасходов = ИсточникНастроек.ОВЗ
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| НЕ Регистраторы.РегламентированныйУчет И Регистраторы.НалоговыйУчет
| И Регистраторы.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| И ИсточникНастроек.ВариантРаспределенияРасходовНУ = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| И НЕ ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ)
| И ОстаткиРасходов.СуммаНУ <> 0";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
ТекстЗапроса = СтрСоединить(ТекстыЗапросаОбъединения, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстРасходыКРаспределению(РежимОтладкиПоИсточникам)
ТекстыВложенногоЗапроса = Новый Массив;
#Область ИнициализацияВременнойТаблицыРасходыКРаспределениюПредварительная
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 0
|
| НЕОПРЕДЕЛЕНО КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК Дата,
| НЕОПРЕДЕЛЕНО КАК ТипБазыРаспределения,
| ЛОЖЬ КАК ТребуетсяРаспределение
|ПОМЕСТИТЬ РасходыКРаспределениюПредварительная";
Если РежимОтладкиПоИсточникам Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область РаспределениеУУиБУ
ТекстЗапроса =
"ВЫБРАТЬ
|
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫБОР
| КОГДА НЕ Регистраторы.УправленческийУчет
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| ИНАЧЕ ОстаткиРасходов.Сумма
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА НЕ Регистраторы.УправленческийУчет
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| ИНАЧЕ ОстаткиРасходов.СуммаБезНДС
| КОНЕЦ КАК СуммаБезНДС,
| ВЫБОР
| КОГДА НЕ Регистраторы.УправленческийУчет
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| ИНАЧЕ ОстаткиРасходов.СуммаУпр
| КОНЕЦ КАК СуммаУпр,
| ВЫБОР
| КОГДА НЕ Регистраторы.РегламентированныйУчет
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ВЫРАЗИТЬ(ОстаткиРасходов.СуммаРегл * ДолиСписания.ДоляСписания КАК ЧИСЛО(31, 2))
| ИНАЧЕ ОстаткиРасходов.СуммаРегл
| КОНЕЦ КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.Дата КАК Дата,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| Регистраторы.ТребуетсяРаспределение
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК ИсточникНастроек
| ПО ОстаткиРасходов.СтатьяРасходов = ИсточникНастроек.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| (НЕ(ОстаткиРасходов.Сумма = 0 И ОстаткиРасходов.СуммаБезНДС = 0
| И ОстаткиРасходов.СуммаУпр = 0) И Регистраторы.УправленческийУчет
| И ИсточникНастроек.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))
| ИЛИ
| (НЕ ОстаткиРасходов.СуммаРегл = 0 И Регистраторы.РегламентированныйУчет
| И ИсточникНастроек.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область РаспределениеПРиВРБезРеглУчета
ТекстЗапроса =
"ВЫБРАТЬ
|
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| ВЫРАЗИТЬ (ОстаткиРасходов.ПостояннаяРазница КАК ЧИСЛО(31, 2)) КАК ПостояннаяРазница,
| ВЫРАЗИТЬ (ОстаткиРасходов.ВременнаяРазница КАК ЧИСЛО(31, 2)) КАК ВременнаяРазница,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.Дата КАК Дата,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| Регистраторы.ТребуетсяРаспределение
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК ИсточникНастроек
| ПО ОстаткиРасходов.СтатьяРасходов = ИсточникНастроек.Ссылка
|ГДЕ
| Регистраторы.РегламентированныйУчет";
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет") Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область РаспределениеПРиВР
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| ВЫРАЗИТЬ (
| (ВЫБОР
| КОГДА ОстаткиРасходов.СуммаНУ = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ
| + ВЫБОР
| КОГДА НЕ Регистраторы.НалоговыйУчет
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовНУ =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ИЛИ ОстаткиРасходов.СуммаНУ = 0
| ТОГДА 0
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА 0
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| ИНАЧЕ 0
| КОНЕЦ)
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ПостояннаяРазница,
| ВЫРАЗИТЬ (
| (ВЫБОР
| КОГДА ОстаткиРасходов.СуммаНУ = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.СуммаРегл - ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ
| + ВЫБОР
| КОГДА НЕ Регистраторы.НалоговыйУчет ИЛИ ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовНУ =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ИЛИ ОстаткиРасходов.СуммаНУ = 0
| ТОГДА 0
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница + ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ)
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ВременнаяРазница,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.Дата КАК Дата,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| Регистраторы.ТребуетсяРаспределение
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК ИсточникНастроек
| ПО ОстаткиРасходов.СтатьяРасходов = ИсточникНастроек.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| Регистраторы.РегламентированныйУчет И Регистраторы.НалоговыйУчет
| И (ОстаткиРасходов.СуммаРегл <> 0 ИЛИ ОстаткиРасходов.СуммаНУ <> 0)
| ИЛИ Регистраторы.РегламентированныйУчет И НЕ Регистраторы.НалоговыйУчет
| И ОстаткиРасходов.СуммаРегл <> 0";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область РаспределениеПРиВРНеОтражающиесяБУиНУ
ТекстЗапроса =
"ВЫБРАТЬ
|
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| ОстаткиРасходов.ПостояннаяРазница КАК ПостояннаяРазница,
| ОстаткиРасходов.ВременнаяРазница КАК ВременнаяРазница,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.Дата КАК Дата,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| Регистраторы.ТребуетсяРаспределение
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
|ГДЕ
| Регистраторы.РегламентированныйУчет И ОстаткиРасходов.СуммаРегл = 0 И ОстаткиРасходов.СуммаНУ = 0";
Если ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет") Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ОВЗ_РаспределениеПРиВР
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| ВЫРАЗИТЬ (
| (ВЫБОР
| КОГДА НЕ СтатьиРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| КОГДА ОстаткиРасходов.СуммаНУ = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ
| + ВЫБОР
| КОГДА НЕ Регистраторы.НалоговыйУчет
| ИЛИ НЕ СтатьиРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовНУ =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА 0
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница
| ИНАЧЕ 0
| КОНЕЦ)
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ПостояннаяРазница,
| ВЫРАЗИТЬ (
| (ВЫБОР
| КОГДА НЕ СтатьиРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| КОГДА ОстаткиРасходов.СуммаНУ = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.СуммаРегл - ОстаткиРасходов.ПостояннаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ
| + ВЫБОР
| КОГДА НЕ Регистраторы.НалоговыйУчет
| ИЛИ НЕ СтатьиРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовНУ =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| КОГДА ОстаткиРасходов.СуммаРегл = 0
| ТОГДА ОстаткиРасходов.ВременнаяРазница
| КОГДА (ОстаткиРасходов.ПостояннаяРазница >=0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница <= 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ПостояннаяРазница + ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| КОГДА (ОстаткиРасходов.ПостояннаяРазница < 0 И ОстаткиРасходов.СуммаРегл > 0
| ИЛИ ОстаткиРасходов.ПостояннаяРазница > 0 И ОстаткиРасходов.СуммаРегл < 0)
| ТОГДА ОстаткиРасходов.ВременнаяРазница - ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ)
| * ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ДолиСписания.ДоляСписания
| ИНАЧЕ 1
| КОНЕЦ КАК ЧИСЛО(31, 2))
| КАК ВременнаяРазница,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.Дата КАК Дата,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| Регистраторы.ТребуетсяРаспределение
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И Регистраторы.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| И Регистраторы.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтОВЗ КАК ИсточникНастроек
| ПО ОстаткиРасходов.АналитикаРасходов = ИсточникНастроек.ОВЗ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК СтатьиРасходов
| ПО ОстаткиРасходов.СтатьяРасходов = СтатьиРасходов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| Регистраторы.РегламентированныйУчет И Регистраторы.НалоговыйУчет
| И (ОстаткиРасходов.СуммаРегл <> 0 ИЛИ ОстаткиРасходов.СуммаНУ <> 0)
| ИЛИ Регистраторы.РегламентированныйУчет И НЕ Регистраторы.НалоговыйУчет
| И ОстаткиРасходов.СуммаРегл <> 0";
Если ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет") Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ОВЗ_РаспределениеУУиБУ
ТекстЗапроса =
"ВЫБРАТЬ
|
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫБОР
| КОГДА НЕ Регистраторы.УправленческийУчет
| ИЛИ НЕ СтатьиРасходов.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| ИНАЧЕ ОстаткиРасходов.Сумма
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА НЕ Регистраторы.УправленческийУчет
| ИЛИ НЕ СтатьиРасходов.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовУпр = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| ИНАЧЕ ОстаткиРасходов.СуммаБезНДС
| КОНЕЦ КАК СуммаБезНДС,
| ВЫБОР
| КОГДА НЕ Регистраторы.УправленческийУчет
| ИЛИ НЕ СтатьиРасходов.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| ИНАЧЕ ОстаткиРасходов.СуммаУпр
| КОНЕЦ КАК СуммаУпр,
| ВЫБОР
| КОГДА НЕ Регистраторы.РегламентированныйУчет
| ИЛИ НЕ СтатьиРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| ИЛИ НЕ ИсточникНастроек.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности)
| ТОГДА 0
| КОГДА ЕСТЬNULL(ДолиСписания.Транспортные, ЛОЖЬ)
| ТОГДА ВЫРАЗИТЬ(ОстаткиРасходов.СуммаРегл * ДолиСписания.ДоляСписания КАК ЧИСЛО(31, 2))
| ИНАЧЕ ОстаткиРасходов.СуммаРегл
| КОНЕЦ КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.Дата КАК Дата,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| Регистраторы.ТребуетсяРаспределение
|ИЗ
| ОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| И ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И Регистраторы.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| И Регистраторы.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.ПустаяСсылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтОВЗ КАК ИсточникНастроек
| ПО ОстаткиРасходов.АналитикаРасходов = ИсточникНастроек.ОВЗ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.СтатьиРасходов КАК СтатьиРасходов
| ПО ОстаткиРасходов.СтатьяРасходов = СтатьиРасходов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО ОстаткиРасходов.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И ОстаткиРасходов.Организация = ДолиСписания.Организация
|ГДЕ
| (НЕ(ОстаткиРасходов.Сумма = 0 И ОстаткиРасходов.СуммаБезНДС = 0
| И ОстаткиРасходов.СуммаУпр = 0) И Регистраторы.УправленческийУчет
| И СтатьиРасходов.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И ИсточникНастроек.ВариантРаспределенияРасходовУпр =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))
| ИЛИ
| (НЕ ОстаткиРасходов.СуммаРегл = 0 И Регистраторы.РегламентированныйУчет
| И СтатьиРасходов.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаОбъектыВозникновенияЗатрат)
| И ИсточникНастроек.ВариантРаспределенияРасходовРегл =
| ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияРасходов.НаНаправленияДеятельности))";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
СтрокаВложенногоЗапроса = СтрСоединить(ТекстыВложенногоЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении(Истина));
ТекстЗапроса =
"ВЫБРАТЬ
| ВложенныйЗапрос.Организация КАК Организация,
| ВложенныйЗапрос.Подразделение КАК Подразделение,
| ВложенныйЗапрос.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВложенныйЗапрос.СтатьяРасходов КАК СтатьяРасходов,
| ВложенныйЗапрос.АналитикаРасходов КАК АналитикаРасходов,
| СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
| СУММА(ВложенныйЗапрос.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(ВложенныйЗапрос.СуммаУпр) КАК СуммаУпр,
| СУММА(ВложенныйЗапрос.СуммаРегл) КАК СуммаРегл,
| СУММА(ВложенныйЗапрос.ПостояннаяРазница) КАК ПостояннаяРазница,
| СУММА(ВложенныйЗапрос.ВременнаяРазница) КАК ВременнаяРазница,
| ВложенныйЗапрос.Регистратор КАК Регистратор,
| ВложенныйЗапрос.Дата КАК Дата,
| ВложенныйЗапрос.ТипБазыРаспределения КАК ТипБазыРаспределения,
| ВложенныйЗапрос.ТребуетсяРаспределение КАК ТребуетсяРаспределение
|ПОМЕСТИТЬ РасходыКРаспределению
|ИЗ
| РасходыКРаспределениюПредварительная КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Организация,
| ВложенныйЗапрос.Подразделение,
| ВложенныйЗапрос.НаправлениеДеятельности,
| ВложенныйЗапрос.СтатьяРасходов,
| ВложенныйЗапрос.АналитикаРасходов,
| ВложенныйЗапрос.Регистратор,
| ВложенныйЗапрос.Дата,
| ВложенныйЗапрос.ТипБазыРаспределения,
| ВложенныйЗапрос.ТребуетсяРаспределение
|
|ИНДЕКСИРОВАТЬ ПО
| СтатьяРасходов,
| АналитикаРасходов,
| НаправлениеДеятельности,
| Подразделение,
| Организация";
Если РежимОтладкиПоИсточникам Тогда
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(СтрокаВложенногоЗапроса);
ТекстыЗапроса.Добавить(ТекстЗапроса);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РасходыКРаспределениюПредварительная", "(" + СтрокаВложенногоЗапроса + ")");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстВтАктуальныеНаправленияДеятельности()
ТекстЗапроса =
"ВЫБРАТЬ
| НД.Ссылка КАК НаправлениеДеятельности
|ПОМЕСТИТЬ ВтАктуальныеНаправленияДеятельности
|ИЗ Справочник.НаправленияДеятельности КАК НД
|ГДЕ
| (НД.ДатаНачалаДеятельности <= &КонецПериода ИЛИ НД.ДатаНачалаДеятельности = ДАТАВРЕМЯ(1,1,1))
| И (НД.ДатаОкончанияДеятельности >= &НачалоПериода ИЛИ НД.ДатаОкончанияДеятельности = ДАТАВРЕМЯ(1,1,1))
|ОБЪЕДИНИТЬ
|ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
|ИНДЕКСИРОВАТЬ ПО
| НаправлениеДеятельности";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстФинансовыеРезультаты()
ТекстЗапроса =
"ВЫБРАТЬ
| ФинансовыеРезультаты.Организация КАК Организация,
| ФинансовыеРезультаты.НаправлениеДеятельности КАК НаправлениеДеятельности,
| СУММА(ВЫБОР
| КОГДА ФинансовыеРезультаты.СтатьяДоходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиДоходов.ВыручкаОтПродаж)
| ТОГДА ФинансовыеРезультаты.Доходы
| ИНАЧЕ 0 КОНЕЦ) КАК Доходы,
| СУММА(ВЫБОР
| КОГДА ФинансовыеРезультаты.СтатьяРасходов = ЗНАЧЕНИЕ(ПланВидовХарактеристик.СтатьиРасходов.СебестоимостьПродаж)
| ТОГДА ФинансовыеРезультаты.Расходы
| ИНАЧЕ 0 КОНЕЦ) КАК Расходы
|ПОМЕСТИТЬ ФинансовыеРезультаты
|ИЗ
| РегистрНакопления.ФинансовыеРезультаты КАК ФинансовыеРезультаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтАктуальныеНаправленияДеятельности КАК НД
| ПО ФинансовыеРезультаты.НаправлениеДеятельности = НД.НаправлениеДеятельности
|ГДЕ
| ФинансовыеРезультаты.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И ФинансовыеРезультаты.Организация В(&МассивОрганизаций)
| И ФинансовыеРезультаты.Активность
| И (ТИПЗНАЧЕНИЯ(ФинансовыеРезультаты.Регистратор) = ТИП(Документ.РасчетСебестоимостиТоваров)
| ИЛИ ФинансовыеРезультаты.РасчетСебестоимости)
|
|СГРУППИРОВАТЬ ПО
| ФинансовыеРезультаты.Организация,
| ФинансовыеРезультаты.НаправлениеДеятельности
|ИНДЕКСИРОВАТЬ ПО
| НаправлениеДеятельности,
| Организация";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстВыручкаИСебестоимостьПродаж()
ТекстЗапроса =
"ВЫБРАТЬ
| Данные.АналитикаУчетаПоПартнерам.Организация КАК Организация,
| Данные.НаправлениеДеятельностиКонтрагента КАК НаправлениеДеятельности,
| СУММА(Данные.СуммаВыручкиБезНДС) КАК Доходы,
| СУММА(Данные.СтоимостьУпр + Данные.ДопРасходыУпр + Данные.РезервПодОбесценениеУпр
| + Данные.ПостатейныеПостоянныеУпр + Данные.ПостатейныеПеременныеУпр + Данные.ТрудозатратыУпр
| + Данные.РасходыНаПродажуУпр) КАК Расходы,
| СУММА(Данные.СуммаВыручкиРегл) КАК ДоходыРегл,
| СУММА(Данные.СтоимостьРегл + Данные.ДопРасходыРегл + Данные.РезервПодОбесценениеРегл
| + Данные.ПостатейныеПостоянныеРегл + Данные.ПостатейныеПеременныеРегл + Данные.ТрудозатратыРегл
| + Данные.РасходыНаПродажуРегл) КАК РасходыРегл
|ПОМЕСТИТЬ ВыручкаИСебестоимостьПродаж
|ИЗ
| РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК Данные
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтАктуальныеНаправленияДеятельности КАК НД
| ПО НД.НаправлениеДеятельности = Данные.НаправлениеДеятельностиКонтрагента
|ГДЕ
| Данные.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Данные.АналитикаУчетаПоПартнерам.Организация В(&МассивОрганизаций)
| И Данные.Активность
| И ИСТИНА В (ВЫБРАТЬ РАЗЛИЧНЫЕ ИСТИНА ИЗ Регистраторы КАК Т ГДЕ Т.ТребуетсяРаспределение
| И Т.ИсточникДанных = ЗНАЧЕНИЕ(Перечисление.ИсточникиДанныхДляРаспределенияРасходов.ВыручкаИСебестоимостьПродаж)
| И Т.БазаРаспределенияПоПартиям В (ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВаловаяПрибыль)))
| И Данные.СуммаВыручкиРегл + Данные.СтоимостьРегл + Данные.ДопРасходыРегл + Данные.РезервПодОбесценениеРегл
| + Данные.ПостатейныеПостоянныеРегл + Данные.ПостатейныеПеременныеРегл + Данные.ТрудозатратыРегл
| + Данные.СуммаВыручкиБезНДС + Данные.СтоимостьУпр + Данные.ДопРасходыУпр + Данные.РезервПодОбесценениеУпр
| + Данные.РасходыНаПродажуУпр + Данные.РасходыНаПродажуРегл
| + Данные.ПостатейныеПостоянныеУпр + Данные.ПостатейныеПеременныеУпр + Данные.ТрудозатратыУпр <> 0
|
|СГРУППИРОВАТЬ ПО
| Данные.АналитикаУчетаПоПартнерам.Организация,
| Данные.НаправлениеДеятельностиКонтрагента
|
|ИНДЕКСИРОВАТЬ ПО
| НаправлениеДеятельности,
| Организация";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстБазаРаспределения()
ТекстыЗапросаОбъединения = Новый Массив;
#Область НулеваяВыборкаПомещениеВоВременнуюТаблицу
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 0
| "" КАК ИсточникДанных,
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК ТипБазыРаспределения,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ЗаказНаПроизводство,
| НЕОПРЕДЕЛЕНО КАК КодСтрокиПродукция,
| НЕОПРЕДЕЛЕНО КАК ПартияПроизводства,
| 0 КАК База,
| 0 КАК БазаРегл
|ПОМЕСТИТЬ БазаРаспределения";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
#Область Распределение_ФинансовыеРезультаты
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| ЕСТЬNULL(ФинансовыеРезультаты.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)) КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ЗаказНаПроизводство,
| НЕОПРЕДЕЛЕНО КАК КодСтрокиПродукция,
| НЕОПРЕДЕЛЕНО КАК ПартияПроизводства,
| ВЫБОР
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж)
| ТОГДА ЕСТЬNULL(ФинансовыеРезультаты.Доходы, 0)
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж)
| ТОГДА ЕСТЬNULL(ФинансовыеРезультаты.Расходы, 0)
| ИНАЧЕ ЕСТЬNULL(ФинансовыеРезультаты.Доходы, 0) - ЕСТЬNULL(ФинансовыеРезультаты.Расходы, 0)
| КОНЕЦ КАК База,
| ВЫБОР
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж)
| ТОГДА ЕСТЬNULL(ФинансовыеРезультаты.Доходы, 0)
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж)
| ТОГДА ЕСТЬNULL(ФинансовыеРезультаты.Расходы, 0)
| ИНАЧЕ ЕСТЬNULL(ФинансовыеРезультаты.Доходы, 0) - ЕСТЬNULL(ФинансовыеРезультаты.Расходы, 0)
| КОНЕЦ КАК БазаРегл
|ИЗ
| Регистраторы КАК Регистраторы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат.ОтборПоНаправлениямДеятельности КАК НаправленияДеятельности
| ПО Регистраторы.Регистратор = НаправленияДеятельности.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ФинансовыеРезультаты КАК ФинансовыеРезультаты
| ПО Регистраторы.Организация = ФинансовыеРезультаты.Организация
| И (НаправленияДеятельности.НаправлениеДеятельности = ФинансовыеРезультаты.НаправлениеДеятельности
| ИЛИ НаправленияДеятельности.НаправлениеДеятельности ЕСТЬ NULL)
|ГДЕ
| Регистраторы.ТребуетсяРаспределение
| И Регистраторы.БазаРаспределенияПоПартиям В (
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВаловаяПрибыль))
| И Регистраторы.ИсточникДанных <> ЗНАЧЕНИЕ(Перечисление.ИсточникиДанныхДляРаспределенияРасходов.ВыручкаИСебестоимостьПродаж)";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
#Область Распределение_ВыручкаИСебестоимостьПродаж
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| Регистраторы.Регистратор КАК Регистратор,
| Регистраторы.БазаРаспределенияПоПартиям КАК ТипБазыРаспределения,
| ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)) КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК ЗаказНаПроизводство,
| НЕОПРЕДЕЛЕНО КАК КодСтрокиПродукция,
| НЕОПРЕДЕЛЕНО КАК ПартияПроизводства,
| ВЫБОР
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж)
| ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.Доходы, 0)
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж)
| ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.Расходы, 0)
| ИНАЧЕ ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.Доходы, 0) - ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.Расходы, 0)
| КОНЕЦ КАК База,
| ВЫБОР
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж)
| ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.ДоходыРегл, 0)
| КОГДА Регистраторы.БазаРаспределенияПоПартиям = ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж)
| ТОГДА ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.РасходыРегл, 0)
| ИНАЧЕ ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.ДоходыРегл, 0) - ЕСТЬNULL(ВыручкаИСебестоимостьПродаж.РасходыРегл, 0)
| КОНЕЦ КАК БазаРегл
|ИЗ
| Регистраторы КАК Регистраторы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат.ОтборПоНаправлениямДеятельности КАК НаправленияДеятельности
| ПО Регистраторы.Регистратор = НаправленияДеятельности.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
| ПО Регистраторы.Организация = ВыручкаИСебестоимостьПродаж.Организация
| И (НаправленияДеятельности.НаправлениеДеятельности = ВыручкаИСебестоимостьПродаж.НаправлениеДеятельности
| ИЛИ НаправленияДеятельности.НаправлениеДеятельности ЕСТЬ NULL)
|ГДЕ
| Регистраторы.ТребуетсяРаспределение
| И Регистраторы.БазаРаспределенияПоПартиям В (
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВыручкаОтПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.СебестоимостьПродаж),
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ВаловаяПрибыль))
| И Регистраторы.ИсточникДанных = ЗНАЧЕНИЕ(Перечисление.ИсточникиДанныхДляРаспределенияРасходов.ВыручкаИСебестоимостьПродаж)";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
#Область Распределение_ПоУказаннымНаправлениям
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| НаправленияДеятельности.Ссылка,
| ЗНАЧЕНИЕ(Перечисление.ТипыБазыРаспределенияРасходов.ПустаяСсылка),
| НаправленияДеятельности.НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| НаправленияДеятельности.ДоляСтоимости,
| НаправленияДеятельности.ДоляСтоимости
|ИЗ
| Регистраторы КАК Регистраторы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат.НаправленияДеятельности КАК НаправленияДеятельности
| ПО Регистраторы.Регистратор = НаправленияДеятельности.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтАктуальныеНаправленияДеятельности КАК НД
| ПО НаправленияДеятельности.НаправлениеДеятельности = НД.НаправлениеДеятельности
|ГДЕ
| Регистраторы.ТребуетсяРаспределение";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
#Область РаспределениеИзБазыПоЭтапам
ТекстЗапроса =
"ВЫБРАТЬ
|
| БазаПоЭтапам.Регистратор,
| Регистраторы.БазаРаспределенияПоПартиям,
| БазаПоЭтапам.НаправлениеДеятельности,
| ВЫБОР
| КОГДА &ПредварительныйРасчет
| ТОГДА БазаПоЭтапам.ЗаказНаПроизводство
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ВЫБОР
| КОГДА &ПредварительныйРасчет
| ТОГДА БазаПоЭтапам.КодСтрокиПродукция
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ВЫБОР
| КОГДА &ПредварительныйРасчет
| ТОГДА БазаПоЭтапам.ПартияПроизводства
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| СУММА(БазаПоЭтапам.Стоимость),
| СУММА(БазаПоЭтапам.СтоимостьРегл)
|ИЗ
| БазаПоЭтапам КАК БазаПоЭтапам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО БазаПоЭтапам.Регистратор = Регистраторы.Регистратор
| И Регистраторы.НазначениеНастройкиРаспределения = ЗНАЧЕНИЕ(Перечисление.НазначениеПравилРаспределенияРасходов.РаспределениеРасходовНаФинансовыйРезультат)
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат.ОтборПоНаправлениямДеятельности КАК НаправленияДеятельности
| ПО Регистраторы.Регистратор = НаправленияДеятельности.Ссылка
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтАктуальныеНаправленияДеятельности КАК НД
| ПО БазаПоЭтапам.НаправлениеДеятельности = НД.НаправлениеДеятельности
|ГДЕ
| НаправленияДеятельности.НаправлениеДеятельности = БазаПоЭтапам.НаправлениеДеятельности
| ИЛИ НаправленияДеятельности.НаправлениеДеятельности ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| БазаПоЭтапам.НаправлениеДеятельности,
| БазаПоЭтапам.Регистратор,
| Регистраторы.БазаРаспределенияПоПартиям,
| ВЫБОР
| КОГДА &ПредварительныйРасчет
| ТОГДА БазаПоЭтапам.ЗаказНаПроизводство
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ВЫБОР
| КОГДА &ПредварительныйРасчет
| ТОГДА БазаПоЭтапам.КодСтрокиПродукция
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ,
| ВЫБОР
| КОГДА &ПредварительныйРасчет
| ТОГДА БазаПоЭтапам.ПартияПроизводства
| ИНАЧЕ
| НЕОПРЕДЕЛЕНО
| КОНЕЦ";
ТекстыЗапросаОбъединения.Добавить(ТекстЗапроса);
#КонецОбласти
ТекстЗапроса = СтрСоединить(ТекстыЗапросаОбъединения, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстБазыРаспределенияСводно()
ТекстЗапроса =
"ВЫБРАТЬ
| БазаРаспределения.Регистратор КАК Регистратор,
| БазаРаспределения.ТипБазыРаспределения КАК ТипБазыРаспределения,
| СУММА(БазаРаспределения.База) КАК База,
| СУММА(БазаРаспределения.БазаРегл) КАК БазаРегл
|ПОМЕСТИТЬ БазыРаспределенияСводно
|ИЗ
| БазаРаспределения КАК БазаРаспределения
|
|СГРУППИРОВАТЬ ПО
| БазаРаспределения.Регистратор,
| БазаРаспределения.ТипБазыРаспределения
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| ТипБазыРаспределения";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстРаспределенныеРасходы()
ТекстЗапроса =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ИЛИ НЕ &ФормироватьФинансовыйРезультат
| ТОГДА РасходыКРаспределению.Сумма
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(РасходыКРаспределению.Сумма * (БазаРаспределения.База / БазыРаспределенияСводно.База) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ИЛИ НЕ &ФормироватьФинансовыйРезультат
| ТОГДА РасходыКРаспределению.СуммаБезНДС
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(РасходыКРаспределению.СуммаБезНДС * (БазаРаспределения.База / БазыРаспределенияСводно.База) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК СуммаБезНДС,
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ИЛИ НЕ &ФормироватьФинансовыйРезультат
| ТОГДА РасходыКРаспределению.СуммаУпр
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(РасходыКРаспределению.СуммаУпр * (БазаРаспределения.База / БазыРаспределенияСводно.База) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК СуммаУпр,
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ИЛИ НЕ &ФормироватьФинансовыйРезультат
| ТОГДА РасходыКРаспределению.СуммаРегл
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(РасходыКРаспределению.СуммаРегл * (БазаРаспределения.БазаРегл / БазыРаспределенияСводно.БазаРегл) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК СуммаРегл,
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ИЛИ НЕ &ФормироватьФинансовыйРезультат
| ТОГДА РасходыКРаспределению.ПостояннаяРазница
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(РасходыКРаспределению.ПостояннаяРазница * (БазаРаспределения.БазаРегл / БазыРаспределенияСводно.БазаРегл) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК ПостояннаяРазница,
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ИЛИ НЕ &ФормироватьФинансовыйРезультат
| ТОГДА РасходыКРаспределению.ВременнаяРазница
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(РасходыКРаспределению.ВременнаяРазница * (БазаРаспределения.БазаРегл / БазыРаспределенияСводно.БазаРегл) КАК ЧИСЛО(31, 2))
| КОНЕЦ КАК ВременнаяРазница,
| ВЫБОР
| КОГДА ЕСТЬNULL(БазыРаспределенияСводно.База, 0) = 0
| ТОГДА 0
| ИНАЧЕ БазаРаспределения.База / БазыРаспределенияСводно.База
| КОНЕЦ КАК КоэффициентРаспределения,
| ЕСТЬNULL(БазаРаспределения.База, 0) КАК База,
| ЕСТЬNULL(БазаРаспределения.БазаРегл, 0) КАК БазаРегл,
| РасходыКРаспределению.Регистратор КАК Регистратор,
| РасходыКРаспределению.Организация КАК Организация,
| РасходыКРаспределению.Дата КАК Дата,
| РасходыКРаспределению.Подразделение КАК Подразделение,
| РасходыКРаспределению.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РасходыКРаспределению.СтатьяРасходов КАК СтатьяРасходов,
| РасходыКРаспределению.АналитикаРасходов КАК АналитикаРасходов,
| ЕСТЬNULL(БазаРаспределения.ЗаказНаПроизводство, НЕОПРЕДЕЛЕНО) КАК ЗаказНаПроизводство,
| ЕСТЬNULL(БазаРаспределения.КодСтрокиПродукция, НЕОПРЕДЕЛЕНО) КАК КодСтрокиПродукция,
| ЕСТЬNULL(БазаРаспределения.ПартияПроизводства, НЕОПРЕДЕЛЕНО) КАК ПартияПроизводства,
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.ТребуетсяРаспределение
| ТОГДА
| ВЫБОР
| КОГДА НЕ РасходыКРаспределению.НаправлениеДеятельности = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| ТОГДА РасходыКРаспределению.НаправлениеДеятельности
| КОГДА ТИПЗНАЧЕНИЯ(РасходыКРаспределению.АналитикаРасходов) = ТИП(Справочник.НаправленияДеятельности)
| И НЕ РасходыКРаспределению.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| ТОГДА РасходыКРаспределению.АналитикаРасходов
| ИНАЧЕ
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка)
| КОНЕЦ
| ИНАЧЕ
| БазаРаспределения.НаправлениеДеятельности
| КОНЕЦ КАК НаправлениеДеятельностиПриемник,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности) КАК ХозяйственнаяОперация
|ПОМЕСТИТЬ РаспределенныеРасходы
|ИЗ
| РасходыКРаспределению КАК РасходыКРаспределению
| ЛЕВОЕ СОЕДИНЕНИЕ БазаРаспределения КАК БазаРаспределения
| ПО РасходыКРаспределению.Регистратор = БазаРаспределения.Регистратор
| И РасходыКРаспределению.ТипБазыРаспределения = БазаРаспределения.ТипБазыРаспределения
| И (БазаРаспределения.База <> 0 ИЛИ БазаРаспределения.БазаРегл <> 0)
| ЛЕВОЕ СОЕДИНЕНИЕ БазыРаспределенияСводно КАК БазыРаспределенияСводно
| ПО РасходыКРаспределению.Регистратор = БазыРаспределенияСводно.Регистратор
| И РасходыКРаспределению.ТипБазыРаспределения = БазыРаспределенияСводно.ТипБазыРаспределения
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| КоэффициентРаспределения";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстДокументыРаспределения()
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РаспределенныеРасходы.Регистратор КАК Регистратор,
| РаспределенныеРасходы.Организация КАК Организация,
| РаспределенныеРасходы.Дата КАК Дата
|ПОМЕСТИТЬ ДокументыРаспределения
|ИЗ
| РаспределенныеРасходы КАК РаспределенныеРасходы
| ЛЕВОЕ СОЕДИНЕНИЕ БазыРаспределенияСводно КАК БазаРаспределения
| ПО РаспределенныеРасходы.Регистратор = БазаРаспределения.Регистратор
|ГДЕ
| НЕ (РаспределенныеРасходы.Сумма = 0
| И РаспределенныеРасходы.СуммаБезНДС = 0
| И РаспределенныеРасходы.СуммаУпр = 0
| И РаспределенныеРасходы.СуммаРегл = 0
| И РаспределенныеРасходы.ПостояннаяРазница = 0
| И РаспределенныеРасходы.ВременнаяРазница = 0)
| ИЛИ НЕ БазаРаспределения.Регистратор ЕСТЬ NULL
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстМаксимальныеКоэффициентыПоРегистраторам()
ТекстЗапроса =
"ВЫБРАТЬ
| РаспределенныеРасходы.Регистратор КАК Регистратор,
| МАКСИМУМ(РаспределенныеРасходы.КоэффициентРаспределения) КАК КоэффициентРаспределения
|ПОМЕСТИТЬ МаксимальныеКоэффициентыПоРегистраторам
|ИЗ
| РаспределенныеРасходы КАК РаспределенныеРасходы
|
|СГРУППИРОВАТЬ ПО
| РаспределенныеРасходы.Регистратор
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстНаправленияДеятельностиДляПогрешности()
ТекстЗапроса =
"ВЫБРАТЬ
| МаксимальныеКоэффициентыПоРегистраторам.Регистратор КАК Регистратор,
| МАКСИМУМ(РаспределенныеРасходы.НаправлениеДеятельностиПриемник) КАК НаправлениеДеятельностиПриемник
|ПОМЕСТИТЬ НаправленияДеятельностиДляПогрешности
|ИЗ
| МаксимальныеКоэффициентыПоРегистраторам КАК МаксимальныеКоэффициентыПоРегистраторам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РаспределенныеРасходы КАК РаспределенныеРасходы
| ПО МаксимальныеКоэффициентыПоРегистраторам.Регистратор = РаспределенныеРасходы.Регистратор
| И МаксимальныеКоэффициентыПоРегистраторам.КоэффициентРаспределения = РаспределенныеРасходы.КоэффициентРаспределения
|
|СГРУППИРОВАТЬ ПО
| МаксимальныеКоэффициентыПоРегистраторам.Регистратор
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстПогрешностиОкругления()
ТекстЗапроса =
"ВЫБРАТЬ
| СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
| СУММА(ВложенныйЗапрос.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(ВложенныйЗапрос.СуммаУпр) КАК СуммаУпр,
| СУММА(ВложенныйЗапрос.СуммаРегл) КАК СуммаРегл,
| СУММА(ВложенныйЗапрос.ПостояннаяРазница) КАК ПостояннаяРазница,
| СУММА(ВложенныйЗапрос.ВременнаяРазница) КАК ВременнаяРазница,
| ВложенныйЗапрос.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВложенныйЗапрос.СтатьяРасходов КАК СтатьяРасходов,
| ВложенныйЗапрос.Регистратор КАК Регистратор
|ПОМЕСТИТЬ ПогрешностиОкругления
|ИЗ
| (ВЫБРАТЬ
| РасходыКРаспределению.Сумма,
| РасходыКРаспределению.СуммаБезНДС,
| РасходыКРаспределению.СуммаУпр,
| РасходыКРаспределению.СуммаРегл,
| РасходыКРаспределению.ПостояннаяРазница +
| 0 КАК ПостояннаяРазница,
| РасходыКРаспределению.ВременнаяРазница +
| 0 КАК ВременнаяРазница,
| РасходыКРаспределению.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РасходыКРаспределению.СтатьяРасходов КАК СтатьяРасходов,
| РасходыКРаспределению.Регистратор КАК Регистратор
| ИЗ
| РасходыКРаспределению КАК РасходыКРаспределению
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК ДокументыРаспределения
| ПО РасходыКРаспределению.Регистратор = ДокументыРаспределения.Регистратор
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| -РаспределенныеРасходы.Сумма,
| -РаспределенныеРасходы.СуммаБезНДС,
| -РаспределенныеРасходы.СуммаУпр,
| -РаспределенныеРасходы.СуммаРегл,
| -РаспределенныеРасходы.ПостояннаяРазница +
| 0,
| -РаспределенныеРасходы.ВременнаяРазница +
| 0,
| РаспределенныеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РаспределенныеРасходы.СтатьяРасходов КАК СтатьяРасходов,
| РаспределенныеРасходы.Регистратор
| ИЗ
| РаспределенныеРасходы КАК РаспределенныеРасходы) КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.НаправлениеДеятельности,
| ВложенныйЗапрос.СтатьяРасходов,
| ВложенныйЗапрос.Регистратор
|
|ИМЕЮЩИЕ
| НЕ (СУММА(ВложенныйЗапрос.Сумма) = 0
| И СУММА(ВложенныйЗапрос.СуммаБезНДС) = 0
| И СУММА(ВложенныйЗапрос.СуммаУпр) = 0
| И СУММА(ВложенныйЗапрос.СуммаРегл) = 0
| И СУММА(ВложенныйЗапрос.ПостояннаяРазница) = 0
| И СУММА(ВложенныйЗапрос.ВременнаяРазница) = 0)
|
|ИНДЕКСИРОВАТЬ ПО
| Регистратор,
| НаправлениеДеятельности,
| СтатьяРасходов";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстРегистраторыКОчисткеДвижений(РежимОтладкиПоИсточникам)
ТекстыВложенногоЗапроса = Новый Массив;
#Область ИнициализацияВременнойТаблицыРегистраторыКОчисткеДвиженийПредварительная
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 0
|
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| 0 КАК СуммаРегл,
| 0 КАК СуммаНУ,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр
|ПОМЕСТИТЬ РегистраторыКОчисткеДвиженийПредварительная";
Если РежимОтладкиПоИсточникам Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область ОстаткиРасходов
ТекстЗапроса =
"ВЫБРАТЬ
|
| Регистраторы.Регистратор КАК Регистратор,
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫБОР
| КОГДА Реквизиты.РегламентированныйУчет
| ТОГДА ОстаткиРасходов.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаРегл,
| ВЫБОР
| КОГДА Реквизиты.НалоговыйУчет
| ТОГДА ОстаткиРасходов.СуммаНУ
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаНУ,
| ВЫБОР
| КОГДА Реквизиты.УправленческийУчет
| ТОГДА ОстаткиРасходов.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА Реквизиты.УправленческийУчет
| ТОГДА ОстаткиРасходов.СуммаБезНДС
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаБезНДС,
| ВЫБОР
| КОГДА Реквизиты.УправленческийУчет
| ТОГДА ОстаткиРасходов.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаУпр
|ИЗ
| ПредварительныеОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| И ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК Реквизиты
| ПО Регистраторы.Регистратор = Реквизиты.Ссылка";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область ТекущиеДвижения
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| Регистраторы.Регистратор КАК Регистратор,
| ОстаткиРасходов.Организация КАК Организация,
| ОстаткиРасходов.Подразделение КАК Подразделение,
| ОстаткиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ОстаткиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| ОстаткиРасходов.АналитикаРасходов КАК АналитикаРасходов,
| ВЫБОР
| КОГДА Реквизиты.РегламентированныйУчет
| ТОГДА ТекущиеДвижения.СуммаРегл
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаРегл,
| ВЫБОР
| КОГДА Реквизиты.РегламентированныйУчет
| ТОГДА ТекущиеДвижения.СуммаРегл
| - ТекущиеДвижения.ПостояннаяРазница - ТекущиеДвижения.ВременнаяРазница
| ИНАЧЕ 0
| КОНЕЦ
| -ВЫБОР
| КОГДА Реквизиты.НалоговыйУчет
| ТОГДА ТекущиеДвижения.СуммаРегл - ТекущиеДвижения.ПостояннаяРазница - ТекущиеДвижения.ВременнаяРазница
| ИНАЧЕ 0
| КОНЕЦ
| КАК СуммаНУ,
| ВЫБОР
| КОГДА Реквизиты.УправленческийУчет
| ТОГДА ТекущиеДвижения.Сумма
| ИНАЧЕ 0
| КОНЕЦ КАК Сумма,
| ВЫБОР
| КОГДА Реквизиты.УправленческийУчет
| ТОГДА ТекущиеДвижения.СуммаБезНДС
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаБезНДС,
| ВЫБОР
| КОГДА Реквизиты.УправленческийУчет
| ТОГДА ТекущиеДвижения.СуммаУпр
| ИНАЧЕ 0
| КОНЕЦ КАК СуммаУпр
|ИЗ
| ПредварительныеОстаткиРасходов КАК ОстаткиРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Регистраторы КАК Регистраторы
| ПО ОстаткиРасходов.Организация = Регистраторы.Организация
| И ОстаткиРасходов.Подразделение = Регистраторы.Подразделение
| И ОстаткиРасходов.НаправлениеДеятельности = Регистраторы.НаправлениеДеятельности
| И ОстаткиРасходов.СтатьяРасходов = Регистраторы.СтатьяРасходов
| И ОстаткиРасходов.АналитикаРасходов = Регистраторы.АналитикаРасходов
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПрочиеРасходы КАК ТекущиеДвижения
| ПО Регистраторы.Регистратор = ТекущиеДвижения.Регистратор
| И (ТекущиеДвижения.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход))
| И (ТекущиеДвижения.Организация = ОстаткиРасходов.Организация)
| И (ТекущиеДвижения.Подразделение = ОстаткиРасходов.Подразделение)
| И (ТекущиеДвижения.НаправлениеДеятельности = ОстаткиРасходов.НаправлениеДеятельности)
| И (ТекущиеДвижения.СтатьяРасходов = ОстаткиРасходов.СтатьяРасходов)
| И (ТекущиеДвижения.АналитикаРасходов = ОстаткиРасходов.АналитикаРасходов)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РаспределениеПрочихЗатрат КАК Реквизиты
| ПО Реквизиты.Ссылка = ТекущиеДвижения.Регистратор
|ГДЕ
| ТекущиеДвижения.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И ТекущиеДвижения.Активность";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
СтрокаВложенногоЗапроса = СтрСоединить(ТекстыВложенногоЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстЗапроса =
"ВЫБРАТЬ
| РасчетныеОстатки.Регистратор КАК Регистратор,
| РасчетныеОстатки.Организация КАК Организация,
| РасчетныеОстатки.Подразделение КАК Подразделение,
| РасчетныеОстатки.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РасчетныеОстатки.СтатьяРасходов КАК СтатьяРасходов,
| РасчетныеОстатки.АналитикаРасходов КАК АналитикаРасходов
|ПОМЕСТИТЬ РегистраторыКОчисткеДвижений
|ИЗ
| РегистраторыКОчисткеДвиженийПредварительная КАК РасчетныеОстатки
|
|СГРУППИРОВАТЬ ПО
| РасчетныеОстатки.Регистратор,
| РасчетныеОстатки.Организация,
| РасчетныеОстатки.Подразделение,
| РасчетныеОстатки.НаправлениеДеятельности,
| РасчетныеОстатки.СтатьяРасходов,
| РасчетныеОстатки.АналитикаРасходов
|
|ИМЕЮЩИЕ
| СУММА(РасчетныеОстатки.Сумма) = 0
| И СУММА(РасчетныеОстатки.СуммаБезНДС) = 0
| И СУММА(РасчетныеОстатки.СуммаУпр) = 0
| И СУММА(РасчетныеОстатки.СуммаРегл) = 0
| И СУММА(РасчетныеОстатки.СуммаНУ) = 0";
Если РежимОтладкиПоИсточникам Тогда
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(СтрокаВложенногоЗапроса);
ТекстыЗапроса.Добавить(ТекстЗапроса);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РегистраторыКОчисткеДвиженийПредварительная", "(" + СтрокаВложенногоЗапроса + ")");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстРаспределенныеАналитикиРасходов()
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| АналитикиРасходов.Организация КАК Организация,
| АналитикиРасходов.Подразделение КАК Подразделение,
| АналитикиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| АналитикиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| АналитикиРасходов.АналитикаРасходов КАК АналитикаРасходов
|ПОМЕСТИТЬ РаспределенныеАналитикиРасходов
|ИЗ
| (ВЫБРАТЬ
| РаспределенныеРасходы.Организация КАК Организация,
| РаспределенныеРасходы.Подразделение КАК Подразделение,
| РаспределенныеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РаспределенныеРасходы.СтатьяРасходов КАК СтатьяРасходов,
| РаспределенныеРасходы.АналитикаРасходов КАК АналитикаРасходов
| ИЗ
| РаспределенныеРасходы КАК РаспределенныеРасходы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыРаспределения КАК Документы
| ПО РаспределенныеРасходы.Регистратор = Документы.Регистратор
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| АналитикиРасходов.Организация КАК Организация,
| АналитикиРасходов.Подразделение КАК Подразделение,
| АналитикиРасходов.НаправлениеДеятельности КАК НаправлениеДеятельности,
| АналитикиРасходов.СтатьяРасходов КАК СтатьяРасходов,
| АналитикиРасходов.АналитикаРасходов КАК АналитикаРасходов
| ИЗ
| РегистраторыКОчисткеДвижений КАК АналитикиРасходов
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| СписаниеНУ.Организация КАК Организация,
| СписаниеНУ.Подразделение КАК Подразделение,
| СписаниеНУ.НаправлениеДеятельности КАК НаправлениеДеятельности,
| СписаниеНУ.СтатьяРасходов КАК СтатьяРасходов,
| СписаниеНУ.АналитикаРасходов КАК АналитикаРасходов
| ИЗ
| СписаниеНУ КАК СписаниеНУ
| ) КАК АналитикиРасходов
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| Подразделение,
| НаправлениеДеятельности,
| СтатьяРасходов,
| АналитикаРасходов";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстДокументыСНовымиДвижениями()
ТекстЗапроса =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Т.Регистратор,
| Т.Организация,
| Т.Дата
|ПОМЕСТИТЬ ДокументыСНовымиДвижениями
|ИЗ
| (ВЫБРАТЬ
| Т.Регистратор,
| Т.Организация,
| Т.Дата
| ИЗ
| ДокументыРаспределения КАК Т
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| Т.Регистратор,
| Т.Организация,
| Т.Дата
| ИЗ
| СписаниеНУ КАК Т
|) КАК Т";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстВыборкаПрочиеРасходы()
ТекстЗапроса =
"ВЫБРАТЬ
| ПрочиеРасходы.*
|ИЗ
| ДокументыСНовымиДвижениями КАК ДокументыСНовымиДвижениями
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПрочиеРасходы КАК ПрочиеРасходы
| ПО ДокументыСНовымиДвижениями.Регистратор = ПрочиеРасходы.Регистратор
|ГДЕ
| НЕ ПрочиеРасходы.ХозяйственнаяОперация В (ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеНормируемыхРасходовПоНУ))
|
|ИТОГИ ПО
| ПрочиеРасходы.Регистратор";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстВыборкаПрочиеРасходыНЗП()
ТекстЗапроса =
"ВЫБРАТЬ
| ПрочиеРасходыНЗП.*
|ИЗ
| ДокументыСНовымиДвижениями КАК ДокументыСНовымиДвижениями
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства КАК ПрочиеРасходыНЗП
| ПО ДокументыСНовымиДвижениями.Регистратор = ПрочиеРасходыНЗП.Регистратор
|
|ИТОГИ ПО
| ПрочиеРасходыНЗП.Регистратор";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстВыборкаПрочиеАктивыПассивы()
ТекстЗапроса =
"ВЫБРАТЬ
| ПрочиеАктивыПассивы.*
|ИЗ
| ДокументыСНовымиДвижениями КАК ДокументыСНовымиДвижениями
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПрочиеАктивыПассивы КАК ПрочиеАктивыПассивы
| ПО ДокументыСНовымиДвижениями.Регистратор = ПрочиеАктивыПассивы.Регистратор
|ГДЕ
| ПрочиеАктивыПассивы.РасчетСебестоимости
| И НЕ ПрочиеАктивыПассивы.Источник = ЗНАЧЕНИЕ(Перечисление.ИсточникиУправленческогоБаланса.ПустаяСсылка)";
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстРезультатРаспределения(РежимОтладкиПоИсточникам)
ТекстыВложенногоЗапроса = Новый Массив;
#Область ИнициализацияВременнойТаблицыРезультатРаспределенияПредварительная
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 0
| "" КАК ИсточникДанных,
| НЕОПРЕДЕЛЕНО КАК Период,
| НЕОПРЕДЕЛЕНО КАК ВидДвижения,
| НЕОПРЕДЕЛЕНО КАК Регистратор,
| НЕОПРЕДЕЛЕНО КАК Организация,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельности,
| НЕОПРЕДЕЛЕНО КАК НаправлениеДеятельностиПриемник,
| НЕОПРЕДЕЛЕНО КАК ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО КАК ЗаказНаПроизводство,
| НЕОПРЕДЕЛЕНО КАК КодСтрокиПродукция,
| НЕОПРЕДЕЛЕНО КАК ПартияПроизводства,
| НЕОПРЕДЕЛЕНО КАК СтатьяРасходов,
| НЕОПРЕДЕЛЕНО КАК АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК Расходы,
| 0 КАК БазаРаспределения
|ПОМЕСТИТЬ РезультатРаспределенияПредварительная";
Если РежимОтладкиПоИсточникам Тогда
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
КонецЕсли;
#КонецОбласти
#Область РаспределенныеРасходы
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| &КонецПериода КАК Период,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
| РаспределенныеРасходы.Регистратор КАК Регистратор,
| РаспределенныеРасходы.Организация КАК Организация,
| РаспределенныеРасходы.Подразделение КАК Подразделение,
| РаспределенныеРасходы.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РаспределенныеРасходы.НаправлениеДеятельностиПриемник КАК НаправлениеДеятельностиПриемник,
| РаспределенныеРасходы.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| РаспределенныеРасходы.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
| РаспределенныеРасходы.КодСтрокиПродукция КАК КодСтрокиПродукция,
| РаспределенныеРасходы.ПартияПроизводства КАК ПартияПроизводства,
| РаспределенныеРасходы.СтатьяРасходов КАК СтатьяРасходов,
| РаспределенныеРасходы.АналитикаРасходов КАК АналитикаРасходов,
| РаспределенныеРасходы.Сумма КАК Сумма,
| РаспределенныеРасходы.СуммаБезНДС КАК СуммаБезНДС,
| РаспределенныеРасходы.СуммаУпр КАК СуммаУпр,
| РаспределенныеРасходы.СуммаРегл КАК СуммаРегл,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ) ТОГДА 0
| ИНАЧЕ РаспределенныеРасходы.ПостояннаяРазница
| КОНЕЦ КАК ПостояннаяРазница,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ)
| ТОГДА РаспределенныеРасходы.СуммаРегл
| ИНАЧЕ РаспределенныеРасходы.ВременнаяРазница
| КОНЕЦ КАК ВременнаяРазница,
| РаспределенныеРасходы.Сумма КАК Расходы,
| РаспределенныеРасходы.База КАК БазаРаспределения
|ИЗ
| РаспределенныеРасходы КАК РаспределенныеРасходы
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО РаспределенныеРасходы.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И РаспределенныеРасходы.Организация = ДолиСписания.Организация";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область СписаниеНУ
ТекстЗапроса =
"ВЫБРАТЬ
|
| &КонецПериода,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
| СписаниеНУ.Регистратор,
| СписаниеНУ.Организация,
| СписаниеНУ.Подразделение,
| СписаниеНУ.НаправлениеДеятельности,
| СписаниеНУ.НаправлениеДеятельности,
| СписаниеНУ.ХозяйственнаяОперация,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| СписаниеНУ.СтатьяРасходов,
| СписаниеНУ.АналитикаРасходов,
| 0,
| 0,
| 0,
| 0,
| СписаниеНУ.ПостояннаяРазница,
| СписаниеНУ.ВременнаяРазница,
| 0,
| 0
|ИЗ
| СписаниеНУ КАК СписаниеНУ";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область РасходыКРаспределению
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| &КонецПериода,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
| РасходыКРаспределению.Регистратор,
| РасходыКРаспределению.Организация,
| РасходыКРаспределению.Подразделение,
| РасходыКРаспределению.НаправлениеДеятельности,
| НаправленияДеятельностиДляПогрешности.НаправлениеДеятельностиПриемник,
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.РаспределениеРасходовПоНаправлениямДеятельности),
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| РасходыКРаспределению.СтатьяРасходов,
| РасходыКРаспределению.АналитикаРасходов,
| ПогрешностиОкругления.Сумма,
| ПогрешностиОкругления.СуммаБезНДС,
| ПогрешностиОкругления.СуммаУпр,
| ПогрешностиОкругления.СуммаРегл,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ) ТОГДА 0
| ИНАЧЕ ПогрешностиОкругления.ПостояннаяРазница
| КОНЕЦ КАК ПостояннаяРазница,
| ВЫБОР
| КОГДА ЕСТЬNULL(ДолиСписания.Нормируемые, ЛОЖЬ)
| ТОГДА ПогрешностиОкругления.СуммаРегл
| ИНАЧЕ ПогрешностиОкругления.ВременнаяРазница
| КОНЕЦ КАК ВременнаяРазница,
| ПогрешностиОкругления.Сумма КАК Расходы,
| 0 КАК БазаРаспределения
|ИЗ
| РасходыКРаспределению КАК РасходыКРаспределению
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПогрешностиОкругления КАК ПогрешностиОкругления
| ПО РасходыКРаспределению.Регистратор = ПогрешностиОкругления.Регистратор
| И РасходыКРаспределению.СтатьяРасходов = ПогрешностиОкругления.СтатьяРасходов
| И РасходыКРаспределению.НаправлениеДеятельности = ПогрешностиОкругления.НаправлениеДеятельности
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ НаправленияДеятельностиДляПогрешности КАК НаправленияДеятельностиДляПогрешности
| ПО РасходыКРаспределению.Регистратор = НаправленияДеятельностиДляПогрешности.Регистратор
| ЛЕВОЕ СОЕДИНЕНИЕ ВтДолиСписанияКосвенныхРасходов КАК ДолиСписания
| ПО РасходыКРаспределению.СтатьяРасходов = ДолиСписания.СтатьяРасходов
| И РасходыКРаспределению.Организация = ДолиСписания.Организация";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
#Область РегистраторыКОчисткеДвижений
ТекстЗапроса =
"ВЫБРАТЬ
| "" КАК ИсточникДанных,
| &КонецПериода,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
| РегистраторыИАналитики.Регистратор,
| РегистраторыИАналитики.Организация,
| РегистраторыИАналитики.Подразделение,
| РегистраторыИАналитики.НаправлениеДеятельности,
| ЗНАЧЕНИЕ(Справочник.НаправленияДеятельности.ПустаяСсылка),
| ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПустаяСсылка),
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| НЕОПРЕДЕЛЕНО,
| РегистраторыИАналитики.СтатьяРасходов,
| РегистраторыИАналитики.АналитикаРасходов,
| 0 КАК Сумма,
| 0 КАК СуммаБезНДС,
| 0 КАК СуммаУпр,
| 0 КАК СуммаРегл,
| 0 КАК ПостояннаяРазница,
| 0 КАК ВременнаяРазница,
| 0 КАК Расходы,
| 0 КАК БазаРаспределения
|ИЗ
| РегистраторыКОчисткеДвижений КАК РегистраторыИАналитики";
ТекстыВложенногоЗапроса.Добавить(ТекстЗапроса);
#КонецОбласти
СтрокаВложенногоЗапроса = СтрСоединить(ТекстыВложенногоЗапроса, ОбщегоНазначенияУТ.РазделительЗапросовВОбъединении());
ТекстЗапроса =
"ВЫБРАТЬ
| ВложенныйЗапрос.Период КАК Период,
| ВложенныйЗапрос.ВидДвижения КАК ВидДвижения,
| ВложенныйЗапрос.Регистратор КАК Регистратор,
| ВложенныйЗапрос.Организация КАК Организация,
| ВложенныйЗапрос.Подразделение КАК Подразделение,
| ВложенныйЗапрос.НаправлениеДеятельности КАК НаправлениеДеятельности,
| ВложенныйЗапрос.НаправлениеДеятельностиПриемник КАК НаправлениеДеятельностиПриемник,
| ВложенныйЗапрос.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| ВложенныйЗапрос.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
| ВложенныйЗапрос.КодСтрокиПродукция КАК КодСтрокиПродукция,
| ВложенныйЗапрос.ПартияПроизводства КАК ПартияПроизводства,
| ВложенныйЗапрос.СтатьяРасходов КАК СтатьяРасходов,
| ВложенныйЗапрос.АналитикаРасходов КАК АналитикаРасходов,
| СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
| СУММА(ВложенныйЗапрос.СуммаБезНДС) КАК СуммаБезНДС,
| СУММА(ВложенныйЗапрос.СуммаУпр) КАК СуммаУпр,
| СУММА(ВложенныйЗапрос.СуммаРегл) КАК СуммаРегл,
| СУММА(ВложенныйЗапрос.ПостояннаяРазница) КАК ПостояннаяРазница,
| СУММА(ВложенныйЗапрос.ВременнаяРазница) КАК ВременнаяРазница,
| СУММА(ВложенныйЗапрос.Расходы) КАК Расходы,
| СУММА(ВложенныйЗапрос.БазаРаспределения) КАК БазаРаспределения
|ПОМЕСТИТЬ РезультатРаспределения
|ИЗ
| РезультатРаспределенияПредварительная КАК ВложенныйЗапрос
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Период,
| ВложенныйЗапрос.Регистратор,
| ВложенныйЗапрос.Организация,
| ВложенныйЗапрос.ВидДвижения,
| ВложенныйЗапрос.Подразделение,
| ВложенныйЗапрос.НаправлениеДеятельности,
| ВложенныйЗапрос.НаправлениеДеятельностиПриемник,
| ВложенныйЗапрос.ХозяйственнаяОперация,
| ВложенныйЗапрос.ЗаказНаПроизводство,
| ВложенныйЗапрос.КодСтрокиПродукция,
| ВложенныйЗапрос.ПартияПроизводства,
| ВложенныйЗапрос.СтатьяРасходов,
| ВложенныйЗапрос.АналитикаРасходов";
Если РежимОтладкиПоИсточникам Тогда
ТекстыЗапроса = Новый Массив;
ТекстыЗапроса.Добавить(СтрокаВложенногоЗапроса);
ТекстыЗапроса.Добавить(ТекстЗапроса);
ТекстЗапроса = СтрСоединить(ТекстыЗапроса, ОбщегоНазначения.РазделительПакетаЗапросов());
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "РезультатРаспределенияПредварительная", "(" + СтрокаВложенногоЗапроса + ")");
КонецЕсли;
Возврат ТекстЗапроса;
КонецФункции
Функция ТекстВыборкаРезультатРаспределения()
ТекстЗапроса =
"ВЫБРАТЬ
| РезультатРаспределения.Период КАК Период,
| РезультатРаспределения.ВидДвижения КАК ВидДвижения,
| РезультатРаспределения.Регистратор КАК Регистратор,
| РезультатРаспределения.Организация КАК Организация,
| РезультатРаспределения.Подразделение КАК Подразделение,
| РезультатРаспределения.НаправлениеДеятельности КАК НаправлениеДеятельности,
| РезультатРаспределения.НаправлениеДеятельностиПриемник КАК НаправлениеДеятельностиПриемник,
| РезультатРаспределения.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| РезультатРаспределения.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
| РезультатРаспределения.КодСтрокиПродукция КАК КодСтрокиПродукция,
| РезультатРаспределения.ПартияПроизводства КАК ПартияПроизводства,
| РезультатРаспределения.СтатьяРасходов КАК СтатьяРасходов,
| РезультатРаспределения.АналитикаРасходов КАК АналитикаРасходов,
| (РезультатРаспределения.Сумма) КАК Сумма,
| (РезультатРаспределения.СуммаБезНДС) КАК СуммаБезНДС,
| (РезультатРаспределения.СуммаУпр) КАК СуммаУпр,
| (РезультатРаспределения.СуммаРегл) КАК СуммаРегл,
| (РезультатРаспределения.ПостояннаяРазница) КАК ПостояннаяРазница,
| (РезультатРаспределения.ВременнаяРазница) КАК ВременнаяРазница,
| (РезультатРаспределения.Расходы) КАК Расходы,
| (РезультатРаспределения.БазаРаспределения) КАК БазаРаспределения
|ИЗ
| РезультатРаспределения КАК РезультатРаспределения
|
|ИТОГИ ПО
| Организация,
| Регистратор";
Возврат ТекстЗапроса;
КонецФункции
#КонецОбласти
#КонецОбласти
#КонецОбласти
#КонецЕсли