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

29.06.11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

См. также

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

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

200000 руб.

03.07.2025    1177    1    1    

3

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

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

43200 руб.

31.10.2024    1885    1    0    

1

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

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

6000 руб.

15.07.2015    68178    111    52    

115

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

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

21600 руб.

24.03.2023    6627    5    0    

7

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

Электронный обходной лист в 1С предназначен для безбумажной работы с обходными листами, по возможности их автоматического заполнения, с возможностями управления полномочиями по созданию и подписи документов, назначения заместителей, для отсутствующих сотрудников, при увольнении.

9600 руб.

11.01.2022    15970    4    6    

10

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

Сделайте взаимодействие сотрудников компании и бухгалтерии быстрым и удобным. С Личным кабинетом сотрудника в 1С:ЗУП 3.1 и КА 2.5 для Telegram больше не нужно лично посещать бухгалтерию и отдел кадров – все документы доступны в Telegram.

9600 руб.

21.03.2022    17666    9    21    

23

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

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

3600 руб.

22.05.2025    1544    1    1    

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