Таблица на HTML

1. ipoloskov 163 29.02.24 09:22 Сейчас в теме
Добрый день!
Не силен в HTML. Есть ли у кого-нибудь пример кода создания таблицы в HTML (колонки и строки) через объект ДокументHTML? Буду очень благодарен.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 46 29.02.24 10:01 Сейчас в теме
HTML это же просто строка определенного формата.

Пишете код, который генерирует строку вида:

<ht ml><body><table>
  <tr>
    <th>Заголовок 1</th>
    <th>Заголовок 2</th>
    <th>Заголовок 3</th>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>12</td>
    <td>22</td>
    <td>32</td>
  </tr>
</table></body>
Показать


И просто строковой переменной, которая привязана к элементу документHTML присваиваете эту строку.
ipoloskov; +1 Ответить
3. glek 119 29.02.24 10:05 Сейчас в теме
(2) Я так понял, что автор хочет работать не с элементом формы, а именно с объектом ДокументХТМЛ
ipoloskov; +1 Ответить
4. ipoloskov 163 29.02.24 10:07 Сейчас в теме
(3) да, с объектом, так как в ячейках мне нужно разместить данные и обрабатывать нажатия на ячейки. Это проще сделать через ДокументHTML. В модуле CRM используется такой механизм, но там не таблица, а лента данных
5. glek 119 29.02.24 10:09 Сейчас в теме
(4) Собственно поэтому я советов и не давал. Потому как не работал с этим)))
6. ipoloskov 163 29.02.24 17:13 Сейчас в теме
В общем, как-то так получилось. Наверное, косячно, но за неимением лучшего размещу как пример.
&НаСервере
Процедура ЗаполнитьТаблицуHTML()
	
	ДокументHTML = ПреобразоватьТекстHTML_в_Документ(ТекстHTML);
	
	Если Ложь Тогда
		ДокументHTML = Новый ДокументHTML;
	КонецЕсли;
	
	Таблица = ДокументHTML.ПолучитьЭлементПоИдентификатору("maintable");
	
	ЗаголовкиКолонок = ДокументHTML.СоздатьЭлемент("tr");
	ЗаголовкиКолонок.УстановитьАтрибут("bgcolor", "#FFC000");
		
	Таблица.ДобавитьДочерний(ЗаголовкиКолонок);
	
	Колонка = ДокументHTML.СоздатьЭлемент("th");
	Колонка.ТекстовоеСодержимое = "Деталь";
	Колонка.УстановитьАтрибут("width", "60");
	ЗаголовкиКолонок.ДобавитьДочерний(Колонка);
	
	Колонка = ДокументHTML.СоздатьЭлемент("th");
	Колонка.ТекстовоеСодержимое = "Характеристика";
	Колонка.УстановитьАтрибут("width", "30");
	ЗаголовкиКолонок.ДобавитьДочерний(Колонка);
	
	Для Каждого Строчка_СерийныеНомераПродукции Из СерийныеНомераПродукции Цикл

		Колонка = ДокументHTML.СоздатьЭлемент("th");
		Колонка.ТекстовоеСодержимое = Строчка_СерийныеНомераПродукции.СерийныйНомерПродукции;
		Колонка.УстановитьАтрибут("width", "15");
		ЗаголовкиКолонок.ДобавитьДочерний(Колонка);
	
	КонецЦикла;
	
	Для Каждого СтрокаВедомости Из Ведомость Цикл
		
		СтрокаТаблицы = ДокументHTML.СоздатьЭлемент("tr");
		Таблица.ДобавитьДочерний(СтрокаТаблицы);
		
		Ячейка = ДокументHTML.СоздатьЭлемент("td");
		Ячейка.ТекстовоеСодержимое = Строка(СтрокаВедомости.Номенклатура);
		СтрокаТаблицы.ДобавитьДочерний(Ячейка);
		
		Ячейка = ДокументHTML.СоздатьЭлемент("td");
		Ячейка.ТекстовоеСодержимое = Строка(СтрокаВедомости.Характеристика);
		СтрокаТаблицы.ДобавитьДочерний(Ячейка);
		
		Для Каждого Строчка_СерийныеНомераПродукции Из СерийныеНомераПродукции Цикл
			
			ИмяКолонки = Строчка_СерийныеНомераПродукции.ИмяКолонки;

			Ячейка = ДокументHTML.СоздатьЭлемент("td");
			Ячейка.ТекстовоеСодержимое = Строка(СтрокаВедомости[ИмяКолонки]);
			СтрокаТаблицы.ДобавитьДочерний(Ячейка);
	
		КонецЦикла;
	
	КонецЦикла;
	
	ТекстHTML = ПреобразоватьДокументHTML_в_Текст(ДокументHTML);
	
КонецПроцедуры

&НаСервере
Процедура ИнициализироватьДокументHTML();
	
	Текст = ТекстШаблонаHTML();
	
	ДокументHTML = ПреобразоватьТекстHTML_в_Документ(Текст);
	
	HTML_СоздатьТаблицу(ДокументHTML);
	
	ТекстHTML = ПреобразоватьДокументHTML_в_Текст(ДокументHTML);
	
КонецПроцедуры

&НаСервере
Функция ПреобразоватьТекстHTML_в_Документ(Строка)
	
	ЧтениеHTML = Новый ЧтениеHTML;
	ЧтениеHTML.УстановитьСтроку(Строка);
	
	ПостроительDOM = Новый ПостроительDOM;
	ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
	
	Возврат ДокументHTML;
	
КонецФункции

&НаСервере
Функция ПреобразоватьДокументHTML_в_Текст(ДокументHTML)
	
	ЗаписьHTML = Новый ЗаписьHTML;
	ЗаписьHTML.УстановитьСтроку();
	
	ЗаписьDOM = Новый ЗаписьDOM;
	ЗаписьDOM.Записать(ДокументHTML, ЗаписьHTML);
	
	Возврат ЗаписьHTML.Закрыть();
	
КонецФункции

&НаСервере
Процедура HTML_СоздатьТаблицу(ДокументHTML)
	
	Таблица = ДокументHTML.СоздатьЭлемент("table");
	Таблица.УстановитьАтрибут("id", "maintable");
	Таблица.УстановитьАтрибут("border", "1");
	Таблица.УстановитьАтрибут("style", "border-collapse:collapse");
	
	ДокументHTML.Тело.ДобавитьДочерний(Таблица);
	
КонецПроцедуры

Показать
Оставьте свое сообщение

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