Имя: Пароль:
1C
1С v8
СКД. Отчёт по уволенным пользователям
0 Sonicleerock
 
13.11.13
16:52
Приветствую всех.
Пишу отчёт на СКД по уволенным сотрудникам.
И загвоздка вот в чём:
Работников увольняют и принимают заново, создавая для них новую запись в "СотрудникиОрганизации". Они вешаются на одно и то же ФизЛицо.
И получается, что есть (например) 2 записи на одно и то же имя:

Иванов Иван Иванович принятый 12.12.10, уволен 12.12.12
и
Иванов Иван Иванович, принятый 02.02.13 и работающий по сей день

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

Собственно, вопрос - как избавиться от таких вот "несоответствующих реальности" результатов?
В голову приходит разве что сравнение записей и если есть более поздняя, без даты увольнения - то исключить из отчёта все записи с такой фамилией, именем и т.д. Но не совсем понимаю, как это реализовать. голова уже кругом идёт, помогите пожалуйста.

Конфигурация типовая, УПП
версия 1С 8.2
1 IBTM
 
13.11.13
16:55
что именно не удобно, непонятно
2 Sonicleerock
 
13.11.13
16:59
(1) то, что в организации вв данный момент работает Иванов Иван Иванович, но в отчёте по уволенным он тоже присутствует, т.к. есть соответствующая записьо его увольнении.
Идея в том, чтобы исключить из отчёта тех людей, кто в данный момент работает.
3 МойКодУныл
 
13.11.13
17:01
(0) у сотрудника есть связь с физ лицом и оно одно! если польхзователи не лоси). Воспользуйся ей и выбери окончательно уволенных физ лиц.
Типа группировка по физ лицу и минимум по дате увольнения.т Как-то так. Давно не смотрел в зупе как там это хранится.
4 IBTM
 
13.11.13
17:10
(2) у не уволенных, не заполнена дата увольнения...
у не уволенных, отсутствует запись в рс кадровая история с признаком изменения сосояния "уволнения". Ещё есть вопросы?
5 Sonicleerock
 
14.11.13
08:34
(3) По физлицам список ну очень небольшой получается, человек 12. А в том, котором уволеные дубли, человек 500+ ...
(4) и как это избавит меня от того, что:
Уволено, например, 100 человек, 20 из них приняты по новой и им созданые НОВЫЕ записи в "СотрудникиОрганизации", отчёт выводит все 100 записей "уволенных", хотя надо, чтобы выводил только 80?..
6 el7cartel
 
14.11.13
08:40
(2) хм...удобно неудобно...разные сотрудники и все! а это их проблемы уже
7 Sonicleerock
 
14.11.13
09:00
(6) Я вот подумал, можно ли реализовать такое?
Если ДатаУвольнения = Null (ну или ДАТАВРЕМЯ 01.01.0001) Тогда
Цикл
Поиск по строке (в которой ФИО) и удалить все совпадающие записи из результатов отчёта
КонецЦикла
КонецЕсли

типа того.
8 МойКодУныл
 
14.11.13
09:08
(5) не все сотрудники связаны с физ лицами - но как тогда вы платите НДФЛ и сдаете отчетность во всякие ПФРы. Или у вас дикое количество дублей.

В своем запросе выбери из сотрудника ссылку на физ лицо вместо самого сотрудника и сгруппируй по ней, а в суммируемых полях поставь дату увольнения с функцией МИНИМУМ. Ты так и делал?
9 Sonicleerock
 
14.11.13
09:47
(8) Сделал. Он всё равно не исключает тех, кто был когда то уволен и снова принят с заведением новой записи в "СотрудникиОрганизации" Я понимаю, что бредовую вещь сейчас хочу сделать, но её таки просят реализовать...
10 МойКодУныл
 
14.11.13
10:15
(9) Вангую, что не там условие поставил. Вещь нормальная, но это именно физлица, а не сотрудники. Т.к. сотрудник правда новый, а вот человек тот же.

Вот запрос для ЗУПа, который корректно отрабатывает. Если физлица заполнены у постоянных сотрудников(договорники другая тема).

ВЫБРАТЬ
    СотрудникиОрганизаций.Физлицо,
    МИНИМУМ(СотрудникиОрганизаций.ДатаУвольнения) КАК ДатаУвольнения
ПОМЕСТИТЬ ФизлицаПоДатамУвольнения
ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций

СГРУППИРОВАТЬ ПО
    СотрудникиОрганизаций.Физлицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ФизлицаПоДатамУвольнения.Физлицо,
    ФизлицаПоДатамУвольнения.ДатаУвольнения
ИЗ
    ФизлицаПоДатамУвольнения КАК ФизлицаПоДатамУвольнения
ГДЕ
    ФизлицаПоДатамУвольнения.ДатаУвольнения > ДАТАВРЕМЯ(1, 1, 1)
11 Sonicleerock
 
14.11.13
10:30
(10) пойду цикл писать :)
не хочет он у меня неих явно работающих из списка выкидывать.
12 IBTM
 
14.11.13
11:17
(5) да, не получится((, не понял сначало что нужно... а задачка интересная.
13 Пеппи
 
14.11.13
11:46
(12) Ничего интересного. Получаем список работающих сотрудников.
Получаем список уволенных сотрудников... кроме тех кто работает сейчас. Все можно сделать даже одним запросом
14 anaed
 
14.11.13
11:53
(0) в чем проблема собрать вт физлиц работающих сейчас и повешать условие "сотрудник.физлицо не в" ?
15 Sonicleerock
 
14.11.13
13:19
(13) вот я и не могу понять, как это реализовать?

(14) не совсем понял - как это условие будет отрабатываться?
Запутался. На пальцах пожалуйста. если можно.
16 anaed
 
14.11.13
14:20
(15) откуда я знаю какой у вас запрос

просто где то нужно воткнуть условие

УволенныйСотрудникИлиКакТамОнуВасНазывается.Физлицо НЕ В(
выбрать <ЗдесьПолучениеФизЛицАктуальныхСотрудников>)
17 Sonicleerock
 
14.11.13
14:27
(16) запрос в СКД

ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование,
    РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения,
    РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу,
    РаботникиОрганизацийСрезПоследних.Сотрудник.ТекущееПодразделениеОрганизации,
    Пользователи.Наименование
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
        ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование = Пользователи.Наименование



Кстати, "Пользователи.Наименование" Там потому, что идёт связь с СотрудникамиОрганизации, т.к. отчёт выводится по тем пользователям, которые работают в базе УПП, а не во всей компании вообще.
18 anaed
 
14.11.13
16:45
(17) вообще то у пользователей есть физлица ;)
19 Sonicleerock
 
14.11.13
16:51
(18) а дата увольнения у них прописана?)
20 anaed
 
15.11.13
09:27
(19) я к том что соединять можно не по строке, а по физлицу, которое является ссылкой, что более корректно.
21 Sonicleerock
 
15.11.13
13:26
(20) всё сделал, спасибо огромное за (16)
22 User_Agronom
 
15.11.13
13:32
(5) Наверное юзаешь неправильно?