Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

ЗУП 3. Функция определения подразделения сотрудника на дату

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует