V82.ОбщиеМодули.КорректировкаСтоимостиУчетЗатрат.ПодготовитьЗапросДляСписанияПоФИФО C# (CSharp) Method

ПодготовитьЗапросДляСписанияПоФИФО() public method

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

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