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) КАК Стоимость
|ИЗ
| ТаблицаУзлыКорректировкиСтоимостиСписания КАК ТаблицаУзлыКорректировкиСтоимостиСписания
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаОстатковПартий КАК ТаблицаОстатковПартий
| ПО
| ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета = ТаблицаОстатковПартий.АналитикаВидаУчета
| И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат = ТаблицаОстатковПартий.АналитикаУчетаЗатрат
| И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий = ТаблицаОстатковПартий.АналитикаУчетаПартий
| И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = ТаблицаОстатковПартий.АналитикаРаспределенияЗатрат
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| ОстаткиДопРасходов КАК ОстаткиДопРасходов
| ПО
| ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаВидаУчета = ОстаткиДопРасходов.АналитикаВидаУчета
| И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаЗатрат = ОстаткиДопРасходов.АналитикаУчетаЗатрат
| И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаУчетаПартий = ОстаткиДопРасходов.АналитикаУчетаПартий
| И ТаблицаУзлыКорректировкиСтоимостиСписания.АналитикаРаспределенияЗатрат = ОстаткиДопРасходов.АналитикаРаспределенияЗатрат
|
|АВТОУПОРЯДОЧИВАНИЕ";*/
//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
}