helpf.pro
Регистрация
 +3 
Распечатать

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

Пример кода быстрая Печать таблицы значений
Код 1C v 8.х
  //ТПОтчета - Табличное поле с формы (Таблица значений) с данными
ПострПечать = Новый ПостроительОтчета;
    ПострПечать.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТПОтчета);
    ПострПечать.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Интерфейс);
    ПострПечать.Выполнить();
    Для каждого Колонка Из ПострПечать.ВыбранныеПоля Цикл
        Колонка.Представление = ТПОтчета.Колонки[Колонка.Имя].Заголовок;
    КонецЦикла; 
    ПострПечать.Вывести();   


Пример функций Печать таблицы значений с использованием Макета
Код 1C v 8.х
 //Процедура  формирует и выводит отчет по переданной таблице значений
// Параметры :
// ТЗ - ТаблицаЗначений
Процедура УниверсальныйОтчетПоТЗ(ТЗ)

Табл=Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
ОбластьШапкаОсновной=Макет.ПолучитьОбласть("Шапка|Основной");
ОбластьСтрокаОсновной=Макет.ПолучитьОбласть("Строка|Основной");
ОбластьИтогОсновной=Макет.ПолучитьОбласть("Итог|Основной");
ОбластьШапкаДОП=Макет.ПолучитьОбласть("Шапка|Показатели");
ОбластьСтрокаДОП=Макет.ПолучитьОбласть("Строка|Показатели");
ОбластьИтогДОП=Макет.ПолучитьОбласть("Итог|Показатели");
Табл.Вывести(ОбластьШапкаОсновной);

Для Каждого Колонка из Тз.Колонки ЦИКЛ
 ОбластьШапкаДОП.Параметры.ИмяПоказателя=Колонка.Имя;
 Табл.Присоединить(ОбластьШапкаДОП);
КонецЦикла;

счетчик=0;
Для каждого стр из Тз Цикл
 счетчик=счетчик+1;
 ОбластьСтрокаОсновной.Параметры.счетчик=счетчик; 
 Табл.Вывести(ОбластьСтрокаОсновной);
  Для Каждого Колонка из Тз.Колонки ЦИКЛ
   ОбластьСтрокаДОП.Параметры.ЗначениеКолонки=стр[Колонка.Имя];
   Табл.Присоединить(ОбластьСтрокаДОП);
  КонецЦикла;
КонецЦикла;
Табл.Вывести(ОбластьИтогОсновной);

Для Каждого Колонка из Тз.Колонки ЦИКЛ
 ОбластьИтогДОП.Параметры.Итог=Тз.Итог(Колонка.Имя);
 Табл.Присоединить(ОбластьИтогДОП);
КонецЦикла;

Табл.Показать();
КонецПроцедуры   



Код 1C v 7.x
 
//Вывести таблицу значений
Процедура ПечатьТЗвТаб(ТЗ, Заголовок = "",КолонкиПоНазваниям = 0) Экспорт
	Перем ТТЗ;
	ТЗ.Выгрузить(ТТЗ);
	МаксШирина = 50;    // максимальная ширина колонки 
	СпШирина = СоздатьОбъект("СписокЗначений"); // список ширин колонок по таблице
	Для сч = 1 по ТТЗ.КоличествоКолонок() Цикл
		Если КолонкиПоНазваниям = 0  Тогда
			ИмяРек = ТТЗ.ПолучитьПараметрыКолонки(сч);
		Иначе
			ИмяРек = "";
			ТТЗ.ПолучитьПараметрыКолонки(сч,,,,ИмяРек,);
		КонецЕсли;
		СпШирина.ДобавитьЗначение(СтрДлина(ИмяРек)*1.2); // с поправкой на размер шрифта
	КонецЦикла;	
	
	// просто печать таблицы - вывод всех строк и колонок
	// числовые значения - по правому краю. Автоподбор ширины - в пределах МаксШирина
	Таб=СоздатьОбъект("Таблица");
	Таб.ИсходнаяТаблица("ПечатьТЗ");
	Если СокрЛП(Заголовок) <> "" Тогда
		Таб.ВывестиСекцию("Шапка");
	КонецЕсли;
	// заголовки таблицы
	Таб.ВывестиСекцию("Строка|Общая");
	Для сч=1 по ТТЗ.КоличествоКолонок() Цикл
		Если КолонкиПоНазваниям = 0  Тогда
			ИмяРек = ТТЗ.ПолучитьПараметрыКолонки(сч);
		Иначе
			ИмяРек = ""; 
			Ном = "";
			ТТЗ.ПолучитьПараметрыКолонки(сч,,,,ИмяРек,);
		КонецЕсли;
		Таб.ПрисоединитьСекцию("Строка|Столбец");  
	КонецЦикла;
	ВысотаШапки = Таб.ВысотаТаблицы();
	// данные таблицы по строкам
	ТТЗ.ВыбратьСтроки();
	Пока ТТЗ.ПолучитьСтроку()=1 Цикл
		Ном = ТТЗ.НомерСтроки;
		Таб.ВывестиСекцию("Строка|Общая");
		Выс = Таб.ВысотаТаблицы();
		Для сч=1 по ТТЗ.КоличествоКолонок() Цикл
			ИмяРек=ТТЗ.ПолучитьЗначение(Ном,сч);
			Таб.ПрисоединитьСекцию("Строка|Столбец");
			Если ТипЗначения(ИмяРек) = 1 Тогда
				Обл = Таб.Область("R"+Выс+"C"+(Сч+1)); // ячейка в которую поместили данные
				Обл.ГоризонтальноеПоложение(2); // числа - вправо
			КонецЕсли;
			НачШирина = СпШирина.ПолучитьЗначение(Сч);
			Ширина = СтрДлина(ИмяРек);
			СпШирина.УстановитьЗначение(Сч,Макс(НачШирина,Ширина));
		КонецЦикла;
	КонецЦикла;
	
	Для сч = 1 по СпШирина.РазмерСписка() Цикл
		Обл = Таб.Область("R"+ВысотаШапки+"C"+(Сч+1));
		// форматируем ширину таблицы
		Ширина = Мин(МаксШирина,2+СпШирина.ПолучитьЗначение(Сч));
		Обл.ШиринаСтолбца(Ширина);   
		// форматируем заголовок
		Обл.Полужирный(1);
	КонецЦикла;	
	Таб.Показать(Заголовок);
	Таб.ТолькоПросмотр(1);
КонецПроцедуры 

ИЛИ
Код 1C v 7.x
 Процедура глВывестиТаблицуЗначений(ТаблицаЗначений, Заголовок = "") Экспорт
Перем Таб, ИИ, ЖЖ, НазваниеКолонки, ТипКолонки, Ширина, Значение, Сообщение;

Таб = СоздатьОбъект("Таблица");

Если ТипЗначенияСтр(ТаблицаЗначений) <> "ТаблицаЗначений" Тогда
Сообщение = "В процедуру ""глВывестиТаблицуЗначений()"" передана переменная не типа ""ТаблицаЗначений"", "+
"а типа """+СокрЛП(ТипЗначенияСтр(ТаблицаЗначений))+"""";
Таб.Область(1, 1, 1, 1).Текст = Сообщение;
Таб.Область(1, 1, 1, 1).ШиринаСтолбца(СтрДлина(Сообщение));

Таб.ТолькоПросмотр(1);
Таб.Показать("Не таблица значений: "+Заголовок);

Возврат;
КонецЕсли;

Для ЖЖ = 1 по ТаблицаЗначений.КоличествоКолонок() цикл
ТаблицаЗначений.ПолучитьПараметрыКолонки(ЖЖ,,,, НазваниеКолонки);
Таб.Область(1, ЖЖ, 1, ЖЖ).Текст = СокрЛП(НазваниеКолонки);
Таб.Область(1, ЖЖ, 1, ЖЖ).РамкаОбвести(5, 5, 5, 5);
Таб.Область(1, ЖЖ, 1, ЖЖ).ВертикальноеПоложение(3);
Таб.Область(1, ЖЖ, 1, ЖЖ).ГоризонтальноеПоложение(3);
Таб.Область(1, ЖЖ, 1, ЖЖ).РазмерШрифта(7);
Таб.Область(1, ЖЖ, 1, ЖЖ).Полужирный(1);

Ширина = Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца();
Ширина = Макс(Ширина, СтрДлина(СокрЛП(НазваниеКолонки)));
Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца(Ширина);
КонецЦикла;

Для ИИ = 1 по ТаблицаЗначений.КоличествоСтрок() цикл
Для ЖЖ = 1 по ТаблицаЗначений.КоличествоКолонок() цикл
Значение = ТаблицаЗначений.ПолучитьЗначение(ИИ, ЖЖ);
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).Текст = Значение;
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).Расшифровка(Значение, 0);
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).РамкаОбвести(3, 0, 3, 0);

Ширина = Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца();
Ширина = Макс(Ширина, СтрДлина(СокрЛП(Строка(Значение))));
Таб.Область(1, ЖЖ, 1, ЖЖ).ШиринаСтолбца(Ширина);

ТаблицаЗначений.ПолучитьПараметрыКолонки(ЖЖ, ТипКолонки); ;
Если ТипКолонки = "Число" тогда
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).ГоризонтальноеПоложение(2);
КонецЕсли;
Если ИИ = ТаблицаЗначений.ТекущаяСтрока() тогда
Таб.Область(ИИ+1, ЖЖ, ИИ+1, ЖЖ).ЦветФона(255, 0, 0);
КонецЕсли;
КонецЦикла;
КонецЦикла;

Таб.ТолькоПросмотр(1);
Таб.Показать("Таблица значений: "+Заголовок);
КонецПроцедуры
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 117472
 +3 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1Cv8.1CD - Файл данных достиг максимального размера! 9
1С выдает предупреждение " Файл данных достиг максимального размера" . Подскажите из - за чего это и как можно решить ? Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка
Excel файл как Внешний источник данных 17
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img
QR код в 1С 21
Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог
Автоматическая установка ширины колонки табличного документа. 0
Процедура, которая " примерно" делает автоширину колонок (навроде, как если бы выделить все колонки и дважды щелкнуть мышкой по границе заголовка колонки). Привожу текст, работает неахти, но лучше чем ничего: Процедура РасчетШириныКолонок(Табличный
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!