Как вывести печатную форму, определенное количество раз

1. slava9119 21.05.18 18:58 Сейчас в теме
Здравствуйте, помогите пожалуйста решить вопрос, обработка выводит печатную форму определенное количество раз (сейчас указано просто число). Нужно сделать, чтобы при нажатии на кнопку печать, выводилась форма, в которой пользователь сам укажет нужное количество копий печатной формы.
Попытался сделать через ВвестиЧисло :

&НаСервере
Функция ПечатьНаСервере()
	ТабДок = Новый ТабличныйДокумент();
	Обработка = РеквизитФормыВЗначение("Объект");
	Макет = Обработка.ПолучитьМакет("Макет");
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ 
	|	cl_ВыпускГотовойПродукцииГотоваяПродукция.Номенклатура
	|ИЗ
	|	Документ.cl_ВыпускГотовойПродукции.ГотоваяПродукция КАК cl_ВыпускГотовойПродукцииГотоваяПродукция
	|ГДЕ
	|	cl_ВыпускГотовойПродукцииГотоваяПродукция.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка",документы.cl_ВыпускГотовойПродукции.НайтиПоНомеру("61 728",'20180101')); 
	РезультатЗапроса = Запрос.Выполнить();
	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	счетчик = 1 ;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		
	ПолученноеЧисло = 4;
		пока счетчик <= ПолученноеЧисло цикл
			ОбластьЗаголовок.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
			ТабДок.Вывести(ОбластьЗаголовок, ВыборкаДетальныеЗаписи.Уровень());
			счетчик = счетчик + 1 ;
			КонецЦикла;
	КонецЦикла;
Возврат(ТабДок) ;
	
КонецФункции
&НаКлиенте
Процедура Печать(Команда)
	
	ЧислоВведенноеПользователем() ;	
	
	ТабДок = ПечатьНаСервере();
	ТабДок.Показать();
КонецПроцедуры

&НаКлиенте
Функция ЧислоВведенноеПользователем()
Перем Число;
	ВвестиЧисло(Число, "Введите число"); 
 	ВведенноеЧисло = Число;
	Возврат Число ;
КонецФункции 
Показать


Возможно ли ЧислоВведенноеПользователем() передать в ПолученноеЧисло ? Спасибо
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. user705522_constantin_h 35 21.05.18 19:13 Сейчас в теме
(1)
ЧислоВведенноеПользователем() ; 

Это Функция, значит должно быть:
КолКопий = ЧислоВведенноеПользователем() ; 


Далее, передайте КолКопий в ПечатьНаСервере:
&НаКлиенте
Процедура Печать(Команда)
    
    КолКопий = ЧислоВведенноеПользователем() ;    
    
    ТабДок = ПечатьНаСервере(КолКопий);
    ТабДок.Показать();
КонецПроцедуры

&НаСервере
Функция ПечатьНаСервере(КолКопий)
    ТабДок = Новый ТабличныйДокумент();
    Обработка = РеквизитФормыВЗначение("Объект");
    Макет = Обработка.ПолучитьМакет("Макет");
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ 
    |    cl_ВыпускГотовойПродукцииГотоваяПродукция.Номенклатура
    |ИЗ
    |    Документ.cl_ВыпускГотовойПродукции.ГотоваяПродукция КАК cl_ВыпускГотовойПродукцииГотоваяПродукция
    |ГДЕ
    |    cl_ВыпускГотовойПродукцииГотоваяПродукция.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка",документы.cl_ВыпускГотовойПродукции.НайтиПоНомеру("61 728",'20180101')); 
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    счетчик = 1 ;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
    пока счетчик <= КолКопий цикл
            ОбластьЗаголовок.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            ТабДок.Вывести(ОбластьЗаголовок, ВыборкаДетальныеЗаписи.Уровень());
            счетчик = счетчик + 1 ;
            КонецЦикла;
    КонецЦикла;
Возврат(ТабДок) ;
    
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user705522_constantin_h 35 21.05.18 19:13 Сейчас в теме
(1)
ЧислоВведенноеПользователем() ; 

Это Функция, значит должно быть:
КолКопий = ЧислоВведенноеПользователем() ; 


Далее, передайте КолКопий в ПечатьНаСервере:
&НаКлиенте
Процедура Печать(Команда)
    
    КолКопий = ЧислоВведенноеПользователем() ;    
    
    ТабДок = ПечатьНаСервере(КолКопий);
    ТабДок.Показать();
КонецПроцедуры

&НаСервере
Функция ПечатьНаСервере(КолКопий)
    ТабДок = Новый ТабличныйДокумент();
    Обработка = РеквизитФормыВЗначение("Объект");
    Макет = Обработка.ПолучитьМакет("Макет");
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ 
    |    cl_ВыпускГотовойПродукцииГотоваяПродукция.Номенклатура
    |ИЗ
    |    Документ.cl_ВыпускГотовойПродукции.ГотоваяПродукция КАК cl_ВыпускГотовойПродукцииГотоваяПродукция
    |ГДЕ
    |    cl_ВыпускГотовойПродукцииГотоваяПродукция.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка",документы.cl_ВыпускГотовойПродукции.НайтиПоНомеру("61 728",'20180101')); 
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    счетчик = 1 ;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
    пока счетчик <= КолКопий цикл
            ОбластьЗаголовок.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            ТабДок.Вывести(ОбластьЗаголовок, ВыборкаДетальныеЗаписи.Уровень());
            счетчик = счетчик + 1 ;
            КонецЦикла;
    КонецЦикла;
Возврат(ТабДок) ;
    
КонецФункции
Показать
3. bs.nnov 21.05.18 19:14 Сейчас в теме
(1) ТабДок.Напечатать() печатает сразу на принтер
в цикле
4. Infactum 316 21.05.18 19:15 Сейчас в теме
Если передача параметра в функцию вызывает вопросы, то у меня для вас плохие новости.
Рекомендую подтянуть базовые знания.
Да и на код просто страшно смотреть..
5. slava9119 21.05.18 19:39 Сейчас в теме
Спасибо, большое за ответы и замечания.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот