Решение:
Основные моменты задачи:
1) "Вертикальный график". Табель выглядит как-то так:
2) Начисление ЗП происходит еженедельно.
3) При начислении оклада в первичные записи необходимо записывать базовый период. Делается это для того чтобы определить количество рабочих дней в неделе.
4) Необходимо учесть, то что первичная запись может быть разделена сразу на 2: если неделя переходит из одного месяца в другой.
Сделать это можно так:
Перед записью движений вызываем процедуру РазделитьЗаписьПомесячно
Процедура РазделитьЗаписьПомесячно(Движение)
Если НачалоМесяца(Движение.ПериодДействияНачало) <> НачалоМесяца(Движение.ПериодДействияКонец) Тогда
ДопДвижение = Движения.ОсновныеНачисления.Добавить();
ЗаполнитьЗначенияСвойств(ДопДвижение, Движение);
Движение.ПериодДействияКонец = КонецМесяца(Движение.ПериодДействияНачало);
ДопДвижение.ПериодДействияНачало = НачалоМесяца(ДопДвижение.ПериодДействияКонец);
ДопДвижение.БазовыйПериодНачало = НачалоМесяца(ДопДвижение.ПериодДействияКонец);
Движение.БазовыйПериодКонец =КонецМесяца(Движение.ПериодДействияНачало);
КонецЕсли;
КонецПроцедуры
Скачать решение задачи 3.44 (1с специалист по платформе)
Основные моменты задачи:
1) "Вертикальный график". Табель выглядит как-то так:
2) Начисление ЗП происходит еженедельно.
3) При начислении оклада в первичные записи необходимо записывать базовый период. Делается это для того чтобы определить количество рабочих дней в неделе.
4) Необходимо учесть, то что первичная запись может быть разделена сразу на 2: если неделя переходит из одного месяца в другой.
Сделать это можно так:
Перед записью движений вызываем процедуру РазделитьЗаписьПомесячно
Процедура РазделитьЗаписьПомесячно(Движение)
Если НачалоМесяца(Движение.ПериодДействияНачало) <> НачалоМесяца(Движение.ПериодДействияКонец) Тогда
ДопДвижение = Движения.ОсновныеНачисления.Добавить();
ЗаполнитьЗначенияСвойств(ДопДвижение, Движение);
Движение.ПериодДействияКонец = КонецМесяца(Движение.ПериодДействияНачало);
ДопДвижение.ПериодДействияНачало = НачалоМесяца(ДопДвижение.ПериодДействияКонец);
ДопДвижение.БазовыйПериодНачало = НачалоМесяца(ДопДвижение.ПериодДействияКонец);
Движение.БазовыйПериодКонец =КонецМесяца(Движение.ПериодДействияНачало);
КонецЕсли;
КонецПроцедуры
Скачать решение задачи 3.44 (1с специалист по платформе)
Комментариев нет:
Отправить комментарий