пятница, 6 марта 2015 г.

1c специалист задача 3.21

Условие из сборника:
Начисление зарплаты сотрудникам предприятия осуществляется ежемесячно с использованием метода отклонений. Все сотрудники работают по графику работы, установленному для каждого подразделения отдельно. Не зависимо от отработанного времени сотрудникам предприятия ежемесячно выплачивается фиксированная сумма денег. Размер суммы одинаков для всех сотрудников и не меняется в течение расчетного периода. В любой момент времени сотрудникам предоставляется оплачиваемый отпуск, размер которого определяется как количество дней отпуска умноженное на среднюю дневную ставку. Дни отпуска рассчитываются по шестидневному графику. Средняя дневная ставка определяется как сумма начисленного за три предыдущих месяца гарантированного оклада, поделенная на количество рабочих дней в трех предыдущих месяцах. Количество предоставляемых в год рабочих дней отпуска не должно превышать 24. Ежемесячно с сотрудников организации удерживается 1% от суммы всех начислений за период в качестве профсоюзных взносов. Механизм перерасчетов в рамках данной задачи использовать не надо. Ввод всех начислений происходит документом «Начисление зарплаты». Считать, что данные о начислении по отпуску могут переходить из одного месяца в другой (например, с 25.01 по 05.02.), при этом, данное начисление в документе вводится одной строкой с указанием полного периода. Необходимо предоставить пользователю возможность самостоятельно создавать новые виды расчетов и привязывать их к существующим алгоритмам расчета. С помощью диаграммы Ганта отобразить график отпусков сотрудников. Отчет может быть построен за любой расчетный период.
Решение:

1) Если в условии есть требование "Необходимо предоставить пользователю возможность самостоятельно создавать новые виды расчетов и привязывать их к существующим алгоритмам расчета", то добавляем перечисление "Способы расчета " и заполним значения
Оклад, Фиксированная Сумма, Удержание, Отпуск.
Добавим реквизит этого типа в каждый из ПВР. 
2) Немного усовершенствуем решение и добавим реквизит "МесяцевБазовогоПериода" в ПВР "Основные начисления", чтобы пользователь создавая новый ВР мог указать продолжительность базового периода.
Также добавим в ПВР "Удержания" реквизит "Процент", чтобы пользователь мог играться с процентом.
3) Добавим РС "Гарантированные оклады" с периодичностью месяц, отсюда будем брать значение для ВР со способом "Фиксированной суммой".
4) Добавляем Регистры расчета. В РР "Основные начисления" добавим ресурс "Дни отпуска" для контроля условия "Количество предоставляемых в год рабочих дней отпуска не должно превышать 24"
5) В этом задании учет по дням поэтому изменим обработку "Заполнение графика в соответствии с условием" и заполним РС "Графики Работы".
6) Доработаем обработку проведения, чтобы сформировать первичные записи.
7) Довольно стандартные процедуры расчета записей общего модуля за исключением того, что нужно контролировать чтобы дни отпуска за год не превышали 24.
Решил сделать это так.

  •  Формируем временную таблицу "Данные" из таблиц которые необходимы для расчета отпуска
  •  Формируем вторую временную таблицу "ОтпускЗаГод", в которой получаем итоговые данные по ресурсу "ДниОтпуска" для каждого сотрудника
  •  Соединяем 2 таблицы и получаем итог по "Сотруднику" 
  •  Получаем Выборку по группировке сотрудник и проверяем не превышено ли значение 24, если да то пишем сообщение и не рассчитываем, иначе  все хорошо и рассчитываем запись.

8) Делаем отчет "Диаграмма Ганта". Подробнее тут

Скачать решение задачи 3.21


Комментариев нет:

Отправить комментарий