Расчет среднего заработка. Сотрудник не принят на работу ЗУП 3.1

Добрый день, с этого дня начинаю выставлять в общее пользование различные хитрости, и изменения программного кода без снятия с поддержки, цикл публикаций рассчитан на использование механизма расширения конфигурации,  с ним вы сможете внедрять свои правки в программу, и больше никогда не боятся изменений конфигурации.
Все правки делают работу программой более гибкой, и более настраиваемой.

Быстрый переход по статьям:

Проблема №1
При изменении среднего заработка выдает сообщение: “Сотрудник не принят на работу”

С каким-то обновлением прилетело изменение в модуле расчета среднего заработка,  проблема проявляется как правило на уволенных людях по которым нужно провести начисления, а так-же с сотрудниками перенесенных из старой версии программы, на которых нет документа прием на работу, а лишь только начальная штатная расстановка.

Решение №1

Копируем Общий модуль – “Учет среднего заработка” в свое расширение.
В пустой модуль добавляем:

&Вместо(“ЗаполнитьДатуПриемаНаРаботуСотрудника”)
Процедура Расш1_ЗаполнитьДатуПриемаНаРаботуСотрудника(ДатаПриема, Сотрудник, ДатаНачалаСобытия, Отказ) Экспорт
// Определим дату приема на работу сотрудника и ограничим ею начало периода расчета среднего заработка.
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, “ДатаПриема,ОформленПоТрудовомуДоговору”);
Если КадровыеДанные.Количество() = 0 Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр(“ru = ‘Сведения о сотруднике недоступны.'”), , , , Отказ);
Иначе
Если ЗначениеЗаполнено(КадровыеДанные[0].ДатаПриема) Тогда
Если КадровыеДанные[0].ДатаПриема> ДАТА(‘19000101000000’) Тогда
КадровыеДанные[0].ОформленПоТрудовомуДоговору = ИСТИНА;
КонецЕсли;
КонецЕсли;
Если Не КадровыеДанные[0].ОформленПоТрудовомуДоговору Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр(“ru = ‘Сотрудник не принят на работу.'”), , , , Отказ);
Иначе
Если Не ЗначениеЗаполнено(ДатаНачалаСобытия) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр(“ru = ‘Дата начала события не заполнена.'”), , , , Отказ);
Иначе
Если КадровыеДанные[0].ДатаПриема > ДатаНачалаСобытия Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр(“ru = ‘Дата начала события раньше, чем сотрудник принят на работу.'”), , , , Отказ);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Отказ Тогда
Возврат;
КонецЕсли;
ДатаПриема = КадровыеДанные[0].ДатаПриема;
КонецПроцедуры

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