Имя: Пароль:
1C
1С v8
Работа с регистром "Сотрудники организаций"
0 YA_gagarina
 
13.04.15
08:06
Добрый день! Ребята, подскажите пожалуйста в следующем вопросе.
Есть РегСв "Кадровая история по юрлицам" (сотрудники организаций), Регистратором для данного регистра является документ "Кадровые перемещения".
Как видно из скриншота,сотрудника временно переводим из Подразделения "МОТО" в "АВТО" с 1.06.2014 по 22.06.2014.
В итоге имеем одну запись в регистре. После возвращения на основную должность и подразделение, новая строка в регистр не добавляется.
Сейчас наткнулась на отчет, в котором как параметр "Подразделение", задан реквизит этого регистра: "Подразделение".
А теперь вопрос, получается если мы сейчас сформируем отчет, по подразделению1 на сегодняшнюю дату тогда Викторович туда попадет, хотя по логике он должен быть сегодня в подразделении2 в "МОТО".
Подскажите, как обойти эту ситуёвину =(( Не могу мысль поймать. Выручайте) вот картинка
http://f-picture.net/lfp/s014.radikal.ru/i329/1504/40/236c5c850123.png/htm
1 kosts
 
13.04.15
08:14
(0) Надо делать срез последних и проверять реквизиты ПериодЗавершения, Подразделение завершения. Смотри примеры как в типовой.
2 SeraFim
 
13.04.15
08:16
|ВЫБОР
        |        КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
        |                И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Период
        |            ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
        |        ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
        |    КОНЕЦ
3 YA_gagarina
 
13.04.15
08:21
Ребят, с выборкой проблем нет, я использую похожие условия, суть вот в этом отчете по условию, если заполнен реквизит подразделение, тогда выбирается по подразделению &НаДату. Как видим из условия, используется значение реквизита "ПодразделениеОрганизации", а это как раз колонка в регистре "ПОДРАЗДЕЛЕНИЕ", видно на скрине, получается всегда будет подразделение1, даже если человек работает в подразделение2. ВРоде бы сейчас понятно объяснила)

Запрос.УстановитьПараметр("Подразделение",Подразделение);
условие = "И РаботникиОрганизиацииСРезПоследних.ПодразделениеОрганизации в ИЕРАРХИИ (&Подразделение);
4 kosts
 
13.04.15
08:22
(3) Мы поняли. С помощью похожего кода из (2) можно узнать где сотрудник фактически находится.
5 kosts
 
13.04.15
08:24
Что-то в этом роде

ВЫБОР
                КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
                        И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Период
                    ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеЗавершения
                ИНАЧЕ РаботникиОрганизацийСрезПоследних.Подразделение
    КОНЕЦ в ИЕРАРХИИ (&Подразделение)
6 YA_gagarina
 
13.04.15
08:25
(4) вот вот! вот это я хотела, сама, что-то поплыла совсем )
7 YA_gagarina
 
13.04.15
08:34

странно, но не сработало.
ВЫБОР
    КОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения <> &ПустаяДолжность
            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения < &НаДату
        ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеЗавершения
    КОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения <> &ПустаяДолжность
            И РаботникиОрганизацийСрезПоследних.ПериодЗавершения > &НаДату
        ТОГДА РаботникиОрганизацийСрезПоследних.Подразделение
    ИНАЧЕ РаботникиОрганизацийСрезПоследних.Подразделение
КОНЕЦ В ИЕРАРХИИ (&Подразделение)
8 YA_gagarina
 
13.04.15
08:37
сработа))БОльшое спасибо, ребята!