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

1. gerasimovaol@rambler.ru 94 22.08.19 19:57 Сейчас в теме
Как в управляемой форме.внешней обработки/отчета (*.epf) вывести на печать таблицу значений созданную программно и так же выведенную на форму программно (1С.8.3.15.34, 1С Бух 3.0.70.52) ?
По теме из базы знаний
Найденные решения
3. SlavaKron 22.08.19 20:33 Сейчас в теме
Что значит "выведенную на форму программно"? Реквизит формы с типом ТаблицаЗначений изначально существует или создается программно? Если существует, просто выведите его стандартную команду "Вывести список..." на форму.
Иначе Вариант 1:
&НаКлиенте
Процедура ВывестиНаПечать(Команда)
	ТабДок = ВывестиНаПечатьНаСервере();
	ТабДок.Показать();
КонецПроцедуры

&НаСервере
Функция ВывестиНаПечатьНаСервере()
	ТЗ = РеквизитФормыВЗначение("Реквизит1");
	ПостроительОтчета = Новый ПостроительОтчета;
	ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
	
	ТабДок = Новый ТабличныйДокумент;
	ПостроительОтчета.Вывести(ТабДок);
	Возврат ТабДок
КонецФункции
Показать
Вариант 2:
&НаКлиенте
Процедура ВывестиНаПечать2(Команда)
	ТабДок = ВывестиНаПечатьНаСервере2();
	ТабДок.Показать();	
КонецПроцедуры

&НаСервере
Функция ВывестиНаПечатьНаСервере2()
	ТЗ = РеквизитФормыВЗначение("Реквизит1");
	
	ТабДок = Новый ТабличныйДокумент;
	Сч = 1;
	Для Каждого Колонка Из ТЗ.Колонки Цикл
		ТабДок.Область(1, Сч).Текст = Колонка.Имя;
		Сч = Сч + 1
	КонецЦикла;
	
	КоличествоКолонок = ТЗ.Колонки.Количество();
	
	ТекущаяСтрока = 2;
	Для Каждого Стр Из ТЗ Цикл
		Для Сч = 1 По КоличествоКолонок Цикл
			ТабДок.Область(ТекущаяСтрока, Сч).Текст = Стр[Сч - 1];			
		КонецЦикла;
		ТекущаяСтрока = ТекущаяСтрока + 1;
	КонецЦикла;
	
	Возврат ТабДок
КонецФункции
Показать
Прикрепленные файлы:
ВнешняяОбработка1.epf
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 128 22.08.19 20:21 Сейчас в теме
(1) Считать все в таб.док, и дальше делать все что нужно
3. SlavaKron 22.08.19 20:33 Сейчас в теме
Что значит "выведенную на форму программно"? Реквизит формы с типом ТаблицаЗначений изначально существует или создается программно? Если существует, просто выведите его стандартную команду "Вывести список..." на форму.
Иначе Вариант 1:
&НаКлиенте
Процедура ВывестиНаПечать(Команда)
	ТабДок = ВывестиНаПечатьНаСервере();
	ТабДок.Показать();
КонецПроцедуры

&НаСервере
Функция ВывестиНаПечатьНаСервере()
	ТЗ = РеквизитФормыВЗначение("Реквизит1");
	ПостроительОтчета = Новый ПостроительОтчета;
	ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
	
	ТабДок = Новый ТабличныйДокумент;
	ПостроительОтчета.Вывести(ТабДок);
	Возврат ТабДок
КонецФункции
Показать
Вариант 2:
&НаКлиенте
Процедура ВывестиНаПечать2(Команда)
	ТабДок = ВывестиНаПечатьНаСервере2();
	ТабДок.Показать();	
КонецПроцедуры

&НаСервере
Функция ВывестиНаПечатьНаСервере2()
	ТЗ = РеквизитФормыВЗначение("Реквизит1");
	
	ТабДок = Новый ТабличныйДокумент;
	Сч = 1;
	Для Каждого Колонка Из ТЗ.Колонки Цикл
		ТабДок.Область(1, Сч).Текст = Колонка.Имя;
		Сч = Сч + 1
	КонецЦикла;
	
	КоличествоКолонок = ТЗ.Колонки.Количество();
	
	ТекущаяСтрока = 2;
	Для Каждого Стр Из ТЗ Цикл
		Для Сч = 1 По КоличествоКолонок Цикл
			ТабДок.Область(ТекущаяСтрока, Сч).Текст = Стр[Сч - 1];			
		КонецЦикла;
		ТекущаяСтрока = ТекущаяСтрока + 1;
	КонецЦикла;
	
	Возврат ТабДок
КонецФункции
Показать
Прикрепленные файлы:
ВнешняяОбработка1.epf
4. gerasimovaol@rambler.ru 94 22.08.19 21:54 Сейчас в теме
Реквизит формы с типом ТаблицаЗначений изначально существует, например как в Вашем примере "Реквизит1" , но колонки формируются программно, а не заданы как у Вас Реквизит1,Реквизит2,Реквизит13.
Прикрепленные файлы:
prtsc.xlsx
5. gerasimovaol@rambler.ru 94 22.08.19 22:07 Сейчас в теме
Спасибо, что откликнулись!
6. gerasimovaol@rambler.ru 94 22.08.19 22:29 Сейчас в теме
И еще вопрос как вывести не имя колонки а заголовок ?
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

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

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

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