|
Можно ли программно распечатать табличную часть документа 8.1-8.2 | ☑ | ||
---|---|---|---|---|
0
manti
01.10.13
✎
15:56
|
Собственно САБЖ: возможно ли какими прогр. методами распечатать табличную часть документа. Аналог вывести список при нажатии на пр. кнопку мыши.
Подойдет любой синтаксис как от 8.1 так и 8.2 |
|||
1
catena
01.10.13
✎
15:59
|
Функция ВывестиТаблицуЗначений(П) Экспорт
//Назначение: Выводит таблицу значений в макет //ДатаСоздания: 20070221 //Автор: Fixin //Тестирована: Да //$П: Структура параметров //$П.ТЗ: Таблица значений, выводимая в отчет //$П.Макет: Макет, который используется для вывода в отчет, может отсутствовать //$П.Т: Таблица, в которую выводить отчет, если не задана, создается //$П.ПараметрыШапки: Параметры, передаваемые в шапку //$П.ПараметрыПодвала: Параметры, передаваемые в подвал //$П.ИмяШапки: Имя шапки в макете, по умолчанию Шапка //$П.ИмяСтроки: Имя строки в макете, по умолчанию Строка //$П.Показывать: Показывать ли таблицу, по умолчанию истина //$П.ИмяПодвала: Имя подвала, по умолчанию Подвал //$П.Показывать: Показывать ли таблицу, по умолчанию истина //$П.РасчитыватьИтоги: Расчитывать ли итоги, по умолчанию истина //Описание: // Сначала выводится шапка, затем строки, затем подвал. // Если указан флаг "Расчитывать итоги", то подвал заполняется итогами таблицы, // а затем из структуры "Параметры подвала". //Пример: // ВывестиТаблицуЗначений(Новый Структура("ТЗ, ЗаголовокОкна", ТЗ, "Моя ТЗ")); #Если Клиент Тогда Перем ТЗ, Макет, Т, ПараметрыШапки, ПараметрыПодвала, ИмяШапки, ИмяСтроки, ИмяПодвала, Показывать, РасчитыватьИтоги, НачальнаяСтрока, ЗаголовокОкна; П.Свойство("ЗаголовокОкна", ЗаголовокОкна); П.Свойство("ТЗ", ТЗ); П.Свойство("Макет", Макет); П.Свойство("Т", Т); П.Свойство("ПараметрыШапки", ПараметрыШапки); П.Свойство("ПараметрыПодвала", ПараметрыПодвала); Если НЕ П.Свойство("ИмяШапки", ИмяШапки) Тогда ИмяШапки="Шапка"; КонецЕсли; Если НЕ П.Свойство("ИмяСтроки", ИмяСтроки) Тогда ИмяСтроки="Строка"; КонецЕсли; Если НЕ П.Свойство("ИмяПодвала", ИмяПодвала) Тогда ИмяПодвала="Подвал"; КонецЕсли; Если НЕ П.Свойство("Показывать", Показывать) Тогда Показывать=Истина; КонецЕсли; Если НЕ П.Свойство("РасчитыватьИтоги", РасчитыватьИтоги) Тогда РасчитыватьИтоги=Истина; КонецЕсли; //Если таблица не задана, создаем ее Если Т=Неопределено Тогда Т=Новый ТабличныйДокумент(); НачальнаяСтрока=1; Иначе НачальнаяСтрока=Т.ВысотаТаблицы+1; КонецЕсли; //Выводим шапку через макет Если ИмяШапки<>Неопределено И Макет<>Неопределено Тогда Шапка=Макет.ПолучитьОбласть(ИмяШапки); Если ПараметрыШапки<>Неопределено Тогда Шапка.Параметры.Заполнить(ПараметрыШапки); КонецЕсли; Т.Вывести(Шапка); Иначе //выводим шапку непосредственно в ячейки Для Каждого Кол ИЗ ТЗ.Колонки Цикл Заг=СокрЛП(Кол.Заголовок); Заг=?(Заг="",Кол.Имя, Заг); Т.Область(НачальнаяСтрока, 1+ТЗ.Колонки.Индекс(Кол), НачальнаяСтрока, 1+ТЗ.Колонки.Индекс(Кол)).Текст=Заг; КонецЦикла; КонецЕсли; Для Каждого Стр ИЗ ТЗ Цикл Если ИмяСтроки<>Неопределено И Макет<>Неопределено Тогда Строка=Макет.ПолучитьОбласть(ИмяСтроки); Строка.Параметры.Заполнить(Стр); Т.Вывести(Строка); Иначе //выводим строки Для Каждого Кол ИЗ ТЗ.Колонки Цикл Т.Область(НачальнаяСтрока+1+ТЗ.Индекс(Стр), 1+ТЗ.Колонки.Индекс(Кол), НачальнаяСтрока+1+ТЗ.Индекс(Стр), 1+ТЗ.Колонки.Индекс(Кол)).Текст=Стр[Кол.Имя]; КонецЦикла; КонецЕсли; КонецЦикла; Если ИмяПодвала<>Неопределено И Макет<>Неопределено Тогда Подвал=Макет.ПолучитьОбласть(ИмяПодвала); Если РасчитыватьИтоги=истина Тогда ПараметрыИтогов=Новый Структура(); Для Каждого Кол ИЗ ТЗ.Колонки Цикл ПараметрыИтогов.Вставить(Кол.Имя, ТЗ.Итог(Кол.Имя)); КонецЦикла; Подвал.Параметры.Заполнить(ПараметрыИтогов); КонецЕсли; Если ПараметрыПодвала<>Неопределено Тогда Подвал.Параметры.Заполнить(ПараметрыПодвала); КонецЕсли; Т.Вывести(Подвал); КонецЕсли; Если Показывать Тогда Т.Показать(ЗаголовокОкна); КонецЕсли; Возврат Т; #КонецЕсли КонецФункции |
|||
2
manti
01.10.13
✎
16:22
|
(1)
есть напрмиер док поступление товаров из типовой БП. Ставлю кнопочку, на ней вызываю эту функцию, в функцию передаю ТЧ товары - как ТЗ Процедура ПечатьТЧНажатие(Элемент) ВывестиТаблицуЗначений(Товары.Выгрузить()); КонецПроцедуры пишет: {Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента.Форма(2884)}: Метод объекта не обнаружен (Свойство) П.Свойство("ЗаголовокОкна", ЗаголовокОкна); |
|||
3
Chikko
01.10.13
✎
16:25
|
(2) там в описании ф-ции написано что передавать.
|
|||
4
manti
01.10.13
✎
16:25
|
(3) сорри не увидел вовремя)) разобрался
|
|||
5
manti
01.10.13
✎
16:31
|
(1) спасибо
|
|||
6
ИС-2
naïve
01.10.13
✎
16:49
|
вот моя процедура рез - таблица значений, показывать - вывод на экран
Процедура СохранитьТЗ_В_Файл(рез,ИмяФайла,Показывать = Ложь) табдок = Новый ТабличныйДокумент; ПутьСохраненияСлужебнойИнформации = _КлиентСервер.ПолучитьЗначениеГлПеременной("ПутьСохраненияСлужебнойИнформации"); ИмяФайлаСохранения = ПутьСохраненияСлужебнойИнформации + "\"+ ИмяФайла+" "+Формат(ТекущаяДата(),"ДФ=yyyy_MM_dd") + ".XLS"; ПострПечать = Новый ПостроительОтчета; ПострПечать.ИсточникДанных = Новый ОписаниеИсточникаДанных(рез); ПострПечать.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Интерфейс); ПострПечать.Выполнить(); Для каждого Колонка Из ПострПечать.ВыбранныеПоля Цикл Колонка.Представление = рез.Колонки[Колонка.Имя].Имя; КонецЦикла; ПострПечать.Вывести(ТабДок); Если Показывать Тогда табдок.Показать(имяфайла); КонецЕсли; Попытка ТабДок.Записать(ИмяФайлаСохранения,ТипФайлаТабличногоДокумента.XLS); _КлиентСервер.ВывестиСообщениеПользователю("Записан файл " + ИмяФайлаСохранения); Исключение СообщитьОбОшибке("Ошибка сохранения " + ИмяФайла + "(" +ИмяФайлаСохранения + "); " + ОписаниеОшибки()); КонецПопытки; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |