Имя: Пароль:
1C
1С v8
Пропорционально изменить сумму в строках
0 dj_serega
 
26.06.14
12:55
Всем привет.
Не могу решить простейшую задачу.

Есть три строки с суммами:
1. 19000
2. 25000
3. 10000
Итого: 54000

Нужно увеличить строку 1 до 20000, а строки 2 и 3 уменьшить пропорционально, что бы итоговая сумма не изменилась.

В итоге нужно:
1. 20000
2. ???
3. ???
Итого: 54000

Подтолкните, пожалуйста, в русло расчета.
1 Рэйв
 
26.06.14
13:02
на строку 2
1000*(3/5)


на строку 3
1000*(2/5) на


в школу не ходил чтоли?
2 dj_serega
 
26.06.14
13:05
(1) Так сам в шоке... Вроде и еще не пятница, а с элементарной задачей не могу справиться.
3 Бешеная Нога
 
26.06.14
13:06
1. пронумеровать строки таблицы в запросе
2. условием по номеру строки разбить таблицу на две (1 строка  - Т1 и все остальные - Т2)
3. В таблице Т1 уменьшить значение поля на сумму &СуммаКУменьшению
4. В таблице Т2 запросом распределеить &СуммаКУменьшению на все строки и уменьшить соответствующие значения на сумму распределения
5. объединить Т1 и Т2
4 Рэйв
 
26.06.14
13:13
(2)хотя погодь:-) Я тебе наврал кажется.

на строку 2 :  10000/(35000/100) ~ 28,5 % = 285 (28,5 % от 1000)

значит на строку 3 :   715

Вот так:-)
5 dj_serega
 
26.06.14
13:21
Спасибо за помощь. Вообщем получилось так. Еще потестирую :)

СуммаСтрокиДо        = СтрокаТЧ.Сумма;
ПроцентОтСуммы        = РазницаИзмененнойСуммы / СуммаСтрокиДо / КоличествоСтрокБезИзмененной;
СуммаСтрокиПосле    = СуммаСтрокиДо - (СуммаСтрокиДо * ПроцентОтСуммы);
СтрокаТЧ.Сумма        = СуммаСтрокиПосле;
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший