При ведении кадрового учета в программе «1С:Зарплата и управление персоналом 8» (редакция 3.1) пользователи часто сталкиваются с необходимостью кастомизации стандартных формулировок при увольнении сотрудников. При переходе на эту конфигурацию из других систем применяется подбор решений для переноса данных в 1С:ЗУП. Классический пример — оформление увольнения по собственному желанию в связи с выходом на пенсию (согласно пункту 3 части первой статьи 77 Трудового кодекса РФ).
С одной стороны, юридически это обычное увольнение по инициативе работника. С другой стороны, согласно требованиям законодательства, в трудовой книжке и приказе о расторжении трудового договора должна быть зафиксирована уважительная причина: «...в связи с выходом на пенсию», поскольку это дает сотруднику право на увольнение без обязательной двухнедельной отработки. В этой статье мы подробно разберем, как правильно решить эту задачу в зависимости от используемого вами релиза конфигурации: от простых пользовательских настроек до продвинутого программирования через расширения.
---
Если ваша база регулярно обновляется, вам крупно повезло. Фирма «1С» полностью переработала данный механизм в новых версиях программы, добавив возможность ведения пользовательского списка оснований увольнения без изменения конфигурации. Для регулярного технического обслуживания автоматическое обновление и архивирование баз 1С запускается в тихом режиме по расписанию.
Рассмотрим по шагам, как задействовать этот функционал:
ОснованияУвольнения.При оформлении документа «Увольнение» в поле «Основание увольнения» теперь будет доступен наш новый пользовательский элемент. При этом в печатную форму приказа Т-8 и в трудовую книжку подставится именно наша детальная формулировка, а старые кадровые документы по увольнениям других сотрудников (по стандартному собственному желанию) останутся без изменений.
---
Разберем альтернативный вариант, который часто предлагают консультанты на форумах. В программе 1С:ЗУП 3.1 в карточке любого стандартного основания увольнения есть специальный флаг Нестандартное наименование и текст.
Выясним, как это работает на практике:
п. 3 ч. 1 ст. 77.Внимание! Проанализируем серьезный недостаток этого метода: данные изменения глобально перезапишут текстовое представление этой статьи в информационной базе. Если вы отредактируете этот предопределенный элемент, то при перерасчете или повторной печати старых приказов других сотрудников (которые увольнялись просто по собственному желанию, без выхода на пенсию), программа выведет измененный текст с упоминанием пенсии. Это недопустимо с точки зрения кадрового аудита. Поэтому использовать данный способ рекомендуется только в крайнем случае и с пониманием всех последствий.
---
Если вы работаете на устаревшем релизе конфигурации (например, 3.1.13.76, как упоминалось в обсуждении на форуме) и не имеете возможности оперативно обновиться, то штатного пользовательского справочника у вас нет. Нам придется реализовать задачу программно. Для перехода на актуальную версию программы без потери накопленных сведений выполняется перенос данных между базами 1С:ЗУП 3.
Попытка просто добавить новую строку в справочник ОснованияУвольнения в режиме «1С:Предприятие» не увенчается успехом, так как в старых версиях этот справочник жестко привязан к предопределенным элементам и обновляется поставляемыми данными из специального XML-макета. При любом обновлении базы или запуске регламентного задания ваши ручные записи будут удалены либо заменены начальными значениями.
Разберем детальный алгоритм, как решить эту задачу правильно с помощью механизма расширений, сохранив основную конфигурацию на поддержке.
Откроем конфигуратор, перейдем в меню Конфигурация — Расширения конфигурации. Создадим новое расширение, снимем галочки «Безопасный режим» и «Защита от опасных действий» (это необходимо для корректной работы с метаданными).
В основной конфигурации найдем справочник ОснованияУвольнения. В его ветке найдем макет с именем ОснованияУвольненияПоТКРФ. Этот макет представляет собой XML-таблицу, содержащую все официальные статьи Трудового кодекса.
Важный нюанс разработки: если мы просто добавим этот макет в расширение через контекстное меню, система заблокирует его редактирование, так как он будет ссылаться на макет-донор из основной конфигурации. Нам необходимо выполнить следующие действия:
ОснованияУвольненияПоТКРФ из основной конфигурации в XML-файл на жесткий диск.ОснованияУвольнения с точно таким же именем ОснованияУвольненияПоТКРФ и типом «Двоичные данные» (или «Текстовый документ» в зависимости от исходного типа).Откроем наш макет в расширении и добавим туда новую строку, описывающую наше кастомное основание. Структура XML-записи выглядит следующим образом:
<Row>
<Ref>УвольнениеПоСобственномуЖеланиюПенсия</Ref>
<Article>п. 3 ч. 1 ст. 77</Article>
<Paragraph>3</Paragraph>
<Part>1</Part>
<Item>77</Item>
<Description>в связи с выходом на пенсию</Description>
<FullDescription>Трудовой договор расторгнут по инициативе работника в связи с выходом на пенсию, пункт 3 части первой статьи 77 Трудового кодекса Российской Федерации</FullDescription>
</Row>
Обязательно укажите уникальное имя в теге <Ref>, чтобы система идентифицировала вашу запись как новую.
Проанализируем программный код системы. При первоначальном заполнении ИБ или принудительном обновлении справочника программа обращается к модулю менеджера справочника ОснованияУвольнения, вызывая метод инициализации данных. Нам необходимо перенаправить чтение макета из основной конфигурации на наш макет, расположенный в расширении.
Для этого в модуле менеджера справочника ОснованияУвольнения нашего расширения перехватим процедуру заполнения (например, ВосстановитьНачальныеЗначения или аналогичную ей процедуру обновления данных) при помощи аннотации &Вместо.
Посмотрим на пример реализации такого кода:
&Вместо("ПолучитьМакетОснований")
Функция Расш1_ПолучитьМакетОснований()
// Принудительно возвращаем макет, отредактированный в нашем расширении
Возврат Справочники.ОснованияУвольнения.ПолучитьМакет("ОснованияУвольненияПоТКРФ");
КонецФункции
После успешной компиляции расширения запустим сеанс «1С:Предприятие», перейдем в справочник оснований увольнений и выполним команду Восстановить начальные значения. Программа обратится к переопределенному нами макету из расширения, считает новую XML-строку и успешно создаст новый элемент в справочнике.
---
Создавая нестандартные элементы справочника (как штатными средствами, так и программно), мы должны помнить о сдаче обязательной отчетности в Социальный фонд России (СФР). При выгрузке сведений о трудовой деятельности государственные шлюзы контроля проверяют строго регламентированные коды причин увольнения.
Рассмотрим, как обеспечить сдачу отчетности без ошибок:
п3ч1с77тк.