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