|
Как распределить сумму между двумя другими объясните чайнику | ☑ | ||
---|---|---|---|---|
0
Sa6nek6
22.05.14
✎
17:18
|
Есть сумма 55801,12 ее нужно правильно распределить между 510000 и 49855,86
|
|||
1
Ненавижу 1С
гуру
22.05.14
✎
17:19
|
почитай про пропорции
|
|||
2
Sa6nek6
22.05.14
✎
17:19
|
копейки как не потерять
|
|||
3
nufnufcheg
22.05.14
✎
17:20
|
в типовых есть процедуры распределить пропорционально
|
|||
4
Ненавижу 1С
гуру
22.05.14
✎
17:21
|
(2) сначала определи сколько первому, остальное отдай последнему
|
|||
5
Sa6nek6
22.05.14
✎
17:22
|
вопрос наверное не правильно поставил, надо из 510000 и 49855,86 забрать чтоб до копеечки
|
|||
6
Sa6nek6
22.05.14
✎
17:22
|
запутался...
|
|||
7
Sa6nek6
22.05.14
✎
17:23
|
Как??
|
|||
8
ptiz
22.05.14
✎
17:24
|
Пример давай с цифрами.
Что такое "правильно"? |
|||
9
Sa6nek6
22.05.14
✎
17:26
|
Есть сумма 55801,12 и есть две статьи затрат
1статья = 510000 2статья = 49855,86 нужно списать с этих статей так чтоб копейки не потерялись |
|||
10
Кай066
22.05.14
✎
17:28
|
(9) куда списать?
|
|||
11
Sa6nek6
22.05.14
✎
17:28
|
с этих 2-ух статей
|
|||
12
Sa6nek6
22.05.14
✎
17:29
|
как найти сумму списания распределенную пропорционально
|
|||
13
Кай066
22.05.14
✎
17:30
|
(12) пропорционально чему?
|
|||
14
Sa6nek6
22.05.14
✎
17:31
|
55801,12 разбить на 2 чтоб было пропорционально
|
|||
15
Кай066
22.05.14
✎
17:32
|
(14) GOTO(1)
|
|||
16
zerat
22.05.14
✎
17:32
|
(13) Человеку надо раскидать 55801,12 в процентном соотношении на
1статья = 510000 2статья = 49855,86 |
|||
17
Sa6nek6
22.05.14
✎
17:33
|
хм...
|
|||
18
nufnufcheg
22.05.14
✎
17:35
|
всю ветку не читал, про то что готовые процедуры есть в типовых уже было?
|
|||
19
Defender aka LINN
22.05.14
✎
17:36
|
(0) Что платишь?
|
|||
20
Sa6nek6
22.05.14
✎
17:36
|
да
|
|||
21
Михаил Козлов
22.05.14
✎
17:36
|
(18) Искать дольше.
|
|||
22
nufnufcheg
22.05.14
✎
17:36
|
(20) и?
|
|||
23
Chai Nic
22.05.14
✎
17:36
|
В общем случае, алгоритм такой - распределяем пропорционально, округляя до копеек, далее считаем копеечную разницу и добавляем-вычитаем к максимальной позиции.
|
|||
24
zerat
22.05.14
✎
17:36
|
(19) семак ему насыпь
|
|||
25
Sa6nek6
22.05.14
✎
17:37
|
(23) предложение хорошее как воплотить
|
|||
26
Sa6nek6
22.05.14
✎
17:38
|
(19) становись нараздачу
|
|||
27
Chai Nic
22.05.14
✎
17:40
|
(25) Чересчур толсто. Такие алгоритмы в школе на уроке информатики дети пишут.
|
|||
28
zerat
22.05.14
✎
17:44
|
(27) надо помочь ему, вдруг у него задача по информатике
|
|||
29
Кай066
22.05.14
✎
17:47
|
статью1/на сумму(статья1+статья2)=доля статьи1
|
|||
30
nufnufcheg
22.05.14
✎
17:51
|
только в качестве доказательства что автор слаб
|
|||
31
nufnufcheg
22.05.14
✎
17:51
|
// Выполняет пропорциональное распределение суммы в соответствии
// с заданными коэффициентами распределения. // // Параметры: // ИсхСумма - распределяемая сумма // МассивКоэф - массив коэффициентов распределения // Точность - точность округления при распределении. Необязателен. // // Возврат: // МассивСумм - массив размерностью равный массиву коэффициентов, содержит // суммы в соответствии с весом коэффициента (из массива коэффициентов) // В случае если распределить не удалось (сумма = 0, кол-во коэф. = 0, // или суммарный вес коэф. = 0), тогда возвращается значение Неопределено // Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач ИсхСумма, МассивКоэф, Знач Точность = 2) Экспорт Если МассивКоэф.Количество() = 0 Или НЕ ЗначениеЗаполнено(ИсхСумма) Тогда Возврат Неопределено; КонецЕсли; ИндексМакс = 0; МаксЗнач = 0; РаспрСумма = 0; СуммаКоэф = 0; Для К = 0 По МассивКоэф.Количество() - 1 Цикл МодульЧисла = ?(МассивКоэф[К] > 0, МассивКоэф[К], - МассивКоэф[К]); Если МаксЗнач < МодульЧисла Тогда МаксЗнач = МодульЧисла; ИндексМакс = К; КонецЕсли; СуммаКоэф = СуммаКоэф + МассивКоэф[К]; КонецЦикла; Если СуммаКоэф = 0 Тогда Возврат Неопределено; КонецЕсли; МассивСумм = Новый Массив(МассивКоэф.Количество()); Для К = 0 По МассивКоэф.Количество() - 1 Цикл МассивСумм[К] = Окр(ИсхСумма * МассивКоэф[К] / СуммаКоэф, Точность, 1); РаспрСумма = РаспрСумма + МассивСумм[К]; КонецЦикла; // Погрешности округления отнесем на коэффициент с максимальным весом Если Не РаспрСумма = ИсхСумма Тогда МассивСумм[ИндексМакс] = МассивСумм[ИндексМакс] + ИсхСумма - РаспрСумма; КонецЕсли; Возврат МассивСумм; КонецФункции |
|||
32
Sa6nek6
22.05.14
✎
17:54
|
(31) знаю я за неё, не так она делает
|
|||
33
Sa6nek6
22.05.14
✎
17:54
|
или я не понял
|
|||
34
nufnufcheg
22.05.14
✎
17:55
|
(32) тогда добей меня, покажи что она не так делает
|
|||
35
nufnufcheg
22.05.14
✎
17:55
|
склоняюсь к (33)
|
|||
36
Sa6nek6
22.05.14
✎
17:57
|
(35)первый параметр будет 55801,12 а второй что?
|
|||
37
nufnufcheg
22.05.14
✎
17:58
|
МассивКоэф - массив коэффициентов распределения?
|
|||
38
fisher
22.05.14
✎
17:58
|
Мне больше нравится способ когда погрешность не относится на коэффицент с максимальным весом, а когда накапливаемая погрешность учитывается отдельно и используется при распределении на очередной элемент.
|
|||
39
nufnufcheg
22.05.14
✎
18:00
|
(38) а каким образом ее накапливать и распределять на очередной, если отклонение выяснится в конце? Или я что-то упустил?
ну и как бы смысл этого. имхо православнее на максимальный вес |
|||
40
fisher
22.05.14
✎
18:02
|
(39) Смысл в том, что исключается накапливание погрешности и возможное значительное искажение элемента с максимальным весом, который может оказаться не таким уж максимальным. Погрешность не накапливается, а размазывается в процессе. Т.е. гуляет всегда максимум "копейка".
|
|||
41
Sa6nek6
22.05.14
✎
18:15
|
(39) Сделал так но копейки один х..лес..й не идут!
|
|||
42
Обработка
22.05.14
✎
18:23
|
Есть сумма Z= 55801,12 ее нужно правильно распределить между X = 510000 и Y = 49855,86
ВсяСуммаРаспределения = X+Y; (559855,86) ОднДоляСуммыРаспределения = z/ВсяСуммаРаспределения; (0,099670512) ДоляX = X *ОднДоляСуммыРаспределения (50831,96093) ДоляY = Y *ОднДоляСуммыРаспределения (4969,159073) ответ 50831,96 и 4969,15 Но копейки нельзя терять поэтому ДоляY = ВсяСуммаРаспределения - ДоляX И правильный ответ ответ 50831,96 и 4969,16 Думаю это задача 4 или 5 класс А может и 3й класс. Я в шоке.... |
|||
43
Segate
22.05.14
✎
18:29
|
(42) одинэсники они такие... =)) не удивлен
|
|||
44
wPa
22.05.14
✎
18:30
|
(42) "ДоляY = ВсяСуммаРаспределения - ДоляX "
ошибочка! - а если долей 3 или 10 или N? ) |
|||
45
ЗлобнийМальчик
22.05.14
✎
18:31
|
(0) очень толсто. тренируйтесь
|
|||
46
ЗлобнийМальчик
22.05.14
✎
18:33
|
(42) ну троллит человек. или совсем ГСМ
|
|||
47
Обработка
22.05.14
✎
18:33
|
(44) Я всего лишь для его примера наглядно показал для случая где n =2.
Думаю если он не догадается где n > 2 то это уже клиника. |
|||
48
Sa6nek6
23.05.14
✎
08:33
|
(39) Сделал так копейки ручной корректировкой, оказалось не мой косяк а бухгалтеров они одно ОС на 0.15 меньше сделали!
|
|||
49
Irbis
23.05.14
✎
08:34
|
Правильно, это как? По каким правилам?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |