0. Yashazz 2351 17.02.13 19:35 Сейчас в теме

Из таблиц значений в html-таблицы, функция

На входе - таблица значений, в ячейках которой могут содержаться другие таблицы значений и массивы, в которых могут быть таблицы значений. Рекурсивная функция. На выходе - html-строка, представляющая собой готовый документ или фрагмент для использования в html.
Действие, обратное http://infostart.ru/public/172688/ (собственно, "по заявкам" и сделано)

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. sikuda 576 18.02.13 09:45 Сейчас в теме
Интересно. А нет у тебя заготовок для ТабличныйДокумент -> HTML Table? Интересует перенос оформления в html?
2. Yashazz 2351 18.02.13 14:20 Сейчас в теме
(1) Нету. Если табличный документ не сильно "красивый" да навороченный, можно его через таблицу значений кинуть.
15. ResetAtreides 11.04.17 13:55 Сейчас в теме
(1) Табличный документ по умолчанию умеет в HTML сохраняться, СКД так сохраняю. Правда только целиком и лишние столбцы справа захватывает, не нашел адекватного способа это побороть
17. Yashazz 2351 14.04.17 13:17 Сейчас в теме
(15) Табличные документы проще сериализовать, раздербанить с помощью DOM, например, и вывалить в HTML так же, как показано в этой публикации.
18. ResetAtreides 14.04.17 13:46 Сейчас в теме
(17) Я так понял у вас из таблиц значений HTML генерируется, а мне надо прямоугольную область из табличного документа с сохранением форматирования(хоть примерным). Не очень представляю как обрабатывать сериализованный табличный документ
19. Yashazz 2351 14.04.17 19:49 Сейчас в теме
(18) вот и говорю, берёте табличный документ со всей прелестью, что в нём, превращаете в xml, а оттуда в html. Примеры кода можно глянуть тут: http://infostart.ru/public/531533/ Обрабатывать его довольно просто, там структура в общем интуитивно понятная. Можно обрабатывать как xml, можно как DOM, можно вообще как текстовый файл.
20. Yashazz 2351 24.05.17 23:38 Сейчас в теме
(18) Вот, дошли руки:
// делаем заголовок
    стро=таб.ВставитьСтроку(1);
    стро.ВертикальноеПоложение=рВыравниваниеВерт;
    стро.Выравнивание=рВыравниваниеГор;
    стро.ЦветФона=рЦветФонаЗаголовка;
	//
	телтаб.ДобавитьДочерний(стро);
    Для каждого кол Из рТаблица.Колонки Цикл
        яч=док.СоздатьЭлемент("TD");
        яч.ТекстовоеСодержимое=СокрЛП(?(ПустаяСтрока(кол.Заголовок),кол.Имя,кол.Заголовок));
        стро.ДобавитьДочерний(яч);
    КонецЦикла;
Показать
3. Steelvan 19.02.13 11:29 Сейчас в теме
4. mikhailovaew 126 14.03.13 11:11 Сейчас в теме
Молодец автор, большую работу сделал!
5. mikhailovaew 126 14.03.13 11:11 Сейчас в теме
Отдельное спасибо за то, что выложил текстом, и не приходится скачивать.
purgin; DERL; shard; gluker; OrsoBear; sea-man; +6 Ответить
6. FireFox_Manager 08.10.13 22:27 Сейчас в теме
Спасибо большое, очень пригодилось.
7. ALagutin 57 21.11.14 11:51 Сейчас в теме
Очень полезная функция! Спасибо!
8. HeleneBush 02.09.15 12:53 Сейчас в теме
9. juliia1992 06.01.16 15:30 Сейчас в теме
А как можно поменять программно цвет текста в таблице, причем в строках одной конкретной колонки?
10. Yashazz 2351 23.01.16 19:50 Сейчас в теме
(9) juliia1992, придётся немножко покодить, прямо так по-простому вряд ли получится. Сделать?
11. skomisaruk 26.05.16 12:01 Сейчас в теме
12. houpl 11.01.17 07:38 Сейчас в теме
13. klom 11.01.17 07:48 Сейчас в теме
14. DERL 11.04.17 13:41 Сейчас в теме
Спасибо огромное! А как добавить шапку таблицы из наименования колонок?
16. Yashazz 2351 14.04.17 13:16 Сейчас в теме
(14) Вызывать те же действия, что пишут конкретную строку таблицы (поячейно-поколонно), только для самой коллекции колонок. Ну, дизайн можно другой наворотить)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Самара
зарплата от 50 000 руб. до 100 000 руб.
По совместительству


Программист 1С
Санкт-Петербург
зарплата от 115 000 руб. до 160 000 руб.
Полный день

Руководитель проектов 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день