Как найти уволенного сотрудника в зуп

Сформировать список уволенных сотрудников можно при помощи отчетов Кадровые изменения
и Уволенные сотрудники (Раздел Кадры Кадровые отчеты).

Отчет Кадровые изменения

В отчете предусмотрена возможность группировки по подразделению и виду события. А также возможно сделать   детализацию по сотрудникам. По сотруднику можно вывести информацию по занимаемой должности и количеству ставок.

Отчет Уволенные сотрудники позволяет сформировать список уволенных сотрудников. А также получить следующие данные по ним: подразделение, должность, дата приема, дата увольнения, дата рождения.

В отчете можно сделать отборы по должности, подразделению, организации:

Содержание:

1. Работа с отчетом Уволенные сотрудники

2. Как добавить отборы по отчету в 1С?  

1.   Работа с отчетом Уволенные сотрудники

Для того чтобы посмотреть список уволенных сотрудников в 1С 8.3 Зарплата и Управление Персоналом предусмотрен отчет Уволенные сотрудники (раздел «Кадры – Кадровые отчеты»).

Работа с отчетом Уволенные сотрудники

Далее находим ссылку на отчет:

Работа с отчетом в 1С

Внешний вид отчет «Уволенные сотрудники»:

Уволенные сотрудники

В 1С 8.3 Зарплата и Управление Персоналом существует обязательный параметр «Дата» и необязательный отбор по организациям учета.

Параметр «Дата» можно вносить путем выбора из стандартных периодов:

Уволенные сотрудники в 1С

Либо можно выбрать произвольный период:

отчет Уволенные сотрудники

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

Вид сформированного отчета:  

Вид сформированного отчета

2.    Как добавить отборы по отчету 1С

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

Открываем расширенные настройки отчета в 1С 8.3:

Как добавить отборы по отчету

Заходим в раздел «Отборы» и нажимаем на «Добавить отбор»:

отборы по отчету 1С

Дальше надо найти параметр «Дата приема» – он находится в группе «Работа»:

добавить отборы по отчету

Следующий шаг – выбор метода сравнения, выберем «больше или равно»:

выбор метода сравнения

И в конце выберем способ отображения нового отбора – «В шапке отчета»:

выбор метода сравнения в 1С

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

При таких настройках отчета в 1С 8.3 возможно выводить список уволенных с датой приема больше установленной даты:

настройка отчета в 1С 8.3

Аналогичным образом можно добавить отбор по дате рождения или по должности, или по подразделению.

Кроме того, можно изменить группировки отчета.

В стандартных настройках группировка идет только по «Организации», т.е. уволенные сотрудники выводятся отдельно по каждой организации. Можно добавить группировку по должности или по подразделению.

Открываем расширенные настройки, заходим в раздел «Структура»:

добавить отбор по дате

Вариант 1 – заменим группировку «Организация» на группировку «Подразделение». В этом случае надо дважды кликнуть мышью на поле организация и в появившимся списке выбрать «Подразделение»:

заменим группировку «Организация»

После чего структура примет следующий вид:

заменим группировку в 1С

группировка Организация

При данной настройке отчет будет выводить данные отдельно по каждому подразделению.

Можно также добавить одну группировку. Допустим, нам требуется выводить данные отдельно по каждой организации, а внутри организации раздельно по каждому подразделению. В этом случае надо стать на поле «Организация» и нажать на кнопку «Добавить». Потом, в окне выбрать в разделе «Работа» параметр «Подразделение»:

раздел «Работа» параметр «Подразделение»

Структура примет следующий вид:

раздел «Работа» в 1С

И в конце, можно выбрать макет оформления отчета. Для этого заходим в меню «Еще» потом выбираем «прочее» и «изменить вариант отчета»:

 макет оформления отчета

В открывшейся форме заходим на вкладку «Дополнительные настройки» и выбираем пункт «Макет оформления». Здесь есть насколько предустановленных макетов:

 макет оформления отчета 1с

Окончательный вид отчета:

вид отчета 1С 

Специалист компании ООО «Кодерлайн»

Есипов Валерий Валериевич

Здравствуйте!

Честно признаться, весь день пыталась придумать какое-нибудь красивое решение, но оно так и не родилось. Попытаюсь объяснить почему задача несколько сложнее, чем кажется на первый взгляд.

Все отчеты по сотрудникам строятся именно в разрезе сотрудников. Сотрудник 1 (уволенный) и сотрудник 2 (вновь принятый) — это не просто разные жлементы справочника сотрудники, а разные строки в отчетах. Наложить же условие сравнение полей (в данном случае даты приема и увльнения) мы может только по одной строке. Сравнивать дау приема строки 1 с датой увольнения строки 2 нет технической возможности.

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

Поэтому, к сожалению, для решения именно этой задачи без excel не обойтись. Можно сделать так:

  • сформировать типовой отчет по Уволенным сотрудникам. причем в нем лучше вытащить именно физ. лицо. т.к. наименание сотрудника (уволенного и действующего) может отличаться и сопоставить данные не получится
  • перенести результат отчета в excel
  • сформировать отчет Штатные сотрудники по работающим на текущую дату
  • перенести на этот же лист еxcel
  • сравнить в excel 2 таблицы с помощью функции ВПР (подробнее о ней можно почитать в интернете). Нужно искать значения таблицы с у3воленными в таблице с действующими сотрудниками. Если значений найдено, значит этот сотрудник принят повторно. Все не найденные значения (их можно потом отобрать фильтром) — Ваш искомый список.
Как в ЗУП 3.1 программно получить список уволенных сотрудников на текущую дату
Ø (Волшебник 03.04.2023 12:58) ☑ 0

Depeche14

29.03.23

15:14

Добрый день!

Хочу программно получить таблицу с уволенными сотрудниками.

Пишу вот такой запрос:

ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, ГоловнаяОрганизация = &Организация) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)

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

Запрос отрабатывает как надо, если в качестве параметров указать значения всех измерений регистра: ГоловнаяОрганизация, Сотрудник, ФизическоеЛицо. Это не приемлемо, т.к. нужно получить выборку по всем сотрудникам, а не по одному.

1

Масянька

29.03.23

15:04

Шо, опять?! ©

2

unenu

29.03.23

15:06

методы общих модулей все получают, писать запросы по сотрудникам в зуп непрофессионально

3

Depeche14

29.03.23

15:07

(2) А можно ссылочку на пример работы с общими модулями для решения аналогичного вопроса?

4

Масянька

29.03.23

15:09

(3) Основная проблема в том, что уволенного сотрудника опять взяли на работу.

5

Depeche14

29.03.23

15:10

(4) Да, все верно.

6

unenu

29.03.23

15:10

https://infostart.ru/1c/articles/942569/

устарела чуток, но толково расжевали

ссыла ради знаний подована

7

Масянька

29.03.23

15:11

(6) Надобно еще и по матчасти статьи…

8

Serg_1960

29.03.23

15:14

(0) “Проблема в том, что если сотрудник был некоторое время назад уволен…” – то сотрудник уволен, а “был принят” – новый сотрудник (другой). Проблема в том, что “опять принят” – может (и относится) только к одному и тому же физическому лицу.

9

ptiz

29.03.23

15:14

(0) Т.е. тебе нужен срез последних по  физ.лицу, а не сотруднику? Тогда бери из КадроваяИсторияСотрудниковСрезПоследних ещё поле Период и достраивай сам срез.

10

Волшебник

модератор

29.03.23

15:15

(0) Если сотрудник уволен, то он не может быть принят. Это будет уже новый сотрудник

11

Depeche14

29.03.23

15:19

(10) Ну так как быть-то?

12

Гена

29.03.23

15:21

(11) Вы определитесь как хотите видеть на выводе ФЛ у которого есть Сотр1 и Сотр2 уволенные и Сотр3 текущий работающий?

13

Масянька

29.03.23

15:21

(11) Вестимо, принимать новых.

Аксиома ЗУП: одно физлицо – много сотрудников.

