Сдавал сегодня, 18.11.2016, дистанционно, релиз 3.0.25.113.
Билет аналогичный этому. Отличия:
- Оклад пропорционально отработанным дням (а не часовая тарифная ставка)
- З/П в зависимости от должности
- В файле содержатся конкретные значения температуры. в т.ч. отрицательные значения
Решение (на основе решения zikonza c 3-ей страницы этой темы).
Вид времени:
- РаботаНаОткрытомВоздухе (предопределенный), добавить код заполнения реквизитов в СоздатьВидыИспользованияРабочегоВремениПоНастройкам (за основу можно взять вид времени Вахта).
Из внешней обработки вызвать этот метод, для заполнения реквизитов нового предопределенного элемента.
Показатели (предопределенные):
- ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаДень
- ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаМесяц - рассчитывается автоматически
Добавить заполнение реквизитов этих элементов в СоздатьПоказателиПоНастройкам, вызвать из внешней обработки.
Итого 1 вид времени и 2 показателя.
Документы:
ГрафикРаботВОсобыхУсловиях
Движения: РегистрНакопления.ДанныеИндивидуальныхГрафиковСотрудников
При проведении нужно получить плановый табель с помощью Документы.ИндивидуальныйГрафик.ДанныеОВремениСотрудников,
затем сделать левое соединение с данными документа. Если в плановом табеле на конкретную дату - Явка, и эта дата попадает в один из интервалов дат, введенных в ТЧ документа, то вместо явки регистрируем РаботаНаОткрытомВоздухе, в остальных случаях регистрируем вид времени из планового табеля.
Таком образом, если в интервалах введенных в документе присутствуют выходные, то они ими и останутся.
ФактическиеУсловияТруда
Движения: РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыОрганизаций
Показатель: ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаДень
На каждый день из табличной части пишем процент надбавки, полученные путем соединения данных о температуре из документа с новым РС ШкалаСоответствияФактическойТемпературыИПроцентаДобавки.
Регистры сведений:
ШкалаСоответствияФактическойТемпературыИПроцентаДобавки.
Измерения:
ВерхняяГраницаТемпературы
Ресурсы:
ПроцентНадбавки.
В РС ПараметрыЗарегистрированныхДанныхУчетаВремениСотрудников дополнить тип ДокументОснование документом ГрафикРаботВОсобыхУсловиях.
Если не добавлять новые документы, регистрирующие время, в тип реквизита ДокументОснование, то в табеле будут неадекватные данные. В следствии того что в измерении ДокументОснование будет значение = Неопределено, то разные экземпляры нового документа будут перезаписывать друг друга по этому пустому измерению. Соответственно, в табель попадут данные только последнего проведенного документа. Ну а если дополнить тип, то на каждый документ будут свои строки.
Общий модуль РасчетЗарплатыРасширенный. Функция ЗначенияПоказателейНачислений.
В ней нужно рассчитать значение показателя ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаМесяц на основании множества значений показателя ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаДень.
Изменения внесенные в метод:
https://www.diffchecker.com/nSlfu6Zp Смотреть начиная с строки 468.
В методе получаются значения показателя ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаДень, только по тем дням, в которых по факту была работа на открытом воздухе, они суммируются и делятся на фактическое количество дней проведенных на открытом воздухе. Таким образом получается средневзвешенный процент (не просто средний), учитывающий отклонения факта от плана.
Ограничения метода:
Обязательно нужно ввести табель. Чтобы работало без него, нужно использовать не ДанныеТабельногоУчетаРабочегоВремениСотрудников, а Представления_ДанныеУчетаВремениИСостоянийСотрудников, а еще лучше Документы.ТабельУчетаРабочегоВремени.ДанныеОВремениСотрудников (до этого только сейчас додумался, правда надо проверить если эти данные включают данные самого документа Табель. Представления_ДанныеУчетаВремениИСостоянийСотрудников однозначно включают всё).
Отчет
Начисления.ДанныеГрафика ОБЪЕДИНЕНИЕ ДанныеИндивидуальныхГрафиковСотрудников.Обороты
и затем соединение с Представления_КадровыеДанныеСотрудников
Начисления (в режиме предприятия):
Доплата за работу на открытом воздухе. Формула: СтоимостьДня * ВремяВДнях * ПроцентНадбавкиЗаРаботуВОсобыхУсловияхЗаМесяц / 100
Начисляется только если введен вид времени РаботаНаОткрытомВоздухе.
Можно ввести прогул для проверки корректности учета отклонений факта от плана при начислении добавки.
Меня смутило, что в описании задачи, в шапке таблицы с соответствием температуры и процента доплаты, сверху процента было написано "Размер доплаты в % от дневной тарифной ставки", хотя работники получают оклад. Пробовал в формуле вместо СтоимостьДня использовать ТарифнаяСтавкаДневная, начисление не работало. Надеюсь что это ошибка в тексте билета.
Вложился практически секунда в секунду. Времени всего 4 часа 10 минут.
Столкнулся с неприятной ситуацией, когда я начал писать пояснительную записку в текстовом документе, и через минут 15 попытался её скопировать в поле в 1С:Гуру. Копирование отключено (вставка из буфера обмена). Пришлось перепечатывать всё вручную, даже имена объектов метаданных из конфигуратора не скопировать.
Как будет результат, отпишусь.