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

Итог по колонке(С формулой)

Автор Лерик, 29 дек 2014, 15:40

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

Лерик

Процедура ХроническаяЗаболеваемость0()
 
Тз = СоздатьОбъект("ТаблицаЗначений");   
Тз.НоваяКолонка("Заболевание");
Тз.НоваяКолонка("Диагноз");
Тз.НоваяКолонка("КолНозФорм");
Тз.НоваяКолонка("КолПаталогия");
Тз.НоваяКолонка("Номер","Число");
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ХрЗаб");                     
Таб.Очистить();
Таб.ВывестиСекцию("Шапка");

 
Тз3 = СоздатьОбъект("ТаблицаЗначений");   
Тз3.НоваяКолонка("Заболевание");
Тз3.НоваяКолонка("Код");    
   
   Спр = СоздатьОбъект("Справочник.Заболевания");
   Спр.ВыбратьЭлементы();           
       Пока Спр.ПолучитьЭлемент()=1 Цикл
      Если Спр.ЭтоГруппа()=0 тогда
         Продолжить;
      КонецЕсли;
      Если Спр.ПометкаУдаления()=1 тогда
         Продолжить;
      КонецЕсли;
      Тз3.НоваяСтрока();
      Тз3.Код = Спр.Код;
      Тз3.Заболевание = Спр.Наименование;
      
      КонецЦикла;

Док=СоздатьОбъект("Документ.ЗаболеваемостьХроническая"); 
Док.Выбратьдокументы(НачГода(ДатаДок),КонГода(ДатаДок));
Пока Док.ПолучитьДокумент()=1 Цикл
   Если Док.Проведен()=0 тогда
      Продолжить;
   КонецЕсли;
   Если Док.КоличествоСтрок()=0 тогда
      Продолжить;
   КонецЕсли;
   //Тз.НоваяСтрока();
   //Тз.Сад = Док.Сад.код;
   Док.ВыбратьСтроки();
   Пока Док.ПолучитьСтроку()=1 Цикл
      Тз.НоваяСтрока();   
      Тз.Заболевание  = Док.Диагноз.Родитель;   //родитель
      Тз.КолНозФорм   = Док.КолНозФорм;
      Тз.КолПаталогия = Док.КолПаталогия;
      Тз.Номер = Док.Диагноз.Родитель.Код;
         КонецЦикла;
   //КолНозФорм
КонецЦикла;   
    //но=но+1;
   Тз.Свернуть("Заболевание,Номер","КолНозФорм,КолПаталогия");
   Тз.Сортировать("+Номер");//("Номер","КолНозФорм,КолПаталогия");
   
       
   Тз0 = СоздатьОбъект("ТаблицаЗначений"); 
   Тз0.НоваяКолонка("Заболевание");
   Тз0.НоваяКолонка("Код","Число");
   Тз0.НоваяКолонка("ГрОтчЗаб","Число");
   Тз0.НоваяКолонка("ЗабЯслиСл","Число");
   Тз0.НоваяКолонка("ЗабЯслиДн","Число");
   Тз0.НоваяКолонка("ЗабСадСл","Число");
   Тз0.НоваяКолонка("ЗабСадДн","Число");
   Тз0.НоваяКолонка("ЗабСл","Число");
   Тз0.НоваяКолонка("ЗабДн","Число");
   Тз0.НоваяКолонка("ЗабЯслиСл1","Число");
   Тз0.НоваяКолонка("ЗабЯслиДн1","Число");
   Тз0.НоваяКолонка("ЗабСадСл1","Число");
   Тз0.НоваяКолонка("ЗабСадДн1","Число");
   Тз0.НоваяКолонка("ЗабСл1","Число");
   Тз0.НоваяКолонка("ЗабДн1","Число");
   
   СрСпис =0;
   Мес1=1;
   Мес2=1;
   Док=СоздатьОбъект("Документ.Заболеваемость"); 
   Док.Выбратьдокументы(НачГода(ДатаДок),КонГода(ДатаДок));
   Пока Док.ПолучитьДокумент()=1 Цикл
      Если Док.Проведен()=0 тогда
         Продолжить;
      КонецЕсли;
      Если Док.КоличествоСтрок()=0 тогда
         Продолжить;
      КонецЕсли;
      СрСписЯ = СрСписЯ + Док.СписЯсли;
      СрСписС = СрСписС + Док.СписСад;
      СрСпис =  СрСписЯ + СрСписС;
      Док.ВыбратьСтроки();
      Пока Док.ПолучитьСтроку()=1 Цикл
         Тз0.НоваяСтрока();
         Тз0.Код = Док.Заболевание.Код;
         Тз0.ГрОтчЗаб = Док.Заболевание.ГрОтчЗаболев.Код;
         Мес2= ДатаМесяц(Док.ДатаДок);
         
         Тз0.Заболевание = Док.Заболевание;
         Тз0.ЗабСл = Док.БолезньСл+Док.БолезньЧБДСл;//+Док.БДомаСл+Док.БДомаЧБДСл;
         Тз0.ЗабДн = Док.БолезньДн+Док.БолезньЧБДДн;//+Док.БДомаДн+Док.БДомаЧБДДн;
         Если Док.ВозрастнаяГруппа=Перечисление.ВозрастнаяГруппа.Ясли тогда
            Тз0.ЗабЯслиСл = Док.БолезньСл+Док.БолезньЧБДСл;//+Док.БДомаСл+Док.БДомаЧБДСл;
            Тз0.ЗабЯслиДн = Док.БолезньДн+Док.БолезньЧБДДн;//+Док.БДомаДн+Док.БДомаЧБДДн;
         КонецЕсли;
         Тз0.ЗабСадСл = Тз0.ЗабСл-Тз0.ЗабЯслиСл;
         Тз0.ЗабСадДн = Тз0.ЗабДн-Тз0.ЗабЯслиДн;
      КонецЦикла;
   КонецЦикла;
   КоМес=Мес2-Мес1+1;
   СрСпис = Окр(СрСпис/КоМес,0,1) ;
   Тз0.Свернуть("ГрОтчЗаб,Код,Заболевание","ЗабЯслиСл,ЗабЯслиДн,ЗабСадСл,ЗабСадДн,ЗабСл,ЗабДн,ЗабЯслиСл1,ЗабЯслиДн1,ЗабСадСл1,ЗабСадДн1,ЗабСл1,ЗабДн1"); 
   ИтоУровД=0;
   ИтогСтруктура=0;
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("ХрЗаб");
   Таб.Очистить();
    Таб.ВывестиСекцию("Шапка");
    Тз.ВыбратьСтроки();   
    Пока Тз.ПолучитьСтроку() = 1 Цикл
      //н=н+1;
      УровеньД = ?(СрСпис=0,0,Тз.КолНозФорм*1000/СрСпис); 
      СтруктураД = Тз.КолНозФорм*100/Тз.Итог("КолНозФорм");
      УровеньПаталогия = ?(СрСпис=0,0,Тз.КолПаталогия*1000/СрСпис);
      СтруктураПаталогия = Тз.КолПаталогия*100/Тз.Итог("КолПаталогия");
      ИтоУровД=Тз.Итог("КолНозФорм")*1000/СрСпис; 
      УровеньПат= Тз.Итог("КолПаталогия")*1000/СрСпис;
      ИтогСтруктура=Тз.Итог("СтруктураД")+СтруктураД;?????:dfbbdrfb:
      Таб.ВывестиСекцию("Строка"); 
   КонецЦикла;   
   
   
Таб.ВывестиСекцию("Строка");
Таб.ВывестиСекцию("Итого");   
Таб.ПараметрыСтраницы(1,,,0,0,0,0,,,1,,);     
Таб.Защита(1);
Таб.Показать();   
КонецПроцедуры
Есть процедура, но итог колонки не выводится ,Пробовала варианты предложенные програмистом специалистом, но либ я тупа, либо я блондинка.
Предложенные вариации.
Тз.Итог("СтруктураД")(это писала в таблице отчета)
ИтогоСтрук=Тз.Итог("СтруктураД")+СтркутураД;
изменяла на сумму Итог

Herby

Название процедуры полностью соответствует ее содержимому :) 

В методе Итог() нужно указывать название колонки таблицы ТЗ, по которой вам необходимо вычислить ИТОГ.
А "СтруктураД" - это не колонка, это просто переменная, в которую вы присваиваете результат каких-то вычислений.

Если этот вариант предложил вам программист, то значит он Блондинка )

Лерик

Благодарю , :nhsrm:, Что , Так все плохо? много ошибок ??

Теги:

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

Рейтинг@Mail.ru

Поиск