HTML таблица для начинающих

02.06.21

Разработка - Инструментарий разработчика

Несколько примеров HTML таблиц со стилями и без. Хорошая замена отчетов на СКД.

Скачать исходный код

Наименование Файл Версия Размер
HTML таблица вместо СКД:
.zip 58,54Kb
111
.zip 1.0.0 58,54Kb 111 Скачать бесплатно

В статье Мобильное приложение на 1С? Я написал следующее:

«Первоначально я реализовал отчет на СКД, но… Но лично меня он не устраивал. Я крутил его и так, и эдак… В итоге я параллельно сделал еще такой же отчет на HTML и принес на суд общественности.

Со счетом 7:0 победил HTML. Поэтому если вам вдруг понадобится вывод отчета в мобильном приложении, делайте сразу на HTML, поверьте, вы получите быструю и гибкую разработку.»

Совершенно логично, что последовал комментарий:

viki_glebova

«Очень любопытно про отчеты на HTML. Есть у вас какой-нибудь простенький пример реализации?»

Далее в комментариях была предложена ссылка на статью: //infostart.ru/1c/articles/717412/ далее в тексте я ее буду упоминать как Статья717412

Я посмотрел статью и пообещал Виктории(viki_glebova) более интересные примеры. Обещал, показываю.

Для начала немножко поговорим про таблицы, далее я покажу чем плох подход из Статья717412 и потом покажу несколько примеров используя стили, надеюсь это будет вам полезно.

Для экспериментов я скидал небольшую конфигурацию, данную конфигурацию я приложу к статье в виде бесплатного материала.

 

Основа таблицы в HTML:

Table - Для добавления таблицы используется тег <table> в данном теге можно указывать различные атрибуты:

•    Align - Определяет выравнивание таблицы.
•    Background - Задает фоновый рисунок в таблице.
•    Bgcolor - Цвет фона таблицы.
•    Border - Толщина рамки в пикселах.
•    Bordercolor - Цвет рамки.
•    Cellpadding - Отступ от рамки до содержимого ячейки.
•    Cellspacing - Расстояние между ячейками.
•    Cols - Число колонок в таблице.
•    Frame - Сообщает браузеру, как отображать границы вокруг таблицы.
•    Height - Высота таблицы.
•    Rules - Сообщает браузеру, где отображать границы между ячейками.
•    Summary - Краткое описание таблицы.
•    Width - Ширина таблицы.

 
 Пример простой таблицы:
<html><table border="1" cellpadding="1" cellspacing="0">
 <tr>
  <th>п/п</th> 
  <th>Слова</th> 
  <th>Числа</th> 
 </tr>
 <tr>
  <td>1</td>
  <td>Вася</td>
  <td>2,2</td>
 </tr>
</table></html>

Результат:

 

thead, tbody, tfoot - необязательные теги, предназначенные для группировки одной или несколько строк таблице. Позволяют создавать структурные блоки, к которым можно применять единое оформление через стили, а также управлять их видом через скрипты. Допускается применять несколько тегов <tbody> внутри <table>.

ВАЖНО: Вы можете разместить эти теги в любой последовательности, но содержимое будет выведено так:

  1. thead - заголовок
  2. tbody - тело
  3. tfoot - итоги
 
 Пример с необязательными thead, tbody и tfoot:
<html><table border="1" cellpadding="0">
 <tfoot align="center">
  <tr>
   <td>Ячейка 1, в TFOOT</td>
   <td>Ячейка 2, в TFOOT</td> 
  </tr> 
 </tfoot>
 <tbody align="right">
  <tr>
   <td>Ячейка 3, в TBODY</td>
   <td>Ячейка 4, в TBODY</td> 
  </tr> 
 </tbody>
 <thead align="left">
  <tr>
   <th>Ячейка 5, в THEAD</th>
   <th>Ячейка 6, в THEAD</th> 
  </tr> 
 </thead>
</table></html>

Результат:

 

tr – тег для создания строки в таблице. 
Атрибуты тега:

•    Align - Выравнивание содержимого ячеек по горизонтали.
•    Bgcolor - Цвет фона.
•    Bordercolor - Цвет рамки.
•    Char - Выравнивание содержимого ячеек относительно заданного символа.
•    Charoff - Смещение содержимого ячеек относительно указанного символа.
•    Valign - Выравнивание содержимого ячеек по вертикали.

 
 Пример простой таблицы с атрибутами у tr:
