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

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 129 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 Сейчас в теме
И еще вопрос как вывести не имя колонки а заголовок ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот