В помощь кадровику. Отчет по состояниям (отклонениям) сотрудников за период.

Отчеты - Бухгалтерские

Пантелеев Кадровик Расчетчик Отчет по состояниям Отчет за период Отчет по отклонениям Состояние

137
Моя переработанная статья будет полезна и работникам кадровых служб и разработчикам кадровых отчетов. Вся информация для пользователей размещена в самом начале статьи, ниже идет техническое описание сбора данных для отчета. К статье прикреплен отчет на основе СКД, который позволяет в детальной и настраиваемой форме выводить информацию о состояниях сотрудников за выбранный период. Данные собираются исключительно с кадровых регистров. Через механизм характеристик реализована поддержка использования категорий и свойств объектов. В описании для разработчиков я расскажу об основных принципах создания отчета по состояниям (отклонениям) сотрудников организаций за выбранный период. Данные будем брать из регистров сведений «СостояниеРаботниковОрганизаций» и «РаботникиОрганизаций». В файлах выложен полностью работоспособный отчет по статье, который можно быстро адаптировать под Ваши учетные задачи. (тестировалась в ЗУП 2.5.37.1, 2.5.54.1 / 8.2.14.533, 8.2.15.310)

 

Публикация написана мной в далеком 2011 году. Некоторые описанные технические приемы сегодня можно сделать более проще, оптимальнее и элегантнее. 

Однако, сама суть подхода к реализации отчета на СКД принципиально не изменилась.

 

Оглавление

1 Отзывы и успешные внедрения

2 Описание для пользователей

3 Примеры настроек отчета

4 Описание для разработчиков и внедренцев

4.1 Структура регистров для получения данных

4.2 Первый пакет:  РС_РаботникиОрганизаций

4.3 Второй пакет:  ВТ_ТаблицаСотрудников

4.4 Третий пакет: РС_СостоянияСотрудников

4.5 Четвертый пакет: ВТ_СостоянияСотрудниковДополненные

4.6 Пятый пакет: ВТ_СостоянияСУчетомПересеченийПериодов

4.7 Шестой пакет: ВТ_СостоянияРазвернутые

4.8 Седьмой пакет: ВТ_СверткаПоследовательныхОдинаковыхЗаписейСостояний

4.9 Результирующий пакет

4.10 Использование индексов и индексирования

Обратная связь

Обновления, изменения, доработки публикации

 

 

 

1 Отзывы и успешные внедрения

1) Резензия Ирины Кондратенко, руководитель HR-практикой, БИТ. (  http://www.1cbit.ru/events_detail.php?ID=130306&ref=46  ) 

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

2) Отчет внедрен в некоторых ДЗО ОАО РЖД.

3) Читай комментарии к отчету.

 

 2 Описание для пользователей

Работая с кадровыми и расчетными службами в крупнейшем холдинге РФ, неизбежно сталкиваешься с проблемой сверки и сопоставления кадровых и расчетных данных.  В том случае, если учет невыходов оформляется кадровиками путем ввода документов-отклонений, а на основании этих документов вводятся расчетные документы, то возникновение ошибок в оформлении кадровых документов или их несвоевременная регистрация, может вести к неверному начислению зарплаты и как следствие некорректному расчету налогов. Следует принимать во внимание, что расчетчики оперируют понятием «вид расчета», в то время как кадровики – «состояние сотрудника». В этой связи обеспечение надежной связи между «состояниями сотрудников» и «видами расчетов», возможность ее проанализировать и, в случае необходимости, корректировать - краеугольная задача.

Данный отчет позволяет в детальной и настраиваемой форме выводить информацию о состояниях сотрудников за выбранный период. Данные собираются исключительно с кадровых регистров. С помощью этого отчета можно:

1)      Контролировать ввод документов отклонений и кадровых приказов на прием и увольнение

2)      Сверять кадровые состояния сотрудников с данными из отчета «Форма Т13 (табель)»

3)      Сверять кадровые состояния сотрудников с ведомостью начислений и сводом

4)      Компоновать в различных разрезах (хоть по гороскопу) данные по состояниям сотрудников.

 

По просьбе пользователя rasswet, которую он изложил в комментариях к публикации, поясняю:
дней в периоде - это сколько дней неявки приходится на выбранный в параметрах отчета период.
дней отклонения - это общее зарегистрированное в программе число дней неявки.
Например, строим отчет за период с 01 по 31 января 2012 года. Сотрудница 15 декабря 2011 года уходит в отпуск по уходу за ребенком до 2013 года. Тогда дней в периоде =31, а дней отклонения =547.

Вы можете прямо сейчас скачать  отчет с этого сайта и начать им пользоваться! 

Если у Вас возникли какие-то сложности или есть вопросы и пожелания  - пишите на электронную почту: PanteleevI@Inbox.ru 

 

 3 Примеры настроек отчета

 Основная настройка "По состояниям" :

Настройка отчета  

 

Экзотическая настройка "Состояния по гороскопу"  

Настройка отчета  

 

Настройка отчета "Для сверки табелей"  

Настройка отчета  

 

4 Описание для разработчиков и внедренцев

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

 

4.1 Структура регистров для получения данных

Для решения задачи нам потребуются обработки:  «Консоль отчетов» и «Консоль отчетов».

Основные данные для отчета будем собирать с регистров сведений: «СостояниеРаботниковОрганизаций» и «РаботникиОрганизаций».

 Рассмотрим структуру этих регистров:

Структура регистров

Оба регистра периодические с периодичностью в пределах дня, подчиненные регистратору.

Они имеют два измерения «Сотрудник» и «Организация» (другие измерения, начинающиеся со слова «удалить»,  уже не используются и представляют собой аппендикс из прошлого).

Важно отметить, что в типовой конфигурации ЗУП 2.5.37.1 в этих регистрах проиндексировано измерение «Организация» и ресурс «Обособленное подразделение»:

Свойство измерения Организация регистра

Для чего нужно использовать индексирование? В таблице реляционной БД данные хранятся обычно в том порядке, в каком их ввели в таблицу. Такой способ позволяет быстро вводить данные, новые записи просто добавляются в конец таблицы. Но вот если нужно что-то быстро найти, то такой способ хранения обеспечивает некоторые трудности в плане производительности. При индексировании таблицы по измерению «Организация» таблица дополнительно упорядочивается по этому полю и при поиске нужно просматривать меньший объем данных.

Если у вас достаточно большой объем данных (от несколько десятков кадровых движений в день и отклонений), то имеет смысл задуматься,  не проиндексировать ли в конфигураторе измерение «Сотрудник»?  Практически во всех типовых запросах с использованием регистров сведений «СостояниеРаботниковОрганизаций» и «РаботникиОрганизаций» связь с другими таблицами осуществляется через поля «Сотрудник», так же очень часто на него накладываются различные условия. Аналогично с полями «Период завершения» и «ПричинаИзмененияСостояния».

 Замечу, что чрезмерное необоснованное индексирование может значительно ухудшить скорость записи данных в БД.

Откроем консоль отчетов, создадим новый отчет, назовем его «Отчет по состояниям».  

Создание отчета в консоли

В конструкторе компоновке данных добавляем набор данных запрос.

 набор данных

Далее работаем в конструкторе.

 

4.2 Первый пакет:  РС_РаботникиОрганизаций

Для того, чтобы получить отчет по состояниям за период нам нужно сначала получить список всех штатных (в т.ч. и совместителей) сотрудников за период. Получим их из регистра сведений «РаботникиОрганизаций».

Нам нужно получить все записи регистра за период. Для этого объединим реальные записи за период с таблицей среза последних на дату начала периода.

Схема получения сотрудников за период

 
 Текст запроса первого пакета:

Количество полей.

9полей:  Сотрудник, Регистратор, Период , Организация,  ЗанимаемыхСтавой, Обособленное Подразделение, ПодразделениеОрганизации, Должность, ГрафикРаботы,  ПричинаИзмененияСостояния.

 5 ссылочных, 2 примитивных.

Количество записей.

Строк при выводе результата в тестовой базе 1750 с отбором за 2011 год.

Таблица результирующих записей (не вся):

         

1

 Александр

01.01.2011

Перемещение

Отделение эксплуатации

 

2

 Анатолий

01.01.2011

Перемещение

Сектор дизайна

 

3

 Анатолий

11.10.2011

Увольнение

Сектор дизайна

 

4

 Альбина

01.01.2011

Перемещение

Сектор организационного обеспечения

 

5

 Жанна

01.01.2011

Перемещение

Сектор методического обеспечения

 

6

 Ксения

01.01.2011

Перемещение

Отдел комплексных систем

 

7

 Ксения

13.05.2011

Увольнение

Отдел комплексных систем

 

Мы добились своей цели: отобрали все записи регистра сведений за период. При этом не забыли последние записи с увольнениями.

 

4.3 Второй пакет:  ВТ_ТаблицаСотрудников

В предыдущем пакете мы получили все актуальные записи регистра сведений «РаботникиОрганизаций». Теперь выберем из них уникальных сотрудников.

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	РС_РаботникиОрганизаций.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТ_ТаблицаСотрудников
ИЗ
	РС_РаботникиОрганизаций КАК РС_РаботникиОрганизаций

СГРУППИРОВАТЬ ПО
	РС_РаботникиОрганизаций.Сотрудник

ИНДЕКСИРОВАТЬ ПО
	Сотрудник;

Количество полей.

1поле:  Сотрудник

 1 ссылочное.

Количество записей.

Строк при выводе результата в тестовой базе 1140 с отбором за 2011 год.

 

4.4 Третий пакет: РС_СостоянияСотрудников

Получим все записи регистра сведений «СостояниеРаботниковОрганизаций» за 2011 год.

 Для этого объединим реальные записи за период с таблицей среза последних на дату начала периода.

 Схема получения записей из РС Состояния сотрудников организаций

Таблица записей регистра (с отбором по сотруднику за 2010 год):

           

1

 Александр Анатольевич

11.11.2009

В командировке

14.11.2009

Работает

 

2

 Александр Анатольевич

22.03.2010

В ежегодном отпуске

27.03.2010

Работает

 

3

 Александр Анатольевич

05.04.2010

В командировке

08.04.2010

Работает

 

4

 Александр Анатольевич

04.05.2010

В ежегодном отпуске

08.05.2010

Работает

 

5

 Александр Анатольевич

25.05.2010

В командировке

28.05.2010

Работает

 

6

 Александр Анатольевич

05.07.2010

В ежегодном отпуске

11.07.2010

Работает

 

7

 Александр Анатольевич

11.07.2010

В ежегодном отпуске

17.07.2010

Работает

 

8

 Александр Анатольевич

10.08.2010

В командировке

14.08.2010

Работает

 

9

 Александр Анатольевич

03.10.2010

В командировке

07.10.2010

Работает

 

10

 Александр Анатольевич

25.10.2010

В ежегодном отпуске

30.10.2010

Работает

 

11

 Александр Анатольевич

01.12.2010

В командировке

03.02.2011

Работает

 
               

В приведенном примере набора записей для нас прежде всего будут интересны первая и последняя строки. Поскольку мы формируем отчет с 01.01.2010, то первую строку нужно преобразовать так, чтобы «период завершения» поставить на место «периода» и «состояние завершения» на место «состояния»:

1

 Александр Анатольевич

11.11.2009

В командировке

14.11.2009

Работает

 

1

 Александр Анатольевич

14.11.2009

Работает

   

В тексте запроса поле «ПЕРИОД» это можно вычислить так:

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

А поле «ПЕРИОД ЗАВЕРШЕНИЯ» следующим образом:

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

 

В последней строке поля «период завершения» и «состояние завершения»  не несут смысловой нагрузки, поскольку отчет по 31.12.2010.

11

 Александр Анатольевич

01.12.2010

В командировке

03.02.2011

Работает

 

11

 Александр Анатольевич

01.12.2010

В командировке

   

 

 
 Текст третьего пакета:

Количество полей.

7полей:  Сотрудник, Регистратор, Период ,Состояние, Организация,  ПериодЗавершения, СостояниеЗавершения.

 5 ссылочных, 2 примитивных.

Количество записей.

Строк при выводе результата в тестовой базе 50807 с отбором за 2011 год. 

4.5 Четвертый пакет: ВТ_СостоянияСотрудниковДополненные

Рассмотрим еще один возможный случай.

Записи регистра за период (01.01.2010-31.12.2010) с отбором по сотруднику:

           

№ п/п

Сотрудник

Период

Состояние

Дата возврата

Состояние по окончании

 

1

 Артем Михайлович

14.04.2010

Болеет

     

 

Первая запись в регистре о болезни, до этого строк нет.  Получается временной пробел за период 01.01.2010-13.04.2010. Если разобраться, то мы увидим, что сотрудник был принят 01.03.2010, но документ «Прием на работу в организацию» не делает проводок  по регистру состояний с состоянием «Работает». 

Или еще один пример. Сотрудник принят 07.08.2010 и с тех пор в базе не было введено по нему ни одного документа отклонения (очень трудолюбивый стахановец). Поскольку документ «Прием на работу в организацию» не делает проводок  по регистру состояний с состоянием «Работает» то нам нужно сделать это прямо в запросе вручную.

Документ «Увольнение из организации» так же не делает проводок по регистру состояний. В этой связи нам так же нужно обрабатывать такие случаи в запросе.

Для восполнения временного пробела нам нужно:

1)      выявить всех сотрудников, у которых нет ни одной записи с Периодом и ПериодомЗавершения (если он заполнен)

2)      для каждого сотрудника из 1) получить таблицу с полями: сотрудник, дата приема и состояние = «Работает» из регистра «Работники организаций».

3)      объединить полученные записи о приемах в организацию с записями временной таблицы РС_СостоянияСотрудников 2 пакета.

 
 Текст четвертого пакета: 

Количество полей.

7полей:  Сотрудник, Организация, Регистратор, Период, Состояние, ПериодЗавершения , СостояниеЗавершения.

Из них 5 ссылочных, 2 примитивных.

 Количество записей. 

Строк при выводе результата в тестовой базе 6074 с отбором за 2011 год. 

4.6 Пятый пакет: ВТ_СостоянияСУчетомПересеченийПериодов

Рассмотрим случаи пересечения периодов. 

Записи регистра за период (01.01.2010-31.12.2010) с отбором по сотруднику:

           
             

№ п/п

Сотрудник

Период

Состояние

Период завершения

Состояние завершения

Регистратор

 

13

 Анатолий Борисович

01.01.2010

В ежегодном отпуске

23.01.2010

Работает

Отпуска организаций 1910-ОТ от 22.12.2009 0:00:00

 

14

 Анатолий Борисович

15.01.2010

В отпуске без сохранения зарплаты

25.03.2010

Работает

Отпуска организаций 45-ОБ от 23.03.2010 10:39:34

 
                         

При наличии таких записей отчет нам должен четко показать следующую информацию:

С 01.01 по 14.01 – ежегодный отпуск

С 15.01 по 25.03 – отпуск без сохранения

Другими словами нам нужно:

1)      найти все записи, для которых существуют другие записи, разрывающие их периоды или совпадающие с ними

2)      в найденных записях вычислить ПериодЗавершения=Дата(1,1,1) и СостояниеЗавершения=ПустаяСсылка 

 
 Текст пятого пакета:
Количество полей.

5полей:  Сотрудник, Организация, Регистратор, Период, Состояние

3 ссылочных, 2 примитивных. 

Количество записей.

Строк при выводе результата в тестовой базе 9493 с отбором за 2011 год. 

4.7 Шестой пакет: ВТ_СостоянияРазвернутые

Получим из 1 записи 2 записи,  будто «разворачивая» их. Например из 1записи:

№ п/п

Сотрудник

Период

Состояние

Период завершения

Состояние завершения

Регистратор

13

 Анатолий Борисович

11.01.2010

В ежегодном отпуске

23.01.2010

Работает

Отпуска организаций 1910-ОТ от 22.12.2009 0:00:00

 

получим 2 записи:

№ п/п

Сотрудник

Период

Состояние

Регистратор

13

 Анатолий Борисович

11.01.2010

В ежегодном отпуске

Отпуска организаций 1910-ОТ от 22.12.2009 0:00:00

14

 Анатолий Борисович

23.01.2010

Работает

Отпуска организаций 1910-ОТ от 22.12.2009 0:00:00

Количество записей получится не ровно в 2 раза больше, т.к. будет еще условие.

 
 Текст шестого пакета:

Количество полей.

9полей:  Сотрудник, Организация, РегистраторСостояния, РегистраторСостоянияВид, ПериодС, ПериодПо, Состояние, ДнейОтклонения, ДнейВПериоде .

Из них 5 ссылочных, 4 примитивных.

Количество записей. 

Строк при выводе результата в тестовой базе 9493  за 2011 год. 

Оптимизация.

Пятый «ВТ_СостоянияСУчетомПересеченийПериодов» и шестой «ВТ_СостоянияРазвернутые
пакеты можно без потери производительности объединить в один пакет. 
Выше они специально разделены для более простого понимания того, что происходит. 

 

 
 Оптимизированный пакет «ВТ_СостоянияРазвернутые» будет выглядеть вот так:

4.8 Седьмой пакет: ВТ_СверткаПоследовательныхОдинаковыхЗаписейСостояний

В полученной таблице можно найти следующие записи: 

Вячеслав

Работает

03.09.2011

05.09.2011

Вячеслав

Болеет

06.09.2011

07.09.2011

Вячеслав

Болеет

08.09.2011

03.10.2011

Вячеслав

Болеет

04.10.2011

19.10.2011

Вячеслав

Работает

20.10.2011

31.12.2011

Три записи о состоянии «болеет» можно и  нужно объединить в одну.

Получим следующую таблицу : 

Вячеслав

Работает

03.09.2011

05.09.2011

Вячеслав

Болеет

06.09.2011

07.09.2011

Вячеслав

Работает

20.10.2011

31.12.2011

Теперь  нужно не забыть увеличить  «ПериодПо» в оставшейся записи на число дней удаленных записей.
В результате получим следующую таблицу:

Вячеслав

Работает

03.09.2011

05.09.2011

Вячеслав

Болеет

06.09.2011

19.09.2011

Вячеслав

Работает

20.10.2011

31.12.2011

 
 
 Текст седьмого пакета:
Количество полей.

9полей:  Сотрудник, Организация, РегистраторСостояния, РегистраторСостоянияВид, ПериодС, ПериодПо, Состояние, ДнейОтклонения, ДнейВПериоде .

Из них 5 ссылочных, 4 примитивных.

Количество записей. 

Строк при выводе результата в тестовой базе 9056  за 2011 год.

 

4.9 Результирующий пакет

 
 Текст результирующего пакета:

Количество полей.

9полей:  Сотрудник, Организация, РегистраторСостояния, РегистраторСостоянияВид, ПериодС, ПериодПо, Состояние, ДнейОтклонения, ДнейВПериоде .

Из них 5 ссылочных, 4 примитивных.

Количество записей.

Строк при выводе результата в тестовой базе 9056  за 2011 год.

Нужно понимать, что это полная информация о состояниях более чем 1 тысячи сотрудников за 2011 год.

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

 

4.10 Использование индексов и индексирования

Давайте сделаем замер производительности запроса на получения записей за  период с 01.01.209 по 31.12.2011 год. Сначала будем тестировать на типовой конфигурации ЗУП 2.5.37.1, а затем на измененной, с установленным свойством «индексировать» в измерении «Сотрудник». Запускать запрос будем из обработки «Консоль отчетов». Сортируем по времени выполнения и видим строку №389  Обработка.КонсольОтчетов.Форма :

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанныхКонсоли, ИсполняемыеНастройки, ДанныеРасшифровкиКонсоли);

- это строка и будет нашей лакмусовой бумажкой.

База файловая размером 3,27 Гб, ПК : intel(r) i5 3.33 Ггц, ОЗУ 4 Гб, 32 разрядная ОС Win7.

Замеры делались 20 раз, с предварительной чисткой КЭШа. Таблица усредненных результатов:

