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

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

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
682
.erf 166,05Kb 682 Скачать

См. также

Комментарии
Сортировка: Древо
0. RailMen 760 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 482 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 527 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 9 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. Эсти 4 19.08.14 10:44 Сейчас в теме
спасибо за статью.
РозаЛюксембург; +1 Ответить
51. Alek81 11.09.14 19:41 Сейчас в теме
Добрый Вечер, скачал ваш отчет, и немного не понял.
У меня только 1 вариант отчета, а не все 6ть как у вас на картинке.
Можно мне все 6ть?
52. the1 330 11.11.15 16:06 Сейчас в теме
(51) Alek81, ага, в тексте 6 вариантов отчета, а в публикации только 1. Автор, непорядок!
53. RailMen 760 12.11.15 14:20 Сейчас в теме
(52) the1, сделайте себе столько вариантов, сколько хотите :) Это же просто!
54. the1 330 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 760 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 Сейчас в теме
Оставьте свое сообщение