среда, 10 июня 2015 г.

1с специалист решение задачи 3.45

РЕШЕНИЕ:

1) ПВР "Основные начисления" - Оклад.
    ПВР "Дополнительные начисления" - Премия(Оклад является базовым и ведущим ВР) и надбавка.
2) Добавим объект "ПерерасчетДоп" в РР "Дополнительные начисления".
3) Как обычно при еженедельном расчете ЗП заводим документ "Табель" вертикальной структуры.

4) Оклад рассчитывается стандартно.
5) Премия. При формировании первичных записей нужно заполнить значения базового периода.
Значения процента будем брать из РС с периодичностью день на начало расчетного периода.
6) Надбавка.
Добавим оборотный РН "Продажи" и назначим регистратором документ "Расходная накладная".  Значение процента будем брать из непериодического РС, также понадобится связь с регистром "Продажи".
7) В обработке проведения "Начисления ЗП" нужно учесть что записи могут переходить из одного месяца в другой.
8) При обработке проведения РН сформируем записи перерасчета
Процедура СформироватьЗаписиПерерасчета()
     Запрос = Новый Запрос;
     Запрос.Текст= "ВЫБРАТЬ
     |     ДополнительныеНачисления.Сотрудник,
     |     ДополнительныеНачисления.ВидРасчета,
     |     ДополнительныеНачисления.Регистратор КАК Регистратор,
     |     РасходнаяНакладная.Дата,
     |     ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(РасходнаяНакладная.Дата, КВАРТАЛ), СЕКУНДА, 1) КАК НАЧ,
     |     ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(РасходнаяНакладная.Дата, КВАРТАЛ), КВАРТАЛ, 1) КАК КОН
     |ИЗ
     |     Документ.РасходнаяНакладная КАК РасходнаяНакладная
     |          ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДополнительныеНачисления КАК ДополнительныеНачисления
     |          ПО РасходнаяНакладная.Подразделение = ДополнительныеНачисления.Подразделение
     |               И (ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(РасходнаяНакладная.Дата, КВАРТАЛ), СЕКУНДА, 1) < ДополнительныеНачисления.ПериодРегистрации)
     |               И (ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(РасходнаяНакладная.Дата, КВАРТАЛ), КВАРТАЛ, 1) > ДополнительныеНачисления.ПериодРегистрации)
     |ГДЕ
     |     РасходнаяНакладная.Ссылка = &Ссылка
     |     И ДополнительныеНачисления.ВидРасчета = &ВидРасчета
     |ИТОГИ ПО
     |     Регистратор";
     Запрос.УстановитьПараметр("Ссылка",Ссылка);
     Запрос.УстановитьПараметр("ВидРасчета",ПланыВидовРасчета.ДополнительныеНачисления.Надбавка);
     ВыборкаИтоги = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
     Перерасчет = РегистрыРасчета.ДополнительныеНачисления.Перерасчеты.ПерерасчетДоп;
     Пока ВыборкаИтоги.Следующий() Цикл
          Набор = Перерасчет.СоздатьНаборЗаписей();
          Набор.Отбор.ОбъектПерерасчета.Значение = ВыборкаИтоги.Регистратор;
          Выборка = ВыборкаИтоги.Выбрать();
          Пока Выборка.Следующий() Цикл
               Запись = Набор.Добавить();
               ЗаполнитьЗначенияСвойств(Запись,Выборка);
               Запись.Подразделение = Подразделение;
          КонецЦикла;
          Набор.Записать();     
     КонецЦикла;
КонецПроцедуры

9) Простейший отчет по объекту "Перерасчет".

СКАЧАТЬ решение задачи 3.45


Возможно Вам будет интересен курс "Профессиональный учет в 1С:ЗУП 3.0»

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

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