Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сумма по таблицам.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Sergyk
Здравствуйте, уважаемые.
Помогите решить проблему, есть документ полностью с нуля создан и печатная форма для него. Нужно сделать, чтоб под каждой таблицей/секцией была сумма по каждому виду ТМЦ. Возможно кто-то сможет помочь, буду очень благодарен.
Версия 1с 7.7 (сетевая).
Конфиг Бухгалтерский учет для Украины 7.70.288.
Модуль документа имеет такой вид:
// ===============================  
Процедура ВводНового(Признак)
    Если Признак = 1 Тогда
        глУстановитьНомерДокумента(Контекст);
        Возврат;
    КонецЕсли;                
    Фирма = глВосстановитьЗначение(,"БазФирма");  
КонецПроцедуры

Процедура ИзмФирма()
    глУстановитьНомерДокумента(Контекст);
КонецПроцедуры  

Процедура ИзмДатаДок()
    Дата1 = ДатаДок;
КонецПроцедуры  


Процедура ИзмОперации()
    КодОпер = ТМЦ.Артикул;
    Механик = ТМЦ.Механик;
    Ед = ТМЦ.БазЕдиница;
    Кво = 1;
    Нормогодини = ТМЦ.Нормогодини;
КонецПроцедуры

Процедура ИзмНормогодини()
        СуммаБезНДС = Кво * Нормогодини;
        СуммаБезНДСС = СуммаБезНДС - (СуммаБезНДС * Ск);
КонецПроцедуры
    
Процедура ИзмКво()  
        ИзмНормогодини();  
КонецПроцедуры               
    
Процедура ИзмСк()
        СуммаБезНДСС = (Кво * Нормогодини) - (Ск * Кво * Нормогодини);
КонецПроцедуры     

Процедура ВводНаОсновании(Док)
    // ввод на основании договора
    //Фирма = Док.Фирма;
    //глУстановитьНомерДокумента(Контекст);
    //Маршрут = Док. Маршрут;  
    //Украина = Док.Украина;
    //Експедитор = Док.Експедитор;
    //Если Експедитор <> 1 Тогда
    //    Перевізник = 1;
    //КонецЕсли;
    //Контрагент = Док.Контрагент;
    //Автомобиль = Док.Автомобиль;
    //Цена = Док.Цена;
    //ДатаЗавантаж = Док.ДатаЗавантаж;
    //ДатаРозвантаж = Док.ДатаРозвантаж;  
    //ВидзагРоз = Док.ВидзагРоз;
    //ВидОплаты = Док.ВидОплаты;
    //Если Украина <> 1 Тогда
    //    ЗеленаяКартка = 1;
    //КонецЕсли;
КонецПроцедуры
                            
Процедура ИзмКонтрагент()
    Замовник = Контрагент;
КонецПроцедуры    
  
Процедура Печать()  
    


    
    

    глУстПропись(Гривня,"");
