Имя: Пароль:
1C
 
Зарплата:Ввод данных СЗВ4.Не понятна логика расчета кол-ва дней?(ошибка?)
0 xzorkiix
 
25.12.09
16:50
Значит так. Выявили непонятный порядок расчета кол-ва дней, по сути одной формулы. и так код в студию:

ВЫБРАТЬ
ЕСТЬNULL(СУММА(ВЫБОР
   КОГДА ФактическийПериодДействия.ВидРасчета.ВидСтажаСЗВ4 = ЗНАЧЕНИЕ(Перечисление.ВидыСтажаСЗВ4.ВременнаяНетрудоспособность)
    ТОГДА ВЫБОР
      КОГДА ФактическийПериодДействия.Сторно
       ТОГДА -(РАЗНОСТЬДАТ(ФактическийПериодДействия.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1), МЕСЯЦ) * 30 + ДЕНЬ(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1)) - ДЕНЬ(ФактическийПериодДействия.ПериодДействияНачало))
      ИНАЧЕ РАЗНОСТЬДАТ(ФактическийПериодДействия.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1), МЕСЯЦ) * 30 + ДЕНЬ(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1)) - ДЕНЬ(ФактическийПериодДействия.ПериодДействияНачало)
     КОНЕЦ
   ИНАЧЕ 0
  КОНЕЦ), 0) КАК ДниБолезни,
ЕСТЬNULL(СУММА(ВЫБОР
   КОГДА ФактическийПериодДействия.ВидРасчета.ВидСтажаСЗВ4 = ЗНАЧЕНИЕ(Перечисление.ВидыСтажаСЗВ4.ОтпускБезСохраненияЗарплаты)
    ТОГДА ВЫБОР
      КОГДА ФактическийПериодДействия.Сторно
       ТОГДА -(РАЗНОСТЬДАТ(ФактическийПериодДействия.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1), МЕСЯЦ) * 30 + ДЕНЬ(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1)) - ДЕНЬ(ФактическийПериодДействия.ПериодДействияНачало))
      ИНАЧЕ РАЗНОСТЬДАТ(ФактическийПериодДействия.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1), МЕСЯЦ) * 30 + ДЕНЬ(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1)) - ДЕНЬ(ФактическийПериодДействия.ПериодДействияНачало)
     КОНЕЦ
   ИНАЧЕ 0
  КОНЕЦ), 0) КАК ДниОтпуска
ИЗ
РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия(
  Организация = &ГоловнаяОрганизация
   И ФизЛицо = &ФизЛицо
   И Сотрудник.ВидДоговора = &ТрудовойДоговор
   И Сотрудник.ВидЗанятости <> &ВнутреннееСовместительство
   И ОбособленноеПодразделение = &ОбособленноеПодразделение
   И ВидРасчета.ВидСтажаСЗВ4 В (ЗНАЧЕНИЕ(Перечисление.ВидыСтажаСЗВ4.ВременнаяНетрудоспособность), ЗНАЧЕНИЕ(Перечисление.ВидыСтажаСЗВ4.ОтпускБезСохраненияЗарплаты))
   И (ПериодДействия МЕЖДУ &НачалоГода И &КонецГода)) КАК ФактическийПериодДействия

Сомнение вызывает вот этот код:

РАЗНОСТЬДАТ(ФактическийПериодДействия.ПериодДействияНачало, ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1), МЕСЯЦ) * 30 + ДЕНЬ(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(ФактическийПериодДействия.ПериодДействияКонец, ДЕНЬ), СЕКУНДА, 1)) - ДЕНЬ(ФактическийПериодДействия.ПериодДействияНачало)


При такой математики когда ПериодДействияНачало = 27.07, а ФактическийПериодДействия.ПериодДействияКонец = 31.07, количество дней будет ровно 2, а не 3 (проверено на пальцах )).Т.е. проподает день если конец периода приходится на 31ое число.

Внимание, знатоки, вопрос:
с какого хулахупа в запросе разность дней берется из расчета 30 дней в месяце, а не простым РАЗНОСТЬДАТ?

В понедельник попробуем рульнуть с тех.поддержкой, но пока хотелось бы услышать еще чье-нибудь мнение
1 xzorkiix
 
25.12.09
16:59
(0) опечатка - если период с 29.07 по 31.07 = 2 (с какого? спрашивается так считать)
3 Armando
 
26.12.09
17:38
Для расчета стажа используется 30 дней в одном месяце
4 xzorkiix
 
26.12.09
19:13
(3) но этот код используют для расчета количества больничных и дней отпуска за период, тем самым теряются дни..

т.е. так и должно быть?
5 xzorkiix
 
26.12.09
20:06
Период работы - в данном случае выделено два периода работы:
                  По временной нетрудоспособности (мес. дн.) - указывается суммарное время в месяцах и днях периодов временной нетрудоспособности за отчетный год
                  Отпуск без сохранения заработной платы (мес. дн.) - указывается суммарное время в месяцах и днях нахождения в отпусках без сохранения заработной платы. Период неоплачиваемой нетрудоспособности также включается в период отпуска без сохранения заработной платы.

здесь про то что месяц "средневзвешенный" т.е. 30 дней не сказано. смотрю сайт ПФР
6 xzorkiix
 
28.12.09
09:02
апп
7 Трудоголик
 
28.12.09
19:38
чуть-чуть OFF: а кто-нить печатал Табель за декабрь? там КонецПериода = 27.12.09
8 Ygich
 
28.12.09
22:26
не я один с этим мучаюсь ))
v8: ЗУП 2.5.19.3. Заполнения стажа в СЗВ 4-1
9 Ygich
 
28.12.09
22:30
(7) сколько раз было. табель печатается по текущую дату. передвинь рабочую дату
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn