Использование подписки на события для управления периодом записей в регистрах сведений (на примере ЗУП)

03.03.26

Разработка - Механизмы типовых конфигураций

Как в ЗУП работает механизм расстановки времени в регистрах сведений с помощью подписки на события?Рассматривается логика сдвигов для разных типов документов (прием, увольнение, отпуск) и дается инструкция по подключению нового регистра к этому механизму.

При работе с типовой конфигурацией «Зарплата и Управление Персоналом» можно обратить внимание на особенности заполнения периода в регистрах сведений. Например, в регистре «Кадровая история сотрудников» записи, созданные разными документами, имеют одинаковую дату, но разное время в пределах суток: прием на работу – 00:00:20, увольнение – 00:00:05, отпуск – 23:59:50. Это обеспечивает корректную хронологию событий и позволяет системе однозначно определять последовательность операций.

 

 

Данный механизм реализован с помощью подписки на события – объекта конфигурации, который позволяет назначить общий обработчик для определенных событий объектов метаданных. В данном случае используется подписка «УстановитьСдвигПериодаРегистраСПериодичностьюСекунда».

Для чего это нужно

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

Как работает подписка (общий принцип)

Обработчик подписки представляет собой экспортируемую процедуру общего модуля. В конфигурации ЗУП эту роль выполняет процедура ЗарплатаКадрыРасширенныйСобытия.УстановитьСдвигПериодаРегистраСПериодичностьюСекунда.

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

  1. Проверка условий применения. На первом этапе процедура определяет, требуется ли вмешательство в период записей. Выполняется проверка на служебные режимы записи, наличие пометок удаления, а также анализируются дополнительные свойства набора записей. В определенных случаях (например, для вторичных записей) сдвиг периода не применяется.
  2. Определение типа документа-регистратора. Из набора записей извлекаются ссылки на документы, которые являются регистраторами. Для дальнейшей работы используется первый регистратор из набора.
  3. Получение значения сдвига. Вызывается функция ЗарплатаКадрыРасширенный.ЗначениеСдвигаПериодаЗаписиРегистра(Регистратор). Эта функция содержит сопоставление типов документов и числовых значений сдвига в секундах.
    • Например, для документов увольнения возвращается значение 5, для приема на работу – 20, для отпусков – 86350, для утверждения тарифной сетки – 86340. Если тип документа не найден в списке, функция может вернуть Неопределено, что инициирует альтернативный алгоритм расчета времени.
  4. Корректировка периода записей. Полученное значение сдвига прибавляется к началу дня, который содержится в поле Период каждой записи набора. В результате все записи одного документа получают одинаковое время, соответствующее его типу, что позволяет выстроить правильную последовательность событий внутри одних суток.

Добавление собственного регистра в механизм

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

 

 

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

Вступайте в нашу телеграмм-группу Инфостарт

подписка на события регистр сведений период сдвиг периода ЗУП регистраторы обработчик новичок

См. также

Механизмы типовых конфигураций Программист Стажер 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Бесплатно (free)

Интервальные регистры в 1С:ЗУП 3.1 заменяют тяжелые срезы последних, ускоряя отчеты по кадровым данным через интервалы ДатаНачала–ДатаОкончания. Разбираем отличия, примеры кода, плюсы и способы синхронизации.

12.03.2026    1628    AlexeyPROSTO_1C    4    

18

Механизмы типовых конфигураций Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

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

11.08.2025    6538    user1988284    0    

21

Механизмы типовых конфигураций Программист 1С:Предприятие 8 Бесплатно (free)

Каждый, кто работал с кадровыми отчетами в ЗУП, ERP или УХ, сталкивался с механизмом представлений – странным кодом запроса, где поля отображаются пустыми ссылками, а в названии временной таблицы есть слово «Представление». В статье разберем, что такое представления и как ими пользоваться. Больше не нужно ломать голову над тем, откуда и как правильно получать данные. Механизм представлений сделает это за вас.

08.07.2025    12983    user2012581    55    

61

Механизмы типовых конфигураций Программист Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Бесплатно (free)

В типовых решениях типа УТ, КА, ERP при вводе строк в поля ввода осуществляется поиск по первым символам. С помощью небольшой доработки (делается через расширение) можно организовать поиск по вхождению.

02.06.2025    3021    lkey    2    

6

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

В этой статье я расскажу, как в конфигурации 1С:ERP 2.5 при начале работы системы настроить открытие своих нетиповых форм (в том числе и из внешних обработок). Данную методику можно использовать как на тонком клиенте, так и на мобильном или веб-клиенте, а также в мобильном приложении.

12.05.2025    6872    AlexeyPROSTO_1C    3    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mefalcon 39 04.03.26 08:56 Сейчас в теме
Добрый день. Идея классная.
Было бы еще круче, если управлять последовательностью можно было бы из Предприятие, т.е. сделав настройку через универсальные константы (пример констант на базе РС https://infostart.ru/1c/tools/2016868/?ysclid=mmbmhxx6y393236021)
Для отправки сообщения требуется регистрация/авторизация