//    Лицо = Фирма.Директор.Получить(ДатаДок);
    Таб = СоздатьОбъект("Таблица");
    Если Гарантия = 1  Тогда
        Таб.ИсходнаяТаблица("НарядЗамовленняГарантия");
    Иначе
        Таб.ИсходнаяТаблица("НарядЗамовлення");
    КонецЕсли;
    Таб.ВывестиСекцию("Заголовок");  
    Таб.ВывестиСекцию("Шапка");
    Таб.ВывестиСекцию("Таблица1");
    Ном = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Услуга Тогда
            Ном = Ном + 1;
            Таб.ВывестиСекцию("Строка1");  
        КонецЕсли;
    КонецЦикла;
        
    

  
    Таб.ВывестиСекцию("Таблица2");
    Ном = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Запчасти Тогда
            Ном = Ном + 1;
            Таб.ВывестиСекцию("Строка2");
        КонецЕсли;
    КонецЦикла;
    
    Таб.ВывестиСекцию("Таблица3");
    Ном = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Материал Тогда
            Ном = Ном + 1;
            Таб.ВывестиСекцию("Строка3");
        КонецЕсли;
    КонецЦикла;  
    СуммаСНДС = Итог("СуммаБезНДС") + (Итог("СуммаБезНДС") * 0.2);
    Таб.ВывестиСекцию("Конец");
    Таб.ВывестиСекцию("Реквизити1");
    
    Таб.НоваяСтраница();
    
    
    Таб.ВывестиСекцию("Заголовок");  
    Таб.ВывестиСекцию("Шапка");
    Таб.ВывестиСекцию("Таблица1");
    Ном = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Услуга Тогда
            Ном = Ном + 1;
            Таб.ВывестиСекцию("Строка1");  
            
        КонецЕсли;
    КонецЦикла;      
    
    Таб.ВывестиСекцию("Таблица2");
    Ном = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Запчасти Тогда
            Ном = Ном + 1;
            Таб.ВывестиСекцию("Строка2");
        КонецЕсли;
    КонецЦикла;
    
    Таб.ВывестиСекцию("Таблица3");
    Ном = 0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
        Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Материал Тогда
            Ном = Ном + 1;
            Таб.ВывестиСекцию("Строка3");
        КонецЕсли;
    КонецЦикла;  
    СуммаСНДС = Итог("СуммаБезНДС") + (Итог("СуммаБезНДС") * 0.2);
    Таб.ВывестиСекцию("Конец");
    Таб.ВывестиСекцию("Реквизити2");
    
//    //Таб.ВывестиСекцию("АдресЗагрузки");
    Таб.Опции(0,0,0,0,"");
    //Таб.Защита(Константа.ФлагЗащитыТаблиц);
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Наряд-Замовлення ","");
КонецПроцедуры  


Процедура Печать2()  

    глУстПропись(Гривня,"");

    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("ВтораяСтраница");                                          
    Таб.ВывестиСекцию("Текст");
    
    Таб.НоваяСтраница();      
    
    Таб.ВывестиСекцию("Текст2");
    Таб.ПараметрыСтраницы(1,,,,,,,,);
    Таб.Опции(0,0,0,0,"");
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Наряд-Замовлення ","");
КонецПроцедуры  


Функция УстДоступность()
    Если Гарантия = 1 Тогда
        Форма.Примечание1.Доступность(1);
        Форма.Примечание2.Доступность(1);
        Форма.Примечание3.Доступность(1);
        Форма.Примечание4.Доступность(1);
        Форма.Примечание5.Доступность(1);
        Форма.Примечание6.Доступность(1);
    Иначе
        Форма.Примечание1.Доступность(0);
        Форма.Примечание2.Доступность(0);
        Форма.Примечание3.Доступность(0);
        Форма.Примечание4.Доступность(0);
        Форма.Примечание5.Доступность(0);
        Форма.Примечание6.Доступность(0);

    КонецЕсли;     
//    Если Украина = 1 Тогда
//        Форма.ЦМР.Доступность(0);
//    Иначе
//        Форма.ЦМР.Доступность(1);
//    КонецЕсли;                        
//
    Возврат "";
КонецФункции    

Процедура ПриЗаписи()
    Автор = Пользователь;
КонецПроцедуры

Вот вид печатной формы:

 ! 

Удален, потому что я не читаю правила!
 

Заранее спасибо.
Kutuzov
При выводе строки собирайте те суммы, что надо сложить и потом при выводе итога выводите то, что насобирали.
потом обнуляйте

или документ.итог(<поле>)
Sergyk
Цитата(Kutuzov @ 03.12.12, 12:12) необходимо зарегистрироваться для просмотра ссылки
При выводе строки собирайте те суммы, что надо сложить и потом при выводе итога выводите то, что насобирали.
потом обнуляйте

или документ.итог(<поле>)

Спасибо, попробую поискать документ.итог(<поле>), увы мои знания еще далеки от начинающего.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.