Имя: Пароль:
1C
1С v8
Запрос платежей по материалам пропорционально стоимости
, , , ,
0 Серж1С
 
20.01.23
09:45
Требуется заполнить "Распределенный график платежей по закупаемым материалам" пропорционально стоимости закупаемых материалов. Если в графике указана конкретная номенклатура, значит при распределении нужно учесть что пользователь конкретно указал в какую дату он платит по какой номенклатуре.  В рамках каждой даты по оставшимся суммам платежей необходимо распределить на все остальные материалы пропорционально их стоимости.

Пример
Табл.1
Номенклатура    Стоимость
Кирпич    5000
Бензин    3000
Лопата    2000

Табл. 2
Дата платежа    Сумма    Номенклатура
01.01.2012    2000    
01.02.2012    4000    Кирпич
01.02.2012    1000    
01.03.2012    3000    

Табл. 3 РЕЗУЛЬТИРУЮЩАЯ
Дата платежа    Сумма    Номенклатура
01.01.2012    333,33    Кирпич
01.01.2012    1000,00    Бензин
01.01.2012    666,67    Лопата
01.02.2012    4000,00    Кирпич
01.02.2012    600,00    Бензин
01.02.2012    400,00    Лопата
01.03.2012    666,67    Кирпич
01.03.2012    1400,00    Бензин
01.03.2012    933,33    Лопата
1 piter3
 
модератор
20.01.23
09:48
И?
2 Серж1С
 
20.01.23
09:54
Не пойму как сделать в запросе!
3 shuhard
 
20.01.23
10:29
(2) И ?
4 Серж1С
 
20.01.23
13:18
ВЫБРАТЬ
    ЗакупаемыеМатериалы.Номенклатура,
    КОЛИЧЕСТВО(Порядок.Стоимость) КАК Порядок,
    &СуммаОплаты КАК СуммаОплаты,
    ВЫРАЗИТЬ(&СуммаОплаты / СуммаСтоимость.Сумма * ЗакупаемыеМатериалы.Стоимость КАК ЧИСЛО(15, 2)) КАК РаспределеннаяОплата
ПОМЕСТИТЬ РаспределениеОплаты
ИЗ
    ЗакупаемыеМатериалы КАК ЗакупаемыеМатериалы
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ЗакупаемыеМатериалы.Стоимость) КАК Сумма
        ИЗ
            ЗакупаемыеМатериалы КАК ЗакупаемыеМатериалы) КАК СуммаСтоимость
        ПО (ИСТИНА)
        ЛЕВОЕ СОЕДИНЕНИЕ ЗакупаемыеМатериалы КАК Порядок
        ПО (Порядок.Стоимость > ЗакупаемыеМатериалы.Стоимость
                ИЛИ Порядок.Стоимость = ЗакупаемыеМатериалы.Стоимость
                    И Порядок.НомерСтроки < ЗакупаемыеМатериалы.НомерСтроки)

СГРУППИРОВАТЬ ПО
    ЗакупаемыеМатериалы.Номенклатура,
    ЗакупаемыеМатериалы.Стоимость,
    СуммаСтоимость.Сумма
;
5 Said_We
 
20.01.23
17:12
(2) А думаю как это на бумаге в (0) посчитано и не получил такого результата. :-)
6 Серж1С
 
22.01.23
09:02
Как сделать в запросе без обхода циклом?
7 Мимохожий Однако
 
22.01.23
09:56
(0) Таблица 2 немного странная. Как ты её получил?
8 Серж1С
 
22.01.23
10:14
(7) Табл 1 и Табл 2  - это дано!
9 RomanYS
 
22.01.23
10:40
(8) задача учебная? Для реальной практики тут слишком много "но" чтобы решать такое запросом. Тут регистр остатков напрашивается, соответственно в запросе придётся это как то эмулировать
10 RoRu
 
22.01.23
10:46
А в чем смысл?
11 Said_We
 
22.01.23
12:09
(0) Как ты получил таблицу ТРИ?