|   |   | 
| 
 | Рассчитать начисление имея значения показателей | ☑ | ||
|---|---|---|---|---|
| 0
    
        gul_Sayan 30.06.22✎ 14:26 | 
        Требуется рассчитать начисление не записывая его в регистр расчета, требуется для планирования подставляя среднее время, а не фактически отработанное. Как это можно сделать имея формулу вида расчета и значения показателей. Все начисления первичные и от базы не зависят.     | |||
| 1
    
        СвинТуз 30.06.22✎ 14:30 | 
        Иногда проще отменить тразакцию     | |||
| 2
    
        СвинТуз 30.06.22✎ 14:32 | 
        В запросе.
 Только отлавливать надо товарищей которые замещают и работают не полный месяц. Запросом делается. От оклада. | |||
| 3
    
        СвинТуз 30.06.22✎ 14:32 | 
        Получаешь фактический период действия. Базу в днях ли часах и умножаешь.     | |||
| 4
    
        СвинТуз 30.06.22✎ 14:34 | 
        Кстати при попытке расчета в регистре должен быть период действия в какой то момент.
 Но можно и посчитать так по графикам и рабочим календарям - невыходы. | |||
| 5
    
        gul_Sayan 30.06.22✎ 15:22 | 
        В том то и дело что нужно посчитать будто сотрудники отработали целый месяц причем не по часам месяца а средне годовой норме.     | |||
| 6
    
        gul_Sayan 30.06.22✎ 15:23 | 
        Но начислений куча и показателей тоже.     | |||
| 7
    
        ГдеСобака Зарыта 30.06.22✎ 15:59 | 
        Введенные документы отклонений (БЛ, отпуска и пр.) при расчете учитывать?     | |||
| 8
    
        Said_We 30.06.22✎ 16:15 | 
        (5) Не отработанное время, а среднегодовое - это уже другая формула для начисления.
 Поэтому это не от показателей и не по формуле. Это другая формула. Да, немного похожая, но не более того. | |||
| 9
    
        gul_Sayan 30.06.22✎ 16:33 | 
        (8) вот об чем и речь. Дублировать все нужные начисления не хочется, хочется вместо отработанного времени подставить фиксированную сумму и рассчитать, а так как это надо только для отчета то и писать в регистр расчета не хочется.     | |||
| 10
    
        Said_We 30.06.22✎ 16:54 | 
        (9) В ЗиУП не получится как ЗиК 77 взять в ТЗ всё запихать и запустить функцию расчета.
 Все алгоритмы заточены на регистр расчета и наличие там записей, которые рассчитываешь. Поэтому выход один - брать фиксированный список видов расчетов и для каждого, кокой-то алгоритм прописывать. Если брать и временно записывать в РР, то будут вытеснения и другое количество времени, чего не нужно по условию задачи. | |||
| 11
    
        СвинТуз 30.06.22✎ 16:58 | 
        Да ладно. Я что то похожее запросом считал.     | |||
| 12
    
        СвинТуз 30.06.22✎ 16:58 | 
        Как раз отчет плановая зарплата.     | |||
| 13
    
        СвинТуз 30.06.22✎ 17:00 | 
        Рассчитать зарплату перед формирование отчета = долго.
 Вот пришлось. Самое гадкое отлавливать совместителей, работающих не в своем подразделении. Да еще если он болел. | |||
| 14
    
        СвинТуз 30.06.22✎ 17:01 | 
        Реально в запросе пришлось период действия вычислять и вытеснение делать.     | |||
| 15
    
        СвинТуз 30.06.22✎ 17:01 | 
        Но даже 1000 - 10 000 это не объем.
 Считает быстро. | |||
| 16
    
        Said_We 30.06.22✎ 17:06 | 
        Вопрос не в объеме, а в использовании стандартной функции расчета.
 Или можно её использовать или частично можно или нельзя совсем. | |||
| 17
    
        gul_Sayan 01.07.22✎ 07:26 | 
        (12) Вопрос в основном как задействовать формулу для расчета а не подставлять в каждый вид расчета что-то вручную.     | |||
| 18
    
        SleepyHead гуру 01.07.22✎ 08:51 | 
        Посмотри, как это сделано в модуле обработки "МенеджерРасчетаЗарплаты" в ЗУП
 У тебя есть формула начисления, ее можно вытащить из начисления. И есть уже готовые значения показателей, они в структуре ИсходныеДанные, в ней ключ - идентификатор показателя. Формула = СтрЗаменить(Формула, "ИсходныеДанные.", "Параметры."); Попытка Сумма = ОбщегоНазначения.ВычислитьВБезопасномРежиме(Формула, ИсходныеДанные); Исключение Сумма = 0; ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'При расчете начисления «%1» за %5 для сотрудника %2 возникла ошибка: %4 |Формула, используемая при расчете: %3'"), Начисление, Сотрудник, Формула, ИнформацияОбОшибке().Описание, Формат(ДатаНачала, "ДФ='ММММ гггг'")); Сообщить(ТекстСообщения); КонецПопытки; | |||
| 19
    
        gul_Sayan 01.07.22✎ 13:38 | 
        (18) Спасибо!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |