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

29.06.11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

См. также

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

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

85400 руб.

05.10.2022    13858    16    8    

17

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

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

52000 руб.

03.07.2025    4291    5    1    

7

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

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

25000 руб.

06.03.2026    1147    1    0    

3

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

Групповое формирование и печать Дополнительных соглашений для 1С: Зарплата и управление персоналом ПРОФ и КОРП + 8 печатных форм: Индексация заработной платы, Удаленная работа и предупреждение о COVID-19, Выход из удаленной работы, Кадровый перевод, Кадровый перевод списком, Назначение индивидуальной системы начислений, Переименование филиала, Приказ "Совмещение должностей", Приказ "Совмещение исполнения обязанностей" Что нового: 1.В печатных формах убран весь красный цвет текста 2. В печатных формах в шапках сделано заполнение названия организации, руководителя и основания действия руководителя 3. В печатных формах в подвале сделано заполнение реквизитов организации 4. Добавлена возможность печатать доп соглашения по документу "Изменение плановых начислений"

21960 руб.

24.03.2023    7188    6    0    

8

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

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

12200 руб.

24.12.2025    1109    1    0    

2

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

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

20740 руб.

27.04.2026    740    3    0    

1

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

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

6100 руб.

17.12.2025    803    1    2    

1

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

Удобная и умная внешняя печатная форма, которая автоматически формирует проект дополнительного соглашения к трудовому договору непосредственно из документов "Кадровый перевод" и "Кадровый перевод списком". Позволяет быстро и без лишних усилий оформлять дополнительные соглашения для любых изменений. Значительно облегчает работу кадровиков.

2 стартмани

31.08.2022    9665    149    AlenaBelousova    8    

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