регистр сведений кадровая история сотрудников
Подскажите пожалуйста, регистры с надписью интервальный в какой момент заполняются?
В тот момент когда документ проводится или необходимо вызывать какую-то функцию для их актуализации?
Или может заполняются регламентным заданием?
Может какие-то еще особенности есть по их использованию?
(8) переход на интервальные регистры в ЗУП 3, состоялся еще в версии 3.1.2, т.е. фактически год назад
и там надо еще учитывать, кроме дат, признак используется запись или нет, а то получите много интересного
(11) вообще-то это зарплата, там многое зависит от хронологического порядка, это больше на кривые руки похоже, а не на косяк
(7) (8) Не знаю может 1с-ники уже подправили но нашел еще вот такую бяку про интервальные регистры:
Тоже нашел косяк, если проводить кадровые приказы не в хронологическом порядке, в интервальном регистре получается фигня. Например
Первый док: назначает оклад
Второй док: отменят оклад, назначает тариф
Третий док: отменят тариф, возвращает оклад
Ответ (Хлусов Павел (1С, Москва) 10.01.2017 13:20):
Добрый день.
Этот регистр содержит вторичные по отношению к регистру «КадроваяИсторияСотрудников» данные. Предназначен в первую очередь для оптимизации получения среза последних на произвольную дату и получения истории изменения кадровой истории, в том числе с учетом прикладной специфики (возвратные события, несколько кадровых событий на одну дату),
Используется это регистр при получении данных с помощью универсальных методов
ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистра,
ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраСрезПоследних,
ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраПериоды.
Обращаться к этому регистру, напрямую из запросов не рекомендуется.
Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
Кадровая история сотрудника организации (периодами) в ЗУП 2.5
Хочу сразу обратить внимание уважаемых коллег на то, что статья представляет собой учебный материал по работе с регистрами сведений, имеющими ресурс «Период завершения», и вряд ли будет интересна и полезна гуру (хотя, как знать). Вопросы и конструктивная критика приветствуются
Кадровая история сотрудников организации хранится в регистре сведений «РаботникиОрганизаций» (в пользовательском режиме – «Кадровая история сотрудников (по юрлицам)» или «Сотрудники организации»). Регистраторами для данного регистра являются документы приема в организацию, кадрового перемещения, увольнения из организации и переноса данных.
Регистр «РаботникиОрганизаций», как и многие другие, такие как «ПлановыеНачисленияРаботниковОрганизаций», «ПлановыеУдержанияРаботниковОрганизаций», «СостояниеРаботниковОрганизаций» и т.п.) в своем составе имеют одноименный ресурс с добавлением постфикса «Завершения». Приведем примеры (в конфигурации их гораздо больше):
№ п/п | Регистр сведений | Ресурс (основной) | Ресурс завершения |
1 | РаботникиОрганизаций | ПодразделениеОрганизации | ПодразделениеОрганизацииЗавершения |
Должность | ДолжностьЗавершения | ||
ГрафикРаботы | ГрафикРаботыЗавершения | ||
2 | ПлановыеНачисленияРаботниковОрганизаций | ВидРасчета | ВидРасчетаЗавершения |
Показатель1 | Показатель1Завершения | ||
3 | СостояниеРаботников | Состояние | СостояниеЗавершения |
И, кроме этого, для измерения «Период» имеется ресурс «ПериодЗавершения». Эти два свойства записи определяют состояние объекта на временной оси.
Ресурс «ПериодЗавершения» показывает, что запись характеризуется еще и концом своего действия (в случае, если ресурс заполнен). В этом случае с даты, указанной в ресурсе «ПериодЗавершения», актуальными становятся ресурсы с постфиксом «Завершения» («ДолжностьЗавершения», «ГрафикРаботыЗавершения» и т.д.)
Для того, чтобы понимать, почему была разработана именно такая архитектура периодических регистров сведений, характеризующихся окончанием периода действия, рекомендую ознакомиться со статьей ИТС Регистрация изменений на некоторый промежуток времени с возвратом в исходное состояние. Также в статье Запросы к регистрам сведений с реквизитом «ПериодЗавершения» обсуждаются плюсы и минусы такого решения.
Лирическое отступление закончим. Перейдем непосредственно к задаче получения кадровой истории сотрудника организации (далее, сотрудника). Для того, чтобы не загромождать статью кодом, в запросе будем получать только подразделение сотрудника. Чтобы получить должность, график работы и подобные ресурсы, нужно использовать точно такие же конструкции с «ВЫБОР», которые применяются в приведенных ниже запросах. Но для того, чтобы наглядно показать откуда, почему и какие данные получаются (в целях обучения), в результат запросов помещены дополнительные поля, которые можно не использовать в своих разработках в будущем.
Постановка задачи:
Необходимо получить кадровую историю сотрудника в следующем виде (с отбором по периоду):
Следует учесть тот момент, что документом «Кадровое перемещение организаций АР000000002 от 14.01.2015 15:27:05» сотрудник был переведен в Отдел продаж с 14.01.15 по 04.03.15 (для других кадровых перемещений период завершения не заполнялся):
Последовательность решения:
1. Находим подразделение сотрудника на дату начала периода (пусть это будет 01.01.15 г.). Для этого используем виртуальную таблицу среза последних регистра сведений «РаботникиОрганизаций», параметризованную по сотруднику и дате начала периода
Результат подзапроса № 1:
В подзапросе № 1 используется конструкция «ВЫБОР» с проверкой значения ресурса «ПериодЗавершения». Если период завершения заполнен и наступил этот период, возвращаем ресурс с постфиксом «Завершения», иначе возвращаем обычный ресурс (или измерение «Период»). Повторюсь, что данную конструкцию необходимо использовать для получения любых ресурсов, характеризующихся датой окончания действия (Должность, ГрафикРаботы и т.п.)
Также можно увидеть, что в подзапрос включено поле «Номер подзапроса» для визуального отображения в будущем, какой подзапрос какие данные вернул (напомню, что это поле для решения поставленной задачи необязательно).
2. Находим подразделения сотрудника с даты, следующей за датой начала периода, и по дату окончания периода (пусть это будет 31.12.15 г.) Для этого используем физическую таблицу регистра сведений «РаботникиОрганизаций» с отбором по сотруднику и датам начала и окончания периода
Результат подзапроса № 2:
3. Находим подразделения сотрудника по датам завершения событий с даты, следующей за датой начала периода, и по дату окончания периода
Результат подзапроса № 3:
4. Объединим подзапросы конструкцией «ОБЪЕДИНИТЬ ВСЕ» и поместим во временную таблицу
Временная таблица ВТ_ДатыСобытий будет содержать следующие данные:
Как видно, для того, чтобы получить все даты начала нахождения сотрудника в каком-либо подразделении, нам необходимо было формировать три подзапроса (если устанавливать разные даты начала и окончания периода, то можно увидеть что кадровую историю сотрудника за период можно получить с помощью одного или двух подзапросов, чего будет явно недостаточно для общего случая).
5. Получаем итоговую таблицу (текст получения временной таблицы ВТ_ДатыСобытий не повторяю). Для этого временную таблицу с датами наступления событий соединяем саму с собой по сотруднику и условию того, что дата начала события должна быть меньше даты его окончания.
Если сотрудник работает и дата окончания меньше даты события очередного кадрового документа, «Дату по» ставим равной дате окончания.
Если сотрудника уволили, дату начала данного события устанавливаем на следующую дату за последним рабочим днем, а дату окончания устанавливаем в NULL (нет там уже никакой протяженности во времени).
Подразделение после увольнения оставляем равным последнему подразделению сотрудника.
Таким образом, мы получили кадровую историю сотрудника (периодами).
Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download
Кадровая история сотрудника организации (периодами) в ЗУП 2.5
Хочу сразу обратить внимание уважаемых коллег на то, что статья представляет собой учебный материал по работе с регистрами сведений, имеющими ресурс «Период завершения», и вряд ли будет интересна и полезна гуру (хотя, как знать). Вопросы и конструктивная критика приветствуются
Кадровая история сотрудников организации хранится в регистре сведений «РаботникиОрганизаций» (в пользовательском режиме – «Кадровая история сотрудников (по юрлицам)» или «Сотрудники организации»). Регистраторами для данного регистра являются документы приема в организацию, кадрового перемещения, увольнения из организации и переноса данных.
Регистр «РаботникиОрганизаций», как и многие другие, такие как «ПлановыеНачисленияРаботниковОрганизаций», «ПлановыеУдержанияРаботниковОрганизаций», «СостояниеРаботниковОрганизаций» и т.п.) в своем составе имеют одноименный ресурс с добавлением постфикса «Завершения». Приведем примеры (в конфигурации их гораздо больше):
№ п/п | Регистр сведений | Ресурс (основной) | Ресурс завершения |
1 | РаботникиОрганизаций | ПодразделениеОрганизации | ПодразделениеОрганизацииЗавершения |
Должность | ДолжностьЗавершения | ||
ГрафикРаботы | ГрафикРаботыЗавершения | ||
2 | ПлановыеНачисленияРаботниковОрганизаций | ВидРасчета | ВидРасчетаЗавершения |
Показатель1 | Показатель1Завершения | ||
3 | СостояниеРаботников | Состояние | СостояниеЗавершения |
И, кроме этого, для измерения «Период» имеется ресурс «ПериодЗавершения». Эти два свойства записи определяют состояние объекта на временной оси.
Ресурс «ПериодЗавершения» показывает, что запись характеризуется еще и концом своего действия (в случае, если ресурс заполнен). В этом случае с даты, указанной в ресурсе «ПериодЗавершения», актуальными становятся ресурсы с постфиксом «Завершения» («ДолжностьЗавершения», «ГрафикРаботыЗавершения» и т.д.)
Для того, чтобы понимать, почему была разработана именно такая архитектура периодических регистров сведений, характеризующихся окончанием периода действия, рекомендую ознакомиться со статьей ИТС Регистрация изменений на некоторый промежуток времени с возвратом в исходное состояние. Также в статье Запросы к регистрам сведений с реквизитом «ПериодЗавершения» обсуждаются плюсы и минусы такого решения.
Лирическое отступление закончим. Перейдем непосредственно к задаче получения кадровой истории сотрудника организации (далее, сотрудника). Для того, чтобы не загромождать статью кодом, в запросе будем получать только подразделение сотрудника. Чтобы получить должность, график работы и подобные ресурсы, нужно использовать точно такие же конструкции с «ВЫБОР», которые применяются в приведенных ниже запросах. Но для того, чтобы наглядно показать откуда, почему и какие данные получаются (в целях обучения), в результат запросов помещены дополнительные поля, которые можно не использовать в своих разработках в будущем.
Постановка задачи:
Необходимо получить кадровую историю сотрудника в следующем виде (с отбором по периоду):
Следует учесть тот момент, что документом «Кадровое перемещение организаций АР000000002 от 14.01.2015 15:27:05» сотрудник был переведен в Отдел продаж с 14.01.15 по 04.03.15 (для других кадровых перемещений период завершения не заполнялся):
Последовательность решения:
1. Находим подразделение сотрудника на дату начала периода (пусть это будет 01.01.15 г.). Для этого используем виртуальную таблицу среза последних регистра сведений «РаботникиОрганизаций», параметризованную по сотруднику и дате начала периода
Результат подзапроса № 1:
В подзапросе № 1 используется конструкция «ВЫБОР» с проверкой значения ресурса «ПериодЗавершения». Если период завершения заполнен и наступил этот период, возвращаем ресурс с постфиксом «Завершения», иначе возвращаем обычный ресурс (или измерение «Период»). Повторюсь, что данную конструкцию необходимо использовать для получения любых ресурсов, характеризующихся датой окончания действия (Должность, ГрафикРаботы и т.п.)
Также можно увидеть, что в подзапрос включено поле «Номер подзапроса» для визуального отображения в будущем, какой подзапрос какие данные вернул (напомню, что это поле для решения поставленной задачи необязательно).
2. Находим подразделения сотрудника с даты, следующей за датой начала периода, и по дату окончания периода (пусть это будет 31.12.15 г.) Для этого используем физическую таблицу регистра сведений «РаботникиОрганизаций» с отбором по сотруднику и датам начала и окончания периода
Результат подзапроса № 2:
3. Находим подразделения сотрудника по датам завершения событий с даты, следующей за датой начала периода, и по дату окончания периода
Результат подзапроса № 3:
4. Объединим подзапросы конструкцией «ОБЪЕДИНИТЬ ВСЕ» и поместим во временную таблицу
Временная таблица ВТ_ДатыСобытий будет содержать следующие данные:
Как видно, для того, чтобы получить все даты начала нахождения сотрудника в каком-либо подразделении, нам необходимо было формировать три подзапроса (если устанавливать разные даты начала и окончания периода, то можно увидеть что кадровую историю сотрудника за период можно получить с помощью одного или двух подзапросов, чего будет явно недостаточно для общего случая).
5. Получаем итоговую таблицу (текст получения временной таблицы ВТ_ДатыСобытий не повторяю). Для этого временную таблицу с датами наступления событий соединяем саму с собой по сотруднику и условию того, что дата начала события должна быть меньше даты его окончания.
Если сотрудник работает и дата окончания меньше даты события очередного кадрового документа, «Дату по» ставим равной дате окончания.
Если сотрудника уволили, дату начала данного события устанавливаем на следующую дату за последним рабочим днем, а дату окончания устанавливаем в NULL (нет там уже никакой протяженности во времени).
Подразделение после увольнения оставляем равным последнему подразделению сотрудника.
Таким образом, мы получили кадровую историю сотрудника (периодами).
Кадровая история сотрудника организации (периодами) в ЗУП 2.5
Хочу сразу обратить внимание уважаемых коллег на то, что статья представляет собой учебный материал по работе с регистрами сведений, имеющими ресурс «Период завершения», и вряд ли будет интересна и полезна гуру (хотя, как знать). Вопросы и конструктивная критика приветствуются
Кадровая история сотрудников организации хранится в регистре сведений «РаботникиОрганизаций» (в пользовательском режиме – «Кадровая история сотрудников (по юрлицам)» или «Сотрудники организации»). Регистраторами для данного регистра являются документы приема в организацию, кадрового перемещения, увольнения из организации и переноса данных.
Регистр «РаботникиОрганизаций», как и многие другие, такие как «ПлановыеНачисленияРаботниковОрганизаций», «ПлановыеУдержанияРаботниковОрганизаций», «СостояниеРаботниковОрганизаций» и т.п.) в своем составе имеют одноименный ресурс с добавлением постфикса «Завершения». Приведем примеры (в конфигурации их гораздо больше):
№ п/п | Регистр сведений | Ресурс (основной) | Ресурс завершения |
1 | РаботникиОрганизаций | ПодразделениеОрганизации | ПодразделениеОрганизацииЗавершения |
Должность | ДолжностьЗавершения | ||
ГрафикРаботы | ГрафикРаботыЗавершения | ||
2 | ПлановыеНачисленияРаботниковОрганизаций | ВидРасчета | ВидРасчетаЗавершения |
Показатель1 | Показатель1Завершения | ||
3 | СостояниеРаботников | Состояние | СостояниеЗавершения |
И, кроме этого, для измерения «Период» имеется ресурс «ПериодЗавершения». Эти два свойства записи определяют состояние объекта на временной оси.
Ресурс «ПериодЗавершения» показывает, что запись характеризуется еще и концом своего действия (в случае, если ресурс заполнен). В этом случае с даты, указанной в ресурсе «ПериодЗавершения», актуальными становятся ресурсы с постфиксом «Завершения» («ДолжностьЗавершения», «ГрафикРаботыЗавершения» и т.д.)
Для того, чтобы понимать, почему была разработана именно такая архитектура периодических регистров сведений, характеризующихся окончанием периода действия, рекомендую ознакомиться со статьей ИТС Регистрация изменений на некоторый промежуток времени с возвратом в исходное состояние. Также в статье Запросы к регистрам сведений с реквизитом «ПериодЗавершения» обсуждаются плюсы и минусы такого решения.
Лирическое отступление закончим. Перейдем непосредственно к задаче получения кадровой истории сотрудника организации (далее, сотрудника). Для того, чтобы не загромождать статью кодом, в запросе будем получать только подразделение сотрудника. Чтобы получить должность, график работы и подобные ресурсы, нужно использовать точно такие же конструкции с «ВЫБОР», которые применяются в приведенных ниже запросах. Но для того, чтобы наглядно показать откуда, почему и какие данные получаются (в целях обучения), в результат запросов помещены дополнительные поля, которые можно не использовать в своих разработках в будущем.
Постановка задачи:
Необходимо получить кадровую историю сотрудника в следующем виде (с отбором по периоду):
Следует учесть тот момент, что документом «Кадровое перемещение организаций АР000000002 от 14.01.2015 15:27:05» сотрудник был переведен в Отдел продаж с 14.01.15 по 04.03.15 (для других кадровых перемещений период завершения не заполнялся):
Последовательность решения:
1. Находим подразделение сотрудника на дату начала периода (пусть это будет 01.01.15 г.). Для этого используем виртуальную таблицу среза последних регистра сведений «РаботникиОрганизаций», параметризованную по сотруднику и дате начала периода
Результат подзапроса № 1:
В подзапросе № 1 используется конструкция «ВЫБОР» с проверкой значения ресурса «ПериодЗавершения». Если период завершения заполнен и наступил этот период, возвращаем ресурс с постфиксом «Завершения», иначе возвращаем обычный ресурс (или измерение «Период»). Повторюсь, что данную конструкцию необходимо использовать для получения любых ресурсов, характеризующихся датой окончания действия (Должность, ГрафикРаботы и т.п.)
Также можно увидеть, что в подзапрос включено поле «Номер подзапроса» для визуального отображения в будущем, какой подзапрос какие данные вернул (напомню, что это поле для решения поставленной задачи необязательно).
2. Находим подразделения сотрудника с даты, следующей за датой начала периода, и по дату окончания периода (пусть это будет 31.12.15 г.) Для этого используем физическую таблицу регистра сведений «РаботникиОрганизаций» с отбором по сотруднику и датам начала и окончания периода
Результат подзапроса № 2:
3. Находим подразделения сотрудника по датам завершения событий с даты, следующей за датой начала периода, и по дату окончания периода
Результат подзапроса № 3:
4. Объединим подзапросы конструкцией «ОБЪЕДИНИТЬ ВСЕ» и поместим во временную таблицу
Временная таблица ВТ_ДатыСобытий будет содержать следующие данные:
Как видно, для того, чтобы получить все даты начала нахождения сотрудника в каком-либо подразделении, нам необходимо было формировать три подзапроса (если устанавливать разные даты начала и окончания периода, то можно увидеть что кадровую историю сотрудника за период можно получить с помощью одного или двух подзапросов, чего будет явно недостаточно для общего случая).
5. Получаем итоговую таблицу (текст получения временной таблицы ВТ_ДатыСобытий не повторяю). Для этого временную таблицу с датами наступления событий соединяем саму с собой по сотруднику и условию того, что дата начала события должна быть меньше даты его окончания.
Если сотрудник работает и дата окончания меньше даты события очередного кадрового документа, «Дату по» ставим равной дате окончания.
Если сотрудника уволили, дату начала данного события устанавливаем на следующую дату за последним рабочим днем, а дату окончания устанавливаем в NULL (нет там уже никакой протяженности во времени).
Подразделение после увольнения оставляем равным последнему подразделению сотрудника.
Таким образом, мы получили кадровую историю сотрудника (периодами).