Имя: Пароль:
1C
1С v8
ЗУП запрос по документу: - отпуск по уходу за ребенком до полутора лет
0 Anna-Ain
 
25.11.11
16:27
Вот появилась такая задачка: В запросе нужно посчитать сколько дней человек отработал(за год)
Работа с документом -  отпуск по уходу за ребенком до полутора лет.
К примеру,
ДатаНачала = 28.10.2009
ДатаОкончания = 10.02.2011
Результат должен быть: 31.12.2011 - 10.02.2011, т. е. 324 дня

Вот сам запрос мой

 "ВЫБРАТЬ
   |РАЗНОСТЬДАТ(ВЫБОР        
   |        КОГДА ОтпускПоУходуЗаРебенком.ДатаОкончания > НАЧАЛОПЕРИОДА(&ТекущаяДата, ГОД)
   |           ТОГДА ОтпускПоУходуЗаРебенком.ДатаОкончания
   |        ИНАЧЕ НАЧАЛОПЕРИОДА(&ТекущаяДата, ГОД)
   |         КОНЕЦ, ВЫБОР
   |           КОГДА ОтпускПоУходуЗаРебенком.ДатаНачала < КОНЕЦПЕРИОДА(&ТекущаяДата, ГОД) И ОтпускПоУходуЗаРебенком.ДатаНачала <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |                 ТОГДА  ДОБАВИТЬКДАТЕ(ОтпускПоУходуЗаРебенком.ДатаНачала, ДЕНЬ, 1)
   |            ИНАЧЕ ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ТекущаяДата, ГОД),День,1)
   |         КОНЕЦ, ДЕНЬ) КАК КоличествоДней
   |ИЗ
   |  Документ.ОтпускПоУходуЗаРебенком КАК ОтпускПоУходуЗаРебенком
   |ГДЕ
   |  ОтпускПоУходуЗаРебенком.Проведен И
   |  ОтпускПоУходуЗаРебенком.Сотрудник = &Сотрудник";


Результат: - 469
не пойму, где ошибка(((
1 truba
 
25.11.11
17:03
скажи, а зачем конец года?
2 truba
 
25.11.11
17:03
скажи лучше что тебе изначально нужно. Или даже не тебе
3 Anna-Ain
 
25.11.11
17:13
мне надо посчитать премию за год сотрудникам, частный случай - сотрудница вышла из декретного 11.02.2011
надо вычислить, сколько дней она отработала в течение года
К примеру,
ДатаНачала = 28.10.2009
ДатаОкончания = 10.02.2011

Результат должен быть: 31.12.2011 - 10.02.2011, т. е. 324 дня
4 pavlika
 
25.11.11
17:17
(3) Премия как считается?
5 truba
 
25.11.11
17:20
выкладывай формулу премии
6 Anna-Ain
 
25.11.11
17:23
премия считается так: (ОВЗ + ОВД)*3/365*кол.отработанных дней в году
овд - оклад по воинск. должности
овз - по званию

расчет дней для сотрудников без отпуска по уходу: (нормально считается)

Запрос.Текст =
       "ВЫБРАТЬ
   |    РАЗНОСТЬДАТ(ВЫБОР
   |            КОГДА СотрудникиОрганизаций.ДатаПриемаНаРаботу > НАЧАЛОПЕРИОДА(&ТекущаяДата, ГОД)
   //|                ТОГДА СотрудникиОрганизаций.ДатаПриемаНаРаботу
   |            ИНАЧЕ НАЧАЛОПЕРИОДА(&ТекущаяДата, ГОД)
   |        КОНЕЦ, ВЫБОР
   |            КОГДА СотрудникиОрганизаций.ДатаУвольнения < КОНЕЦПЕРИОДА(&ТекущаяДата, ГОД) И СотрудникиОрганизаций.ДатаУвольнения<> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
   |                ТОГДА ДОБАВИТЬКДАТЕ(СотрудникиОрганизаций.ДатаУвольнения, ДЕНЬ, 1)
   |            ИНАЧЕ ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&ТекущаяДата, ГОД),День,1)
   |        КОНЕЦ, ДЕНЬ) КАК КоличествоДней,
   |        СотрудникиОрганизаций.ДатаУвольнения КАК ДатаУвольнения
   |ИЗ
   |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
   |ГДЕ
   |    СотрудникиОрганизаций.Ссылка = &Сотрудник";

по аналогии делала для тех, кто выходит из декрета в тек. году или наоборот уходит
7 truba
 
25.11.11
17:37
(6) а ничего на график накладывать не надо?
8 truba
 
25.11.11
17:38
вычитать за свой счет, невыходы разные...
9 truba
 
25.11.11
17:39
в отработанные дни входят больничные и прочие невыходы по причинам не зависящим от сотрудника?
10 pavlika
 
25.11.11
18:00
Новая премия за год с произвольной формулой расчета = [РасчетнаяБаза*3/365] и включить в РасчетнаяБаза = [ОВЗ + ОВД] ?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.