Мой вариант.
Добавлено (06.02.2012, 21:13)
---------------------------------------------
Quote (max_osodoev)
мое решение, посмотрите, жду критики
1. Доп.начисления. Отмечена возможность получения базы с доп.начислений, хотя этого не требуется.
2. В структуре РР есть ресурсы Отработано и ОтработаноДни. Визуально в Отработано -- отработанные часы.
В общем модуле при расчете суммы отпускных используется база именно от Отработанно, а не от ОтработанноДни.
Насколько мне кажется реализован расчет отпуска не от дней, а от часов.
Code
ВЫБОР
КОГДА ОсновныеНачисленияДанныеГрафика.ВидРасчета = ЗНАЧЕНИЕ(планВидовРасчета.ОсновныеНачисления.Оклад)
ТОГДА ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия, 0) * ЕСТЬNULL(ШкалаОтработанногоВремени.Размер, 0)
ИНАЧЕ ВЫБОР
КОГДА ОсновныеНачисленияДанныеГрафика.ВидРасчета = ЗНАЧЕНИЕ(планВидовРасчета.ОсновныеНачисления.Отпуск)
ТОГДА ВЫБОР
КОГДА ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.ОтработаноБаза, 0) <> 0
ТОГДА ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ЗначениеШестидневкаФактическийПериодДействия, 0) * (ЕСТЬNULL(ОсновныеНачисленияБазаОсновныеНачисления.РезультатБаза, 0) + ЕСТЬNULL(ОсновныеНачисленияБазаДополнительныеНачисления.РезультатБаза, 0)) / ОсновныеНачисленияБазаОсновныеНачисления.ОтработаноБаза
ИНАЧЕ 0
КОНЕЦ
КОНЕЦ
КОНЕЦ
3. Запрос в общем модуле на мой взгляд сложный... Отлаживать будет сложно.
4. Курсы валют правильнее было бы зафиксировать в реквизите документа...
5. Мне кажется, что в данной задаче необходимо организовать накопление долга перед сотрудниками на регистре накопления. Иначе получается, у Вас на любой момент времени задолженность -- с учетом всех документов начисления. Что кажется не правильно.
Вложения:
sv_mikh_03_47.dt