Типовая конфигурация

Измененная конфигурация с индексированным полем «Сотрудник»

Кол

Время %

Время

Кол

Время %

Время

1

0,1745

1,91

1

0,1636

1,76

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

 

Обратная связь

  

Буду рад узнать ваше мнение о статье в комментариях и благодарен за оценку.

Вопросы, предложения сотрудничества и замечания пишите в комментариях, в личку или по адресу Panteleev@Inbox.ru

Резюме автора: //infostart.ru/job/resume/537490/

С пожеланием творческих успехов всем посетителям сайта ИС, Пантелеев Иван.

 

Обновления, изменения, доработки по просьбам трудящихся

Дата: 20120904. По просьбе пользователя rasswet поясняю:
дней в периоде - это сколько дней неявки приходится на выбранный в параметрах отчета период.
дней отклонения - это общее зарегистрированное в программе число дней неявки.
Например, строим отчет за период с 01 по 31 января 2012 года. Сотрудница 15 декабря 2011 года уходит в отпуск по уходу за ребенком до 2013 года. Тогда дней в периоде =31, а дней отклонения =547.

Дата: 20120907.  Новая версия отчета. Исправлены все выявленные ошибки и частные случаи с комбинацией различных отклонений. Отчет тестировался в ЗУП 2.5.54.1 на платформе 8.2.15.310.

Дата: 20120908.  Описание отчета поделено на 2 смысловые части: для пользователя (в начале статьи) и для разработчика. В пользовательской части добавлено несколько картинок с примерами настроек отчета.

Дата: 20171107. В описании отчета некоторые куски кода помещены в сворачиваемые текстовые блоки - сниппеты. Добавлено оглавление, пункт "обратная связь". 

137

Скачать файлы

Наименование Файл Версия Размер
Отчет по состояния
.erf 166,05Kb
28.11.17
683
.erf 166,05Kb 683 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
0. RailMen 768 22.12.11 23:58 Сейчас в теме
Моя переработанная статья будет полезна и работникам кадровых служб и разработчикам кадровых отчетов. Вся информация для пользователей размещена в самом начале статьи, ниже идет техническое описание сбора данных для отчета.
К статье прикреплен отчет на основе СКД, который позволяет в детальной и настраиваемой форме выводить информацию о состояниях сотрудников за выбранный период. Данные собираются исключительно с кадровых регистров. Через механизм характеристик реализована поддержка использования категорий и свойств объектов.

В описании для разработчиков я расскажу об основных принципах создания отчета по состояниям (отклонениям) сотрудников организаций за выбранный период. Данные будем брать из регистров сведений «СостояниеРаботниковОрганизаций» и «РаботникиОрганизаций». В файлах выложен полностью работоспособный отчет по статье, который можно быстро адаптировать под Ваши учетные задачи.
(тестировалась в ЗУП 2.5.37.1, 2.5.54.1 / 8.2.14.533, 8.2.15.310)

Перейти к публикации

1. Inetguru 203 22.12.11 23:58 Сейчас в теме
Автор молодец! Все бы авторы так подробно описывали свои доработки и разработки!
2. RailMen 23.12.11 00:24 Сейчас в теме
(1)
Спасибо, я старался раскрыть тему как можно глубже.
Недавно снял с публикации свои морально устаревшие работы, после чего вылетел из ТОП 100. Впрочем, ничуть об этом не жалею. Я расту как специалист и считаю, что лучше иметь одну, но достойную статью, чем с десяток "таксебе".
monolitFC; +1 Ответить
38. tango 485 26.03.13 14:53 Сейчас в теме
(2) MagIvan,
вылетел из ТОП 100
это где смотреть?
39. RailMen 28.03.13 00:52 Сейчас в теме
(38) что где посмотреть?
я имел ввиду, что входил по рейтингу, а потом вылетел:
http://infostart.ru/community/top100/
но меня это уже не расстраивает, поскольку оценка людей в попугаях очень условна
и тем не менее оценка на Ифостарте для меня как рейтинг кредитоспособности гос-ва, выданный S&P (более менее надежная)
времени мало, в боях участвую ...
3. sound 530 28.12.11 09:08 Сейчас в теме
Пока не пробовал на деле, но за труды однозначно плюс!
monolitFC; +1 Ответить
4. лилия2009 28.12.11 09:17 Сейчас в теме
Отличная и подробная документаци,просто как учебное пособие, автору спасибо за труд!
5. no_registration 28.12.11 14:31 Сейчас в теме
Автору большое спасиба. Попробуем этот отчет под ЗУП Украина.
29. DimitrT 13 19.09.12 15:13 Сейчас в теме
(5) no_registration,
Под ЗУП (как и УПП) для Украины не подойдет: большое отличие в ресурсах регистра РаботникиОрганизаций: в украинской 7 ресурсов, а тут представлено 13.
Вопрос к автору: эти ресурсы (а точнее: ПериодЗавершения, ЗанимаемыхставокЗавершения и т.п.) были изначально в типовой конфигурации или же добавлены для отчета?
30. RailMen 19.09.12 16:43 Сейчас в теме
(29)
В описании четко написано на каких конфигурациях тестировался отчет -
это типовые для РФ ЗУП.
Можете скачать их релизы и сравнить с ЗУП для Украины.
А лучше откройте консоль и перепишите под себяя. Это не так сложно )))
6. kgdrsu 29.12.11 10:34 Сейчас в теме
Автору для раздумий: у нас несколько организаций в одной базе. Так вот пробовал запускать ваш отчет и попадают сотры из других Организаций, причем только Уволенные. Стал рыть и добавил условие по организации в пакет ВЛОЖЕННЫЙ в четвертый подзапрос. Тогда стало все ОК. :)
7. Boroda 90 29.12.11 21:43 Сейчас в теме
Есди не секрет, что изменилось в статье в сравнении с предыдущей редакцией (от 23.12.2011 г.)? Какие-либо слова поменялись местами? Добавлено новое предложение? Изменены формы отчётов? Не мешало бы информировать посетителей, а то статья-то немаленькая, и поиск изменений может занять продолжительное время...
8. Seregalink 72 30.12.11 20:47 Сейчас в теме
Очень хороший отчет, и статья раскрывает суть отчета, однозначно плюсую.
9. fr.myha 03.01.12 16:59 Сейчас в теме
Очень обширная, статья, просто мега громадная ))))))
И кодик проведён )
10. Ranika 04.01.12 02:43 Сейчас в теме
Дествительно автор молодец, написал все подробно, понятно, что не мало важно!
11. Fruit83 28 07.01.12 13:52 Сейчас в теме
Для решения задачи нам потребуются обработки: «Консоль отчетов» и «Консоль отчетов».

