воскресенье, 8 марта 2015 г.

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

Условие из сборника:
Начисление зарплаты сотрудникам предприятия осуществляется ежемесячно с использованием метода отклонений. Все сотрудники работают по пятидневному графику работы, однако в решении необходимо предусмотреть возможность работы по нескольким различным графикам. Сотрудники предприятия получают оплату по часовому тарифу. Сумма начисления по тарифу определяется как тарифная ставка, умноженная на количество фактически отработанных часов, причем для каждого подразделения компании ведется свой график. Тарифная ставка должна быть определена отдельно для каждого подразделения по специальной шкале в зависимости от отработанного времени. Например:
Подразделение    Фактически отработанные часы          Размер ставки 

Отдел внедрения                                       до   60                                12,5
Отдел внедрения                                       от 60 до 130                       25 
Отдел внедрения                                       от 130                                 35 
Бухгалтерия                                               до 50                              10 
Бухгалтерия                                               от 50 до 150                      20 
Бухгалтерия                                               от 150                             40
За каждый день работы сотрудникам предприятия начисляется определенная сумма денег в качестве компенсации затрат на обеды. Компенсация за один обед рассчитывается как 5% от суммы начисления по тарифу в текущем расчетном периоде, деленная на количество рабочих дней в том же периоде. Невыход сотрудника на работу без уважительной причины должен быть зафиксирован в информационной базе, но не оплачивается. Механизм перерасчетов в рамках данной задачи использовать не надо. Ввод всех начислений происходит документом «Начисление зарплаты». Считать, что все данные вводятся только в пределах одного месяца, например, можно указать начисление по тарифу с 10.01 по 31.01, а запись: тариф с 10.01 по 03.02 вводить нельзя. Необходимо предоставить пользователю возможность исправлять результат расчета в форме документа. Для анализа начисленных сотрудникам предприятия компенсаций за обеды в конфигурации необходимо предусмотреть отчет следующего вида:

Решение:

Основные моменты:
1) Фразу "причем для каждого подразделения компании ведется свой график" понял следующим образом: В регистре сведений "Графики работы" вместо привычного измерения "График" будет измерение "подразделение", соотвественно необходимо изменить обработку "Заполнения графика" и заполнить регистр.
2) Добавим в конфигурацию РС "Шкалы подразделений" и заполним его как задано в условии.
3) Как обычно распределяем ВР по ПВР. Невыход идет в ПВР "Основные начисления" для того чтобы вытеснять оклад.
4) Добавляем регистры расчета. В РР "Основные начисления" для измерения "Подразделения" устанавливаем связь с графиком по одноименному полю.
5) Добавляем ТЧ в документ "Начисление ЗП" и формируем первичные записи.
6) В общем модуле пишем алгоритмы расчета.
Здесь я получил очередной урок: Необходимо внимательно смотреть и на требуемый отчет в задании и продумывать каким образом его построить. Я на отчет сперва внимания вообще не обратил и рассчитывал записи по тарифу по своему пониманию. Например: для сотрудника из подразделения "бухгалтерия" первые 50 часов оплачиваются по ставке =10, часы с 50-го по 150-й оплачиваются по ставке 20, остальные по ставке 40. По-моему вполне логично, но не тут то было, как видно из отчета необходимо получить итоговое значение отработанных часов по подразделению сотрудника и из РС "Шкалы" взять одно соответствующее значение.
7) Требование "Необходимо предоставить пользователю возможность исправлять результат расчета в форме документа", реализуем как обычно с помощью команды на форме "Рассчитать", в которой происходит рассчет записей и выгрузка в табличные части документа, а обработка проведения делает движения в регистры "как есть".
Для того чтобы не переименовывать колонки таблиц при выгрузке в ТЧ проще всего создать колонки в ТЧ документа с таким же именем как и в регистре.
8) Отчет "Анализ компенсаций" можно построить соединением 2-таблиц.
ВЫБРАТЬ
ДополнительныеНачисления.Подразделение КАК Подразделение,
ДополнительныеНачисления.Сотрудник,
СУММА(ДополнительныеНачисления.Результат) КАК СуммаКомпенсации,
ОсновныеНачисленияДанныеГрафика.ОтработаноДней,
ОсновныеНачисленияДанныеГрафика.ИсходныеДанные КАК Ставка,
ОсновныеНачисленияДанныеГрафика.ЧасыФактическийПериодДействия КАК ОтработаноЧасов
ИЗ
РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления
ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(
ПериодДействия МЕЖДУ &ДатаНачала И &ДатаОкончания
И ВидРасчета = &ВидРасчета) КАК ОсновныеНачисленияДанныеГрафика
ПО ДополнительныеНачисления.Сотрудник = ОсновныеНачисленияДанныеГрафика.Сотрудник
И ДополнительныеНачисления.Подразделение = ОсновныеНачисленияДанныеГрафика.Подразделение
ГДЕ
ДополнительныеНачисления.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания

СГРУППИРОВАТЬ ПО
ДополнительныеНачисления.Подразделение,
ДополнительныеНачисления.Сотрудник,
ОсновныеНачисленияДанныеГрафика.ОтработаноДней,
ОсновныеНачисленияДанныеГрафика.ИсходныеДанные,

ОсновныеНачисленияДанныеГрафика.ЧасыФактическийПериодДействия


Скачать решение задачи 3.20 (1с специалист):



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

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