![]() |
|
v8: Распределение суммы пропорционально другим суммам в запросе. | ☑ | ||
---|---|---|---|---|
0
FoXSkr
05.02.12
✎
13:08
|
Доброго времени суток.
Существует такая задача. Нужно разбить суммы начислений, ИНП, ОПВ, СН и СО по подразделениям (при у словии что сотрудник раза 3 в месяц перемещается из одного в другое подразделение). Начисления я могу разбить по подразделениям, а вот остальное никак, т.е. остальные данные хранятся в регистре накопления без возможности определить к какому подразделению их отнести. У меня существует только вариант определить базу для расчета (например ОПВ) и пропорцонально распределить суммы ОПВ. Вот примерно формула: СуммаОПВ = СуммаОПВОбщая / БазаОПВВсехПодразделений * БазаОПВЭтогоПодразделения Так вот в чем заключается собственно вопрос: Разумеется при такой форме возникнет проблема при округлении и соответственно общая сумма не пойдет с суммой начисленной на копейки. Как нибедь можно этот момент решить внутри запроса? Я предполагал делать выгрузку в ТЗ и там уже редактировать. |
|||
1
Reaper_1c
05.02.12
✎
13:19
|
Можно конечно. Но выгрузить в ТЗ и воспользоваться функцией общего модуля - несказанно проще и понятнее.
|
|||
2
FoXSkr
05.02.12
✎
15:30
|
(1) И все таки? Может примерно скажите куда копать?
|
|||
3
Reaper_1c
05.02.12
✎
15:33
|
(2) Пакетный запрос. В нем делаем распределение, отдельно считаем распределенную сумму, потом считаем разницу между распределением и первоначальной суммой, разницу вешаем на позицию с наибольшей суммой, включаем разницу в результат. На каждый описанный шаг минимум 1 запрос пакета.
|
|||
4
FoXSkr
05.02.12
✎
15:37
|
(3) Ок, Спс
|
|||
5
Один С
05.02.12
✎
15:42
|
кстате формула
СуммаОПВ = СуммаОПВОбщая / БазаОПВВсехПодразделений * БазаОПВЭтогоПодразделения при СуммаОПВОбщая = 10 БазаОПВВсехПодразделений = 3 БазаОПВЭтогоПодразделения = 3 даст в результате 9,9999 хотя правильный ответ - 10.ну это так, к слову.. |
|||
6
Reaper_1c
05.02.12
✎
15:47
|
(5) Да он просто на курсах в 1С не был...
|
|||
7
Поpyчик-4
05.02.12
✎
16:55
|
(0) На ИС есть статья "Честное распределение суммы по таблице значений", может сгодится? В том числе есть вариант с пакетным запросом.
|
|||
8
Reaper_1c
05.02.12
✎
17:17
|
(7) Вот же любит народ по помойкам шариться. Лучше б на досуге общий модуль "ОбщегоНазначения" перечитали.
|
|||
9
FoXSkr
05.02.12
✎
17:34
|
(5), (6) Это то понятно что правильнее было бы написать:
СуммаОПВ = БазаОПВЭтогоПодразделения * СуммаОПВОбщая / БазаОПВВсехПодразделений Просто я так написал что бы понятно было аудитории. |
|||
10
Один С
05.02.12
✎
17:54
|
(9) ну тогда ладно. прощен..
|
|||
11
Поpyчик-4
05.02.12
✎
19:01
|
(8) Если помойка, тогда какого ... многие некоторые клянчат оттуда обработки? Это же помойка.
|
|||
12
Один С
05.02.12
✎
19:05
|
(11) я думаю, ключевое слово не "помойка", а "ОбщийМодуль"..
|
|||
13
Поpyчик-4
05.02.12
✎
19:09
|
(12) Эта процедура общего модуля не совсем корректно работает. На ИС предлагаются несколько фиксенных вариантов.
|
|||
14
Reaper_1c
05.02.12
✎
19:23
|
(13) Эта функция есть в 2-х вариантах. В УТ 10.3 неправильная. В ЗУПе и БП правильная. В КА и УПП правильный вариант лежит в общем модуле "ОбщегоНазначенияЗК". А всякие еще более правильные варианты (а есть ли они?) потеря времени, от того что оклад платят.
|
|||
15
DrShad
05.02.12
✎
19:30
|
(14) +100500
поэтому и требует знание типовых а не аккаунт на ИС |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |