Вывод произвольной таблицы значений в табличный документ

02.02.18

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

Реализация вывода таблицы значений в табличный документ. Протестировано на Платформе 1С:Предприятие 8.3 (8.3.10.2561), конфигурация Учет в МФО 8 (3.1.52.05.1) . Обработка не привязана к какой-то определенной конфигурации. Может быть использована в любой конфигурации.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Вывод произвольной таблицы значений в табличный документ.:
.epf 8,47Kb
33
33 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

В своей обработке нужно разместить процедуру

ВывестиТаблицуНаФорму(ЭлементРезультат,ТестоваяТаблица);

ЭлементРезультат - имя табличного поля на форме 

ТестоваяТаблица - таблица для вывода.

таблицаЗначений ТабличныйДокумент

См. также

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

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

12000 руб.

02.09.2020    170018    939    403    

906

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    13086    100    46    

104

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    26753    90    48    

134

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

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

22200 руб.

06.10.2023    16936    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190718    1151    0    

918

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

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

15000 руб.

10.11.2023    11457    40    27    

66

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    935    2    0    

5

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

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

5000 руб.

07.02.2018    103998    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 03.02.18 09:02
Сообщение было скрыто модератором.
...
2. necropunk 11 05.02.18 10:58 Сейчас в теме
А как именно выводится? Я обычно просто использую

Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
Построитель.Выполнить();
Построитель.Вывести();
teca; Kesak; nikolav; criptid; Gorus; Отованец; JoniG; DrAku1a; CnupT; nomad_irk; 7OH; tgr123; APTEM_SLV; dock; sansys; SmileDDD; pm74; Boneman; +18 Ответить
3. kuzyara 2107 10.06.19 12:40 Сейчас в теме
(2) А как избавиться от отступов?
Чтобы сразу с первой ячейки значения шли?
Aligator69; +1 Ответить
4. ZDmitry83 10 25.08.19 23:25 Сейчас в теме
(3) Можно так:

// Получить табличный документ на основании таблицы значений
//
// Параметры:
//  Таблица - ТаблицаЗначений 
// 
// Возвращаемое значение:
//  ТабличныйДокумент 
//
Функция ПолучитьТабличныйДокумент(Таблица)
	ТабДокумент = Новый ТабличныйДокумент;
			
	// Выводим заголовок таблицы
	КолонкаИндекс = 0;
	Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
		Колонка = Таблица.Колонки[КолонкаИндекс];
		ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;  
		КолонкаИндекс = КолонкаИндекс + 1;
	КонецЦикла;
	
	// Выводим строки таблицы
	СтрокаИндекс = 0;
	Пока СтрокаИндекс < Таблица.Количество() Цикл
		Таблица_Строка = Таблица[СтрокаИндекс];
		КолонкаИндекс = 0;
		Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
			Колонка = Таблица.Колонки[КолонкаИндекс];
			ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 2, СтрокаИндекс + 2, КолонкаИндекс + 2).Текст = Таблица_Строка[Колонка.Имя];  // + 2, т.к. в первой строке выведен заголовок
			КолонкаИндекс = КолонкаИндекс + 1;
		КонецЦикла;		
		СтрокаИндекс = СтрокаИндекс + 1;
	КонецЦикла;
	
	Возврат ТабДокумент;
КонецФункции
Показать
5. ZDmitry83 10 26.08.19 17:24 Сейчас в теме
(4) Исправленная функция:

// Получить табличный документ на основании таблицы значений
//
// Параметры:
//  Таблица	 - ТаблицаЗначений 
// 
// Возвращаемое значение:
//  ТабличныйДокумент 
//
Функция ПолучитьТабличныйДокумент(Таблица) Экспорт
	ТабДокумент = Новый ТабличныйДокумент;
	
	// Выводим заголовок таблицы
	КолонкаИндекс = 0;
	Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
		Колонка = Таблица.Колонки[КолонкаИндекс];
		ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;  
		КолонкаИндекс = КолонкаИндекс + 1;
	КонецЦикла;
	
	// Выводим строки таблицы
	СтрокаИндекс = 0;
	Пока СтрокаИндекс < Таблица.Количество() Цикл
		Таблица_Строка = Таблица[СтрокаИндекс];
		КолонкаИндекс = 0;
		Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
			Колонка = Таблица.Колонки[КолонкаИндекс];
			ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 1, СтрокаИндекс + 2, КолонкаИндекс + 1).Текст = Формат(Таблица_Строка[Колонка.Имя], "ЧГ=0");
			КолонкаИндекс = КолонкаИндекс + 1;
		КонецЦикла;		
		СтрокаИндекс = СтрокаИндекс + 1;
	КонецЦикла;
	
	Возврат ТабДокумент;