Тут что-то не так. Наверно, имеется ввиду "Консоль запросов"?
13. e_kazakova 80 09.01.12 09:39 Сейчас в теме
Спасибо, за большую работу большой плюс.
18. Saili 20.01.12 10:33 Сейчас в теме
Спасибо. Важная тема, раскрыта глубоко. Очень хороший отчет, и статья содержит все, что нужно.
Актуально, особенно для организаций с магазинами, текучкой продавцов.
19. nll.jojo 20.01.12 12:41 Сейчас в теме
спасибо за подробное пояснение
21. rasswet 82 19.03.12 17:40 Сейчас в теме
подскажите пожалуйста, что отражается в дней периоде и в дней отклонений.
дней в периоде это количество рабочих дней которые должен был отработать Сотрудник если бы у него не было отклонений? а дней отклонений-это сумма всех отклонений (больничные, декрет и т.п.)? как тогда отклонений больше чем дней в периоде? или я что-то не понимаю?
22. RailMen 02.04.12 00:51 Сейчас в теме
(21) rasswet, Все просто.
<дней в периоде> - это сколько дней неявки приходится на выбранный в параметрах отчета период.
<дней отклонения> - это общее зарегистрированное в программе число дней неявки.

Например, строим отчет за период с 01 по 31 января 2012 года. Сотрудница 15 декабря 2011 года уходит в отпуск по уходу за ребенком до 2013 года. Тогда <дней в периоде>=31, а <дней отклонения>=547.
23. rasswet 82 04.04.12 10:41 Сейчас в теме
(22) спасибо за разъяснение. Возможно имеет смысл где-то в описание это включить? или я это пропустил.
24. rasswet 82 09.04.12 15:21 Сейчас в теме
(22) подскажите
делаю отчет за 2012 год, в отчет попадают строки у которых в столбце "период по..." стоит дата 2011 года.
по-моему, в отчет за 12 год не должно быть строк, у которых период по закончился в 11 году. Это прошлый период.
Согласны?
З.Ы. проявляется точно в состоянии "В отпуске без сохранения зарплаты" (достаточно много случаев) и В ежегодном отпуске (немного)
28. RailMen 10.09.12 13:03 Сейчас в теме
(24)
Выложил новую версию отчета: исправлен лишь частный случай задваивания строк при смене состояний (Командировка->Болеет).
Все варианты и настройки отчета протестированы на большой выборке данных (> 1 тыс. человек). Ошибок не обнаружено.
25. rasswet 82 11.04.12 09:15 Сейчас в теме
(22) подскажите, это всё же недоработка отчета?
делаю отчет за 2012 год, в отчет попадают строки у которых в столбце "период по..." стоит дата 2011 года.
по-моему, в отчет за 12 год не должно быть строк, у которых период по закончился в 11 году. Это прошлый период.
26. lesorubka 20 20.04.12 14:29 Сейчас в теме
спасибо за подробное описание, очень нужен был запрос на работавших в периоде, как раз первая таблица пригодилась.
31. igor1318 42 04.10.12 12:20 Сейчас в теме
Выбор периода не плохо бы добавить на панель и варианты отчётов выложить вместе с отчётом.
32. RailMen 04.10.12 21:33 Сейчас в теме
(31)
Не все коту масленница
33. kozlovvp 10 21.01.13 16:33 Сейчас в теме
Нет настроек вариантов отчета, по умолчанию открывается знаки зодиака)))
Изначально использовали этот отчет для контроля остатков отпусков, увы в настройках этого нет
34. lexi 1 21.02.13 16:17 Сейчас в теме
Спасибо автору за труды.Суть отчета понятна, мне нужно сделать что-то подобное с нарядами и отклонениями ) спасибо.
35. lexi 1 21.02.13 16:23 Сейчас в теме
А как в настройке сделать,что бы вывести первые 2 отчета?
36. serega3333 21.02.13 16:34 Сейчас в теме
спасибо, заодно прокачал знания по запросам, автор +
37. alo2012 22 26.03.13 13:53 Сейчас в теме
Спасибо за отчет, очень помог кадровой службе.
40. ljolsen 08.05.13 12:46 Сейчас в теме
Большое спасибо за отчет! Автор- умница, очень подробно все расписал. От кадров - глубокая благодарность
41. KliMich 28.06.13 16:02 Сейчас в теме
Спасибо за статью и отчеты!
Кадровики были очень довольны!
И изложение на высоком учовне!
42. b-dm 169 08.11.13 12:41 Сейчас в теме
Описание офигенное, но обработка страннная...кому и зачем нужен долбанный знак зодиака ??))))мне вот бы посмотреть реально, не настраивая отклонения.Вобщем пока впечатления от отчета очень кислые.
44. RailMen 12.11.13 17:00 Сейчас в теме
(42) b-dm,
Сначала подумал, что вы бухгалтер или кадровик, который в глаза не видел конфигуратор. Потом посмотрел - ан нет, вы что-то там писать изволите.
Отчет на СКД был назвал вами обработкой, и весь смысл вашего послания сводился к тому, что вам лень или вы не умеете создавать в режиме предприятия настройки к отчету и сохранять их в справочник "Сохраненные отчеты".
Отчет и его методология буквально разжеваны в статье.
У меня студенты за день въезжают как его настраивать в режиме предприятия в типовой базе.
Короче стыд и позор, товарищ.
47. b-dm 169 12.11.13 17:47 Сейчас в теме
(44) в ближайшие дни попробую ещё раз разобраться, (я себя не идеализирую в плане знаний), в вашем отчете на СКД а не обработке. думаю не нужно к словам придираться, а смотреть что реально может разработка. Т.к. как она скачана и запущена as is без доп.настроек - это просто тихий ужас.Даёт минимум информации при максимальных сложностях.И не надо на студентах кивать, мы не в вузе, там идите и учите, а здесь делятся знаниями, обсуждают что то.с таким "педагогическим" подходом лучше не учить ничему студентов.
вобщем и целом ваш отчет на СКД мне как пользователю не понравился, за это жирный минус.

кстати, в РЖДшной структуре так важен знак зодиака? по нему берут на работу ?
48. RailMen 13.11.13 00:42 Сейчас в теме
(47)
Дмитрий, добрый вечер!
Гороскоп не причем, совершенно.
Чем руководствуется отдел кадров РЖД при приеме на работу не представляю,
но догадываюсь, что в основном профессиональными качествами :)
Это ж учебный пример, в котором я как бы намекаю, что можно данные по-всякому компоновать.
Делать это играючи. Гороскоп ли это, или шкала по полу и возрастам ни имеет никакого значения.
Очень хорошо подобные вещи в книге по СКД описаны.
...
Давайте разбираться дальше.
...
С самого начала я принял вас за разработчика, критикующего решение.
Ну раз вы выступаете в роли пользователя - это меняет дело.
Пользователя надо холить и лилеять :)
Какой шаблон отчета нужно добавить, чтобы он отвечал вашим требованиям?
Можете нарисовать макет и разместить тут?

43. laeg 13 12.11.13 14:20 Сейчас в теме
Однозначно + за работу, но есть непонятные ньюансы. Скрин прикрепляю
Зачем, если я выбираю явно один период - отчет захватывает периоды с пересечением да и вдогонку выводит не нужный период ?
http://www.foto-me.ru/v.php?id=e03cfd498314fbd75c91cebc9528f892


по уму бы, хорошо видеть что данный сотрудник был в этом периоде в отпуске ...
45. RailMen 12.11.13 17:02 Сейчас в теме
(43) Уважаемый laeg!

Данная статья и отчет к ней - это пример правильного методического подхода к разработки отчетов для кадровых служб большого холдинга. Его можно скачать, посмотреть код, осмыслить идеологию и попытаться транспанировать ее на свои базы. Аккуратно и со всей ответственностью.

Отчет, разумеется, не учитывает специфику конкретно вашего предприятия. Так же в вашей базе могут быть ошибки ведения учета. Скачивать его и ставить в готовом виде имеет смысл только если у вас базовая конфигурация или стирильный учет.

Данный отчет протестирован на предприятиях ДЗО Холдинга численностью более 1.5 тыс чел в 1 базе.
Баз много, все типовые, но сильно дописанные (в т.ч. исправлены косяки разработчиков 1С).
Проблем не было.
Последняя версия отчета переработана и рассчитана на управляемые формы,
но пока выкладывать его не буду.

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

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

Если вы хотите решение, рассчитанного под ваше предприятие и нужды, то имеет смысл продолжить общение в личке.
dock; laeg; +2 Ответить
46. laeg 13 12.11.13 17:12 Сейчас в теме
(45) MagIvan, Отчет ваш был взят как пример для разработки другого отчета, который будет использовать теже данные и похожий подход. Естественно я полностью согласен, что брать вещи с ИС и сразу ставить в работу - это авантюризм :)
Но даже на ваших скринах, по моему мнению присутствуют ошибки в подходе решения задачи (хотя может у вас и задачи другие), в частности периодов. Кадровые службы не интересуют что было ДО и ПОСЛЕ указанного периода в параметрах отчета, это лишняя информация.
Еще раз спасибо за то что поделились своей работой, это существенная экономия времени для решения моей задачи.
49. hub logistik 17.12.13 00:32 Сейчас в теме
50. Эсти 5 19.08.14 10:44 Сейчас в теме
спасибо за статью.
РозаЛюксембург; +1 Ответить
51. Alek81 11.09.14 19:41 Сейчас в теме
Добрый Вечер, скачал ваш отчет, и немного не понял.
У меня только 1 вариант отчета, а не все 6ть как у вас на картинке.
Можно мне все 6ть?
52. the1 321 11.11.15 16:06 Сейчас в теме
(51) Alek81, ага, в тексте 6 вариантов отчета, а в публикации только 1. Автор, непорядок!
53. RailMen 768 12.11.15 14:20 Сейчас в теме
(52) the1, сделайте себе столько вариантов, сколько хотите :) Это же просто!
54. the1 321 13.11.15 09:47 Сейчас в теме
(53) конечно просто)) Но разговор ведь не о том...
56. uralcentr 09.12.16 11:43 Сейчас в теме
Напишите пожалуйста на бюджетке будет работать?
57. uralcentr 09.12.16 14:00 Сейчас в теме
(56)У меня дней в периоде отрицательное число (ЗУП 2.5 базовая), это как так получилось?
58. MakcTLT63 8 10.12.16 21:44 Сейчас в теме
Ничосебе автор расписал подробную инструкцию..
Не каждый бы так заморочился.
Немного смущает слово"внедрение" применительно к одному единственному отчету на двух регистрах, но наверное так сейчас принято (давно тут не был).
Раньше когда я начинал внедрением называли установку 1с на несколько десятков пользователей с доработкой под нужды заказчика.
Немного позже внедрением стали называть и установку программы из коробки на 1 рабочее место.
И вот сейчас внедрение - это написание отчета.
Да еще и с рецензиями на этот отчет.
Если сейчас так то я мегавнедренец.
Я таких отчетов по 3 штуки в неделю делаю и во внешние отчеты и обработки складываю.
60. RailMen 768 28.11.17 12:51 Сейчас в теме
(58)
Я таких отчетов по 3 штуки в неделю делаю и во внешние отчеты и обработки складываю.


Про "внедрение" отчета.
Такие отчеты создавал аки конвейер много лет. А потом решил провести инвентаризацию созданных отчетов опросив заказчиков (руководители подразделений).
И вот какие пироги получились: 1/3 всех отчетов благополучно забыта по разным причинам (был нужен один раз срочно для отправки наверх или был нужен женщине с особым пониманием процессов, затем она ушла в декрет, и т.д.), еще 1/3 отчетов пользователи опасаются пользоваться т.к. не верят цифрам или бояться спросить почему цифры именно такие. В сухом остатке ГРУБО 1/3 отчетов прижилось.

Для себя решил, что разрабатывать ЛЮБОЙ отчет/обработку/печ формы и тем более отдельный БЛОК буду СТРОГО с соблюдением нескольких примитивных правил (в идеале приблизиться к пром стандартам, но часто они излишни):
1) утвержденное и согласованное с причастными подразделениями ТЗ - на этом этапе отваливается 1/3 идиотских или поверхностно проработанных обращений;
2) личное общение (в любой форме) с исполнителями заказчика с многократным повторением вопроса ЗАЧЕМ ? - часто выясняется, что можно сделать по-другому и более эффективно;
3) ОБЯЗАТЕЛЬНО жестко описывать и документировать НЕ ТОЛЬКО саму логику формирования данных отчета, НО ВСЕХ, еще раз ВСЕХ настроек отчета. ДА! Для каждой настройки отчета я пишу: кто заказчик, где ее используют, из какиких документов тянуться данные и какие подразделения ответственные за эти данные.
Т.е. на выходе я получаю КАЧЕСТВЕННОЕ описание отчета и его настроек.

Результат.
Количество задач на разработку отчетов снизилось. Однако, те задачи, которые остались стали иметь ПРИНЦИПИАЛЬНО другой уровень погружения в процессы заказчиков. Отчеты превратились, образно говоря из ржавых столовых ножей, в элегантные самурайские мечи, которыми бойцы каждый день могут с удовольствием пользоваться.
59. Ledy-may 28.11.17 12:29 Сейчас в теме
Огромное спасибо автору! Впервые вижу так подробно разложенный код доработки-очень помогло в написании собственной!
61. German_Tagil 6 15.08.18 15:22 Сейчас в теме
Оставьте свое сообщение