Запрос для отслеживания конфликтов кадровых неявок в ЗУП и УПП

29.06.11

Учетные задачи - Кадровый учет

Представляю Вашему вниманию текст запроса, которому на вход подаётся ссылка на документ регистрации кадровой неявки и который вычисляет, какие конфликты по кадровым неявкам вызывает данный документ в сравнении со всеми прочими документами регистрации кадровых неявок.

При проведении кадрового документа, регистрирующего неявку, в типовой актуальной версии ЗУП 2.5 отслеживаются далеко не все конфликты по кадровым неявкам.

Представляю Вашему вниманию текст запроса, которому на вход подаётся один параметр - ссылка на (проведённый) документ регистрации кадровой неявки и который вычисляет, какие конфликты по кадровым неявкам вызывает данный документ в сравнении со всеми прочими документами регистрации кадровых неявок.

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

Запрос имеет лишь один параметр - ОтслеживаемыйРегистратор. Здесь может быть документ любого типа, который делает движения по регистру сведений СостояниеРаботниковОрганизаций (где регистрируются кадровые неявки).

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДвиженияОтслеживаемогоРегистратора.Сотрудник
ПОМЕСТИТЬ ОптимизацияОтслеживаемыеСотрудники
ИЗ
   
ДвиженияОтслеживаемогоРегистратора КАК ДвиженияОтслеживаемогоРегистратора
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МИНИМУМ(ДвиженияОтслеживаемогоРегистратора.Период) КАК Период
ПОМЕСТИТЬ ОптимизацияМинимальныеИнтересующиеПериодыКалендаря
ИЗ
   
ДвиженияОтслеживаемогоРегистратора КАК ДвиженияОтслеживаемогоРегистратора
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ ОптимизацияКалендарь
ИЗ
   
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОптимизацияМинимальныеИнтересующиеПериодыКалендаря КАК ОптимизацияМинимальныеИнтересующиеПериодыКалендаря
        ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= ОптимизацияМинимальныеИнтересующиеПериодыКалендаря.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СостояниеРаботниковОрганизаций.Период КАК Период,
   
СостояниеРаботниковОрганизаций.Регистратор,
   
СостояниеРаботниковОрганизаций.НомерСтроки,
   
СостояниеРаботниковОрганизаций.Активность,
   
СостояниеРаботниковОрганизаций.Сотрудник,
   
СостояниеРаботниковОрганизаций.Организация,
   
СостояниеРаботниковОрганизаций.Состояние,
   
СостояниеРаботниковОрганизаций.ПериодЗавершения,
   
СостояниеРаботниковОрганизаций.СостояниеЗавершения
ПОМЕСТИТЬ ДвиженияБезОтслеживаемогоРегистратора
ИЗ
   
РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций
ГДЕ
    СостояниеРаботниковОрганизаций.Регистратор <> &ОтслеживаемыйРегистратор
    И СостояниеРаботниковОрганизаций.Сотрудник В
            (ВЫБРАТЬ
                ОптимизацияОтслеживаемыеСотрудники.Сотрудник
            ИЗ
               
ОптимизацияОтслеживаемыеСотрудники)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(ВЫБОР
            КОГДА ДвиженияБезОтслеживаемогоРегистратора.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                ТОГДА
ДвиженияБезОтслеживаемогоРегистратора.Период
            КОГДА ДвиженияБезОтслеживаемогоРегистратора.ПериодЗавершения > РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
                ТОГДА ДвиженияБезОтслеживаемогоРегистратора.Период
            ИНАЧЕ ДвиженияБезОтслеживаемогоРегистратора.ПериодЗавершения
        КОНЕЦ) КАК Период,
   
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
   
ДвиженияБезОтслеживаемогоРегистратора.Сотрудник
ПОМЕСТИТЬ ПериодыСостоянийСотрудниковБезОтслеживаемогоРегистратора
ИЗ
   
ДвиженияБезОтслеживаемогоРегистратора КАК ДвиженияБезОтслеживаемогоРегистратора
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОптимизацияКалендарь КАК РегламентированныйПроизводственныйКалендарь
        ПО ДвиженияБезОтслеживаемогоРегистратора.Период <= РегламентированныйПроизводственныйКалендарь.ДатаКалендаря

СГРУППИРОВАТЬ ПО
   
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
   
ДвиженияБезОтслеживаемогоРегистратора.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(ВЫБОР
            КОГДА ДвиженияОтслеживаемогоРегистратора.ПериодЗавершения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                ТОГДА
ДвиженияОтслеживаемогоРегистратора.Период
            КОГДА ДвиженияОтслеживаемогоРегистратора.ПериодЗавершения > РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
                ТОГДА ДвиженияОтслеживаемогоРегистратора.Период
            ИНАЧЕ ДвиженияОтслеживаемогоРегистратора.ПериодЗавершения
        КОНЕЦ) КАК Период,
   
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
   
