При работе в программе «1С:Зарплата и управление персоналом 3.1» (1С:ЗУП 3.1) пользователи и разработчики часто сталкиваются с непонятным поведением интерфейса. У одних физических лиц в левой панели карточки (в меню навигации формы) присутствуют гиперссылки «Воинский учет», «Образование, квалификация», «Семья» и «Трудовая деятельность», а у других (часто только что созданных или загруженных из внешних источников, таких как Excel) этих команд попросту нет. На панели отображаются только базовые ссылки: «Работа», «Страхование», «Налог на доходы» и «Справки».
Давайте подробно разберем, почему возникает эта проблема, как устроена внутренняя архитектура связи справочников физических лиц и сотрудников, какие регистры сведений и функциональные опции за это отвечают, и как решить проблему программным и интерактивным путем.
Для начала проанализируем базовую концепцию учета персональных данных в 1С:ЗУП. В программе разделены два ключевых справочника:
ФизическиеЛица — хранит непосредственно персональные данные человека как гражданина (паспортные данные, ИНН, СНИЛС, сведения о семье, образовании и воинском учете).Сотрудники — представляет собой сущность трудового договора. У одного физического лица может быть несколько элементов в справочнике сотрудников (например, при внутреннем или внешнем совместительстве).Программа спроектирована так, чтобы не перегружать интерфейс карточки физического лица лишними полями. Если человек занесен в базу просто как сторонний контрагент, получатель разовой выплаты или акционер (по договору ГПХ), собирать по нему подробные анкетные данные для воинского учета или личной карточки Т-2 не требуется. Поэтому система динамически скрывает эти команды на форме физического лица, если не считает его полноценным сотрудником предприятия.
Выясним причину, по которой программа понимает, нужно ли выводить расширенные команды. Отображение команд на форме элемента физического лица жестко привязано к его фактическому кадровому статусу в программе. Возможны следующие варианты поведения формы:
ПриемНаРабота (например, он только создан в базе, импортирован из файла или с ним заключен только договор ГПХ), на форме отображаются только базовые команды: «Работа», «Страхование», «Налог на доходы», «Справки».Если мы заглянем «под капот» конфигурации 1С:ЗУП 3.1, то увидим сложную схему управления видимостью элементов формы, завязанную на функциональные опции и регистры сведений.
Отображение расширенных команд управляется двумя основными функциональными опциями:
ИспользоватьВоинскийУчетВФормеСотрудникаИспользоватьЛичныеДанныеВФормеСотрудникаЭти функциональные опции рассчитываются платформой динамически. Значения для них система берет из специализированных регистров сведений, фиксирующих кадровое состояние физического лица.
Рассмотрим ключевые регистры, влияющие на этот процесс:
А. Регистр сведений «Роли физических лиц» (РегистрСведений.РолиФизическихЛиц)
Этот регистр хранит информацию о том, кем является физическое лицо для конкретной организации. В нем фиксируются роли, такие как «Сотрудник», «Договорник» или «Кандидат». При интерактивном приеме на работу система делает запись в этот регистр автоматически.
Б. Регистр сведений «Сведения о режимах работы формы сотрудника расширенный» (РегистрСведений.СведенияОРежимахРаботыФормыСотрудникаРасширенный)
Данный регистр отвечает за хранение кэша настроек интерфейса для каждого конкретного сотрудника и физического лица в зависимости от его статусов: «Физическое лицо», «Сотрудник», «Сотрудник оформленный». Именно на основании записей этого регистра система понимает, какие опции формы нужно включить для конкретного открываемого объекта.
Проанализируем типичный сценарий: программист или администратор переносит данные сотрудников из старой программы или файлов Excel. При написании обработки загрузки разработчики часто совершают классическую ошибку — они создают элемент справочника ФизическиеЛица, заполняют его реквизиты и записывают объект. Возможно, даже создается элемент справочника Сотрудники.
Однако при программном создании объектов типовые подписки на события могут не сработать в полной мере, либо не выполняются кадровые транзакции, которые должны сделать записи во вспомогательные регистры сведений. В итоге в базе физическое лицо существует, но записи в регистре РолиФизическихЛиц для него отсутствуют. Программа считает его «простым» гражданином, не имеющим отношения к штату сотрудников организации, и скрывает интерфейсные кнопки воинского учета и семьи.
Рассмотрим несколько вариантов решения проблемы в зависимости от того, на каком этапе вы с ней столкнулись.
Если вы только разрабатываете или корректируете процедуру переноса данных, обязательно добавьте в код вызов типовых процедур заполнения ролей физических лиц. Недостаточно просто записать элемент справочника. Необходимо явно зарегистрировать роль физического лица в системе.
Для этого в конфигурации 1С:ЗУП 3.1 предусмотрен удобный экспортный метод. Посмотрим на пример кода, который нужно выполнить сразу после успешной записи физического лица:
// ФизическоеЛицоСсылка - ссылка на созданный элемент справочника ФизическиеЛица
// ОрганизацияСсылка - ссылка на организацию, в которую оформляется сотрудник
// РольФизЛица - значение перечисления Перечисления.РолиФизическихЛиц.Сотрудник
РегистрыСведений.РолиФизическихЛиц.УстановитьРольФизическогоЛица(
ФизическоеЛицоСсылка,
ОрганизацияСсылка,
ПредопределенноеЗначение("Перечисление.РолиФизическихЛиц.Сотрудник")
);
Вызов этого метода гарантирует, что система зарегистрирует за физлицом роль сотрудника, и при следующем открытии карточки нужные команды появятся на форме.
Если данные уже перенесены в базу, приемы на работу созданы и проведены, но кнопки в карточке физического лица все равно не отображаются, это свидетельствует о рассинхронизации кэша режимов работы форм. Чтобы принудительно обновить кэш, выполните следующие действия:
РолиФизическихЛиц и СведенияОРежимахРаботыФормыСотрудникаРасширенный.Сотрудники или Физические лица, отберите нужные элементы и запустите процедуру их перезаписи без изменения реквизитов. Это заставит систему выполнить все сопутствующие обработчики и обновить кэш.Бывают ситуации, когда команды (особенно это касается воинского учета) отсутствуют вообще у всех физических лиц в базе данных, включая давно работающих сотрудников с корректно оформленными кадровыми документами. В этом случае дело не в загрузке из Excel, а в глобальных настройках системы.
Выясним, включена ли соответствующая опция кадрового учета в вашей информационной базе. Выполните следующие шаги:
Если этот флаг снят, программа полностью отключает подсистему воинского учета на уровне всей конфигурации. Соответственно, ссылка на воинский учет пропадет из форм сотрудников и физических лиц. После установки данного флага команда сразу станет доступной для всех физических лиц, имеющих статус сотрудника.
Для того чтобы интерфейс карточки физического лица в 1С:ЗУП 3.1 отображал все необходимые команды («Воинский учет», «Семья», «Образование»), обязательно соблюдайте правила работы с данными:
РолиФизическихЛиц.ПриемНаРаботу.