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

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

Главный специалист (Программист 1с)
Подольск
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Программист
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Программист 1С
Ростов-на-Дону
зарплата от 140 000 руб. до 180 000 руб.
Полный день

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