Сформировать список уволенных сотрудников можно при помощи отчетов Кадровые изменения
и Уволенные сотрудники (Раздел Кадры Кадровые отчеты).
Отчет Кадровые изменения
В отчете предусмотрена возможность группировки по подразделению и виду события. А также возможно сделать детализацию по сотрудникам. По сотруднику можно вывести информацию по занимаемой должности и количеству ставок.
Отчет Уволенные сотрудники позволяет сформировать список уволенных сотрудников. А также получить следующие данные по ним: подразделение, должность, дата приема, дата увольнения, дата рождения.
В отчете можно сделать отборы по должности, подразделению, организации:
Содержание:
1. Работа с отчетом Уволенные сотрудники
2. Как добавить отборы по отчету в 1С?
1. Работа с отчетом Уволенные сотрудники
Для того чтобы посмотреть список уволенных сотрудников в 1С 8.3 Зарплата и Управление Персоналом предусмотрен отчет Уволенные сотрудники (раздел «Кадры – Кадровые отчеты»).
Далее находим ссылку на отчет:
Внешний вид отчет «Уволенные сотрудники»:
В 1С 8.3 Зарплата и Управление Персоналом существует обязательный параметр «Дата» и необязательный отбор по организациям учета.
Параметр «Дата» можно вносить путем выбора из стандартных периодов:
Либо можно выбрать произвольный период:
Отчет будет выводить данные по уволенным с датой увольнения не позже установленного параметра (в данном случае 13.08.2020)
Вид сформированного отчета:
2. Как добавить отборы по отчету 1С
При желании можно добавить отборы по всем существующим полям отчета уволенных сотрудников в 1С ЗУП, например, по дате приема.
Открываем расширенные настройки отчета в 1С 8.3:
Заходим в раздел «Отборы» и нажимаем на «Добавить отбор»:
Дальше надо найти параметр «Дата приема» – он находится в группе «Работа»:
Следующий шаг – выбор метода сравнения, выберем «больше или равно»:
И в конце выберем способ отображения нового отбора – «В шапке отчета»:
Для этого надо выделить нужный нам отборы по отчету 1С и нажать на кнопку «Показывать», после чего выбрать вид показа.
При таких настройках отчета в 1С 8.3 возможно выводить список уволенных с датой приема больше установленной даты:
Аналогичным образом можно добавить отбор по дате рождения или по должности, или по подразделению.
Кроме того, можно изменить группировки отчета.
В стандартных настройках группировка идет только по «Организации», т.е. уволенные сотрудники выводятся отдельно по каждой организации. Можно добавить группировку по должности или по подразделению.
Открываем расширенные настройки, заходим в раздел «Структура»:
Вариант 1 – заменим группировку «Организация» на группировку «Подразделение». В этом случае надо дважды кликнуть мышью на поле организация и в появившимся списке выбрать «Подразделение»:
После чего структура примет следующий вид:
При данной настройке отчет будет выводить данные отдельно по каждому подразделению.
Можно также добавить одну группировку. Допустим, нам требуется выводить данные отдельно по каждой организации, а внутри организации раздельно по каждому подразделению. В этом случае надо стать на поле «Организация» и нажать на кнопку «Добавить». Потом, в окне выбрать в разделе «Работа» параметр «Подразделение»:
Структура примет следующий вид:
И в конце, можно выбрать макет оформления отчета. Для этого заходим в меню «Еще» потом выбираем «прочее» и «изменить вариант отчета»:
В открывшейся форме заходим на вкладку «Дополнительные настройки» и выбираем пункт «Макет оформления». Здесь есть насколько предустановленных макетов:
Окончательный вид отчета:
Специалист компании ООО «Кодерлайн»
Есипов Валерий Валериевич
Здравствуйте!
Честно признаться, весь день пыталась придумать какое-нибудь красивое решение, но оно так и не родилось. Попытаюсь объяснить почему задача несколько сложнее, чем кажется на первый взгляд.
Все отчеты по сотрудникам строятся именно в разрезе сотрудников. Сотрудник 1 (уволенный) и сотрудник 2 (вновь принятый) — это не просто разные жлементы справочника сотрудники, а разные строки в отчетах. Наложить же условие сравнение полей (в данном случае даты приема и увльнения) мы может только по одной строке. Сравнивать дау приема строки 1 с датой увольнения строки 2 нет технической возможности.
Была мысль создать пользовательское поле, которое при группировке строк по физ. лицу будет вычислять наиболее позднюю дату приема и увольнения и затем и сравнивать, но такой трюк не прошел. Программа просто не вычисляет пользовательское поле с функцией «максимум» :(. Даже если пытаться отбросить типовые отчеты и строить запрос к базе через универсальный отчет, то проблема все равно остается: даты увольнения и приема в разных строках и сравнить их между собой для прежнего и нового сотрудника не получится.
Поэтому, к сожалению, для решения именно этой задачи без excel не обойтись. Можно сделать так:
- сформировать типовой отчет по Уволенным сотрудникам. причем в нем лучше вытащить именно физ. лицо. т.к. наименание сотрудника (уволенного и действующего) может отличаться и сопоставить данные не получится
- перенести результат отчета в excel
- сформировать отчет Штатные сотрудники по работающим на текущую дату
- перенести на этот же лист еxcel
- сравнить в excel 2 таблицы с помощью функции ВПР (подробнее о ней можно почитать в интернете). Нужно искать значения таблицы с у3воленными в таблице с действующими сотрудниками. Если значений найдено, значит этот сотрудник принят повторно. Все не найденные значения (их можно потом отобрать фильтром) — Ваш искомый список.
Ø (Волшебник 03.04.2023 12:58)
Depeche14
29.03.23
✎
15:14
Добрый день!
Хочу программно получить таблицу с уволенными сотрудниками.
Пишу вот такой запрос:
ВЫБРАТЬ КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо ИЗ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, ГоловнаяОрганизация = &Организация) КАК КадроваяИсторияСотрудниковСрезПоследних ГДЕ КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
Проблема в том, что если сотрудник был некоторое время назад уволен, а потом опять принят на работу, то таким запросом он попадает в категорию уволенных, хотя, фактически является действующим сотрудником.
Запрос отрабатывает как надо, если в качестве параметров указать значения всех измерений регистра: ГоловнаяОрганизация, Сотрудник, ФизическоеЛицо. Это не приемлемо, т.к. нужно получить выборку по всем сотрудникам, а не по одному.
Масянька
29.03.23
✎
15:04
Шо, опять?! ©
unenu
29.03.23
✎
15:06
методы общих модулей все получают, писать запросы по сотрудникам в зуп непрофессионально
Depeche14
29.03.23
✎
15:07
(2) А можно ссылочку на пример работы с общими модулями для решения аналогичного вопроса?
Масянька
29.03.23
✎
15:09
(3) Основная проблема в том, что уволенного сотрудника опять взяли на работу.
Depeche14
29.03.23
✎
15:10
(4) Да, все верно.
unenu
29.03.23
✎
15:10
https://infostart.ru/1c/articles/942569/
устарела чуток, но толково расжевали
ссыла ради знаний подована
Масянька
29.03.23
✎
15:11
(6) Надобно еще и по матчасти статьи…
Serg_1960
29.03.23
✎
15:14
(0) “Проблема в том, что если сотрудник был некоторое время назад уволен…” – то сотрудник уволен, а “был принят” – новый сотрудник (другой). Проблема в том, что “опять принят” – может (и относится) только к одному и тому же физическому лицу.
ptiz
29.03.23
✎
15:14
(0) Т.е. тебе нужен срез последних по физ.лицу, а не сотруднику? Тогда бери из КадроваяИсторияСотрудниковСрезПоследних ещё поле Период и достраивай сам срез.
Волшебник
модератор
29.03.23
✎
15:15
(0) Если сотрудник уволен, то он не может быть принят. Это будет уже новый сотрудник
Depeche14
29.03.23
✎
15:19
(10) Ну так как быть-то?
Гена
29.03.23
✎
15:21
(11) Вы определитесь как хотите видеть на выводе ФЛ у которого есть Сотр1 и Сотр2 уволенные и Сотр3 текущий работающий?
Масянька
29.03.23
✎
15:21
(11) Вестимо, принимать новых.
Аксиома ЗУП: одно физлицо – много сотрудников.
Волшебник
модератор
29.03.23
✎
15:22
(11) Выберите всех работающих, потом из всех сотрудников исключите работающих, получатся уволенные.
Гена
29.03.23
✎
15:23
(14) В справочнике сотров не могу быть игруны без всяких движений, когда баловались или дублировали и бросали?
Гена
29.03.23
✎
15:27
Автор, что молчите?
как хотите видеть на выводе ФЛ у которого есть Сотр1 и Сотр2 уволенные и Сотр3 текущий работающий?
Amra
29.03.23
✎
15:30
(15) А ктото сказал, что надо брать из справочника?
Масянька
29.03.23
✎
15:31
(16) Нету у него Сотр1, Сотр2 и Сотр3… У них один Сотр, которого увольняют – принимают, увольняют – принимают…
ИМХО…
Дай Бог, чтобы я ошибалась…
Depeche14
29.03.23
✎
15:33
(18) Извините за задержку. Да, именно так и есть…
Гена
29.03.23
✎
15:36
Фига ж себе… ну а уникальные табельные номера (ТН) хотя бы у них разные? Как их программе различить? Есть какая-никакая краска отличия?
KJlag
29.03.23
✎
15:36
(19) (19) еще раз, вы на 1 объект фл держите только 1 объект сотрутдника, и если надо заново принять, то используете тот же объект сотрудника??
Depeche14
29.03.23
✎
15:37
(21) Да, получается, что сотрудник один и тот же…
Dmitry77
29.03.23
✎
15:37
Правильно выше написали. Определитесь что есть “список уволенных”.
Это у кого есть документ увольнение? И соответственно дата увольнения в регистрах.
И список за период или на дату?
Depeche14
29.03.23
✎
15:38
Извините, выдал неверную информацию. Табельные номера у уволенного и вновь принятого разные.
Amra
29.03.23
✎
15:39
(19) Даже при этом этот завпрос вернет все верно, если сотрудник был уволен и принят в ту же организацию. Или у вас несколько организаций в базе, и сотр уволенный в одной и принятый в другую не должен считаться уволенным?
Depeche14
29.03.23
✎
15:40
(23) Уволенные – это у кого есть документ Увольнение. Список должен формироваться на текущую дату.
Гена
29.03.23
✎
15:40
(24) тогда нет проблем… краска есть – дальше дело техники
Dmitry77
29.03.23
✎
15:40
(25) вы торопитесь. До внутренного совместительства ещё не дошли.
Amra
29.03.23
✎
15:41
(26) К калденного и вновь принятого увольнение есть и он должен считаться уволенным
Depeche14
29.03.23
✎
15:41
(25) Увольнение и принятие обратно по одной и той же организации.
Масянька
29.03.23
✎
15:42
Джентельмены, я пас ©
Gucci76
29.03.23
✎
16:01
ПараметрыСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); //ПараметрыСотрудников.СписокФизическихЛиц = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИсполнительФЛ); //ПараметрыСотрудников.НачалоПериода = ТекущаяДата(); // тогда в отбор попадут работающие на тек дату //ПараметрыСотрудников.ОкончаниеПериода = ТекущаяДата(); // тогда в отбор попадут работающие на тек дату ПараметрыСотрудников.РаботникиПоТрудовымДоговорам = Истина; ПараметрыСотрудников.РаботникиПоДоговорамГПХ = ЛОЖЬ; ПараметрыСотрудников.ВыбрасыватьИсключениеДоступа = Ложь; ПараметрыСотрудников.КадровыеДанные = "Организация, ДатаПриема, ДатаУвольнения," + ?(ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание"), "ДолжностьПоШтатномуРасписанию", "Должность, Подразделение"); Сотрудники = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыСотрудников);
Я бы так получил
Depeche14
29.03.23
✎
15:53
Я дико извиняюсь за свой непрофессионализм, но кто-нибудь может конкретно сказать, как решить этот вопрос: нужно сделать то-то и то-то… Подобных задач я ранее не решал.
Гена
29.03.23
✎
16:03
(33) Я правильно понимаю, что Вы просто хотите получить список тех сотров (не физлиц), у кого есть приказ на увольнение в истории и кто сейчас не работает?
Depeche14
29.03.23
✎
16:04
(34) Правильно. Именно так.
Гена
29.03.23
✎
16:05
Ну тогда алгоритм мы выяснили. А вот код написать – это Вам надо просить программистов )
Волшебник
модератор
29.03.23
✎
16:06
(26) Тогда так:
ВЫБРАТЬ Сотрудник, ФизическоеЛицо ИЗ РегистрСведений.КадроваяИсторияСотрудников ГДЕ ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
Волшебник
модератор
29.03.23
✎
16:07
(37) Из этого списка можно исключить тех, кто сейчас работает. Останутся “полностью уволенные”
Гена
29.03.23
✎
16:08
(37) сработает.
Depeche14
29.03.23
✎
16:08
(38) Понял. Большое всем спасибо!
Гена
29.03.23
✎
16:09
(38) у него же коды табельных номеров уникальны, к счастью. А надо ли нам дополнительно искать работающих? Вроде и так код (37) в шоколаде, нет?
Гена
29.03.23
✎
16:10
Вы же сотров запрашиваете по коду, а не по ФИО?
Волшебник
модератор
29.03.23
✎
16:11
(41) у них кривой учёт, так что придётся
SleepyHead
29.03.23
✎
16:21
Если рядом не стоит суровый экзаменатор с ДТЛ, и вопрос надо решить с минимальными затратами времени на программирование
1. Запросом получаем всех сотрудников организации и выгружаем их в массив
2. Далее используем программный интерфейс ЗУП
ТЗ = КадровыйУчет.КадровыеДанныеСотрудников(Истина, массивСотрудников, “ДатаПриема,ДатаУвольнения”, НаДату);
В таблице значений получаем – сотрудника (СправочникСсылка.Сотрудники), его дату приема и увольнения
3. обходим ее циклом и сравниваем дату актуальности с датами приема и увольнения. Не у всех сотрудников есть дата приема, это может быть договорник. Если в дате приема NULL или пустая дата, пропускаем.
Если нет, смотрим, уже принят сотрудник относительно текущей даты актуальности или нет.
Если принят, смотрим дату увольнения – если она заполнена и в нужном диапазоне – считаем, что такого сотрудника нашли и аккуратно помещаем его в нужный ящик.
Решение далеко не идеальное с точки зрения производительности, но пока ни разу не подводило.
Depeche14
29.03.23
✎
16:23
Ради чего все это делается. Есть список рассылки расчетных листков сотрудникам. Если сотр увольняется, нужно исключать его из рассылки, если принимается на работу, должен быть добавлен. Делается это крайне не регулярно. Актуализировать список рассылки можно либо вручную, либо с помощью обработки. Написал обработку с 2-мя кнопками: “Удалить уволенных” и “Заполнить сотрудниками”. По первой из списка удаляются все уволенные на текущую дату, при нажатии на 2-ую в список добавляется получатель, если это действующий сотрудник и в списке его до сих пор не было. Проблема в том, что работники которые ранее увольнялись, а потом вновь трудоустроились удаляются из списка рассылки при нажатии кнопки “Удалить уволенных” и добавляются в список при нажатии на кнопку “Заполнить сотрудниками”. Все из-за того, что этот список формируется из физических лиц, а не из сотрудников.
Dmitry77
29.03.23
✎
16:29
К (45) дошли до изначальной постановки задачи
Dmitry77
29.03.23
✎
16:31
Правильнее перед отправкой сотрудников формировать список работающих. И по нему отправлять.
Depeche14
29.03.23
✎
16:35
Т.е. нужно формировать список работающих, очищать текущий список рассылки и просто перезаписывать актуальным списком работающих сотрудников?
Волшебник
модератор
29.03.23
✎
17:18
Нужно отправлять расчётный листок в любом случае, независимо от статуса сотрудника, а эту сущность надо уничтожить:
список рассылки расчетных листков сотрудникам
Depeche14
29.03.23
✎
16:38
(49) Что вы имеете ввиду?
Amra
29.03.23
✎
16:39
(48) Расчетные листки стоит отправлять тем, у кого есть начисления в выбранном месяце. И пофиг, уволен или нет
Гена
29.03.23
✎
16:41
(49) (51) эт-т-т-точно (с) красноармеец Сухов
Dmitry77
29.03.23
✎
16:45
(51) + тем у кого начислений нет, но сотрудниками они являются (длительные больничные, декретчицы)
Гена
29.03.23
✎
16:46
(53) зачем?
Гена
29.03.23
✎
16:47
типа мы о вас помним, ребята? )
SleepyHead
29.03.23
✎
16:47
(54) А чтоб знали, что они на больничном.
Гена
29.03.23
✎
16:48
(56) смешно
SleepyHead
29.03.23
✎
16:48
(57) А вот это зря. Потом придут и скажут – а чойт вы мне зарплату не выплатили.
Этим страдают даже профессора в вузах.
Amra
29.03.23
✎
16:51
(58) Как они из листка узнают что они на больничном?
SleepyHead
29.03.23
✎
16:51
(59) Будет строка с начислением, нулевой суммой и количеством дней. Но без даты.
Amra
29.03.23
✎
16:54
(60) Там будет “отсутствие по невыясненной причине”. Жалобу еще накатают, за оскорбление, их высочество же БОЛЕЛО
SleepyHead
29.03.23
✎
16:55
(59) Зависит от того, как оформите. Но в общем вы правы, докопаться при желании можно до чего угодно.
https://cloud.mail.ru/public/7qLH/2AiT4cXJE
Гена
29.03.23
✎
16:56
Нет, ну если ГБ так хочет. У каждой Марфушки свои погремушки.
SleepyHead
29.03.23
✎
16:56
(61) “Жалобу еще накатают, за оскорбление, их высочество же БОЛЕЛО”
Попросим предоставить пруфы ))
Dmitry77
29.03.23
✎
17:16
Мы сейчас этими дебрями зарплаты запутаем топикстартера окончательно.
Depeche14
29.03.23
✎
17:08
(65) Уже…
kostik79
29.03.23
✎
20:13
ВЫБРАТЬ
ВложенныйЗапрос.Сотрудник КАК Сотрудник,
ВложенныйЗапрос.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
(ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
МАКСИМУМ(КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ТекДата, ГоловнаяОрганизация = &Организация) КАК КадроваяИсторияСотрудниковСрезПоследних
СГРУППИРОВАТЬ ПО
КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо,
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
ПО ВложенныйЗапрос.Период = КадроваяИсторияСотрудников.Период
ГДЕ
КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
Вот так попробуй.
kostik79
29.03.23
✎
20:31
(67) Вложенным запросом из КадроваяИсторияСотрудниковСрезПоследних отбираешь сотра, физлицо и дату последнего кадрового события по ним, а потом (в основном запросе) по этой дате выбираешь только увольнения по основной таблице регистра КадроваяИсторияСотрудников.
ptiz
29.03.23
✎
22:57
В рассылке расчетных листков самое главное – корректные адреса почты.
У нас тут “смешной” случай был. Кадры через запятую в емейлы вбили кроме личных ещё и общие адреса отделов. Прикольно получилось…
Akela has missed
29.03.23
✎
23:56
Ну ёмаё, это же не 2.5, какая КадроваяИсторияСотрудниковСрезПоследних?
В случае необходимости простой выборки с отбором по дате приема или дате увольнения используется регистр ТекущиеКадровыеДанныеСотрудников.
Либо методы общих модулей как в (6).
kostik79
30.03.23
✎
00:46
(70) //В случае необходимости простой выборки с отбором по дате приема или дате увольнения используется регистр ТекущиеКадровыеДанныеСотрудников//
ТекущиеКадровыеДанныеСотрудников непериодический, никаких срезов, у ТС (как я понял) один и тот же сотрудик принимается и увольняется по 100500 раз.
Можешь показать пример этой “простой выборки”?
kostik79
30.03.23
✎
00:47
(71) + для решения задачи ТС
Dmitry77
30.03.23
✎
00:49
https://infostart.ru/1c/articles/942569/
Здесь расписано как по параметрам получить сотрудников.