КонецФункции
Показать
Nikitos_NSK; birk; MrEvilSkotch; criptid; 24rus; Nikolaich_; baracuda; CratosX; Mingrel; Garik8866; sv_baranov; user1236603; eeeio; dimisa; dmnblg; mikl79; +16 Ответить
10. AnryMc 849 28.10.21 13:19 Сейчас в теме
(5) Не посмотрел что есть (5) - ответил в (4)
12. baracuda 2 01.02.22 17:28 Сейчас в теме
(5)
// Получить табличный документ на основании таблицы значений
//
// Параметры:
// Таблица - ТаблицаЗначений
//
// Возвращаемое значение:
// ТабличныйДокумент
//
Функция ПолучитьТабличныйДокумент(Таблица) Экспорт
ТабДокумент = Новый ТабличныйДокумент;

// Выводим заголовок таблицы
КолонкаИндекс = 0;
Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
Колонка = Таблица.Колонки[КолонкаИндекс];
ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;
КолонкаИндекс = КолонкаИндекс + 1;
КонецЦикла;

// Выводим строки таблицы
СтрокаИндекс = 0;
Пока СтрокаИндекс < Таблица.Количество() Цикл
Таблица_Строка = Таблица[СтрокаИндекс];
КолонкаИндекс = 0;
Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
Колонка = Таблица.Колонки[КолонкаИндекс];
ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 1, СтрокаИндекс + 2, КолонкаИндекс + 1).Текст = Формат(Таблица_Строка[Колонка.Имя], "ЧГ=0");
КолонкаИндекс = КолонкаИндекс + 1;
КонецЦикла;
СтрокаИндекс = СтрокаИндекс + 1;
КонецЦикла;

Возврат ТабДокумент;
КонецФункции
Показать


Годнота!
13. CratosX 114 01.02.22 23:59 Сейчас в теме
(5)
ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;


можно усовершенствовать код:

		КолонкаИмя = ?(ЗначениеЗаполнено(Колонка.Заголовок), Колонка.Заголовок, Колонка.Имя);
		ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = КолонкаИмя;
		
		Если Колонка.Ширина > 0 Тогда
			ТабДокумент.Область("C"+Формат(КолонкаИндекс + 1, "ЧГ=")).ШиринаКолонки = Колонка.Ширина;
		КонецЕсли;


Попробовал ещё зафиксировать первую строку, но сохранение почему-то игнорит это:
ТабДокумент.ФиксацияСверху = 1;

Платформа 8.3.20, конфигурация в режиме совместимости с 8.2.13.
9. AnryMc 849 28.10.21 13:18 Сейчас в теме
(4)
ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 2, СтрокаИндекс + 2, КолонкаИндекс + 2).Текст = Таблица_Строка[Колонка.Имя]; // + 2, т.к. в первой строке выведен заголовок


Ошибка! Надо +2 только в строках, а в колонках +1 иначе строки начиная со 2-й смещаются на 1-ну колонку
6. mikl79 120 15.11.19 09:45 Сейчас в теме
(2), при отображении на экране в отличии от функции в (5):
1) не выводит сетку;
2) не отображает не простые типы данных, например, массив, стукртура
7. 7OH 70 13.04.20 10:59 Сейчас в теме
Построчно выводить - явно перебор.

Строки убрать можно так:
Построитель.ВыводитьЗаголовокОтчета = Ложь;
Построитель.ВыводитьПодвалОтчета	= Ложь;
Построитель.ВыводитьПодвалТаблицы	= Ложь;


Как убрать левую пустую колонку ? не через таб док ? ))
LeXXeR; avk_avk; +2 Ответить
8. hcooh 24.09.20 20:25 Сейчас в теме
(7)
ОбластьУдаления = ТабДокумент.Область(, НомерКолонки, , НомерКолонки);
Смещать = ТипСмещенияТабличногоДокумента.ПоГоризонтали;
ТабДокумент.УдалитьОбласть(ОбластьУдаления, Смещать);
11. vl-sher1 44 30.12.21 02:49 Сейчас в теме
(8)
ОбластьУдаления = ТабДокумент.Область(, НомерКолонки, , НомерКолонки);
Смещать = ТипСмещенияТабличногоДокумента.ПоГоризонтали;
ТабДокумент.УдалитьОбласть(ОбластьУдаления, Смещать);

Не удаляет. Я делаю так:
ТабДокумент.УдалитьОбласть(ТабДокумент.Область(, 1, 1, 1), ТипСмещенияТабличногоДокумента.ПоВертикали)
Оставьте свое сообщение