<html><table border="1" cellpadding="1" cellspacing="0">
 <tr align="right" bgcolor="#eadbaf">
  <th>п/п</th> 
  <th>Слова</th> 
  <th>Числа</th> 
 </tr>
 <tr>
  <td>1</td>
  <td>Вася</td>
  <td>2,2</td>
 </tr>
</table></html>

Результат:

 

th – тег для создания заголовочной ячейки таблицы. Тег <th> должен размещаться внутри контейнера <tr>. 

Атрибуты тега:

•    Abbr - Краткое описание содержимого ячейки.
•    Align - Определяет выравнивание содержимого ячейки по горизонтали.
•    Axis - Группирует ячейки, связанные между собой похожей информацией.
•    Background - Задает фоновый рисунок.
•    Bgcolor - Цвет фона.
•    Bordercolor - Цвет рамки.
•    Char - Выравнивает содержимое ячейки по заданному символу.
•    Charoff - Смещает содержимое ячейки относительно заданного символа.
•    Colspan - Объединяет горизонтальные ячейки.
•    Height - Высота.
•    Nowrap - Запрещает перенос строк.
•    Rowspan - Объединяет вертикальные ячейки.
•    Valign - Выравнивание содержимого по вертикали.
•    Width - Ширина.

 
 Пример простой таблицы с атрибутами у th:
<html><table border="1" cellpadding="1" cellspacing="0">
 <tr>
  <th align="center" width=60>п/п</th> 
  <th align="center" bgcolor="#eadbaf">Слова</th> 
  <th align="center" width=100>Числа</th> 
 </tr>
 <tr>
  <td>1</td>
  <td>Вася</td>
  <td>2,2</td>
 </tr>
</table></html>

Результат:


td – тег для создания ячейки таблицы. Тег <td> должен размещаться внутри контейнера <tr>.

Атрибуты тега:

•    Abbr - Краткое описание содержимого ячейки.
•    Align - Определяет выравнивание содержимого по горизонтали.
•    Axis - Группирует ячейки, связанные между собой похожей информацией.
•    Background - Задает фоновый рисунок.
•    Bgcolor - Цвет фона.
•    Bordercolor - Цвет рамки.
•    Char - Выравнивает содержимое по заданному символу.
•    Charoff - Смещает содержимое относительно заданного символа.
•    Colspan - Объединяет горизонтальные ячейки.
•    Headers - Позволяет связать ячейки с заголовком.
•    Height - Высота.
•    Nowrap - Запрещает перенос строк.
•    Rowspan - Объединяет вертикальные ячейки.
•    Valign - Выравнивание содержимого ячейки по вертикали.
•    Width - Ширина.
 

 
 Пример простой таблицы с td:
<html><table border="1" cellpadding="1" cellspacing="0">
 <tr>
  <th>п/п</th> 
  <th>Слова</th> 
  <th>Числа1</th> 
  <th>Числа2</th> 
 </tr>
 <tr>
  <td>1</td>
  <td>Вася</td>
  <td>3,2</td>
  <td>3,2</td>
 </tr>
 <tr>
  <td>2</td>
  <td>Вася</td>
  <td>2,2</td>
  <td>2,2</td>
 </tr>
 <tr>
  <td>3</td>
  <td>Петя</td>
  <td>2,2</td>
  <td>2,2</td>
 </tr>
</table></html>

 Результат:

 
 Пример таблицы с атрибутами colspan и rowspan у td:
<html><table border="1" cellpadding="1" cellspacing="0">
 <tr>
  <th>п/п</th> 
  <th>Слова</th> 
  <th>Числа1</th> 
  <th>Числа2</th> 
 </tr>
 <tr>
  <td>1</td>
  <td rowspan="2" align="center">Вася</td>
  <td colspan="2" align="center">3,2</td>
 </tr>
 <tr>
  <td>2</td>
  <td colspan="2" rowspan="2" align="center">2,2</td>
 </tr>
 <tr>
  <td>3</td>
  <td>Петя</td>
 </tr>
</table></html>

 Результат:

 

Самое интересное закрывающие теги внутри table можно убрать и результат будет тот же.

 
 Пример таблицы с атрибутами colspan и rowspan у td без закрывающих тегов:
<html><table border="1" cellpadding="1" cellspacing="0">
 <tr>
  <th>п/п
  <th>Слова
  <th>Числа1
  <th>Числа2
 <tr>
  <td>1
  <td rowspan="2" align="center">Вася
  <td colspan="2" align="center">3,2
 <tr>
  <td>2
  <td colspan="2" rowspan="2" align="center">2,2
 <tr>
  <td>3
  <td>Петя
</table></html>

Результат:

 

Количество символов без пробелов:

  1. В примере (Пример таблицы с атрибутами colspan и rowspan у td) = 326
  2. В примере (Пример таблицы с атрибутами colspan и rowspan у td без закрывающих тегов) = 251

П.С. По стандартам html можно посмотреть тут: https://html.spec.whatwg.org/#the-table-element

 

Таблица в HTML визуально:

 

Чем плох подход из Статья717412?

Я создал таблицу для экспериментов и скопировал код из Статья717412:

 
 Получился вот такой HTML код:
<html><table border="1" cellpadding="1" cellspacing="0"  style="width:800px">
<tbody>
<tr>
<td bgcolor="#eadbaf" style="width:30px" align="center">п/п</td> 
<td bgcolor="#eadbaf" align="center">Слова</td> 
<td bgcolor="#eadbaf" align="center">Числа</td> 
<td bgcolor="#eadbaf" style="width:300px" align="center">Номер вопроса</td> 
<td bgcolor="#eadbaf" align="center">ДаНет</td> 
<td bgcolor="#eadbaf" align="center">Наличие картинки</td>
</tr>
<tr>
<td align="center">1</td>
<td  align="left">Вася</td>
<td  align="center">2,2</td>
<td  align="center">02.06.2021 1:25:37</td>
<td  align="center">Нет</td>
<td  align="left"></td>
</tr>
<tr>
<td align="center">2</td>
<td  align="left">Арбуз</td>
<td  align="center">4,84</td>
<td  align="center">28.05.2021 5:16:01</td>
<td  align="center">Да</td>
<td  align="left"></td>
</tr>
<tr>
<td align="center">3</td>
<td  align="left">Усы</td>
<td  align="center">23,426</td>
<td  align="center">04.05.2021 19:03:09</td>
<td  align="center">Да</td>
<td  align="left"></td>
</tr>
<tr>
<td align="center">4</td>
<td  align="left">Песик</td>
<td  align="center">548,759</td>
<td  align="center">03.11.2019 0:50:34</td>
<td  align="center">Нет</td>
<td  align="left"></td>
</tr> 
</tbody>
</table></html>

 Результат:

Итого символов без пробелов: 1125

  1. tbody работает вхолостую. Без <tbody></tbody> будет тот же результат.
  2. В шапке td, а не th.
  3. В шапке везде атрибут bgcolor="#eadbaf", его можно убрать выше в tr и результат будет тот же. Тоже самое касается align="center".
  4. В каждой ячейке td присутствуют атрибуты, и они копируются от строки к строке. Соответственно добавление новых атрибутов будет увеличивать количество символов в строке и уменьшать читаемость. Вот тут прямо напрашиваются стили!
  5. Можно убрать закрывающие теги.
 
 Немного причесанный HTML из Статья717412, но без стилей:
<html><table border="1" cellpadding="1" cellspacing="0"  style="width:800px">
<tr bgcolor="#eadbaf" align="center">
<th style="width:30px">п/п
<th>Слова 
<th>Числа 
<th style="width:300px">Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td align="center">1
<td  align="left">Вася
<td  align="center">2,2
<td  align="center">02.06.2021 1:25:37
<td  align="center">Нет
<td  align="left">
<tr>
<td align="center">2
<td  align="left">Арбуз
<td  align="center">4,84
<td  align="center">28.05.2021 5:16:01
<td  align="center">Да
<td  align="left">
<tr>
<td align="center">3
<td  align="left">Усы
<td  align="center">23,426
<td  align="center">04.05.2021 19:03:09
<td  align="center">Да
<td  align="left">
<tr>
<td align="center">4
<td  align="left">Песик
<td  align="center">548,759
<td  align="center">03.11.2019 0:50:34
<td  align="center">Нет
<td  align="left">
</table></html>

  Результат:

Итого символов без пробелов: 780

 

П.С. Небольшие манипуляции сократили количество символов почти на треть.

 

Поработаем со стилями:

Тестовую таблицу я буду использовать из примера с «причесанным» кодом.

  • Давайте представим, что наша таблица должна занимать 99% по ширине экрана и при перевороте устройства автоматически меняться под экран. Этот пример отлично подходит для мобильной разработки.

Добавили:

table {
width: 99%; /* Ширина таблицы в процентах */
}

Убрали из table атрибут style="width:800px"

 
 Пример с шириной таблицы в процентах:
