v8: Распределение суммы пропорционально другим суммам в запросе. #593901


#0 by FoXSkr
Доброго времени суток. Существует такая задача. Нужно разбить суммы начислений, ИНП, ОПВ, СН и СО по подразделениям (при у словии что сотрудник раза 3 в месяц перемещается из одного в другое подразделение). Начисления я могу разбить по подразделениям, а вот остальное никак, т.е. остальные данные хранятся в регистре накопления без возможности определить к какому подразделению их отнести. У меня существует только вариант определить базу для расчета (например ОПВ) и пропорцонально распределить суммы ОПВ. Вот примерно формула: СуммаОПВ = СуммаОПВОбщая / БазаОПВВсехПодразделений * БазаОПВЭтогоПодразделения Так вот в чем заключается собственно вопрос: Разумеется при такой форме возникнет проблема при округлении и соответственно общая сумма не пойдет с суммой начисленной на копейки. Как нибедь можно этот момент решить внутри запроса? Я предполагал делать выгрузку в ТЗ и там уже редактировать.
#1 by Reaper_1c
Можно конечно. Но выгрузить в ТЗ и воспользоваться функцией общего модуля - несказанно проще и понятнее.
#2 by FoXSkr
И все таки? Может примерно скажите куда копать?
#3 by Reaper_1c
Пакетный запрос. В нем делаем распределение, отдельно считаем распределенную сумму, потом считаем разницу  между распределением и первоначальной суммой, разницу вешаем на позицию с наибольшей суммой, включаем разницу в результат. На каждый описанный шаг минимум 1 запрос пакета.
#4 by FoXSkr
Ок, Спс
#5 by Один С
БазаОПВЭтогоПодразделения = 3 даст в результате 9,9999 хотя правильный ответ - 10.ну это так, к слову..
#6 by Reaper_1c
Да он просто на курсах в 1С не был...
#7 by Поpyчик-4
На ИС есть статья "Честное распределение суммы по таблице значений", может сгодится? В том числе есть вариант с пакетным запросом.
#8 by Reaper_1c
Вот же любит народ по помойкам шариться. Лучше б на досуге общий модуль "ОбщегоНазначения" перечитали.
#9 by FoXSkr
, Это то понятно что правильнее было бы написать: * СуммаОПВОбщая / БазаОПВВсехПодразделений Просто я так написал что бы понятно было аудитории.
#10 by Один С
ну тогда ладно. прощен..
#11 by Поpyчик-4
Если помойка, тогда какого ... многие некоторые клянчат оттуда обработки? Это же помойка.
#12 by Один С
я думаю, ключевое слово не "помойка", а "ОбщийМодуль"..
#13 by Поpyчик-4
Эта процедура общего модуля не совсем корректно работает. На ИС предлагаются несколько фиксенных вариантов.
#14 by Reaper_1c
Эта функция есть в 2-х вариантах. В УТ 10.3 неправильная. В ЗУПе и БП правильная. В КА и УПП правильный вариант лежит в общем модуле "ОбщегоНазначенияЗК". А всякие еще более правильные варианты (а есть ли они?) потеря времени, от того что оклад платят.
#15 by DrShad
+100500 поэтому и требует знание типовых а не аккаунт на ИС
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С