7.7 вывести итог общий и убрать пустые значения в отчете

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем AD1986, 9 янв 2014.

  1. TopicStarter Overlay
    AD1986
    Offline

    AD1986 Опытный в 1С

    Регистрация:
    8 фев 2011
    Сообщения:
    138
    Симпатии:
    0
    Баллы:
    26
    Добрый день подскажите пожалуйста етсь отчет формирует основные средства по молу и делает итог по молу , содержания золота , сребра и.т.п как сделатьт общий итог по всем молам в конце и еще маленький маленький вопрос есть содержание золота ,сребера и.т.п где по 0 как сделать что бы не выводить данные строки. заранее очень благодарен.Код присуствует

    Код:
    Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    
    ТЗОсновные =СоздатьОбъект("ТаблицаЗначений");
    ТЗОсновные.НоваяКолонка("ИнвНомер","Число");
    ТЗОсновные.НоваяКолонка("СД","Число");
    ТЗОсновные.НоваяКолонка("Товар","Справочник.ОсновныеСредства");
    ТЗОсновные.НоваяКолонка("Наименование","Строка");
    ТЗОсновные.НоваяКолонка("Шифр","Справочник.НормыАмортизации");
    ТЗОсновные.НоваяКолонка("Золото","Строка");
    ТЗОсновные.НоваяКолонка("Платина","Строка");
    ТЗОсновные.НоваяКолонка("Серебро","Строка");
    ТЗОсновные.НоваяКолонка("ПлатГруппа","Строка");
    ТЗОсновные.НоваяКолонка("МОЛ","Справочник.МОЛ");
    ТЗОсновные.НоваяКолонка("Сум1","Число");
    ТЗОсновные.НоваяКолонка("Сум2","Число");
    ТЗОсновные.НоваяКолонка("Сум3","Число");
    
    Т = СоздатьОбъект("Таблица");
    Т.ВывестиСекцию("Шапка");
    
    Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ВключатьСубсчета(0,0);
    Ит.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства);
    
    Ит.ВыполнитьЗапрос(ДатаДок,,,,,,,5);
    Ит.ВыбратьСчета();
    СпрОСнСредства = СоздатьОБъект("Справочник.ОсновныеСредства");  ;
    Пока Ит.ПолучитьСчет()=1 цикл
    Если (Ит.Счет=СчетПоКоду("01")) Тогда
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(ЗапросПоДвижениям)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОсновныеСредства = Справочник.ОсновныеСредства.ТекущийЭлемент;
    |Группировка ОсновныеСредствам упорядочить по ОсновныеСредства.Мол;
    |"//}}ЗАПРОС
    ; 
    Ит.ВыбратьСубконто(1);
    
    Пока Ит.ПолучитьСубконто(1)=1 Цикл   
    Ит.ВыбратьСубконто(1,,,,,1);	  
    Пока Ит.ПолучитьСубконто(1)=1 Цикл 
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(ЗапросПоДвижениям) 
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОсновныеСредства = Справочник.ОсновныеСредства.Код;
    |Группировка ОсновныеСредства упорядочить по ОсновныеСредства.Мол;
    |";//}}ЗАПРО
    Сум1=0;
    Сум2=0;   
    Сум3=0;
    Сум4=0;
    Товар=Ит.Субконто(1);
    Сум1=Ит.СНД("С")-Ит.СНК("С");
    Сум2=Ит.ДО("С");
    Сум3=Ит.КО("С");
    Сум4=Ит.СКД("С")-Ит.СКК("С");
    Цена=(Сум1+Сум2);
    ТЗОсновные.НоваяСтрока();
    ТЗОсновные.ИнвНомер = Число(Товар.Код);
    ТЗОсновные.Наименование = Товар.Наименование;
    ТЗОсновные.Шифр = Товар.Шифр;
    ТЗОсновные.Золото = Товар.Золото;
    ТЗОсновные.Серебро = Товар.Серебро;
    ТЗОсновные.Платина = Товар.Платина;
    ТЗОсновные.СД = Товар.СД;
    ТЗОсновные.ПлатГруппа = Товар.ПлатГруппа;
    ТЗОсновные.МОЛ = Товар.Мол.Получить(ДатаДок);
    ТЗОсновные.Сум1 = Сум1;
    ТЗОсновные.Сум2 = Сум2;
    ТЗОсновные.Сум3 = Сум3;
    ТЗОсновные.Товар = Товар;
    
    КонецЦикла;
    КонецЦикла;			
    Конецесли;
    КонецЦикла;
    
    ТЗОсновные.Сортировать("МОЛ+,ИнвНомер+");
    
    ТЗОсновные.ВыбратьСтроки(); 
    
    Т.вывестиСекцию("Строка");
    ИтогЗолото  =0;
    ИтогСеребро =0;
    ИтогПлатина =0;
    ИтогПалладий=0;
    ТекМол="";
    Пока ТЗОсновные.ПолучитьСтроку() = 1 Цикл
    
    Если ТекМол<>ТЗОсновные.Мол тогда
    Если ТекМол<>"" тогда
    Т.вывестиСекцию("Итог");
    ИтогЗолото  =0;
    ИтогСеребро =0;
    ИтогПлатина =0;
    ИтогПалладий=0;
    КонецЕсли;
    Т.вывестиСекцию("МОЛ"); 
    ТекМол =  ТЗОсновные.Мол;	
    КонецЕсли;
    Если ((ТЗОсновные.Сум1+ТЗОсновные.Сум2)<>0) или (ТЗОсновные.Сум3<>0) Тогда
    
    Нпп=Нпп+1;
    
    Т.вывестиСекцию("Данные");
    ИтогЗолото  =ИтогЗолото+ТЗОсновные.Золото;
    ИтогСеребро =ИтогСеребро+ТЗОсновные.Серебро;
    ИтогПлатина =ИтогПлатина+ТЗОсновные.Платина;
    ИтогПалладий=ИтогПалладий+ТЗОсновные.ПлатГруппа;
    КонецЕсли;
    КонецЦикла;
    Т.вывестиСекцию("Итог");
    Т.вывестиСекцию("ИтогОбщ");
    Т.ТолькоПросмотр(1);			 
    Т.ПараметрыСтраницы(1,100,1,0,0,0,0,,,1); 
    
    Т.ПовторятьПриПечатиСтроки(4,4);
    Т.Опции(0,0,4,0);
    Т.ОбластьПечати(2);
    Т.Показать("","");
    Ит = 0;
    КонецПроцедуры
    ДатаДок=РабочаяДата();
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
      Если ТекМол<>ТЗОсновные.Мол тогда
    \\\
    Если ТекМол<>"" тогда
    Т.вывестиСекцию("Итог");
    ИтогЗолото  =0;
    ИтогСеребро =0;
    ИтогПлатина =0;
    ИтогПалладий=0;
    КонецЕсли;
    Т.вывестиСекцию("МОЛ");
    ТекМол =  ТЗОсновные.Мол;   
    КонецЕсли;
    //1
    Если ТЗОсновные.Золото+ТЗОсновные.Серебро=0 Тогда
    Продолжить;
    КонецЕсли;
    //2
    Если ((ТЗОсновные.Сум1+ТЗОсновные.Сум2)<>0) или (ТЗОсновные.Сум3<>0) Тогда
    
    Нпп=Нпп+1;
    .......
    

Поделиться этой страницей