Как правильно спроектировать архитектуру кадрового учета в собственной конфигурации 1С?

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

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

Главный паттерн: Разделение физических лиц и сотрудников

Разберем ключевой архитектурный принцип, применяемый во всех типовых решениях 1С: четкое разделение субъекта учета (человека) и его трудового договора (рабочего места).

Для реализации этой схемы создадим два основных справочника:

  1. Справочник ФизическиеЛица — хранит неизменяемые или редкие персональные данные человека (ИНН, СНИЛС, паспортные данные, дата рождения, контактная информация). Запись о человеке создается один раз и не дублируется при повторном приеме на работу или работе по совместительству.
  2. Справочник Сотрудники — представляет собой конкретный трудовой договор или рабочее место. В нем создаются реквизиты:
    1. ФизическоеЛицо — ссылка на элемент справочника ФизическиеЛица;
    2. Организация — организация, в которую оформляется сотрудник;
    3. ГоловнаяОрганизация и ВидЗанятости — для учета основного места работы, внешнего или внутреннего совместительства.

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

Минимально необходимый набор объектов системы

Рассмотри структуру объектов, необходимую для полноценной регистрации кадровых событий и получения истории изменений:

1. Классификаторы и справочники:

  1. Справочник Подразделения — оргструктура предприятия.
  2. Справочник Должности — штатные позиции.
  3. Справочник ФизическиеЛица — персональные данные.
  4. Справочник Сотрудники — список рабочих мест.

2. Регистры сведений (история изменений):

  1. Регистр сведений КадроваяИсторияСотрудников:
    1. Тип регистра: периодический (периодичность — Посекундно или В пределах дня).
    2. Режим записи: Подчинение регистратору.
    3. Измерения: Сотрудник (тип СправочникСсылка.Сотрудники), Организация.
    4. Ресурсы: Подразделение, Должность, КоличествоСтавок, ВидСобытия (перечисление: Прием, Перевод, Увольнение), ВРаботе (булево).
  2. Регистр сведений ФИОФизическихЛиц (периодический, в пределах дня):
    1. Измерение: ФизЛицо.
    2. Ресурсы: Фамилия, Имя, Отчество.
    3. Служит для сохранения истории смены фамилий и корректного формирования печатных форм на любую дату в прошлом.

3. Документы (регистраторы кадровых событий):

  1. ПриемНаРаботу — формирует начальную запись в регистре КадроваяИсторияСотрудников со статусом ВРаботе = Истина.
  2. КадровыйПеревод — изменяет подразделение, должность или количество ставок с определенной даты.
  3. Увольнение — делает запись в регистр с выставлением ресурса ВРаботе = Ложь.

Вместо трех отдельных документов в микро-системах можно использовать один универсальный документ КадровоеПеремещение с реквизитом ВидОперации.

Правильная организация движения и выборка данных

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

Для получения актуальной информации на любую дату используем виртуальную таблицу СрезПоследних регистра сведений КадроваяИсторияСотрудников. Пример запроса для получения списка работающих сотрудников на определенную дату:


ВЫБРАТЬ
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
	КадроваяИсторияСотрудниковСрезПоследних.Подразделение КАК Подразделение,
	КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность
ИЗ
	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
	КадроваяИсторияСотрудниковСрезПоследних.ВРаботе = ИСТИНА

Использование виртуальной таблицы платформ 1С позволяет оперативно извлекать состояние кадрового состава без сложных группировок и вложенных запросов.

Практические нюансы и ограничения

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

  1. Конфликт записей на одну дату: Платформа 1С не позволяет записать две строки с одинаковыми измерениями в периодический регистр сведений на один и тот же момент времени. Если кадровым процессом допускается прием и увольнение в один день, установите периодичность регистра в значение Посекундно или добавьте в измерения числовое поле ИндексЗаписи.
  2. Перепроведение документов: Так как режим записи регистра установлен в значение Подчинение регистратору, отмена проведения или редактирование исторического документа автоматически очищает и переформировывает его движения, что предотвращает появление «фантомных» записей.
  3. Анализ типовых аналогов: Для изучения базовых кадровых паттернов без лишней переусложненности рекомендуется изучить кадровый блок конфигураций Зарплата и Управление Персоналом 2.5 или упрощенный кадровый учет в Бухгалтерии Предприятия 2.0 / 3.0.
← На главную