public object СформироватьТекстЗапросаБазаРаспределенияЗатрат(/**/)
{
/*ТекстЗапроса = "
|ВЫБРАТЬ
| Распределение.Подразделение,
| Распределение.Продукция,
| Распределение.ХарактеристикаПродукции,
| Распределение.СерияПродукции,
| Распределение.НомерПередела,
| Распределение.Продукция.ВестиУчетПоСериямВНЗП КАК ВестиУчетПоСериямВНЗП
|
|ПОМЕСТИТЬ РаспределениеПродукцииПоПеределам
|ИЗ
| РегистрСведений.РаспределениеПродукцииПоПеределам%СуффиксОрганизаций% КАК Распределение
|
|ГДЕ
| Распределение.Период МЕЖДУ &НачДата И &КонДата
| И &РаспределениеКосвенныхЗатрат
| И Не Распределение.КорректировкаНЗП
| И Не Распределение.ОприходованиеНЗП
| И Не Распределение.ВозвратИзНЗП
| //ДляРеглУчета И Распределение.Организация = &Организация
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВыпускПродукции.Подразделение,
| ВыпускПродукции.НоменклатурнаяГруппа,
| ВыпускПродукции.Продукция,
| ВыпускПродукции.ХарактеристикаПродукции,
| ВыпускПродукции.СерияПродукции
|
|ПОМЕСТИТЬ ВыпускПродукции
|ИЗ
| РегистрНакопления.ВыпускПродукции%СуффиксУчета% КАК ВыпускПродукции
|
|ГДЕ
| ВыпускПродукции.Период МЕЖДУ &НачДата И &КонДата
| И ВыпускПродукции.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийВыпускПродукции.ВыпускПродукцииПоФиксированнойСтоимости)
| //ДляРеглУчета И ВыпускПродукции.Организация = &Организация
|
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| ВыпускПродукции.Подразделение,
| ВыпускПродукции.НоменклатурнаяГруппа,
| МИНИМУМ(Распределение.НомерПередела) КАК НомерПередела
|
|ПОМЕСТИТЬ ВыпускПродукцииПоПеределам
|ИЗ
| ВыпускПродукции КАК ВыпускПродукции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РаспределениеПродукцииПоПеределам КАК Распределение
| ПО
| ВыпускПродукции.Подразделение = Распределение.Подразделение
| И ВыпускПродукции.Продукция = Распределение.Продукция
| И ВыпускПродукции.ХарактеристикаПродукции = Распределение.ХарактеристикаПродукции
| И ВыпускПродукции.СерияПродукции = Распределение.СерияПродукции
|
|ГДЕ
| ВыпускПродукции.НоменклатурнаяГруппа <> ЗНАЧЕНИЕ(Справочник.НоменклатурныеГруппы.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| ВыпускПродукции.Подразделение,
| ВыпускПродукции.НоменклатурнаяГруппа
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВыпускПродукции.Подразделение,
| ЗНАЧЕНИЕ(Справочник.НоменклатурныеГруппы.ПустаяСсылка),
| МАКСИМУМ(Распределение.НомерПередела) КАК НомерПередела
|ИЗ
| ВыпускПродукции КАК ВыпускПродукции
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| РаспределениеПродукцииПоПеределам КАК Распределение
| ПО
| ВыпускПродукции.Подразделение = Распределение.Подразделение
| И ВыпускПродукции.Продукция = Распределение.Продукция
| И ВыпускПродукции.ХарактеристикаПродукции = Распределение.ХарактеристикаПродукции
| И (ВыпускПродукции.СерияПродукции = Распределение.СерияПродукции
| И Распределение.ВестиУчетПоСериямВНЗП
| ИЛИ Не Распределение.ВестиУчетПоСериямВНЗП)
|
|СГРУППИРОВАТЬ ПО
| ВыпускПродукции.Подразделение
|
|;
|/////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| //ДляРеглУчета БазаРаспределенияЗатрат.Организация,
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат КАК СпособРаспределения,
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат.РаспределятьНаПодчиненныеПодразделения КАК РаспределятьНаПодчиненныеПодразделения,
| БазаРаспределенияЗатрат.Подразделение,
| БазаРаспределенияЗатрат.НоменклатурнаяГруппа,
| БазаРаспределенияЗатрат.Заказ,
| БазаРаспределенияЗатрат.Подразделение КАК ПодразделениеНЗП,
| БазаРаспределенияЗатрат.НоменклатурнаяГруппа КАК НоменклатурнаяГруппаНЗП,
| БазаРаспределенияЗатрат.Заказ КАК ЗаказНЗП,
| ЗНАЧЕНИЕ(Перечисление.ХарактерРаспределенияЗатрат.ПустаяСсылка) КАК ХарактерРаспределенияЗатрат,
|
| МИНИМУМ(
| ЕСТЬNULL(ВыпускПродукции.НомерПередела, 1)
| ) КАК НомерПередела,
|
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| //ДляБухУчета ЕСТЬNULL(СчетаУчетаЕНВД.ЕНВД, Ложь) КАК ЕНВД,
|
| //ДляНалУчета СУММА(
| //ДляНалУчета ВЫБОР КОГДА БазаРаспределенияНаПодчиненные.БазаПриходНУ ЕСТЬ NULL ИЛИ БазаРаспределенияНаПодчиненные.БазаПриходНУ = 0 ТОГДА
| //ДляНалУчета БазаРаспределенияЗатрат.БазаПриходНУ
| //ДляНалУчета ИНАЧЕ
| //ДляНалУчета БазаРаспределенияЗатрат.БазаПриходНУ /
| //ДляНалУчета ВЫБОР КОГДА БазаРаспределенияЗатратВсего.БазаПриходНУ ЕСТЬ NULL ИЛИ БазаРаспределенияЗатратВсего.БазаПриходНУ = 0 ТОГДА
| //ДляНалУчета 1
| //ДляНалУчета ИНАЧЕ
| //ДляНалУчета БазаРаспределенияЗатратВсего.БазаПриходНУ
| //ДляНалУчета КОНЕЦ
| //ДляНалУчета КОНЕЦ
| //ДляНалУчета ) КАК БазаПриходНУ,
| //ДляНалУчета МАКСИМУМ(
| //ДляНалУчета ВЫБОР КОГДА БазаРаспределенияНаПодчиненные.БазаПриходНУ ЕСТЬ NULL ИЛИ БазаРаспределенияНаПодчиненные.БазаПриходНУ = 0 ТОГДА
| //ДляНалУчета 1
| //ДляНалУчета ИНАЧЕ
| //ДляНалУчета БазаРаспределенияНаПодчиненные.БазаПриходНУ /
| //ДляНалУчета ВЫБОР КОГДА БазаРаспределенияНаПодчиненныеВсего.БазаПриходНУ ЕСТЬ NULL ИЛИ БазаРаспределенияНаПодчиненныеВсего.БазаПриходНУ = 0 ТОГДА
| //ДляНалУчета 1
| //ДляНалУчета ИНАЧЕ
| //ДляНалУчета БазаРаспределенияНаПодчиненныеВсего.БазаПриходНУ
| //ДляНалУчета КОНЕЦ
| //ДляНалУчета КОНЕЦ
| //ДляНалУчета ) КАК БазаНаПодчиненныеНУ,
|
| СУММА(
| ВЫБОР КОГДА БазаРаспределенияНаПодчиненные.БазаПриход ЕСТЬ NULL ИЛИ БазаРаспределенияНаПодчиненные.БазаПриход = 0 ТОГДА
| БазаРаспределенияЗатрат.БазаПриход
| ИНАЧЕ
| (БазаРаспределенияЗатрат.БазаПриход /
| ВЫБОР КОГДА БазаРаспределенияЗатратВсего.БазаПриход ЕСТЬ NULL ИЛИ БазаРаспределенияЗатратВсего.БазаПриход = 0 ТОГДА
| 1
| ИНАЧЕ
| БазаРаспределенияЗатратВсего.БазаПриход
| КОНЕЦ)
| КОНЕЦ
| ) КАК БазаПриход,
| МАКСИМУМ(
| ВЫБОР КОГДА БазаРаспределенияНаПодчиненные.БазаПриход ЕСТЬ NULL ИЛИ БазаРаспределенияНаПодчиненные.БазаПриход = 0 ТОГДА
| 1
| ИНАЧЕ
| БазаРаспределенияНаПодчиненные.БазаПриход /
| ВЫБОР КОГДА БазаРаспределенияНаПодчиненныеВсего.БазаПриход ЕСТЬ NULL ИЛИ БазаРаспределенияНаПодчиненныеВсего.БазаПриход = 0 ТОГДА
| 1
| ИНАЧЕ
| БазаРаспределенияНаПодчиненныеВсего.БазаПриход
| КОНЕЦ
| КОНЕЦ
| ) КАК БазаНаПодчиненные
|
|ИЗ
| РегистрСведений.БазаРаспределенияЗатрат%СуффиксУчета% КАК БазаРаспределенияЗатрат
|
| ЛЕВОЕ СОЕДИНЕНИЕ (
| ВЫБРАТЬ
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| БазаРаспределенияЗатрат.Подразделение,
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| //ДляНалУчета СУММА(БазаРаспределенияЗатрат.БазаПриходНУ) КАК БазаПриходНУ,
| СУММА(БазаРаспределенияЗатрат.БазаПриход) КАК БазаПриход
| ИЗ
| РегистрСведений.БазаРаспределенияЗатрат%СуффиксУчета% КАК БазаРаспределенияЗатрат
| ГДЕ
| БазаРаспределенияЗатрат.Период МЕЖДУ &НачДата И &КонДата
| И БазаРаспределенияЗатрат.РаспределениеКосвенныхЗатрат = &РаспределениеКосвенныхЗатрат
| И БазаРаспределенияЗатрат.РасчетСебестоимостиВыпуска
| //ДляРеглУчета И БазаРаспределенияЗатрат.Организация = &Организация
|
| СГРУППИРОВАТЬ ПО
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| БазаРаспределенияЗатрат.Подразделение
|
| ) КАК БазаРаспределенияЗатратВсего
| ПО
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат = БазаРаспределенияЗатратВсего.СпособРаспределенияЗатрат
| И БазаРаспределенияЗатрат.Подразделение = БазаРаспределенияЗатратВсего.Подразделение
| И БазаРаспределенияЗатрат.СпособРаспределенияЗатрат.РаспределятьНаПодчиненныеПодразделения
| //ДляРеглУчета И БазаРаспределенияЗатрат.СчетУчета = БазаРаспределенияЗатратВсего.СчетУчета
|
| ЛЕВОЕ СОЕДИНЕНИЕ (
| ВЫБРАТЬ
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| БазаРаспределенияЗатрат.Подразделение,
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| //ДляНалУчета СУММА(БазаРаспределенияЗатрат.БазаПриходНУ) КАК БазаПриходНУ,
| СУММА(БазаРаспределенияЗатрат.БазаПриход) КАК БазаПриход
| ИЗ
| РегистрСведений.БазаРаспределенияЗатрат%СуффиксУчета% КАК БазаРаспределенияЗатрат
| ГДЕ
| БазаРаспределенияЗатрат.Период МЕЖДУ &НачДата И &КонДата
| И БазаРаспределенияЗатрат.РаспределениеКосвенныхЗатрат = &РаспределениеКосвенныхЗатрат
| И БазаРаспределенияЗатрат.РасчетСебестоимостиВыпуска
| //ДляРеглУчета И БазаРаспределенияЗатрат.Организация = &Организация
|
| СГРУППИРОВАТЬ ПО
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| БазаРаспределенияЗатрат.Подразделение
|
| ) КАК БазаРаспределенияНаПодчиненные
| ПО
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат.СпособРаспределенияЗатратПоПодразделениям
| = БазаРаспределенияНаПодчиненные.СпособРаспределенияЗатрат
| И БазаРаспределенияЗатрат.СпособРаспределенияЗатрат.РаспределятьНаПодчиненныеПодразделения
| И БазаРаспределенияЗатрат.Подразделение = БазаРаспределенияНаПодчиненные.Подразделение
| //ДляРеглУчета И БазаРаспределенияЗатрат.СчетУчета = БазаРаспределенияНаПодчиненные.СчетУчета
|
| ЛЕВОЕ СОЕДИНЕНИЕ (
| ВЫБРАТЬ
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| //ДляНалУчета СУММА(БазаРаспределенияЗатрат.БазаПриходНУ) КАК БазаПриходНУ,
| СУММА(БазаРаспределенияЗатрат.БазаПриход) КАК БазаПриход
| ИЗ
| РегистрСведений.БазаРаспределенияЗатрат%СуффиксУчета% КАК БазаРаспределенияЗатрат
| ГДЕ
| БазаРаспределенияЗатрат.Период МЕЖДУ &НачДата И &КонДата
| И БазаРаспределенияЗатрат.РаспределениеКосвенныхЗатрат = &РаспределениеКосвенныхЗатрат
| И БазаРаспределенияЗатрат.РасчетСебестоимостиВыпуска
| //ДляРеглУчета И БазаРаспределенияЗатрат.Организация = &Организация
|
| СГРУППИРОВАТЬ ПО
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат
|
| ) КАК БазаРаспределенияНаПодчиненныеВсего
| ПО
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат.СпособРаспределенияЗатратПоПодразделениям
| = БазаРаспределенияНаПодчиненныеВсего.СпособРаспределенияЗатрат
| И БазаРаспределенияЗатрат.СпособРаспределенияЗатрат.РаспределятьНаПодчиненныеПодразделения
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ВыпускПродукцииПоПеределам КАК ВыпускПродукции
| ПО
| БазаРаспределенияЗатрат.Подразделение = ВыпускПродукции.Подразделение
| И БазаРаспределенияЗатрат.НоменклатурнаяГруппа = ВыпускПродукции.НоменклатурнаяГруппа
|
| //ДляБухУчета ЛЕВОЕ СОЕДИНЕНИЕ (
| //ДляБухУчета ВЫБРАТЬ
| //ДляБухУчета СчетаУчетаЕНВД.Счет,
| //ДляБухУчета Истина КАК ЕНВД
| //ДляБухУчета ИЗ
| //ДляБухУчета РегистрСведений.СчетаУчетаПоДеятельностиЕНВД КАК СчетаУчетаЕНВД
| //ДляБухУчета ГДЕ
| //ДляБухУчета Не СчетаУчетаЕНВД.ПодлежитРаспределению
| //ДляБухУчета ) КАК СчетаУчетаЕНВД
| //ДляБухУчета ПО
| //ДляБухУчета БазаРаспределенияЗатрат.СчетУчета = СчетаУчетаЕНВД.Счет
|
|ГДЕ
| БазаРаспределенияЗатрат.Период МЕЖДУ &НачДата И &КонДата
| И БазаРаспределенияЗатрат.РаспределениеКосвенныхЗатрат = &РаспределениеКосвенныхЗатрат
| И БазаРаспределенияЗатрат.РасчетСебестоимостиВыпуска
| И БазаРаспределенияЗатрат.СпособРаспределенияЗатрат В (
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| СпособыРаспределения.СпособРаспределенияЗатрат
| ИЗ
| РегистрСведений.СпособыРаспределенияСтатейЗатрат%СуффиксОрганизаций%.СрезПоследних(&КонГраница,
| //ДляРеглУчета Организация = &Организация
| ) КАК СпособыРаспределения
| ГДЕ
| Не СпособыРаспределения.НеРаспределять
| И ((&РаспределениеКосвенныхЗатрат
| И СпособыРаспределения.ХарактерРаспределенияЗатрат <> &ХарактерРаспределенияПроизводственныеРасходы)
| ИЛИ
| (Не &РаспределениеКосвенныхЗатрат
| И СпособыРаспределения.ХарактерРаспределенияЗатрат = &ХарактерРаспределенияПроизводственныеРасходы)
| )
| )
| //ДляРеглУчета И БазаРаспределенияЗатрат.Организация = &Организация
| //ДляБухУчета И Не БазаРаспределенияЗатрат.СчетУчета.Забалансовый
|
|СГРУППИРОВАТЬ ПО
| //ДляРеглУчета БазаРаспределенияЗатрат.Организация,
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| БазаРаспределенияЗатрат.Подразделение,
| БазаРаспределенияЗатрат.НоменклатурнаяГруппа,
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| //ДляБухУчета ЕСТЬNULL(СчетаУчетаЕНВД.ЕНВД, Ложь),
| БазаРаспределенияЗатрат.Заказ
|
|УПОРЯДОЧИТЬ ПО
| //ДляРеглУчета БазаРаспределенияЗатрат.Организация,
| БазаРаспределенияЗатрат.СпособРаспределенияЗатрат,
| //ДляРеглУчета БазаРаспределенияЗатрат.СчетУчета,
| //ДляБухУчета ЕСТЬNULL(СчетаУчетаЕНВД.ЕНВД, Ложь),
| НомерПередела,
| БазаРаспределенияЗатрат.Подразделение,
| БазаРаспределенияЗатрат.НоменклатурнаяГруппа,
| БазаРаспределенияЗатрат.Заказ
|";*/
return null;
}