Имя: Пароль:
1C
1С v8
ЗУП 3. Функция определения подразделения сотрудника на дату
0 егаис
 
08.11.18
08:40
Гуру ЗУП ,подскажите, есть ли функция типа глСотрудникРаботаетВПодразделении(Подразделение, Дата)?
Пишу обработку загрузки табеля, стоит задача разделять табель по сотруднику по подразделениям. Нужно ежедневно определять, работает ли сотрудник в выбранном подразделении.
Спасибо
1 егаис
 
08.11.18
09:00
понял, поще было написать функцию с запросом )
закрываем
2 Фрэнки
 
08.11.18
09:02
Но при обновлении типовой будет сохраняться риск словить глюк. А так все правильно - шлепаем произвольный текст запроса и задачу закрываем.
3 Amra
 
08.11.18
09:14
Кури КадровыйУчет.КадровыеДанныеСотрудников
4 Фрэнки
 
08.11.18
09:15
Функция КадровыеДанныеСотрудников(ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных = '00010101', ПоляОтбораПериодическихДанных = Неопределено, ФормироватьСПериодичностьДень = Истина) Экспорт
5 егаис
 
08.11.18
09:22
не стал заморачиваться

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

КонецФункции
6 Amra
 
08.11.18
09:23
(5) Садись, 2
7 Фрэнки
 
08.11.18
09:26
(6) дык, все правильно - 2 тысячи в час :-)
Нас все учили понемногу...
Хуяк, хуяк и в продакшн.
8 егаис
 
08.11.18
09:30
(7) 2000 в час это шикарно
(6) почему? речь про интервалы?
9 Serg_1960
 
08.11.18
09:31
10 егаис
 
08.11.18
09:32
(9) да уж, пример и запрос один в один )
11 егаис
 
08.11.18
09:33
Ок, использую КадровыеДанныеСотрудников, раз косячный запрос
12 Serg_1960
 
08.11.18
09:36
(10) Лучше почитай почему не рекомендуется использовать эти регистры, подумай. Кстати, подтверждаю - на моей памяти они уже пару раз изменялись.
13 Amra
 
08.11.18
09:38
(8) Временный перевод не учитывается в запросе, поэтому если у сотра был такой, то выдаст хрень)
14 егаис
 
08.11.18
12:42
не буду создавать новую тему, есть еще ламерский вопрос.
Как в ЗУП программно получить норму часов за месяц по сотруднику?
Закон Брукера: Даже маленькая практика стоит большой теории.