Имя: Пароль:
1C
1C 7.7
v7: Мужик проработал основным сотрудником 1 день. Как ЗАПРОСОМ за месяц его выбрать?
,
0 IgorTrifonov
 
02.12.11
14:41
Всем здрасьте!
   | Период с НачПериода по КонПериода;
   |        Сотрудник = Справочник.Сотрудники.ТекущийЭлемент;
   | СостояниеФизлица = Справочник.Сотрудники.СостояниеФизлица;  
   | ПодразделениеСотр= Справочник.Сотрудники.ОсновнойЭлемент.МестоРаботы.Подразделение.Родитель;
   | Группировка Сотрудник без групп;
   | Условие (Подразделение = ПодразделениеСотр);
   | Условие (СостояниеФизлица = Перечисление.СостояниеФизлица.СотрудникОсновной);

так не выбирается
1 IgorTrifonov
 
02.12.11
14:44
может быть не смотреть на состояние физ.лица, а потом в цикле анализировать основной он или нет
2 IgorTrifonov
 
02.12.11
14:45
но на какую дату? В общем вопросик!
3 vicof
 
02.12.11
14:49
не понял при чем тут период, если запрос по сотруднику
4 IgorTrifonov
 
02.12.11
14:59
(3) период убрал, всё равно не выбирается
5 IgorTrifonov
 
02.12.11
15:22
сделал так
   |        Сотрудник = Справочник.Сотрудники.ТекущийЭлемент;
   | ПодразделениеСотр= Справочник.Сотрудники.ОсновнойЭлемент.МестоРаботы.Подразделение.Родитель;
   | Группировка Сотрудник без групп;
   | Условие (Подразделение = ПодразделениеСотр);
   
   ...
   
   Пока Запрос.Группировка(1) = 1 Цикл
       дта01 = ВыбНачПериода;
       дта31 = ВыбКонПериода;
       дта__ = дта01 - 1;
       
       былОсновнымХотябыОдинДень = "нет";
       Пока дта__ < дта31 Цикл
            дта__ = дта__ + 1;
           Если  (Запрос.Сотрудник.СостояниеФизлица.Получить(дта__) = Перечисление.СостояниеФизлица.СотрудникОсновной)
               и (Запрос.Сотрудник.Ставка.Получить(дта__) > 0) Тогда
               былОсновнымХотябыОдинДень = "Да";  // берём только основных сотрудников
           КонецЕсли;
       КонецЦикла;
       
       Если былОсновнымХотябыОдинДень = "нет" Тогда
           Продолжить
       КонецЕсли;
   ...
выбирает правильно, правда несколько медленно
может быть у Вас есть нормальные варианты
подскажите пожалуйста
Спасибо.
6 fedoss
 
02.12.11
15:23
В запросе не получится. В ЗиКе же несколько мест где проверяется, был ли сотрудник штатным /сколько дней в месяце работал. (Например в отчете "Среднесписочная численность")
Что-то вроде
Если ШтатныйНаНачало ИЛИ ШтатныйнаКонец Тогда
  Работал
Иначе
  Периодический + ВыбратьЗначения
7 Storm911
 
05.12.11
15:29
КонПериода=ДатаРаботыЭтогоСотрудника тогда запрос выберет)
А так через "периодический".
Основная теорема систематики: Новые системы плодят новые проблемы.