14

Волшебник

модератор

29.03.23

15:22

(11) Выберите всех работающих, потом из всех сотрудников исключите работающих, получатся уволенные.

15

Гена

29.03.23

15:23

(14) В справочнике сотров не могу быть игруны без всяких движений, когда баловались или дублировали и бросали?

16

Гена

29.03.23

15:27

Автор, что молчите?

как хотите видеть на выводе ФЛ у которого есть Сотр1 и Сотр2 уволенные и Сотр3 текущий работающий?

17

Amra

29.03.23

15:30

(15) А ктото сказал, что надо брать из справочника?

18

Масянька

29.03.23

15:31

(16) Нету у него Сотр1, Сотр2 и Сотр3…  У них один Сотр, которого увольняют – принимают, увольняют – принимают…

ИМХО…

Дай Бог, чтобы я ошибалась…

19

Depeche14

29.03.23

15:33

(18) Извините за задержку. Да, именно так и есть…

20

Гена

29.03.23

15:36

Фига ж себе… ну а уникальные табельные номера (ТН) хотя бы у них разные? Как их программе различить? Есть какая-никакая краска отличия?

21

KJlag

29.03.23

15:36

(19) (19) еще раз, вы на 1 объект фл держите только 1 объект сотрутдника, и если надо заново принять, то используете тот же объект сотрудника??

22

Depeche14

29.03.23

15:37

(21) Да, получается, что сотрудник один и тот же…

23

Dmitry77

29.03.23

15:37

Правильно выше написали. Определитесь что есть “список уволенных”.

Это у кого есть документ увольнение? И соответственно дата увольнения в регистрах.

И список за период или на дату?

24

Depeche14

29.03.23

15:38

Извините, выдал неверную информацию. Табельные номера у уволенного и вновь принятого разные.

25

Amra

29.03.23

15:39

(19) Даже при этом этот завпрос вернет все верно, если сотрудник был уволен и принят в ту же организацию. Или у вас несколько организаций в базе, и сотр уволенный в одной и принятый в другую не должен считаться уволенным?

26

Depeche14

29.03.23

15:40

(23) Уволенные – это у кого есть документ Увольнение. Список должен формироваться на текущую дату.

27

Гена

29.03.23

15:40

(24) тогда нет проблем… краска есть – дальше дело техники

28

Dmitry77

29.03.23

15:40

(25) вы торопитесь. До внутренного совместительства ещё не дошли.

29

Amra

29.03.23

15:41

(26) К калденного и вновь принятого увольнение есть и он должен считаться уволенным

30

Depeche14

29.03.23

15:41

(25) Увольнение и принятие обратно по одной и той же организации.

31

Масянька

29.03.23

15:42

Джентельмены, я пас ©

32

Gucci76

29.03.23

16:01

ПараметрыСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
 
	//ПараметрыСотрудников.СписокФизическихЛиц = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИсполнительФЛ);
	//ПараметрыСотрудников.НачалоПериода	   = ТекущаяДата();  // тогда в отбор попадут работающие на тек дату
	//ПараметрыСотрудников.ОкончаниеПериода  = ТекущаяДата();  // тогда в отбор попадут работающие на тек дату
	ПараметрыСотрудников.РаботникиПоТрудовымДоговорам = Истина;
	ПараметрыСотрудников.РаботникиПоДоговорамГПХ	   = ЛОЖЬ;
	ПараметрыСотрудников.ВыбрасыватьИсключениеДоступа = Ложь;
 

ПараметрыСотрудников.КадровыеДанные = "Организация, ДатаПриема, ДатаУвольнения,"
		+ ?(ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание"), "ДолжностьПоШтатномуРасписанию", 
"Должность, Подразделение");
 
Сотрудники = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыСотрудников);

Я бы так получил

33

Depeche14

29.03.23

15:53

Я дико извиняюсь за свой непрофессионализм, но кто-нибудь может конкретно сказать, как решить этот вопрос: нужно сделать то-то и то-то… Подобных задач я ранее не решал.

34

Гена

29.03.23

16:03

(33) Я правильно понимаю, что Вы просто хотите получить список тех сотров (не физлиц), у кого есть приказ на увольнение в истории и кто сейчас не работает?

35

Depeche14

29.03.23

16:04

(34) Правильно. Именно так.

36

Гена

29.03.23

16:05

Ну тогда алгоритм мы выяснили. А вот код написать – это Вам надо просить программистов )

37

Волшебник

модератор

29.03.23

16:06

(26) Тогда так:

ВЫБРАТЬ
   Сотрудник,
   ФизическоеЛицо
ИЗ
   РегистрСведений.КадроваяИсторияСотрудников
ГДЕ
   ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)

38

Волшебник

модератор

29.03.23

16:07

(37) Из этого списка можно исключить тех, кто сейчас работает. Останутся “полностью уволенные”

39

Гена

29.03.23

16:08

(37) сработает.

40

Depeche14

29.03.23

16:08

(38) Понял. Большое всем спасибо!

41

Гена

29.03.23

16:09

(38) у него же коды табельных номеров уникальны, к счастью. А надо ли нам дополнительно искать работающих? Вроде и так код (37) в шоколаде, нет?

42

Гена

29.03.23

16:10

Вы же сотров запрашиваете по коду, а не по ФИО?

43

Волшебник

модератор

29.03.23

16:11

(41) у них кривой учёт, так что придётся

44

SleepyHead

29.03.23

16:21

Если рядом не стоит суровый экзаменатор с ДТЛ, и вопрос надо решить с минимальными затратами времени на программирование

1. Запросом получаем всех сотрудников организации и выгружаем их в массив

2. Далее используем программный интерфейс ЗУП

ТЗ = КадровыйУчет.КадровыеДанныеСотрудников(Истина, массивСотрудников, “ДатаПриема,ДатаУвольнения”, НаДату);

В таблице значений получаем – сотрудника (СправочникСсылка.Сотрудники), его дату приема и увольнения

3. обходим ее циклом и сравниваем дату актуальности с датами приема и увольнения. Не у всех сотрудников есть дата приема, это может быть договорник. Если в дате приема NULL или пустая дата, пропускаем.

Если нет, смотрим, уже принят сотрудник относительно текущей даты актуальности или нет.

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

Решение далеко не идеальное с точки зрения производительности, но пока ни разу не подводило.

45

Depeche14

29.03.23

16:23

Ради чего все это делается. Есть список рассылки расчетных листков сотрудникам. Если сотр увольняется, нужно исключать его из рассылки, если принимается на работу, должен быть добавлен. Делается это крайне не регулярно. Актуализировать список рассылки можно либо вручную, либо с помощью обработки. Написал обработку с 2-мя кнопками: “Удалить уволенных” и “Заполнить сотрудниками”. По первой из списка удаляются все уволенные на текущую дату, при нажатии на 2-ую в список добавляется получатель, если это действующий сотрудник и в списке его до сих пор не было. Проблема в том, что работники которые ранее увольнялись, а потом вновь трудоустроились удаляются из списка рассылки при нажатии кнопки “Удалить уволенных” и добавляются в список при нажатии на кнопку “Заполнить сотрудниками”. Все из-за того, что этот список формируется из физических лиц, а не из сотрудников.

46

Dmitry77

29.03.23

16:29

К (45) дошли до изначальной постановки задачи

47

Dmitry77

29.03.23

16:31

Правильнее перед отправкой сотрудников формировать список работающих. И по нему отправлять.

48

Depeche14

29.03.23

16:35

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

49

Волшебник

модератор

29.03.23

17:18

Нужно отправлять расчётный листок в любом случае, независимо от статуса сотрудника, а эту сущность надо уничтожить:

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

50

Depeche14

29.03.23

16:38

(49) Что вы имеете ввиду?

51

Amra

29.03.23

16:39

(48) Расчетные листки стоит отправлять тем, у кого есть начисления в выбранном месяце. И пофиг, уволен или нет

52

Гена

29.03.23

16:41

(49) (51) эт-т-т-точно (с) красноармеец Сухов

53

Dmitry77

29.03.23

16:45

(51) + тем у кого начислений нет, но сотрудниками они являются (длительные больничные, декретчицы)

54

Гена

29.03.23

16:46

(53) зачем?

55

Гена

29.03.23

16:47

типа мы о вас помним, ребята? )

56

SleepyHead

29.03.23

16:47

(54) А чтоб знали, что они на больничном.

57

Гена

29.03.23

16:48

(56) смешно

58

SleepyHead

29.03.23

16:48

(57) А вот это зря. Потом придут и скажут – а чойт вы мне зарплату не выплатили.

Этим страдают даже профессора в вузах.

59

Amra

29.03.23

16:51

(58) Как они из листка узнают что они на больничном?

60

SleepyHead

29.03.23

16:51

(59) Будет строка с начислением, нулевой суммой и количеством дней. Но без даты.

61

Amra

29.03.23

16:54

(60) Там будет “отсутствие по невыясненной причине”. Жалобу еще накатают, за оскорбление, их высочество же БОЛЕЛО

62

SleepyHead

29.03.23

16:55

(59) Зависит от того, как оформите. Но в общем вы правы, докопаться при желании можно до чего угодно.

https://cloud.mail.ru/public/7qLH/2AiT4cXJE

63

Гена

29.03.23

16:56

Нет, ну если ГБ так хочет. У каждой Марфушки свои погремушки.

64

SleepyHead

29.03.23

16:56

(61) “Жалобу еще накатают, за оскорбление, их высочество же БОЛЕЛО”

Попросим предоставить пруфы ))

65

Dmitry77

29.03.23

17:16

Мы сейчас этими дебрями зарплаты запутаем топикстартера окончательно.

66

Depeche14

29.03.23

17:08

(65) Уже…

67

kostik79

29.03.23

20:13

ВЫБРАТЬ

    ВложенныйЗапрос.Сотрудник КАК Сотрудник,

    ВложенныйЗапрос.ФизическоеЛицо КАК ФизическоеЛицо

ИЗ

    (ВЫБРАТЬ

        КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,

        КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,

        МАКСИМУМ(КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период

    ИЗ

        РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ТекДата, ГоловнаяОрганизация = &Организация) КАК КадроваяИсторияСотрудниковСрезПоследних

    
    СГРУППИРОВАТЬ ПО

        КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо,

        КадроваяИсторияСотрудниковСрезПоследних.Сотрудник) КАК ВложенныйЗапрос

        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников

        ПО ВложенныйЗапрос.Период = КадроваяИсторияСотрудников.Период

ГДЕ

    КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)

Вот так попробуй.

68

kostik79

29.03.23

20:31

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

69

ptiz

29.03.23

22:57

В рассылке расчетных листков самое главное – корректные адреса почты.

У нас тут “смешной” случай был. Кадры через запятую в емейлы вбили кроме личных ещё и общие адреса отделов. Прикольно получилось…

70

Akela has missed

29.03.23

23:56

Ну ёмаё, это же не 2.5, какая КадроваяИсторияСотрудниковСрезПоследних?

В случае необходимости простой выборки с отбором по дате приема или дате увольнения используется регистр ТекущиеКадровыеДанныеСотрудников.

Либо методы общих модулей как в (6).

71

kostik79

30.03.23

00:46

(70) //В случае необходимости простой выборки с отбором по дате приема или дате увольнения используется регистр ТекущиеКадровыеДанныеСотрудников//

ТекущиеКадровыеДанныеСотрудников непериодический, никаких срезов, у ТС (как я понял) один и тот же сотрудик принимается и увольняется по 100500 раз.

Можешь показать пример этой “простой выборки”?

72

kostik79

30.03.23

00:47

(71) + для решения задачи ТС

73

Dmitry77

30.03.23

00:49

https://infostart.ru/1c/articles/942569/

Здесь расписано как по параметрам получить сотрудников.

Добавить комментарий