Code
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура,
РасходнаяНакладнаяСписокНоменклатуры.Партия,
СУММА(РасходнаяНакладнаяСписок Номенклатуры.Количество) КАК Количество,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
ПОМЕСТИТЬ Док
ИЗ
Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РасходнаяНакладнаяСписокНоменклатуры.Партия,
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Док.Номенклатура,
Док.Партия,
ВЫБОР
КОГДА Док.Количество >= ОстаткиНоменклатурыОстатки.КоличествоОстаток
ТОГДА ОстаткиНоменклатурыОстатки.КоличествоОстаток
ИНАЧЕ Док.Количество
КОНЕЦ КАК СписаноКоличество,
ВЫБОР
КОГДА Док.Количество >= ОстаткиНоменклатурыОстатки.КоличествоОстаток
ТОГДА ОстаткиНоменклатурыОстатки.СуммаОстаток
ИНАЧЕ ОстаткиНоменклатурыОстатки.СуммаОстаток * Док.Количество / ОстаткиНоменклатурыОстатки.КоличествоОстаток
КОНЕЦ КАК СписанноСумма
ПОМЕСТИТЬ РаспределеноПоПриоритетнымПартиям
ИЗ
Док КАК Док
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
&МоментДокумента,
(Номенклатура, Партия) В
(ВЫБРАТЬ
Док.Номенклатура,
Док.Партия
ИЗ
Док)) КАК ОстаткиНоменклатурыОстатки
ПО Док.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
И Док.Партия = ОстаткиНоменклатурыОстатки.Партия
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОстаткиНоменклатурыОстатки.Номенклатура,
ОстаткиНоменклатурыОстатки.Партия,
ОстаткиНоменклатурыОстатки.КоличествоОстаток,
О статкиНоменклатурыОстатки.СуммаОстаток
ПОМЕСТИТЬ СвободныеПартииРазвёрнутые
ИЗ
РегистрНакопления.ОстаткиНоменклатуры.Остатки(
&МоментДокумента,
Номенклатура В
(ВЫБРАТЬ
Док.Номенклатура
ИЗ
Док)) КАК ОстаткиНоменклатурыОстатки
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
РаспределеноПоПриоритетнымПартиям.Номенклатура,
РаспределеноПоПриоритетнымПартиям.Партия,
-РаспределеноПоПриоритетнымПа ртиям.СписаноКоличество,
-РаспределеноПоПриоритетнымПартиям.СписанноСумма
ИЗ
РаспределеноПоПриоритетнымПартиям КАК РаспределеноПоПриоритетнымПартиям
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СвободныеПартииРазвёрнутые.Номенклатура,
СвободныеПартииРазвёрнутые.Партия,
СУММА(СвободныеПартииРазвёрнутые.КоличествоОстат ок) КАК КоличествоОстаток,
СУММА(СвободныеПартииРазвёрнутые.СуммаОстаток) КАК СуммаОстаток
ПОМЕСТИТЬ СвободныеПартии
ИЗ
СвободныеПартииРазвёрнутые КАК СвободныеПартииРазвёрнутые
СГРУППИРОВАТЬ ПО
СвободныеПартииРазвёрнутые.Номенклатура,
СвободныеПартииРазвёрнутые.Партия
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СвободныеПартии.Номенклатура,
СвободныеПартии.Партия,
СвободныеПартии.КоличествоОстаток,
СвободныеПартии.СуммаОстаток
ПОМ ЕСТИТЬ СвободныеПартииБезНулей
ИЗ
СвободныеПартии КАК СвободныеПартии
ГДЕ
(СвободныеПартии.КоличествоОстаток > 0
ИЛИ СвободныеПартии.СуммаОстаток > 0)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Док.Номенклатура,
СУММА(Док.Количество) КАК Количество,
СУММА(Док.Сумма) КАК Сумма
ПОМЕСТИТЬ СчернутаяТЧ
ИЗ
Док КАК Док
СГРУППИРОВАТЬ ПО
Док.Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СчернутаяТЧ.Номенклатура КАК Номенклатура,
СчернутаяТЧ.Количество КАК Количество,
СчернутаяТЧ.Сумма КАК Сумма,
СвободныеПартии.КоличествоОстаток КАК КоличествоОстаток,
СвободныеПартии.СуммаОстаток,
СвободныеПартии.Партия КАК Партия,
0 КАК Приоритет
ИЗ
СчернутаяТЧ КАК СчернутаяТЧ
ЛЕВОЕ СОЕДИНЕНИЕ СвободныеПартииБезНулей КАК СвободныеПартии
ПО СчернутаяТЧ.Номенклатура = СвободныеПартии.Номенклатура
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СчернутаяТЧ.Номенклатура,
СчернутаяТЧ.Количество,
СчернутаяТЧ.Сумма,
РаспределеноПоПриоритетнымПартиям.СписаноКоличес тво,
РаспределеноПоПриоритетнымПартиям.СписанноСумма,
РаспределеноПоПриоритетнымПартиям.Партия,
1
ИЗ
СчернутаяТЧ КАК СчернутаяТЧ
ЛЕВОЕ СОЕДИНЕНИЕ РаспределеноПоПриоритетнымПартиям КАК РаспределеноПоПриоритетнымПартиям
ПО СчернутаяТЧ.Номенклатура = РаспределеноПоПриоритетнымПартиям.Номенклатура
УПОРЯДОЧИТЬ ПО
Приоритет УБЫВ,
Партия
ИТОГИ
МАКСИМУМ(Количество),
МАКСИМУМ(Сумма),
СУММА(КоличествоОстаток)
ПО
Номенклатура