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