Имя: Пароль:
1C
1С v8
Стаж работы
0 fpopulaf
 
21.05.13
15:43
Помогите, не могу составить запрос для подсчёта стажа рабочих с учётом высокостных лет

ВЫБРАТЬ
   СотрудникиОрганизаций.Код,
   СотрудникиОрганизаций.Наименование,
       
   ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), МИНУТА)/525600)-0.499999 КАК ЧИСЛО(15,0)) КАК Лет,
   ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), ЧАС)/730)-0.499999 КАК ЧИСЛО(15,0)) - ВЫРАЗИТЬ(РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), ДЕНЬ)/365- 0.499999  КАК ЧИСЛО(5,0))*12   КАК Месяцев,
   ВЫБОР
   КОГДА
   ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), МИНУТА)/1440)-0.499999 КАК ЧИСЛО(15,0))-(ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), МИНУТА)/525600)-0.499999 КАК ЧИСЛО(15,0)))*365 - (ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), ЧАС)/730)-0.499999 КАК ЧИСЛО(15,0)) - ВЫРАЗИТЬ(РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), ДЕНЬ)/365- 0.499999  КАК ЧИСЛО(5,0))*12)*31 >0
   ТОГДА ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), МИНУТА)/1440)-0.499999 КАК ЧИСЛО(15,0))-(ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), МИНУТА)/525600)-0.499999 КАК ЧИСЛО(15,0)))*365 - (ВЫРАЗИТЬ((РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), ЧАС)/730)-0.499999 КАК ЧИСЛО(15,0)) - ВЫРАЗИТЬ(РАЗНОСТЬДАТ(СотрудникиОрганизаций.ДатаПриемаНаРаботу, ДАТАВРЕМЯ(2013, 05, 08), ДЕНЬ)/365- 0.499999  КАК ЧИСЛО(5,0))*12)*31
   ИНАЧЕ 0
   КОНЕЦ как Дней,
   
   

   
   
   СотрудникиОрганизаций.ДатаПриемаНаРаботу,
   СотрудникиОрганизаций.Актуальность
ИЗ
   Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
1 zak555
 
21.05.13
15:43
посмотри в ом зупа
2 fpopulaf
 
21.05.13
15:47
подскажите алгоритм написания запроса
3 Maxus43
 
21.05.13
15:49
>>с учётом высокостных лет
1c сама сообразит что високосные есть.
Просто разность дат в днях неправильно разве выдаёт?
4 zak555
 
21.05.13
15:50
ЛетСтажа    = 0;
МесяцевСтажа= 0;
ДнейСтажа    = 0;

ОбщегоНазначенияЗК.РазобратьРазностьДат(ДатаСобытия, ДатаНепрерывногоСтажа, ЛетСтажа, МесяцевСтажа, ДнейСтажа);
5 kosts
 
21.05.13
15:56
Вот так не правильно выдает?

ВЫБРАТЬ
   РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2010, 12, 23), ДАТАВРЕМЯ(2013, 5, 21), ДЕНЬ) КАК Поле1
6 fpopulaf
 
21.05.13
16:09
неа
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.