Имя: Пароль:
1C
1С v8
Как запрос с нарастающим итогом по партиям ограничить количеством? Или такое нельзя?
,
0 arsik
 
гуру
10.01.23
14:48
Например регистр партии:

Партия 01.01.22 Количество 2 шт. Нарастающим 2
Партия 02.01.22 Количество 3 шт. Нарастающим 5
Партия 03.01.22 Количество 4 шт. Нарастающим 9
Партия 04.01.22 Количество 5 шт. Нарастающим 14

Мне нужно по фифо получить среднюю стоимость для 8 шт.
Не могу понять можно ли такое в запросе сделать.
1 lodger
 
10.01.23
14:53
(0) что значит "среднюю стоимость для 8 шт"?
2 arsik
 
гуру
10.01.23
14:56
(1) Ну упростим еще сильнее. Скажем не "среднюю стоимость для 8 шт", а мне нужно в запросе оставить только первые 3 партии, т.к. мне нужно выбрать 8 единиц по фифо.
3 lodger
 
10.01.23
14:57
4 Kassern
 
10.01.23
14:57
(2) Выбрать Первые 3 =)
5 Eiffil123
 
10.01.23
15:01
(0) запросом сложно, да и не зачем. Кодом намного проще это сделать.
6 arsik
 
гуру
10.01.23
15:23
(3) Там другое
Вот так получилось

|ИМЕЮЩИЕ
|    СУММА(втПартииНарастающее.КоличествоОстаток) - втПартии.КоличествоОстаток <= 8";


Проверка на остаток до приращения


"ВЫБРАТЬ
|    ПартииТоваровКомпанииОстатки.Партия.МоментВремени КАК ПартияМоментВремени,
|    ПартииТоваровКомпанииОстатки.КоличествоОстаток КАК КоличествоОстаток,
|    ПартииТоваровКомпанииОстатки.СуммаОстаток КАК СуммаОстаток
|ПОМЕСТИТЬ втПартии
|ИЗ
|    РегистрНакопления.ПартииТоваровКомпании.Остатки(
|            &МоментСреза,
|            Номенклатура = &Номенклатура
|                И СкладКомпании = &СкладКомпании) КАК ПартииТоваровКомпанииОстатки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    втПартии.ПартияМоментВремени КАК ПартияМоментВремени,
|    втПартии.КоличествоОстаток КАК КоличествоОстаток,
|    втПартии.СуммаОстаток КАК СуммаОстаток,
|    СУММА(втПартииНарастающее.КоличествоОстаток) КАК КоличествоНарастающийИтог,
|    СУММА(втПартииНарастающее.КоличествоОстаток) - втПартии.КоличествоОстаток КАК КоличествоНарастающийИтогДо
|ИЗ
|    втПартии КАК втПартии
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПартии КАК втПартииНарастающее
|        ПО (втПартии.ПартияМоментВремени >= втПартииНарастающее.ПартияМоментВремени)
|
|СГРУППИРОВАТЬ ПО
|    втПартии.ПартияМоментВремени,
|    втПартии.КоличествоОстаток,
|    втПартии.СуммаОстаток
|
|ИМЕЮЩИЕ
|    СУММА(втПартииНарастающее.КоличествоОстаток) - втПартии.КоличествоОстаток <= 8";

Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан