Имя: Пароль:
1C
1С v8
Как определить работает ли сотрудник на данный момент?
,
0 Zlussi
 
21.08.12
16:34
День добрый.
Есть ли типовая функция, при передаче в которую дату, сотрудника и организацию она возвращала бы информацию: работает ли данный сотрудник на эту дату в организации?
Программа: УПП 1.3
1 vicof
 
21.08.12
16:40
Срез последних по регистру состояние работников организаций
2 andrewks
 
21.08.12
17:09
(1) не всё так просто
3 Maxus43
 
21.08.12
17:13
Из ЗУПА выдрать типовой запрос, он на каждом шагу там, который определяет работающих людей на дату, там всё предусмотрено
4 andrewks
 
21.08.12
17:16
(3) думаю, в УПП тоже всё это есть (откуда выдрать), ма же зарплатный блок ЗУПовский, вроде
5 Maxus43
 
21.08.12
17:18
(4) да, упп) не заметил
6 Zlussi
 
22.08.12
09:24
А примеры где идет вызов функции можете подсказать?
(1) Срез последних по регистру ничего не дает, если человек уволен, то запрос возвращет последнее состояние (допустим отпуск)
7 tdm
 
22.08.12
09:26
(0) дата увольнения пустая или меньше даты запроса, не ? там вроде реквизитик такой в типовой есть в спр.сотрудники
8 Antipower
 
22.08.12
09:27
Что имеется под "работает"? Входит ли сотрудник в списочную численность? Или действительно работает (ни в отпуске, ни на больничном)?
9 shuhard
 
22.08.12
09:28
(6) не а
запрос возвращает последний регистратор - приказ об увольнении
10 Maxus43
 
22.08.12
09:29
Например так:
Функция ПолучитьФизлицаРаботниковПодразделенияНаДатуБезУволенных(Организация, ПодразделениеОрганизации = Неопределено, Дата, ФизЛица = Неопределено)
       
       Запрос = Новый Запрос();
       
       Запрос.УстановитьПараметр("Дата",                        Дата);
       Запрос.УстановитьПараметр("ГоловнаяОрганизация",        ОбщегоНазначения.ГоловнаяОрганизация(Организация));
       Запрос.УстановитьПараметр("ПодразделениеОрганизации",    ПодразделениеОрганизации);
       Запрос.УстановитьПараметр("ПоВсемФизлицам", Физлица = Неопределено);    
       Запрос.УстановитьПараметр("Физлица", Физлица);    
       
       Запрос.Текст = Запрос.Текст +
       "ВЫБРАТЬ РАЗРЕШЕННЫЕ
       |    РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо КАК Физлицо
       |ИЗ
       |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
       |            &Дата,
       |            Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
       |                И Организация = &ГоловнаяОрганизация
       |                И (&ПоВсемФизлицам
       |                    ИЛИ Сотрудник.Физлицо В (&Физлица))) КАК РаботникиОрганизацийСрезПоследних
       |ГДЕ
       |    ВЫБОР
       |            КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Дата
       |                    И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
       |                ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения
       |            ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
       |        КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
       |    И ВЫБОР
       |            КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &Дата
       |                    И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
       |                ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
       |            ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
       |        КОНЕЦ В ИЕРАРХИИ (&ПодразделениеОрганизации)";
       
   Возврат(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Физлицо"));    
   
КонецФункции

куча везде в блоке ЗУП запросов подобных
11 Zlussi
 
22.08.12
09:51
Спасибо
12 sergeev-ag-1977
 
22.08.12
10:14
Запрос запросом, но лучше системы видео наблюдения ничего нет !