ДвиженияОтслеживаемогоРегистратора.Сотрудник
ПОМЕСТИТЬ ПериодыСостоянийСотрудниковОтслеживаемогоРегистратора
ИЗ
   
ДвиженияОтслеживаемогоРегистратора КАК ДвиженияОтслеживаемогоРегистратора
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОптимизацияКалендарь КАК РегламентированныйПроизводственныйКалендарь
        ПО ДвиженияОтслеживаемогоРегистратора.Период <= РегламентированныйПроизводственныйКалендарь.ДатаКалендаря

СГРУППИРОВАТЬ ПО
   
РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
   
ДвиженияОтслеживаемогоРегистратора.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПериодыСостоянийСотрудников.ДатаКалендаря КАК ДатаКалендаря,
   
ПериодыСостоянийСотрудников.Сотрудник,
   
ДвиженияБезОтслеживаемогоРегистратора.Регистратор,
   
ВЫБОР
        КОГДА ПериодыСостоянийСотрудников.Период = ДвиженияБезОтслеживаемогоРегистратора.Период
            ТОГДА ДвиженияБезОтслеживаемогоРегистратора.Состояние
        ИНАЧЕ ДвиженияБезОтслеживаемогоРегистратора.СостояниеЗавершения
    КОНЕЦ КАК Состояние
ПОМЕСТИТЬ КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора
ИЗ
   
ПериодыСостоянийСотрудниковБезОтслеживаемогоРегистратора КАК ПериодыСостоянийСотрудников
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДвиженияБезОтслеживаемогоРегистратора КАК ДвиженияБезОтслеживаемогоРегистратора
        ПО (ПериодыСостоянийСотрудников.Период = ДвиженияБезОтслеживаемогоРегистратора.Период
                ИЛИ ПериодыСостоянийСотрудников.Период = ДвиженияБезОтслеживаемогоРегистратора.ПериодЗавершения)
            И
ПериодыСостоянийСотрудников.Сотрудник = ДвиженияБезОтслеживаемогоРегистратора.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПериодыСостоянийСотрудников.ДатаКалендаря КАК ДатаКалендаря,
   
ПериодыСостоянийСотрудников.Сотрудник,
   
ДвиженияОтслеживаемогоРегистратора.Регистратор,
   
ВЫБОР
        КОГДА ПериодыСостоянийСотрудников.Период = ДвиженияОтслеживаемогоРегистратора.Период
            ТОГДА ДвиженияОтслеживаемогоРегистратора.Состояние
        ИНАЧЕ ДвиженияОтслеживаемогоРегистратора.СостояниеЗавершения
    КОНЕЦ КАК Состояние
ПОМЕСТИТЬ КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора
ИЗ
   
ПериодыСостоянийСотрудниковОтслеживаемогоРегистратора КАК ПериодыСостоянийСотрудников
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДвиженияОтслеживаемогоРегистратора КАК ДвиженияОтслеживаемогоРегистратора
        ПО (ПериодыСостоянийСотрудников.Период = ДвиженияОтслеживаемогоРегистратора.Период
                ИЛИ ПериодыСостоянийСотрудников.Период = ДвиженияОтслеживаемогоРегистратора.ПериодЗавершения)
            И
ПериодыСостоянийСотрудников.Сотрудник = ДвиженияОтслеживаемогоРегистратора.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора.ДатаКалендаря,
   
КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора.Сотрудник,
   
КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора.Регистратор,
   
КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора.Состояние
ПОМЕСТИТЬ КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора
ИЗ
   
КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора КАК КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора
ГДЕ
    КалендарьСостоянийСотрудниковБезОтслеживаемогоРегистратора.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора.ДатаКалендаря,
   
КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора.Сотрудник,
   
КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора.Регистратор,
   
КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора.Состояние
ПОМЕСТИТЬ КалендарьНеявокСотрудниковОтслеживаемогоРегистратора
ИЗ
   
КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора КАК КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора
ГДЕ
    КалендарьСостоянийСотрудниковОтслеживаемогоРегистратора.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.ДатаКалендаря,
   
КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.Сотрудник,
   
КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.Регистратор,
   
КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.Состояние КАК СостояниеБезОтслеживаемогоРегистратора,
   
