Как изменить брачный статус сотрудника в ЗУП, если дата попадает в закрытый период?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При приеме на работу или ведении кадрового учета в программе 1С:Зарплата и Управление Персоналом часто возникает ситуация, когда необходимо внести данные о семейном положении, которые фактически относятся к прошлому. Однако система блокирует запись, так как дата события попадает в период, закрытый Датой запрета изменения. Давайте разберем, как грамотно решить эту задачу, не нарушая целостность данных и не создавая лишних сложностей.

Понимание логики работы регистра

Прежде всего, важно проанализировать, как работают механизмы 1С. В конфигурации сведения о брачном статусе хранятся в регистре сведений. Поле Период (или «Действует с») в этом регистре означает дату, начиная с которой статус становится актуальным для системы. Это не обязательно дата фактического заключения брака в свидетельстве, а дата, с которой программа начинает учитывать это состояние.

Если вы пытаетесь ввести данные, которые физически произошли в прошлом, но период уже закрыт для редактирования, система будет выдавать ошибку. Рассмотрим способы решения проблемы.

Способ 1: Методологический подход (рекомендуемый)

Чаще всего для целей расчета зарплаты или кадрового учета нет необходимости хранить дату свадьбы десятилетней давности. Если законодательство или внутренние регламенты не требуют обязательного указания точной даты события в прошлом, воспользуйтесь следующим методом:

  1. В поле «Действует с» укажите дату приема сотрудника на работу.
  2. Для фиксации фактической даты брака (если она критически важна для компании, например, для поздравлений или премий) используйте Дополнительные реквизиты и сведения.

Этот подход позволяет избежать манипуляций с датами запрета и сохраняет корректность исторических данных в отчетности.

Способ 2: Настройка прав доступа для пользователей

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

Способ 3: Техническое решение через конфигуратор

Если бизнес-процессы требуют обязательного ввода именно «исторической» даты в регистр и иные способы не подходят, необходимо программно изменить логику проверки дат. Для этого в ЗУП предусмотрен общий модуль ДатыЗапретаИзмененияПереопределяемый.

Вы можете использовать процедуру ПриОпределенииОбъектовСДатамиЗапрета. В этой процедуре можно программно исключить ваш регистр сведений из-под действия запрета при определенных условиях.

Рассмотрим пример логики, которую можно добавить в модуль:


Процедура ПриОпределенииОбъектовСДатамиЗапрета(Объекты) Экспорт
    // Исключаем возможность проверки даты для нашего регистра
    Объекты.Удалить(Объекты.Найти("РегистрСведений.СемейноеПоложениеФизическихЛиц"));
КонецПроцедуры

Важно: Будьте осторожны при внесении изменений в типовой код. После таких правок рекомендуется внимательно протестировать систему, чтобы убедиться, что возможность изменения старых данных не приведет к нежелательным последствиям в отчетности или расчетах, которые уже были зафиксированы в закрытом периоде.

Итоговые рекомендации

При решении данной задачи мы рекомендуем придерживаться следующей последовательности:

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

← На главную