Головна порталу Дт-Кт  
Головна ДКНовиниПублікації ДКПередплатаДовідникиБланки, формиКонсультаціїДокументи


Розширений пошук по форуму

Сумма по таблицам.

Відправлено користувачем Sergykm 
Список форумів Список тем Нова темаПопередня тема Наступна тема
Сумма по таблицам.
Здравствуйте, уважаемые.
Помогите решить проблему, есть документ полностью с нуля создан и печатная форма для него. Нужно сделать, чтоб под каждой таблицей/секцией была сумма по каждому виду ТМЦ. Возможно кто-то сможет помочь, буду очень благодарен.
Версия 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);
//	КонецЕсли;                    	
//
	Возврат "";
КонецФункции    

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

Заранее спасибо.
Re: Сумма по таблицам.
Ну типа так для примера средней части:

СуммаПоСекцииБезНДС = 0;

Таб.ВывестиСекцию("Таблица2");
Ном = 0;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Запчасти Тогда
Ном = Ном + 1;
СуммаПоСекцииБезНДС = СуммаПоСекцииБезНДС + СуммаБезНДС;
Таб.ВывестиСекцию("Строка2");
КонецЕсли;
КонецЦикла;

// ++++ Дорисовать отдельную итоговую секцию на форме
// и вывести в нее значение полученное в СуммаПоСекцииБезНДС
// как раз здесь уже после цикла
Sergykm, документ вы сами создали?
Kreont, неправильный вариант, итоговую секцию надо за цикл выносить.


Хм... виноват, комментарии не прочел.
документ отдельный, но создавал его не я, если бы сам создавал, то вряд ли были бы такие вопросыsmiling smiley а так знаний не совсем достаточно, потому обратился за помощью.
Re: Сумма по таблицам.
Ну начнем тогда для начала:

1.создай архив базы!

2.внеси изменения как во 2-м посте
+ вывод самой секции в документ через например:
Таб.ВывестиСекцию("Итоги2");

3. Найди в том документе печатную форму: НарядЗамовлення (хотя что б потом ошибки не было и для НарядЗамовленняГарантия тоже нало будет так же добавить), и внизу добавь новую секцию (на глаз так будет):
1-6 колонки объедини + текст в них = "Проміжний підсумок: "
в 7-ю колонку "СуммаПоСекцииБезНДС" с типом Параметр.

4. И задай для нее имя по горизонтали: "Итоги2".

Я хз. как иначе рассказать smiling smiley
Quote
Kreont
Ну начнем тогда для начала:

1.создай архив базы!

2.внеси изменения как во 2-м посте
+ вывод самой секции в документ через например:
Таб.ВывестиСекцию("Итоги2");

3. Найди в том документе печатную форму: НарядЗамовлення (хотя что б потом ошибки не было и для НарядЗамовленняГарантия тоже нало будет так же добавить), и внизу добавь новую секцию (на глаз так будет):
1-6 колонки объедини + текст в них = "Проміжний підсумок: "
в 7-ю колонку "СуммаПоСекцииБезНДС" с типом Параметр.

4. И задай для нее имя по горизонтали: "Итоги2".

Я хз. как иначе рассказать smiling smiley
спасибо, буду пробовать=) я не программист конечно, но попытаюсь. Вдруг получится.
Огромное спасибо за помощь в любом случае!smileys with beer
Список форумів Список тем Нова темаПопередня тема Наступна тема
Вибачте, тільки зареєстровані користувачі можуть писати в цьому форумі.

Авторизуватись



Повідомлення, розміщені на форумах ДК-порталу, відображають лише особисту позицію авторів повідомлень.
Адміністрація форумів не несе відповідальності за їх зміст.

© 2023 "Дебет-Кредит", український бухгалтерський портал, web_dk [ @ ] gc.com.ua





0.00037399999999999