КалендарьНеявокСотрудниковОтслеживаемогоРегистратора.Состояние КАК СостояниеОтслеживаемогоРегистратора
ИЗ
   
КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора КАК КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ КалендарьНеявокСотрудниковОтслеживаемогоРегистратора КАК КалендарьНеявокСотрудниковОтслеживаемогоРегистратора
        ПО КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.Сотрудник = КалендарьНеявокСотрудниковОтслеживаемогоРегистратора.Сотрудник
            И КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.ДатаКалендаря = КалендарьНеявокСотрудниковОтслеживаемогоРегистратора.ДатаКалендаря
            И КалендарьНеявокСотрудниковБезОтслеживаемогоРегистратора.Состояние <> КалендарьНеявокСотрудниковОтслеживаемогоРегистратора.Состояние

 

На выходе запроса - табличка с полями "ДатаКалендаря, Сотрудник, Регистратор, СостояниеБезОтслеживаемогоРегистратора, СостояниеОтслеживаемогоРегистратора", где по каждой конфликтной дате календаря указаны : Регистратор (конфликтный документ-регистратор кадровой неявки), устанавливающий для сотрудника Сотрудник состояние неявки СостояниеБезОтслеживаемогоРегистратора, в то время как ОтслеживаемыйРегистратор (параметр запроса) устанавливает состояние неявки СостояниеОтслеживаемогоРегистратора.

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

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Кадровый учет 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и Управление Персоналом 3.x Россия Управленческий учет Платные (руб)

Подключаемый модуль для миграционного учета в конфигурациях 1С:ЗУП и 1С:ЗУП КОРП, по запросу можно адаптировать под 1С:УТ и ERP. Подсистема миграционного учета содержит в себе справочники, документы, отчеты, регистры, которые позволяют вести учет патентов, хранить историю тарифов и отслеживать оплаты. Добавлена интеграция с МВД - возможность автоматической проверки сотрудников по реестру контролируемых лиц (подключение обсуждается отдельно).

52000 руб.

03.07.2025    4576    6    1    

7

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

85400 руб.

05.10.2022    14075    16    8    

17

Менеджеры внешних отчетов Кадровый учет Бизнес-аналитик Руководитель проекта 1С 8.3 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

«Кадровый монитор руководителя» — готовое расширение для 1С:ЗУП и 1С:ERP, которое превращает кадровые данные в наглядные дашборды для руководителя, HRD и HR-аналитика. Решение помогает в реальном времени контролировать укомплектованность штата, плановый и фактический ФОТ, динамику увольнений и другие ключевые HR-показатели без ручной сборки отчетов. Аналитика работает в интерфейсе «1С:Аналитика», устанавливается без доработок типовой конфигурации и позволяет быстро получить целостную картину по персоналу в одном окне.

91500 руб.

17.11.2025    4450    2    0    

2

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    1633    4    0    

3

Кадровый учет 1С 8.3 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Расширение для интеграции hh.ru для 1С:ЗУП. Позволит автоматизировать часть рутинных операций HR менеджера, рекрутера, сохранение истории взаимодействия с кандидатами в 1С:ЗУП

12200 руб.

24.12.2025    1307    1    0    

2

Зарплата Кадровый учет Бухгалтер Пользователь 1С 8.3 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если не хотите ставить тяжёлую ЗУП? Нужен только табель и начисление по своим правилам? Рекомендуем этот модуль подключается к УТ, получаете табель, начисление и создание Расходный кассовый ордер/Списание безналичных денежных средств без типовой ЗУП

20740 руб.

27.04.2026    1044    3    0    

1

Email рассылки Кадровый учет Бухгалтер 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Платные (руб)

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

6100 руб.

17.12.2025    993    2    2    

2

Кадровый учет Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Редактор штатного расписания / просмотрщик данных по позиции или сотруднику. Можно выделить несколько позиций и создать для них документ изменение ШР, включая действия копирование позиции (новая) / закрыть позицию / изменить позицию. Позволяет просматривать документы утверждения / изменения ШР. Видеть историю занятых позиций выделенной позиции. Для выделенного сотрудника можно посмотреть кадровую историю. Для выделенного сотрудника можно посмотреть историю изменения начислений. На форму для выделенной позиции выводится вся информация по этой позиции (начисления, график и т.д. - все, что заполнено). При открытии документа - регистратора по ШР(изменение или утверждение) сразу попадаем на текущую позицию, а не на 1 строку. При открытии документа кадровой истории по сотруднику - регистратора (прием или перевод списком) сразу попадаем на строку с данным сотрудником, а не на 1 строку.

3600 руб.

26.10.2018    18716    9    0    

13
Для отправки сообщения требуется регистрация/авторизация