<html>
<style>
table {
width: 99%; /* Ширина таблицы в процентах */
}
</style>
<table border="1" cellpadding="1" cellspacing="0">
<tr bgcolor="#eadbaf" align="center">
<th style="width:30px">п/п
<th>Слова 
<th>Числа 
<th style="width:300px">Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td align="center">1
<td  align="left">Вася
<td  align="center">2,2
<td  align="center">02.06.2021 1:25:37
<td  align="center">Нет
<td  align="left">
<tr>
<td align="center">2
<td  align="left">Арбуз
<td  align="center">4,84
<td  align="center">28.05.2021 5:16:01
<td  align="center">Да
<td  align="left">
<tr>
<td align="center">3
<td  align="left">Усы
<td  align="center">23,426
<td  align="center">04.05.2021 19:03:09
<td  align="center">Да
<td  align="left">
<tr>
<td align="center">4
<td  align="left">Песик
<td  align="center">548,759
<td  align="center">03.11.2019 0:50:34
<td  align="center">Нет
<td  align="left">
</table></html>

 

 

  • Давайте представим, что мы захотели без проблем управлять ячейками в строке, добавлять атрибуты в одном месте распространяя их на все строки.

Для этого в td добавим class и уберем align, а в стилях пропишем text-align для class.

 
 Добавляем классы для td:
<html><style>
table {
width: 99%; /* Ширина таблицы в процентах */
}
.Col1 {
text-align: center; /* По центру */
}
.Col2 {
text-align: left; /* Слева */
}
.Col3 {
text-align: center; /* По центру */
}
.Col4 {
text-align: center; /* По центру */
}
.Col5 {
text-align: center; /* По центру */
}
.Col6 {
text-align: left; /* Слева */
}
</style><table border="1" cellpadding="1" cellspacing="0">
<tr bgcolor="#eadbaf" align="center">
<th style="width:30px">п/п
<th>Слова 
<th>Числа 
<th style="width:300px">Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td class="Col1">1
<td class="Col2">Вася
<td class="Col3">2,2
<td class="Col4">02.06.2021 1:25:37
<td class="Col5">Нет
<td class="Col6">
<tr>
<td class="Col1">2
<td class="Col2">Арбуз
<td class="Col3">4,84
<td class="Col4">28.05.2021 5:16:01
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">3
<td class="Col2">Усы
<td class="Col3">23,426
<td class="Col4">04.05.2021 19:03:09
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">4
<td class="Col2">Песик
<td class="Col3">548,759
<td class="Col4">03.11.2019 0:50:34
<td class="Col5">Нет
<td class="Col6">
</table></html>

 

  • Допустим нам надо покрасить фон шапки и выровнять текст шапки по центру.

Добавили:

TH { 
background: #eadbaf; /* Цвет фона ячейки */
text-align: center; /* Выравнивание по центру */
}

Из tr уберем bgcolor="#eadbaf" align="center"

 
 Добавляем классы в th:
<html><style>
table {
width: 99%; /* Ширина таблицы в процентах */
}
.Col1 {
text-align: center; /* По центру */
}
.Col2 {
text-align: left; /* Слева */
}
.Col3 {
text-align: center; /* По центру */
}
.Col4 {
text-align: center; /* По центру */
}
.Col5 {
text-align: center; /* По центру */
}
.Col6 {
text-align: left; /* Слева */
}
TH { 
background: #eadbaf; /* Цвет фона ячейки */
text-align: center; /* Выравнивание по центру */
}
</style><table border="1" cellpadding="1" cellspacing="0">
<tr>
<th style="width:30px">п/п
<th>Слова 
<th>Числа 
<th style="width:300px">Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td class="Col1">1
<td class="Col2">Вася
<td class="Col3">2,2
<td class="Col4">02.06.2021 1:25:37
<td class="Col5">Нет
<td class="Col6">
<tr>
<td class="Col1">2
<td class="Col2">Арбуз
<td class="Col3">4,84
<td class="Col4">28.05.2021 5:16:01
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">3
<td class="Col2">Усы
<td class="Col3">23,426
<td class="Col4">04.05.2021 19:03:09
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">4
<td class="Col2">Песик
<td class="Col3">548,759
<td class="Col4">03.11.2019 0:50:34
<td class="Col5">Нет
<td class="Col6">
</table></html>

 

 

  • Нам понадобилось покрасить все ячейки в 3 и 5 колонке.

Добавим в стили Col3 и Col5 background: #fc0; /* Цвет фона ячейки */

 
 Раскрасим 3 и 5 колонки:
<html><style>
table {
width: 99%; /* Ширина таблицы в процентах */
}
.Col1 {
text-align: center; /* По центру */
}
.Col2 {
text-align: left; /* Слева */
}
.Col3 {
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col4 {
text-align: center; /* По центру */
}
.Col5 {
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col6 {
text-align: left; /* Слева */
}
TH { 
background: #eadbaf; /* Цвет фона ячейки */
text-align: center; /* Выравнивание по центру */
}
</style><table border="1" cellpadding="1" cellspacing="0">
<tr>
<th style="width:30px">п/п
<th>Слова 
<th>Числа 
<th style="width:300px">Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td class="Col1">1
<td class="Col2">Вася
<td class="Col3">2,2
<td class="Col4">02.06.2021 1:25:37
<td class="Col5">Нет
<td class="Col6">
<tr>
<td class="Col1">2
<td class="Col2">Арбуз
<td class="Col3">4,84
<td class="Col4">28.05.2021 5:16:01
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">3
<td class="Col2">Усы
<td class="Col3">23,426
<td class="Col4">04.05.2021 19:03:09
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">4
<td class="Col2">Песик
<td class="Col3">548,759
<td class="Col4">03.11.2019 0:50:34
<td class="Col5">Нет
<td class="Col6">
</table></html>

 

 

  • Нарисуем рамки с помощью стилей

Уберем из тега table атрибуты border="1" cellpadding="1" cellspacing="0"

Добавим в стиль table border-collapse: collapse; /* Убираем двойные линии между ячейками */
Добавим общий стиль для th и td

TH, TD {
border: 1px solid black; /* Параметры рамки */
}
 
 Рисуем рамки стилями:
<html><style>
table {
border-collapse: collapse; /* Убираем двойные линии между ячейками */
width: 99%; /* Ширина таблицы в процентах */
}
.Col1 {
text-align: center; /* По центру */
}
.Col2 {
text-align: left; /* Слева */
}
.Col3 {
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col4 {
text-align: center; /* По центру */
}
.Col5 {
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col6 {
text-align: left; /* Слева */
}
TH { 
background: #eadbaf; /* Цвет фона ячейки */
text-align: center; /* Выравнивание по центру */
}
TH, TD {
border: 1px solid black; /* Параметры рамки */
}
</style><table>
<tr>
<th style="width:30px">п/п
<th>Слова 
<th>Числа 
<th style="width:300px">Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td class="Col1">1
<td class="Col2">Вася
<td class="Col3">2,2
<td class="Col4">02.06.2021 1:25:37
<td class="Col5">Нет
<td class="Col6">
<tr>
<td class="Col1">2
<td class="Col2">Арбуз
<td class="Col3">4,84
<td class="Col4">28.05.2021 5:16:01
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">3
<td class="Col2">Усы
<td class="Col3">23,426
<td class="Col4">04.05.2021 19:03:09
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">4
<td class="Col2">Песик
<td class="Col3">548,759
<td class="Col4">03.11.2019 0:50:34
<td class="Col5">Нет
<td class="Col6">
</table></html>

 

 

  • Поменяем размер колонок. 1 = 10%, 2 = 25%, 3 = 15%, 4 = 27%, 5 = 10%, 6 = 13%

В стили добавим width: x%; /* Ширина ячеек */

Из тегов th уберем style="width:300px и style="width:30px

 
 Меняем размер колонок стилями:

 

<html><style>
table {
border-collapse: collapse; /* Убираем двойные линии между ячейками */
width: 99%; /* Ширина таблицы в процентах */
}
.Col1 {
width: 10%; /* Ширина ячеек */
text-align: center; /* По центру */
}
.Col2 {
width: 25%; /* Ширина ячеек */
text-align: left; /* Слева */
}
.Col3 {
width: 15%; /* Ширина ячеек */
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col4 {
width: 27%; /* Ширина ячеек */
text-align: center; /* По центру */
}
.Col5 {
width: 10%; /* Ширина ячеек */
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col6 {
width: 13%; /* Ширина ячеек */
text-align: left; /* Слева */
}
TH { 
background: #eadbaf; /* Цвет фона ячейки */
text-align: center; /* Выравнивание по центру */
}
TH, TD {
border: 1px solid black; /* Параметры рамки */
}
</style><table>
<tr>
<th>п/п
<th>Слова 
<th>Числа 
<th>Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td class="Col1">1
<td class="Col2">Вася
<td class="Col3">2,2
<td class="Col4">02.06.2021 1:25:37
<td class="Col5">Нет
<td class="Col6">
<tr>
<td class="Col1">2
<td class="Col2">Арбуз
<td class="Col3">4,84
<td class="Col4">28.05.2021 5:16:01
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">3
<td class="Col2">Усы
<td class="Col3">23,426
<td class="Col4">04.05.2021 19:03:09
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">4
<td class="Col2">Песик
<td class="Col3">548,759
<td class="Col4">03.11.2019 0:50:34
<td class="Col5">Нет
<td class="Col6">
</table></html>

 

  • В заголовке сделаем шрифт 18, а в строках 15

Добавим в стиль для TH font-size: 18px; /* Размер шрифта */ 
Добавим:

TD {
font-size: 15px; /* Размер шрифта */
}
 
 Меняем шрифт стилями:
<html><style>
table {
border-collapse: collapse; /* Убираем двойные линии между ячейками */
width: 99%; /* Ширина таблицы в процентах */
}
.Col1 {
width: 10%; /* Ширина ячеек */
text-align: center; /* По центру */
}
.Col2 {
width: 25%; /* Ширина ячеек */
text-align: left; /* Слева */
}
.Col3 {
width: 15%; /* Ширина ячеек */
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col4 {
width: 27%; /* Ширина ячеек */
text-align: center; /* По центру */
}
.Col5 {
width: 10%; /* Ширина ячеек */
text-align: center; /* По центру */
background: #fc0; /* Цвет фона ячейки */
}
.Col6 {
width: 13%; /* Ширина ячеек */
text-align: left; /* Слева */
}
TH { 
font-size: 18px; /* Размер шрифта */
background: #eadbaf; /* Цвет фона ячейки */
text-align: center; /* Выравнивание по центру */
}
TD {
font-size: 15px; /* Размер шрифта */
}
TH, TD {
border: 1px solid black; /* Параметры рамки */
}
</style><table>
<tr>
<th>п/п
<th>Слова 
<th>Числа 
<th>Номер вопроса 
<th>ДаНет 
<th>Наличие картинки
<tr>
<td class="Col1">1
<td class="Col2">Вася
<td class="Col3">2,2
<td class="Col4">02.06.2021 1:25:37
<td class="Col5">Нет
<td class="Col6">
<tr>
<td class="Col1">2
<td class="Col2">Арбуз
<td class="Col3">4,84
<td class="Col4">28.05.2021 5:16:01
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">3
<td class="Col2">Усы
<td class="Col3">23,426
<td class="Col4">04.05.2021 19:03:09
<td class="Col5">Да
<td class="Col6">
<tr>
<td class="Col1">4
<td class="Col2">Песик
<td class="Col3">548,759
<td class="Col4">03.11.2019 0:50:34
<td class="Col5">Нет
<td class="Col6">
</table></html>

 

 

Как вы видите все оформление таблицы было вынесено в стили, такой подход позволяет упростить форматирование таблицы.


На этом статью заканчиваю, надеюсь данные примеры будут полезны в вашей работе.

Разработка велась на 8.3.17.1549, режим совместимости 8.3.15.

html скд style table примеры class отчеты th td tr tbody thead tfoot

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124509    681    389    

732

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7707    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4222    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2880 руб.

14.01.2013    178547    1083    0    

861

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99576    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18343    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23838    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28291    3    10    

15
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4722 02.06.21 11:58 Сейчас в теме
Ещё в древние времена я выложил https://infostart.ru/1c/articles/174149/ - там работа через объектную технику, а не конкатенацией. Имхо, это более надёжно и прозрачно, чем лепить из кусочков строк.
6. dsdred 3318 02.06.21 13:09 Сейчас в теме
(1)Не видел Вашу статью из древних времен, но вчера читал свежую про COM.
Да наверно надежнее, но если нужно вывести небольшую табличку из 10 строк, а для этого нужно кода строк 300...
Тогда лучше вообще выбрать библиотеку на JavaScript с красивыми графичками и таблицами.

А вообще в данном примере источник ТЗ только из-за статьи -> infostart.ru/1c/articles/717412 в реале источник JSON в котором массив структур
2. Steelvan 302 02.06.21 12:22 Сейчас в теме
- Вы знаете, сейчас в Гейропе и в лучших палатках бездомных Филадельфии
возобновили старинную моду - разливать чай через ситечко. Необычайно эффектно и очень элегантно.
("Двенадцать стульев")

---

У нас все немного прозаичнее и для обозревателя очень желательно указывать тип документа перед тегом <ht ml>

<!DO CTYPE html>
<ht ml>

При отсутствии в коде веб-страницы объявления <!DO CTYPE> в обозревателе включается «Режим совместимости» (Quirks mode).
«Режим совместимости» означает, что современные обозреватели будут сознательно симулировать множество ошибок старых обозревателей,
так как без объявления <!DO CTYPE> считают, что страница написана для старых версий обозревателей.
anatox24; Yashazz; +2 1 Ответить
4. dsdred 3318 02.06.21 12:42 Сейчас в теме
(2)Согласен для браузеров <!DO CTYPE>, для поляHTML в 1с необязательно, хотя при обновлении платформы может стать обязательным.
3. Steelvan 302 02.06.21 12:31 Сейчас в теме
5. Можно убрать закрывающие теги.

Это из категории "Вредные советы".
Обозреватель, конечно, сам их подставит при отрисовке и верстка отобразится нормально, но это неправильно.
Да и в html правщике отступы поедут и подсветка пропадет. :)
5. dsdred 3318 02.06.21 12:47 Сейчас в теме
7. rusmil 262 02.06.21 19:07 Сейчас в теме
Со счетом 7:0 победил HTML
Интересно в чем именно плюсы HTML 7:0 по сравнению с типовым способом СКД?
8. dsdred 3318 02.06.21 21:44 Сейчас в теме
(7)на мобильной платформе 1с пробовали отчёты СКД выводить?

Чтобы настроить по красоте как в html уйдёт в разы больше времени и результат все равно не огонь.
9. Nubsdale 04.06.21 10:53 Сейчас в теме
(8) не совсем понимаю смысл вашей статьи. Да, интересно, да выводится всё красиво. Но если мне надо вытянуть данные, запросом например или сделать динамический список - это реализуемо с помощью HTML ?
10. dsdred 3318 04.06.21 10:59 Сейчас в теме
(9)
не совсем понимаю смысл вашей статьи. Да, интересно, да выводится всё красиво.

Первоначально смысл статьи вывода красивых отчетов на мобильной платформе.

Но если мне надо вытянуть данные, запросом например или сделать динамический список - это реализуемо с помощью HTML ?

Реализуемо на HTML + JS например, но тогда 1с тут вообще не причем.
11. Nubsdale 04.06.21 11:05 Сейчас в теме
(10)
Первоначально смысл статьи вывода красивых отчетов на мобильной платформе.
какой смысл от отчёта, если в него надо забивать данные вручную? Проще тогда сделать на экселе, заскриншотить и вставить картинку. В отчёте, же, меняющиеся данные, у вас данные статичные
(10)
Реализуемо на HTML + JS например, но тогда 1с тут вообще не причем.
это уже интереснее
12. dsdred 3318 04.06.21 11:15 Сейчас в теме
(11)
какой смысл от отчёта, если в него надо забивать данные вручную? Проще тогда сделать на экселе, заскриншотить и вставить картинку. В отчёте, же, меняющиеся данные, у вас данные статичные


В смысле вручную?
В данной статье просто обучение использования table+style в html.

А уже сгенерировать html можно кодом 1с. В 2000-х годах я на javaScript генерил таблицы.
Есть ссылка на статью не мою где есть вариант генерации кода по ТЗ, описаны минусы.
Есть примеры как можно сделать. Берем и делаем.

Я в работе например получаю JSON и по нему вывожу отчет.
13. Sergik_D 20 04.06.21 12:22 Сейчас в теме
Здравствуйте. Как раз столкнулся с проблемой вывода отчетов на мобильном устройстве в приложении на Android Studio. По запросу делаю на СКД отчет и возвращаю в виде HTML. Но теряю функциональность. Нет группировок, нет закрепления колонки, строки. Может подскажите в каком направлении двигаться чтобы получить функциональную таблицу? Сгенерировать код html в 1с или данные в json, xml не проблема.
18. dsdred 3318 05.06.21 17:36 Сейчас в теме
(13)по закреплению посмотреть position: sticky; /* Липкое позиционирование */
по группировке тег colgroup глянуть.

у меня потребности не было, так как в мобилке отчеты должны быть простыми и не перегруженными, но если есть конкретный пример желаемого вывода данных, могу поискать конкретное решение.
14. maxkrezi 82 04.06.21 17:24 Сейчас в теме
Ну всё, настало время html программистов
17. dsdred 3318 04.06.21 19:37 Сейчас в теме
(14) 😁 оно давно настало. Просто как показывает практика не все щупали html. Поэтому статья для начального уровня.
15. starik-2005 3036 04.06.21 18:21 Сейчас в теме
Если убрать закрывающиеся теги, то если вдруг внезапно кто-то захочет такой файл пропарсить с помощью 1С-ного XPATH, то сделать это он не сможет - невалидный XML/(((
triviumfan; +1 Ответить
16. dsdred 3318 04.06.21 19:34 Сейчас в теме
(15)Первоначально речь шла про отчёты на мобильной платформе, мне сложно даже представить парсер для отчётов из apk.
23. starik-2005 3036 07.06.21 11:44 Сейчас в теме
(16) обычный парсер на 1С с помощью объектов XPath. Например, отфильтровать записи динамически, выведя только попавшие в XPath-выражение строки таблицы.
25. triviumfan 93 10.06.21 11:49 Сейчас в теме
(23) Не поверил. Но когда наткнулся на то, что файл
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<soap:Body>
		<FindCatalogResponse xmlns="http://www.autopiter.ru/">
			<FindCatalogResult>
				<SearchCatalogModel>
					<ArticleId>9032044</ArticleId>
					<CatalogName>Nissan</CatalogName>
					<Name />
					<Number>7700838546</Number>
					<SalesRating>0</SalesRating>
				</SearchCatalogModel>
				<SearchCatalogModel>
					<ArticleId>13523340</ArticleId>
					<CatalogName>Renault</CatalogName>
					<Name>"Замок багажника RENAULT 7700 838 546 RENAULT Logan 1/2/Clio/Megane/Sandero"</Name>
					<Number>7700838546</Number>
					<SalesRating>8</SalesRating>
				</SearchCatalogModel>
				<SearchCatalogModel>
					<ArticleId>127669982</ArticleId>
					<CatalogName>Аксессуары</CatalogName>
					<Name>ЗамокPбагажникаPRenaultPLoganPSanderoPMANOVERPMR400773­1</Name>
					<Number>7700838546</Number>
					<SalesRating>0</SalesRating>
				</SearchCatalogModel>
				<SearchCatalogModel>
					<ArticleId>122731524</ArticleId>
					<CatalogName>Автоваз</CatalogName>
					<Name>Замок крышки багажника (защелка)</Name>
					<Number>7700838546</Number>
					<SalesRating>0</SalesRating>
				</SearchCatalogModel>
				<SearchCatalogModel>
					<ArticleId>122722778</ArticleId>
					<CatalogName>Manover</CatalogName>
					<Name>Замок багажника Renault Logan Sandero MANOVER MR4007731</Name>
					<Number>7700838546</Number>
					<SalesRating>0</SalesRating>
				</SearchCatalogModel>
			</FindCatalogResult>
		</FindCatalogResponse>
	</soap:Body>
</soap:Envelope>
Показать

Но после того, как 1с сериализует в объект XDTO элемент "<Name />" я уже поверил...
19. maksa2005 533 05.06.21 17:52 Сейчас в теме
Html scc js jqwery нужны 2х случаях:
При разработке приложухи. Что я и делал сам
Или при написании красивого дашборда)
20. МимохожийОднако 141 06.06.21 08:41 Сейчас в теме
Было бы интересно преобразование СКД в HTML в обычном режиме без потери отображения
21. dsdred 3318 07.06.21 09:36 Сейчас в теме
(20) Самый простой способ получить программно результат в табличный документ и перевести его в HTML "подшаманя" теги.
С другой стороны если вы хотите выводить сложные отчеты в HTMLб вы наверное их не на мобильной версии планируете?
24. МимохожийОднако 141 08.06.21 06:17 Сейчас в теме
22. gubanoff 63 07.06.21 11:15 Сейчас в теме
(0) Спасибо за примеры про CSS, продолжайте )) Все хотел с этим познакомиться, да руки не доходили.
DrAku1a; dsdred; +2 Ответить
26. pyrkin_vanya 488 18.08.22 07:21 Сейчас в теме
А можно ли сделать группировки в таблице? По принципу как в отчете СКД?
27. dsdred 3318 18.08.22 09:20 Сейчас в теме
(26) можно, но надо заморочится. Если будет время кидаю примеры, а пока можете посмотреть по ссылке ниже пример:

https://ru.stackoverflow.com/questions/1329597/%D0%94%D1%80%D0%B5%D0%B2%D0%BE%D0%B2%D­0%B8%D0%B4%D0%BD%D0%B0%D1%8F-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0-html-css-js
pyrkin_vanya; +1 Ответить
Оставьте свое сообщение