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

02.02.18

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

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

Файлы

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

Наименование Скачано Купить файл
Вывод произвольной таблицы значений в табличный документ.:
.epf 8,47Kb
36 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

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

24900 руб.

20.08.2024    57859    310    154    

283

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

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

16500 руб.

02.09.2020    241004    1314    419    

1113

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    37008    77    19    

89

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22570 руб.

06.10.2023    34094    88    35    

111

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    23154    84    42    

98

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    47942    165    63    

202

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    5308    2    2    

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

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

// Получить табличный документ на основании таблицы значений
//
// Параметры:
//  Таблица - ТаблицаЗначений 
// 
// Возвращаемое значение:
//  ТабличныйДокумент 
//
Функция ПолучитьТабличныйДокумент(Таблица)
	ТабДокумент = Новый ТабличныйДокумент;
			
	// Выводим заголовок таблицы
	КолонкаИндекс = 0;
	Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
		Колонка = Таблица.Колонки[КолонкаИндекс];
		ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;  
		КолонкаИндекс = КолонкаИндекс + 1;
	КонецЦикла;
	
	// Выводим строки таблицы
	СтрокаИндекс = 0;
	Пока СтрокаИндекс < Таблица.Количество() Цикл
		Таблица_Строка = Таблица[СтрокаИндекс];
		КолонкаИндекс = 0;
		Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
			Колонка = Таблица.Колонки[КолонкаИндекс];
			ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 2, СтрокаИндекс + 2, КолонкаИндекс + 2).Текст = Таблица_Строка[Колонка.Имя];  // + 2, т.к. в первой строке выведен заголовок
			КолонкаИндекс = КолонкаИндекс + 1;
		КонецЦикла;		
		СтрокаИндекс = СтрокаИндекс + 1;
	КонецЦикла;
	
	Возврат ТабДокумент;
КонецФункции
Показать
5. ZDmitry83 11 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; valik_888; user1236603; eeeio; dimisa; dmnblg; mikl79; +16 Ответить
10. AnryMc 850 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 116 01.02.22 23:59 Сейчас в теме
(5)
ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;


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

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


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

Платформа 8.3.20, конфигурация в режиме совместимости с 8.2.13.
user1060835; +1 Ответить
9. AnryMc 850 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 Сейчас в теме
Построчно выводить - явно перебор.

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


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

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