Программирование, и жизнь

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

Хакни ЗУП 3.1 без изменений конфигурации.

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


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

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

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

Решение №1

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

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

Внимание.
Я так-же могу предоставить консультации, оказать помощь в интеграции моих решений, или разработать новое, пишите ( protsenko@pm.me ) - договоримся.
Email: cHJvdHNlbmtvQHBtLm1l