![]() |
|
Перерасчеты и расчет зарплаты | ☑ | ||
---|---|---|---|---|
0
wwwqwert2014
23.08.14
✎
12:24
|
Как мне правильно получить число дней, зная ДанныеГрафик.ЗначениеФактическийПериодДействия в часах? Можно, конечно, делить на 8, но вдруг не 8 часов работал человек?
я таким образом выъодил из ситуации, не знаю, насколько это правильно: ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); СтруктураПоиска = Новый Структура("НомерСтроки"); Для Каждого Строка Из НаборЗаписей Цикл СтруктураПоиска.НомерСтроки = Строка.НомерСтроки; ВыборкаДетальныеЗаписи.Сбросить(); Если ВыборкаДетальныеЗаписи.НайтиСледующий(СтруктураПоиска) Тогда Если Строка.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад тогда Строка.Результат = Строка.Ставка * ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия; Строка.РезультатДни = ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия / 8;//СКОЛЬКО ОТРАБОТАНО ДНЕЙ - НЕ НРАВИТСЯ Строка.РезультатЧасы = ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия; Иначе Если ВыборкаДетальныеЗаписи.РезультатДниБаза <> 0 Тогда Строка.Результат = Строка.РезультатБаза / ВыборкаДетальныеЗаписи.РезультатДниБаза * ВыборкаДетальныеЗаписи.ЗначениеФактическийПериодДействия / 8; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Просто в зависимых видах расчета иногда расчет результата идет исходи из отработанных часов, а иногда из отработанных дней |
|||
1
wwwqwert2014
23.08.14
✎
12:25
|
И еще такой вопрос. Как бы мне правильно настроить перерасчеты?
Я создал обработку "Перерасчет зарплаты" и в динамическом списке вывел все документы, которые необходимо перерассчитать и потом просто их перепровел. Вот мне интересно, насколько я правильно это сделал. Вот код процедуры перерасчета &НаСервереБезКонтекста Процедура ПерерасчитатьНаСервере(СсылкаНаОбъект) // Вставить содержимое обработчика. СсылкаНаОбъект.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение); КонецПроцедуры &НаКлиенте Процедура Перерасчитать(Команда) Пока Элементы.ТаблицаПерерасчета.ТекущаяСтрока <> Неопределено Цикл Строка = Элементы.ТаблицаПерерасчета.ТекущиеДанные; ОбъектПерерасчета = Строка.ОбъектПерерасчета; ПерерасчитатьНаСервере(ОбъектПерерасчета); Элементы.ТаблицаПерерасчета.ТекущаяСтрока = Элементы.ТаблицаПерерасчета.ТекущаяСтрока + 1; КонецЦикла; КонецПроцедуры |
|||
2
floody
23.08.14
✎
12:57
|
Проще получить ответ на такой вопрос на форуме Чистова, там люди как раз подобным занимаются.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |