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








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

В описании для разработчиков я расскажу об основных принципах создания отчета по состояниям (отклонениям) сотрудников организаций за выбранный период. Данные будем брать из регистров сведений «СостояниеРаботниковОрганизаций» и «РаботникиОрганизаций». В файлах выложен полностью работоспособный отчет по статье, который можно быстро адаптировать под Ваши учетные задачи.
(тестировалась в ЗУП 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 смысловые части: для пользователя (в начале статьи) и для разработчика. В пользовательской части добавлено несколько картинок с примерами настроек отчета.

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

53 Comments

  1. RailMen

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

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

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

    (тестировалась в ЗУП 2.5.37.1, 2.5.54.1 / 8.2.14.533, 8.2.15.310)

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

    Reply
  2. Inetguru

    Автор молодец! Все бы авторы так подробно описывали свои доработки и разработки!

    Reply
  3. RailMen

    (1)

    Спасибо, я старался раскрыть тему как можно глубже.

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

    Reply
  4. sound

    Пока не пробовал на деле, но за труды однозначно плюс!

    Reply
  5. лилия2009

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

    Reply
  6. no_registration

    Автору большое спасиба. Попробуем этот отчет под ЗУП Украина.

    Reply
  7. kgdrsu

    Автору для раздумий: у нас несколько организаций в одной базе. Так вот пробовал запускать ваш отчет и попадают сотры из других Организаций, причем только Уволенные. Стал рыть и добавил условие по организации в пакет ВЛОЖЕННЫЙ в четвертый подзапрос. Тогда стало все ОК. 🙂

    Reply
  8. Boroda

    Есди не секрет, что изменилось в статье в сравнении с предыдущей редакцией (от 23.12.2011 г.)? Какие-либо слова поменялись местами? Добавлено новое предложение? Изменены формы отчётов? Не мешало бы информировать посетителей, а то статья-то немаленькая, и поиск изменений может занять продолжительное время…

    Reply
  9. Seregalink

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

    Reply
  10. fr.myha

    Очень обширная, статья, просто мега громадная ))))))

    И кодик проведён )

    Reply
  11. Ranika

    Дествительно автор молодец, написал все подробно, понятно, что не мало важно!

    Reply
  12. Fruit83

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

    Тут что-то не так. Наверно, имеется ввиду «Консоль запросов»?

    Reply
  13. e_kazakova

    Спасибо, за большую работу большой плюс.

    Reply
  14. Saili

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

    Актуально, особенно для организаций с магазинами, текучкой продавцов.

    Reply
  15. nll.jojo

    спасибо за подробное пояснение

    Reply
  16. rasswet

    подскажите пожалуйста, что отражается в дней периоде и в дней отклонений.

    дней в периоде это количество рабочих дней которые должен был отработать Сотрудник если бы у него не было отклонений? а дней отклонений-это сумма всех отклонений (больничные, декрет и т.п.)? как тогда отклонений больше чем дней в периоде? или я что-то не понимаю?

    Reply
  17. RailMen

    (21) rasswet, Все просто.

    <дней в периоде> — это сколько дней неявки приходится на выбранный в параметрах отчета период.

    <дней отклонения> — это общее зарегистрированное в программе число дней неявки.

    Например, строим отчет за период с 01 по 31 января 2012 года. Сотрудница 15 декабря 2011 года уходит в отпуск по уходу за ребенком до 2013 года. Тогда <дней в периоде>=31, а <дней отклонения>=547.

    Reply
  18. rasswet

    (22) спасибо за разъяснение. Возможно имеет смысл где-то в описание это включить? или я это пропустил.

    Reply
  19. rasswet

    (22) подскажите

    делаю отчет за 2012 год, в отчет попадают строки у которых в столбце «период по…» стоит дата 2011 года.

    по-моему, в отчет за 12 год не должно быть строк, у которых период по закончился в 11 году. Это прошлый период.

    Согласны?

    З.Ы. проявляется точно в состоянии «В отпуске без сохранения зарплаты» (достаточно много случаев) и В ежегодном отпуске (немного)

    Reply
  20. rasswet

    (22) подскажите, это всё же недоработка отчета?

    делаю отчет за 2012 год, в отчет попадают строки у которых в столбце «период по…» стоит дата 2011 года.

    по-моему, в отчет за 12 год не должно быть строк, у которых период по закончился в 11 году. Это прошлый период.

    Reply
  21. lesorubka

    спасибо за подробное описание, очень нужен был запрос на работавших в периоде, как раз первая таблица пригодилась.

    Reply
  22. RailMen

    (24)

    Выложил новую версию отчета: исправлен лишь частный случай задваивания строк при смене состояний (Командировка->Болеет).

    Все варианты и настройки отчета протестированы на большой выборке данных (> 1 тыс. человек). Ошибок не обнаружено.

    Reply
  23. DimitrT

    (5) no_registration,

    Под ЗУП (как и УПП) для Украины не подойдет: большое отличие в ресурсах регистра РаботникиОрганизаций: в украинской 7 ресурсов, а тут представлено 13.

    Вопрос к автору: эти ресурсы (а точнее: ПериодЗавершения, ЗанимаемыхставокЗавершения и т.п.) были изначально в типовой конфигурации или же добавлены для отчета?

    Reply
  24. RailMen

    (29)

    В описании четко написано на каких конфигурациях тестировался отчет —

    это типовые для РФ ЗУП.

    Можете скачать их релизы и сравнить с ЗУП для Украины.

    А лучше откройте консоль и перепишите под себяя. Это не так сложно )))

    Reply
  25. igor1318

    Выбор периода не плохо бы добавить на панель и варианты отчётов выложить вместе с отчётом.

    Reply
  26. RailMen

    (31)

    Не все коту масленница

    Reply
  27. kozlovvp

    Нет настроек вариантов отчета, по умолчанию открывается знаки зодиака)))

    Изначально использовали этот отчет для контроля остатков отпусков, увы в настройках этого нет

    Reply
  28. lexi

    Спасибо автору за труды.Суть отчета понятна, мне нужно сделать что-то подобное с нарядами и отклонениями ) спасибо.

    Reply
  29. lexi

    А как в настройке сделать,что бы вывести первые 2 отчета?

    Reply
  30. serega3333

    спасибо, заодно прокачал знания по запросам, автор +

    Reply
  31. alo2012

    Спасибо за отчет, очень помог кадровой службе.

    Reply
  32. tango

    (2) MagIvan,

    вылетел из ТОП 100

    это где смотреть?

    Reply
  33. RailMen

    (38) что где посмотреть?

    я имел ввиду, что входил по рейтингу, а потом вылетел:

    http://infostart.ru/community/top100/

    но меня это уже не расстраивает, поскольку оценка людей в попугаях очень условна

    и тем не менее оценка на Ифостарте для меня как рейтинг кредитоспособности гос-ва, выданный S&P (более менее надежная)

    времени мало, в боях участвую …

    Reply
  34. ljolsen

    Большое спасибо за отчет! Автор- умница, очень подробно все расписал. От кадров — глубокая благодарность

    Reply
  35. KliMich

    Спасибо за статью и отчеты!

    Кадровики были очень довольны!

    И изложение на высоком учовне!

    Reply
  36. laeg

    Однозначно + за работу, но есть непонятные ньюансы. Скрин прикрепляю

    Зачем, если я выбираю явно один период — отчет захватывает периоды с пересечением да и вдогонку выводит не нужный период ?

    http://www.foto-me.ru/v.php?id=e03cfd498314fbd75c91cebc9528f892

    по уму бы, хорошо видеть что данный сотрудник был в этом периоде в отпуске …

    Reply
  37. RailMen

    (42) b-dm,

    Сначала подумал, что вы бухгалтер или кадровик, который в глаза не видел конфигуратор. Потом посмотрел — ан нет, вы что-то там писать изволите.

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

    Отчет и его методология буквально разжеваны в статье.

    У меня студенты за день въезжают как его настраивать в режиме предприятия в типовой базе.

    Короче стыд и позор, товарищ.

    Reply
  38. RailMen

    (43) Уважаемый laeg!

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

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

    Данный отчет протестирован на предприятиях ДЗО Холдинга численностью более 1.5 тыс чел в 1 базе.

    Баз много, все типовые, но сильно дописанные (в т.ч. исправлены косяки разработчиков 1С).

    Проблем не было.

    Последняя версия отчета переработана и рассчитана на управляемые формы,

    но пока выкладывать его не буду.

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

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

    Если вы хотите решение, рассчитанного под ваше предприятие и нужды, то имеет смысл продолжить общение в личке.

    Reply
  39. laeg

    (45) MagIvan, Отчет ваш был взят как пример для разработки другого отчета, который будет использовать теже данные и похожий подход. Естественно я полностью согласен, что брать вещи с ИС и сразу ставить в работу — это авантюризм 🙂

    Но даже на ваших скринах, по моему мнению присутствуют ошибки в подходе решения задачи (хотя может у вас и задачи другие), в частности периодов. Кадровые службы не интересуют что было ДО и ПОСЛЕ указанного периода в параметрах отчета, это лишняя информация.

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

    Reply
  40. b-dm

    (44) в ближайшие дни попробую ещё раз разобраться, (я себя не идеализирую в плане знаний), в вашем отчете на СКД а не обработке. думаю не нужно к словам придираться, а смотреть что реально может разработка. Т.к. как она скачана и запущена as is без доп.настроек — это просто тихий ужас.Даёт минимум информации при максимальных сложностях.И не надо на студентах кивать, мы не в вузе, там идите и учите, а здесь делятся знаниями, обсуждают что то.с таким «педагогическим» подходом лучше не учить ничему студентов.

    вобщем и целом ваш отчет на СКД мне как пользователю не понравился, за это жирный минус.

    кстати, в РЖДшной структуре так важен знак зодиака? по нему берут на работу ?

    Reply
  41. RailMen

    (47)

    Дмитрий, добрый вечер!

    Гороскоп не причем, совершенно.

    Чем руководствуется отдел кадров РЖД при приеме на работу не представляю,

    но догадываюсь, что в основном профессиональными качествами 🙂

    Это ж учебный пример, в котором я как бы намекаю, что можно данные по-всякому компоновать.

    Делать это играючи. Гороскоп ли это, или шкала по полу и возрастам ни имеет никакого значения.

    Очень хорошо подобные вещи в книге по СКД описаны.



    Давайте разбираться дальше.



    С самого начала я принял вас за разработчика, критикующего решение.

    Ну раз вы выступаете в роли пользователя — это меняет дело.

    Пользователя надо холить и лилеять 🙂

    Какой шаблон отчета нужно добавить, чтобы он отвечал вашим требованиям?

    Можете нарисовать макет и разместить тут?

    Reply
  42. hub logistik

    спасибо за отчет

    Reply
  43. Эсти

    спасибо за статью.

    Reply
  44. Alek81

    Добрый Вечер, скачал ваш отчет, и немного не понял.

    У меня только 1 вариант отчета, а не все 6ть как у вас на картинке.

    Можно мне все 6ть?

    Reply
  45. the1

    (51) Alek81, ага, в тексте 6 вариантов отчета, а в публикации только 1. Автор, непорядок!

    Reply
  46. RailMen

    (52) the1, сделайте себе столько вариантов, сколько хотите 🙂 Это же просто!

    Reply
  47. the1

    (53) конечно просто)) Но разговор ведь не о том…

    Reply
  48. uralcentr

    Напишите пожалуйста на бюджетке будет работать?

    Reply
  49. uralcentr

    (56)У меня дней в периоде отрицательное число (ЗУП 2.5 базовая), это как так получилось?

    Reply
  50. MakcTLT63

    Ничосебе автор расписал подробную инструкцию..

    Не каждый бы так заморочился.

    Немного смущает слово»внедрение» применительно к одному единственному отчету на двух регистрах, но наверное так сейчас принято (давно тут не был).

    Раньше когда я начинал внедрением называли установку 1с на несколько десятков пользователей с доработкой под нужды заказчика.

    Немного позже внедрением стали называть и установку программы из коробки на 1 рабочее место.

    И вот сейчас внедрение — это написание отчета.

    Да еще и с рецензиями на этот отчет.

    Если сейчас так то я мегавнедренец.

    Я таких отчетов по 3 штуки в неделю делаю и во внешние отчеты и обработки складываю.

    Reply
  51. Ledy-may

    Огромное спасибо автору! Впервые вижу так подробно разложенный код доработки-очень помогло в написании собственной!

    Reply
  52. RailMen

    (58)

    Я таких отчетов по 3 штуки в неделю делаю и во внешние отчеты и обработки складываю.

    Про «внедрение» отчета.

    Такие отчеты создавал аки конвейер много лет. А потом решил провести инвентаризацию созданных отчетов опросив заказчиков (руководители подразделений).

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

    Для себя решил, что разрабатывать ЛЮБОЙ отчет/обработку/печ формы и тем более отдельный БЛОК буду СТРОГО с соблюдением нескольких примитивных правил (в идеале приблизиться к пром стандартам, но часто они излишни):

    1) утвержденное и согласованное с причастными подразделениями ТЗ — на этом этапе отваливается 1/3 идиотских или поверхностно проработанных обращений;

    2) личное общение (в любой форме) с исполнителями заказчика с многократным повторением вопроса ЗАЧЕМ ? — часто выясняется, что можно сделать по-другому и более эффективно;

    3) ОБЯЗАТЕЛЬНО жестко описывать и документировать НЕ ТОЛЬКО саму логику формирования данных отчета, НО ВСЕХ, еще раз ВСЕХ настроек отчета. ДА! Для каждой настройки отчета я пишу: кто заказчик, где ее используют, из какиких документов тянуться данные и какие подразделения ответственные за эти данные.

    Т.е. на выходе я получаю КАЧЕСТВЕННОЕ описание отчета и его настроек.

    Результат.

    Количество задач на разработку отчетов снизилось. Однако, те задачи, которые остались стали иметь ПРИНЦИПИАЛЬНО другой уровень погружения в процессы заказчиков. Отчеты превратились, образно говоря из ржавых столовых ножей, в элегантные самурайские мечи, которыми бойцы каждый день могут с удовольствием пользоваться.

    Reply
  53. German_Tagil

    надо посмотреть

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *