Тренинг по подготовке к аттестации.
Второй поток – Задача 14
Приветствуем!
Публикуем задачу под номером 3.44 сборника задач по подготовке к аттестационному экзамену.
Решение и условие задачи опубликовано ниже.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Ошибка в расчете разности дат для оклада (когда отработано 2 дня подряд разность дат между ними даст 1 день) – нужно прибавить 1 секунду к ОсновныеНачисленияФактическийПериодДействия.ПериодДействияКонец
Да, спасибо.
Здравствуйте, Павел!
В тестовом примере , при получении факта дней в запросе используется конструкция
.
Если ОсновныеНачисленияФактическийПериодДействия.ПериодДействияНачало = 02.01.2012 0:00:00 и ОсновныеНачисленияДанныеГрафика.ПериодДействияКонец = 03.01.2012 23:59:59 мы получаем ФактДней = 1 , хотя человек реально отработал 2 дня. Разве это верно?
Добрый день!
Нет, не верно. Нужно прибавить еще один день.
Здравствуйте, Павел!
Снова вернулся к задачам с табелем и появился такой вот вопрос-идея…
Фактически данные об отработанном времени внесенные табелем можно рассматривать как индивидуальный график сотрудника. Если это так, тогда табелем можно сделать записи в регистр сведений графиков, что позволит нам при расчете получить время штатными средствами. Мне кажется это будет идеальный вариант решения такой задачи, но более трудоемкий.
Что Вы думаете по поводу этого?
Интересный вариант. Для этой задачи может вполне подойти.
Здравствуйте, Павел!
Прокомментируйте, пожалуйста, моё решение.
При проведении табеля я сначала формирую запись в регистре расчета об окладе за всю неделю, а потом обхожу табличную часть и при необходимости создаю записи о больничном и невыходе. Т.к. они вытесняют оклад по периоду действия, то факт. кол-во дней по окладу я беру из таблицы данных графика из поля “Фактический Период Действия”.
Т.о. я решил задачу без использования таблицы фактического периода действия (как в Вашем решении).
И еще, будет ли ошибкой на экзамене то, что мы используем для табеля практически полностью весь расчетный механизм платформы, не создавая оборотный регистр накопления для кол-ва факт. дней?
Спасибо, Николай.
Для табеля, если считать в днях можно обойтись без регистра накопления, а вот если смены или часы, то уже не удастся.
Спасибо, а логику моего решения, описанного выше можно считать правильной?
Вполне.
“ВЫБРАТЬ
| ОсновныеНачисленияДанныеГрафика.НомерСтроки,
| ОсновныеНачисленияДанныеГрафика.ПризнакПериодДействия КАК НормаДней,
| ВложенныйЗапрос.ФактДней,
| ОкладыСотрудниковСрезПоследних.Оклад,
| ОсновныеНачисленияБазаОсновныеНачисления.СуммаБаза КАК База,
| ОсновныеНачисленияДанныеГрафика.ПризнакБазовыйПериод КАК БазаДней
|ИЗ
| РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(Регистратор = &Регистратор) КАК ОсновныеНачисленияДанныеГрафика
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ОсновныеНачисленияФактическийПериодДействия.НомерСтроки КАК НомерСтроки,
| СУММА(РАЗНОСТЬДАТ(ОсновныеНачисленияФактическийПериодДействия.ПериодДействияНачало, ОсновныеНачисленияФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ)) КАК ФактДней
| ИЗ
| РегистрРасчета.ОсновныеНачисления.ФактическийПериодДействия(Регистратор = &Регистратор) КАК ОсновныеНачисленияФактическийПериодДействия
|
| СГРУППИРОВАТЬ ПО
| ОсновныеНачисленияФактическийПериодДействия.НомерСтроки) КАК ВложенныйЗапрос
| ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ВложенныйЗапрос.НомерСтроки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОкладыСотрудников.СрезПоследних(&ПериодРегистрации, ) КАК ОкладыСотрудниковСрезПоследних
| ПО ОсновныеНачисленияДанныеГрафика.Сотрудник = ОкладыСотрудниковСрезПоследних.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(
| &Измерения,
| &Измерения,
| ,
| Регистратор = &Регистратор
| И ВидРасчета = &Больничный) КАК ОсновныеНачисленияБазаОсновныеНачисления
| ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки”
«Дневная ставка рассчитывается как начальное значение оклада, деленное на количество РАБОЧИХ дней в том же периоде, что и фактически отработанные дни.»
Используя таблицу фактический период действия мы не можем получить РАБОЧИЕ дни, а только получим интервалы, в которые сотрудник по графику мог как работать работать, так и отдыхать.
В представленном решении рабочие дни не могут отличаться от отработаннных.
Условие вроде не выполняется
“Дневная ставка рассчитывается как начальное значение оклада, деленное на количество рабочих дней в том же периоде, что и фактически отработанные дни.”
Фактический период действия дает нам интервалы фактического действия, а не реально рабочие дни по графику.
Снимаю вопрос :)
Но ФактДней все равно неправильно получается
Поясните.
Здравствуйте, штраф за невыход сумма со знаком минус 200 рублей?
Почему с минусом? Когда мне вот штрафы выписывали, там всегда положительное значение стояло ;)