Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 08:58

внешний отчет зик 7.7. по больничным листам

Автор LED82, 27 июн 2012, 12:44

0 Пользователей и 1 гость просматривают эту тему.

LED82

Наваял внешний отчет по больничным листам почему берутся не полностью дни за счет фсс и за счет работодателя


Процедура ПриОткрытии()
   
    НачДата = НачМесяца(ДобавитьМесяц(ТекущаяДата(),-1));
   КонДата = КонМесяца(ДобавитьМесяц(ТекущаяДата(),-1));     
   
КонецПроцедуры   

Процедура Сформировать()
   
   Перем НПП;
   ВсегоДнейРаботодатель=0;
   ВсегоДнейФСС=0;
   ВсегоСуммаРаботодатель=0;
   ВсегоСуммаФСС=0;
   
   Запрос = СоздатьОбъект("Запрос");
   Таб = СоздатьОбъект("Таблица");
   Док = СоздатьОбъект("Документ");
   Таб.ВывестиСекцию("Шапка");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с НачДата по КонДата;
   |ОбрабатыватьДокументы Проведенные;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Сотр = ЖурналРасчетов.Зарплата.Объект;
   |Расч = ЖурналРасчетов.Зарплата.ВидРасч;
   |Дни = ЖурналРасчетов.Зарплата.Дни;
   |Рез = ЖурналРасчетов.Зарплата.Результат;
   |Док = ЖурналРасчетов.Зарплата.ТекущийДокумент;
   |Функция СуммаНачисления_1 = Сумма(Рез) когда ((Расч =ВидРасчета.ОплатаБЛс2011) или
   |      (Расч =ВидРасчета.ОтпускПоБеременностис2011) или
   |      (Расч =ВидРасчета.ОтпускПоБеременностиВозмещаемыйФССприЕНВДс2010) или
   |      (Расч =ВидРасчета.ОплатаБЛпоТравмес2010) или
   //
   |      (Расч =ВидРасчета.ОплатаБЛВозмещаемаяФССприЕНВДс2010) или
   |      (Расч =ВидРасчета.ОплатаБЛпоТравмес2010) или
   |       
   |(Расч =ВидРасчета.ОплатаБЛс2011) или
   |       (Расч= ВидРасчета.ОплатаБЛпоТравмес2011)или
   |      (Расч =ВидРасчета.ОтпускПоБеременностиВозмещаемыйФССприЕНВДс2010) или
   |      (Расч =ВидРасчета.ОтпускПоБеременностис2010));
   //
   |Функция СуммаНачисления_2 = Сумма(Рез) когда ((Расч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2010) или
   |      (Расч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяЕНВДс2010) или
   |      (Расч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011)или
   |       (Расч=  ВидРасчета.ОплатаБЛс2010));
   
   |Функция СуммаДней_1 = Сумма(Дни) когда ((Расч =ВидРасчета.ОплатаБЛс2011) или
   |       (Расч =ВидРасчета.ОтпускПоБеременностис2011) или
   |      (Расч =ВидРасчета.ОтпускПоБеременностиВозмещаемыйФССприЕНВДс2010) или
   |      (Расч =ВидРасчета.ОплатаБЛпоТравмес2010) или
   |       (Расч =ВидРасчета.ОплатаБЛВозмещаемаяФССприЕНВДс2010) или
   |      (Расч =ВидРасчета.ОплатаБЛпоТравмес2010) или
   |       (Расч =ВидРасчета.ОплатаБЛс2011) или
   |       (Расч= ВидРасчета.ОплатаБЛпоТравмес2011)или
   |      (Расч =ВидРасчета.ОтпускПоБеременностиВозмещаемыйФССприЕНВДс2010) или
   |      (Расч =ВидРасчета.ОтпускПоБеременностис2010));
   |       
   //
   |      
   |Функция СуммаДней_2 = Сумма(Дни) когда ((Расч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011) или 
|       (Расч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяЕНВДс2010) или
   |      (Расч = ВидРасчета.ОплатаБЛЗаСчетРаботодателяс2011)или
   |       (Расч=  ВидРасчета.ОплатаБЛс2010));
    |Группировка Сотр;
   |Группировка Док;
   |Условие (Расч.ВходитВГруппу(ГруппаРасчетов.БольничныеЛисты)=1);
   |"//}}ЗАПРОС
   ;
   
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;
   
   НПП = 0;

   Пока Запрос.Группировка("Сотр") = 1 Цикл
      //Если Запрос.Рез <>0 тогда
      НПП = НПП + 1;
      Таб.ВывестиСекцию("Данные");
      Пока Запрос.Группировка("Док") = 1 Цикл
         Док = Запрос.Док;
         Сер = Док.ПолучитьАтрибут("Серия");
         Нач = Док.ПолучитьАтрибут("Начало");
         Кон = Док.ПолучитьАтрибут("Окончание");
         ТБ = Док.ПолучитьАтрибут("ТипБолезни");
         Проц = Док.ПолучитьАтрибут("Процент");
          ВсегоДнейФСС=ВсегоДнейФСС+Запрос.СуммаДней_1;
         ВсегоДнейРаботодатель=ВсегоДнейРаботодатель+Запрос.СуммаДней_2;
         ВсегоСуммаФСС=ВсегоСуммаФСС+Запрос.СуммаНачисления_1;
         ВсегоСуммаРаботодатель=ВсегоСуммаРаботодатель+Запрос.СуммаНачисления_2;
         Таб.ВывестиСекцию("Расчеты");
      КонецЦикла;
      //КонецЕсли;
   КонецЦикла;
   
   Таб.ВывестиСекцию("Итоги");
   Таб.Опции(0,0,0,0);
   Таб.ТолькоПросмотр(1);
   Таб.Показать();
   Сигнал();

КонецПроцедуры

LED82

например человек болеет 10 дней получается по логике что 3 дня за счет работодателя и 7 за счет фсс а в отчетике отображается 3 дня работодатель и 5 фсс почему теряютс два дня непойму

LED82


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск