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

29.06.11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

См. также

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

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

150000 руб.

03.07.2025    2535    2    1    

4

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

Предлагаем расширить возможности конфигурации 1С:УНФ 3.0 в части ведения кадрового учета. С помощью данного расширения в конфигурацию будут добавлены новые документы: "Отпуск" и "Командировка". Документы облегчат работу кадровика и расчетчика, а также повысят эффективность работы за счет оптимизации и упрощения процесса ведения учета.

43920 руб.

31.10.2024    2990    3    0    

2

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

Решение реализовано в виде внешней обработки. Позволяет перенести данные из Парус 10 под Postgres, MSSQL в 1С:ЗУП 3, ЗКГУ 3. Переносит все кадровые данные, зарплату за указанный период.

9760 руб.

30.08.2024    2118    4    1    

4

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

Обработка позволяет загрузить из структурированного файла данные по физическим лицам, сотрудникам. Предусмотрено создание документов "Прием на работу". Данные загружаются не только в справочники и документы, но и в регистры сведений. Обработка разработана для конфигураций "Зарплата и Управление Персоналом, редакция 3.1"/"Зарплата и кадры государственного учреждения, редакция 3.1" на платформе 8.3.

6100 руб.

15.07.2015    69192    113    52    

117

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

Обработка больше предназначена как основа для своей разработки, чем как универсальное решение. Но можно использовать и как готовое решение для небольшой организации. Переносит данные из файла Excel в ЗУП, по аналогии как данные переносятся из ЗУП 2.5.

7200 руб.

19.01.2023    7863    5    4    

6

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

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

5124 руб.

31.08.2022    8162    147    5    

11

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

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

5084 руб.

10.12.2021    4912    40    2    

3

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

Внешний отчет "Действующие совмещения" - формируется по незакрытым и незавершенным на дату оформленным документом Совмещениям должностей. в.ч. по видам - Исполнение обязанностей, Совмещение должностей профессий, Расширение зон обслуживания.

5124 руб.

22.05.2025    2248    2    1    

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