Перенос графиков работы в программе 1С:Зарплата и управление персоналом 3.1 — это задача, которая на первый взгляд кажется простой. Однако многие специалисты сталкиваются с ситуацией, когда после стандартной выгрузки и загрузки через XML справочник ГрафикиРаботыСотрудников в базе-приемнике остается пустым или отображается некорректно. Разберем подробно, почему это происходит и какие объекты необходимо перенести, чтобы графики выглядели и работали в новой базе идентично источнику.
Проанализируем архитектуру хранения данных в ЗУП 3.1. График работы — это не просто элемент справочника. Это сложный комплексный объект, данные которого распределены между основной таблицей справочника, бинарными данными в хранилище значений и несколькими независимыми регистрами сведений. Если мы переносим только справочник, система получает «каркас», но не видит внутреннего наполнения, настроек заполнения и рассчитанных норм времени.
В справочнике ГрафикиРаботыСотрудников заложен один из самых важных реквизитов — Настройка. Он имеет тип ХранилищеЗначения. Рассмотрим подробнее, что это значит для нас при переносе:
Настройка не перенесется, форма графика в приемнике будет выглядеть пустой, даже если вы перенесете все регистры.Также обратим внимание на реквизит ПроизводственныйКалендарь. Если в базе-приемнике производственный календарь имеет другой UUID (уникальный идентификатор) или вовсе не создан, ссылка в графике станет «битой». Проверьте, чтобы производственные календари в обеих базах были идентичны или перенесены заранее.
Чтобы график был заполнен цифрами и корректно учитывал норму времени, выясним, какие регистры должны сопровождать справочник. Одной только записи в справочнике недостаточно для работы механизмов расчета зарплаты. Перенесем следующий список регистров:
ДанныеГрафиковРаботыПо ВидамВремени). Рекомендуется выгружать их все.Часто возникает вопрос: почему данные перенеслись, но ячейки в графике не окрашены в привычные цвета (например, «Я» — явка, «Н» — ночные)? Посмотрим на механизм отрисовки формы графика. Цвета и символы привязаны к справочнику ВидыИспользованияРабочегоВремени.
Важный момент: Если в базе-приемнике элементы этого справочника (например, «Явка») имеют другие внутренние идентификаторы, то записи в регистре ГрафикиРаботыПоВидамВремени не смогут сопоставиться с визуальными обозначениями. В результате вы увидите пустые клетки или «Объект не найден». Перед переносом графиков убедитесь, что справочник видов времени синхронизирован по кодам или UUID.
Разберем ситуацию, когда пользователь в базе-источнике вручную правил конкретные дни в графике (индивидуальные отклонения от шаблона). Эта информация не хранится в шаблоне настройки. Она записывается в отдельный регистр:
Регистр сведений: РучныеИзмененияГрафиковРаботы.
Если вы не перенесете этот регистр, то в базе-приемнике график «сбросится» к стандартному заполнению по циклу, и все ручные правки бухгалтера будут потеряны.
Представим алгоритм в виде последовательных шагов, которые гарантируют успех:
ПроизводственныеКалендари и убеждаемся, что они заполнены на нужный год (нажата кнопка «Заполнить»).ВидыИспользованияРабочегоВремени.ГрафикиРаботыСотрудников с обязательным включением хранилища значений.ГрафикиРаботыПоВидамВремениСреднемесячныеНормыВремениГрафиковРаботыСотрудниковДанныеГрафиковРаботыРучныеИзмененияГрафиковРаботыНастройкиРасчетаСреднегоЗаработка (проверьте наличие записей для графиков)Рассмотрим более современный подход. Вместо ручного выбора таблиц в XML-обработке, попробуем использовать механизм Enterprise Data. При синхронизации через этот формат система автоматически собирает все связанные данные объекта. Если настроить синхронизацию «один в один», то риск потерять данные в регистрах сводится к минимуму, так как правила выгрузки уже учитывают сложную структуру графиков в ЗУП 3.1.
После завершения загрузки в базу-приемник выполним следующие действия для контроля:
Совет: Если после переноса графики все же выглядят странно, попробуйте зайти в один из них и нажать кнопку «Заполнить». Если после этого данные появились, значит, проблема была в хранилище настроек или регистрах ДанныеГрафиковРаботы. Если же заполнение выдает ошибку или заполняет график иначе, проверьте Производственный календарь.