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