Печать отчета с предварительным просмотром на упр.форме

1. nadjav 18.08.17 08:14 Сейчас в теме
Здравствуйте.
Внешний отчет на управляемой форме, добавлена кнопка Печать,
Процедура ДействияСРезультатомПечатьПросмотр(Кнопка)
ТиповыеОтчеты.ПечатьТиповогоОтчета(ЭлементыФормы.Результат);
КонецПроцедуры
При нажатии на кнопку, форма сразу уходить на печать. Что прописать в процедуре, чтобы была возможность выбрать принтер и посмотреть форму (предварительный просмотр) до печати?
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Irwin 549 18.08.17 17:45 Сейчас в теме
Печать с выбором принтера можно сделать так:
ЭлементыФормы.Результат.Напечатать(РежимИспользованияДиалогаПечати.Использовать);

Предварительный просмотр для обычных форм только через меню "Файл" (либо извращения через Shell)
+
4. Boneman 298 28.08.17 14:26 Сейчас в теме
(2)
либо извращения через Shell


пример из рарус альфа
//	Раскладывает строку, содержащую номер версии приложения на структуру чисел,
//	содержащую номер редакции, номер подредакции, номер версии и номер сборки
//
// Параметры;
//	ВерсияПриложения	- Строка	- Строка, содержащая версию приложения
//
// Возвращаемое значение:
//	Структура	- Структура, содержащая элементы версии приложения
//
Функция РазложитьПолныйНомерВерсии(ВерсияПриложения)
	СтрокаВерсии = ВерсияПриложения;
	СтруктураВерсии = Новый Структура;
  	СтруктураВерсии.Вставить("НомерРедакции", 0);
  	СтруктураВерсии.Вставить("НомерПодредакции", 0);
  	СтруктураВерсии.Вставить("НомерВерсии", 0);
  	СтруктураВерсии.Вставить("НомерСборки", 0);
  	ПозицияТочки = Найти(СтрокаВерсии, ".");
	Если ПозицияТочки = 0 Тогда
		СтруктураВерсии.НомерРедакции = Число(СтрокаВерсии);
	Иначе	  
		СтруктураВерсии.НомерРедакции = Число(Лев(СтрокаВерсии, ПозицияТочки - 1));
		СтрокаВерсии = Сред(СтрокаВерсии, ПозицияТочки + 1);
	  	ПозицияТочки = Найти(СтрокаВерсии, ".");
		Если ПозицияТочки = 0 Тогда
			СтруктураВерсии.НомерПодредакции = Число(СтрокаВерсии);
		Иначе
			СтруктураВерсии.НомерПодредакции = Число(Лев(СтрокаВерсии, ПозицияТочки - 1));
			СтрокаВерсии = Сред(СтрокаВерсии, ПозицияТочки + 1);
		  	ПозицияТочки = Найти(СтрокаВерсии, ".");
	  		Если ПозицияТочки = 0 Тогда
				СтруктураВерсии.НомерВерсии = Число(СтрокаВерсии);
			Иначе	
				СтруктураВерсии.НомерВерсии = Число(Лев(СтрокаВерсии, ПозицияТочки - 1));
				СтруктураВерсии.НомерСборки = Число(Сред(СтрокаВерсии, ПозицияТочки + 1));
			КонецЕсли;
		КонецЕсли;	
    КонецЕсли;
	Возврат СтруктураВерсии;
КонецФункции // РазложитьПолныйНомерВерсии()


// Открывает окно "Предварительный просмотр"
Процедура ОсновныеДействияФормыПредварительныйПросмотр(Кнопка)
	ТекущийЭлемент	= ЭлементыФормы.ТабличныйДокумент;
	
	// Произведем эмуляцию нажатия клавишь. По ходу дела это единственный способ открыть окно просмотра печати
	WHSShell = Новый COMОбъект("WScript.Shell");
	WHSShell.SendKeys("%");
	WHSShell.SendKeys("~");
	СисИнфо = Новый СистемнаяИнформация;
	СтруктураВерсииПриложения = РазложитьПолныйНомерВерсии(СисИнфо.ВерсияПриложения);
	Если СтруктураВерсииПриложения.НомерРедакции < 8 Тогда
		WHSShell.SendKeys("{DOWN 9}");
	ИначеЕсли СтруктураВерсииПриложения.НомерРедакции > 8 Тогда
		WHSShell.SendKeys("{DOWN 10}");
	ИначеЕсли СтруктураВерсииПриложения.НомерПодредакции < 1 Тогда	
		WHSShell.SendKeys("{DOWN 9}");
	ИначеЕсли СтруктураВерсииПриложения.НомерПодредакции > 1 Тогда	
		WHSShell.SendKeys("{DOWN 10}");
	ИначеЕсли СтруктураВерсииПриложения.НомерВерсии < 8 Тогда		
		WHSShell.SendKeys("{DOWN 9}");
	Иначе	
		WHSShell.SendKeys("{DOWN 10}");
	КонецЕсли;	
	
	
//	WHSShell.SendKeys("{DOWN 9}");
	WHSShell.SendKeys("~");
КонецПроцедуры
Показать
+
3. nadjav 28.08.17 14:05 Сейчас в теме
Для выбор принтера это команда работает. Но надо программно Предварительный просмотр отчета, до печати. Отчет во внешних обработках, меню "Файл" нет.
+
5. Boneman 298 28.08.17 14:30 Сейчас в теме
(3)
Отчет во внешних обработках, меню "Файл" нет.

интересно, КАК в ЗУП 2.5 вам удалось внешний отчет, на УФ вкорячить ?
+
Внимание! Тема сдана в архив

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