В кадровой практике часто возникают ситуации, когда необходимо установить испытательный срок, исчисляемый не в месяцах, а в неделях. Наиболее типичный пример — заключение срочного трудового договора на срок от двух до шести месяцев. Согласно статье 70 ТК РФ, в этом случае испытание не может превышать двух недель. Однако пользователи программы 1С:Зарплата и управление персоналом 8 (редакция 3.1) сталкиваются с техническим препятствием: поле для ввода испытательного срока в документе Прием на работу жестко ограничено форматом «количество месяцев» с точностью до одного знака после запятой.
В данной статье мы подробно разберем, почему возникает эта сложность, проанализируем алгоритмы работы программы и рассмотрим несколько способов решения задачи — от простых манипуляций с печатными формами до настройки автоматизированного учета.
Прежде чем перейти к решениям, выясним причину проблемы. В конфигурации 1С:ЗУП 3.1 испытательный срок хранится в числовом реквизите, который измеряется исключительно в месяцах. Программа использует этот показатель для автоматического расчета даты окончания испытания по формуле: ДатаПриема + КоличествоМесяцев.
Рассмотрим, почему ввод значения 0,5 не всегда является корректным:
0,47, что математически ближе к 14 дням для 30-дневного месяца) невозможна, так как поле принимает только один знак после запятой.Это самый быстрый и распространенный метод, не требующий привлечения программистов. Рассмотрим его по шагам:
Прием на работу и на вкладке Главное установим в поле Испытательный срок значение 0,5.Важно: Помните, что ручные правки в печатной форме не сохраняются в базе данных. Если вы закроете форму и откроете ее снова, там опять будет «0,5 месяца». Данный метод подходит для разовых операций.
Если нам необходимо, чтобы в системе была зафиксирована юридически значимая дата окончания испытания (ровно через 14 дней), мы можем использовать механизм досрочного или планового завершения.
Проанализируем этот подход:
Прием на работу ставим 0,5 месяца.Кадры документ Увольнение (если сотрудник не прошел срок) или используем специализированные уведомления.Изменение условий оплаты отпуска по уходу за ребенком или иные документы, влияющие на кадровое состояние, но этот путь избыточен.Завершение испытательного срока (доступен в некоторых версиях или включается в настройках кадрового учета), где дату можно указать вручную.Если в вашей организации часто принимают сотрудников со сроком в 2 недели, постоянная правка «карандашом» становится неэффективной. Разберем, как автоматизировать вывод нужного текста в макете:
Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм.Приказ о приеме (Т-1).ИспытательныйСрок можно написать формулу или просто оставить место для ручного заполнения, которое будет более удобным.Для программистов и системных администраторов оптимальным решением будет создание небольшого расширения. Рассмотрим логику, которую следует реализовать в коде:
Нам необходимо добавить в документ Прием на работу новое поле ИспытательныйСрокДни и пересчитать дату окончания. Пример логики на языке 1С может выглядеть так:
&НаСервере
Процедура РассчитатьДатуОкончанияИспытания(Объект)
// Если установлена галочка "Испытание в днях"
Если Объект.ИспытаниеВДнях Тогда
Объект.ДатаЗавершенияИспытания = Объект.ДатаПриема + (Объект.КоличествоДнейИспытания * 86400);
КонецЕсли;
КонецПроцедуры
Такое расширение позволит:
Подводя итог, можно сказать, что типовая конфигурация 1С:ЗУП 3.1 на данный момент не поддерживает нативный ввод испытательного срока в неделях. Выяснив причину (хранение данных в месяцах), мы можем выбрать наиболее подходящий путь:
Помните, что с точки зрения трудового законодательства, ошибка в дате окончания испытательного срока даже в один день может привести к тому, что испытание будет считаться пройденным, либо увольнение как не прошедшего испытание будет признано незаконным в суде. Поэтому всегда проверяйте финальную дату в трудовом договоре, ориентируясь на календарные дни (14 дней с даты приема).