Общая форма для вывода сообщений пользователю в HTML

RomanVG 121 1 6 1

Как то мне потребовалось вывести пользователю сообщение с таблицей 4 на 4.
Решил сделать для этого общую форму HTMLСообщение, пример ее вызова ниже:

	СтруктураПараметров = Новый Структура("Заголовок, ТекстСообщения");
	СтруктураПараметров.Заголовок = "Заключено договоров за месяц";
	HTML = "
		|<style>
		|.xl68 {background:#D9E1F2;text-align:left;font-weight:700;}
		|</style>
		|<table border=1 cellpadding=2 cellspacing=0 style='border-collapse:collapse;'>
		| <tr align=center style='background:#D9E1F2'>
		|  <th style='background:white'>19.7.<br>О заключенных договорах</th>
		|  <th>1. Жилые помещения</th>
		|  <th>2. Нежилые помещения</th>
		|  <th>3. Машино-места</th>
		| </tr>
		| <tr align=right>
		|  <td class=xl68>19.7.1 Количество договоров</td>
		|  <td>%1</td>
		|  <td>%2</td>
		|  <td>%3</td>
		| </tr>
		| <tr align=right>
		|  <td class=xl68>19.7.2 Площади объектов</td>
		|  <td>%4</td>
		|  <td>%5</td>
		|  <td>%6</td>
		| </tr>
		| <tr align=right>
		|  <td class=xl68>19.7.3 Цена договоров</td>
		|  <td>%7</td>
		|  <td>%8</td>
		|  <td>%9</td>
		| </tr>
		|</table>";
	
	СтруктураПараметров.ТекстСообщения = СтрШаблон(HTML, м[0], м[1], м[2], м[3], м[4], м[5], м[6], м[7], м[8]);
	ОткрытьФорму("ОбщаяФорма.HTMLСообщение", СтруктураПараметров);

На всю форму размещен строковый реквизит ТекстСообщения, с видом "Поле HTML документа".
В модуле формы добавил событие:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Заголовок = Параметры.Заголовок;
	ТекстСообщения = "<html><body><table height=100% align=center><tr><td>" + Параметры.ТекстСообщения + "</td></tr></table></body></html>";
	
КонецПроцедуры

Чтобы текст сообщения всегда был по центру формы он помещен во внешнюю таблицу с 1 ячейкой и высотой 100%.

1

Комментарии

RomanVG
#1, ред. 19 января 2023 08:44

Аналог такой формы есть в УПП, - в обработке ДокументооборотСКонтролирующимиОрганами есть форма ПросмотрHTML.
Пример ее использования:

	Содержимое = "<h1>Сообщение с тегами HTML</h1>";
	ФормаПросмотраHTML = Обработки.ДокументооборотСКонтролирующимиОрганами.ПолучитьФорму("ПросмотрHTML");
	//ФормаПросмотраHTML.ИмяФайла = "";
	ФормаПросмотраHTML.Содержимое = Содержимое;
	ФормаПросмотраHTML.ОткрытьМодально();

В реквизите формы "Содержимое" помимо строки с HTML может быть URL.
А если передать в него ДвоичныеДанные или ХранилищеЗначения, то потребуется реквизит ИмяФайла - в который будет записано содержимое и отображено в форме.


См. также

СообщитьПользователю (БСП)

Сообщить отложенные сообщения

ПоказатьПодробнуюИнформацию (БСП)

Добавление команды в общую форму отчета на БСП

ОбщиеНастройки (БСП)

ПриОтправкеСообщенияПользователяВТехподдержку (БСП)

ФормированиеСообщенияПользователю (БСП)

Модератору