Как вывести табличный документ в форму "Печать документов"

1. Manticor 66 05.11.13 12:21 Сейчас в теме
Добрый день конфигурация УНФ редакция 1.4 (1.4.2.22) на УФ.

Если например печатать печатную форму МХ-18 для документа производство, то макет выводится в типовую фрму печати документов (скрин приложил).
Создаю внешний отчет. Хочу, чтобы при печати макет выводился в аналогичную форму.
Код следующий:

&НаКлиенте
Процедура Сформировать(Команда)
	ТабДок = Данные();
	ТабДок.Показать();
КонецПроцедуры

&НаСервере
Функция Данные()
	перем ТекущийДокумент;	

	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_МХ-18";
    НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
	
	Запрос = Новый Запрос();
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	СборкаЗапасов.Дата КАК ДатаДокумента,
		|	СборкаЗапасов.Организация КАК Организация,
		|	СборкаЗапасов.Организация.Префикс КАК Префикс,
		|	СборкаЗапасов.Номер КАК Номер,
		|	СборкаЗапасовПродукция.НомерСтроки,
		|	СборкаЗапасовПродукция.Номенклатура КАК Номенклатура,
		|	СборкаЗапасовПродукция.Характеристика КАК Характеристика,
		|	СборкаЗапасовПродукция.Партия,
		|	СборкаЗапасовПродукция.Количество КАК КоличествоМест,
		|	СборкаЗапасовПродукция.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
		|	СборкаЗапасовПродукция.Спецификация,
		|	СборкаЗапасовПродукция.Номенклатура.Код КАК НоменклатураКод,
		|	СборкаЗапасовПродукция.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
		|	ВЫБОР
		|		КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
		|			ТОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент
		|		ИНАЧЕ 1
		|	КОНЕЦ КАК КоличествоВОдномМесте,
		|	СборкаЗапасовПродукция.ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
		|	ВЫРАЗИТЬ(СборкаЗапасовПродукция.Номенклатура.НаименованиеПолное КАК СТРОКА(250)) КАК Запас,
		|	СборкаЗапасовПродукция.Номенклатура.Артикул КАК Артикул
		|ИЗ
		|	Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов КАК СборкаЗапасов
		|		ПО СборкаЗапасовПродукция.Ссылка = СборкаЗапасов.Ссылка
		|ГДЕ
		|	СборкаЗапасов.Дата МЕЖДУ &ДатаНач И КОНЕЦПЕРИОДА(&ДатаКон, ДЕНЬ)
		|ИТОГИ
		|	МАКСИМУМ(Организация),
		|	МАКСИМУМ(Префикс),
		|	МАКСИМУМ(Номер),
		|	МАКСИМУМ(Характеристика),
		|	МАКСИМУМ(КоличествоМест),
		|	МАКСИМУМ(ЕдиницаИзмерения),
		|	МАКСИМУМ(НоменклатураКод),
		|	МАКСИМУМ(ЕдиницаИзмеренияКод),
		|	МАКСИМУМ(КоличествоВОдномМесте),
		|	МАКСИМУМ(ВидУпаковки),
		|	МАКСИМУМ(Запас),
		|	МАКСИМУМ(Артикул)
		|ПО
		|	Номенклатура";
		
		Запрос.УстановитьПараметр("ДатаНач", Отчет.ДатаНач);
		Запрос.УстановитьПараметр("ДатаКон", Отчет.ДатаКон);
					
					Шапка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
								
				ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СборкаЗапасов_МХ18_1";
				
				//Макет = УправлениеПечатью.ПолучитьМакет("ПФ_MXL_МХ18");
				Макет =  РеквизитФормыВЗначение("Отчет").ПолучитьМакет("ПФ_MXL_МХ18");  // Макет =  РеквизитФормыВЗначение("Объект").ПолучитьМакет("ПФ_MXL_МХ18");
				
......................................

// Выводим подвал документа
				ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
				ОбластьМакета.Параметры.Заполнить(Шапка);
				ТабличныйДокумент.Вывести(ОбластьМакета);
				
				// Зададим параметры макета
				ТабличныйДокумент.ПолеСверху = 0;
				ТабличныйДокумент.ПолеСлева  = 0;
				ТабличныйДокумент.ПолеСнизу  = 0;
				ТабличныйДокумент.ПолеСправа = 0;
				ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
				
				ОбъектыПечати = Новый СписокЗначений;
				
				УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ТекущийДокумент = неопределено);
					
		ТабличныйДокумент.АвтоМасштаб = Истина;
		
		Возврат ТабличныйДокумент;
	
КонецФункции
Показать

Тоесть у меня при таком подходе выводится некая таблица. А нужно чтобы печаталось в форму печати документов.
Прикрепленные файлы:
user1064367; +1 Ответить
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. SergArmy 6 05.11.13 12:38 Сейчас в теме
(1) Manticor,
У меня нет под рукой конфигурации, но
&НаКлиенте
Процедура Сформировать(Команда)
    ТабДок = Данные();
    ТабДок.Показать();
КонецПроцедуры
Вместо
ТабДок.Показать();
скорее всего нужно вызвать какую ни будь глобальную процедуру, которая выводит на общую форму печати. Могу ошибаться т.к. нет конфигурации, что бы сказать точно. Вообщем смотри как выводится типовой отчет.
2. leriko 3 05.11.13 12:36 Сейчас в теме
посмотрите процедуру ВыполнитьКомандуПечати() общего модуля УправлениеПечатьюКлиент, там происходит открытие табличного документа в общей форме ПечатьДокументов
4. Manticor 66 05.11.13 13:01 Сейчас в теме
(2) leriko, (3) SergArmy,
Там вызывается процедура из клиентского общего модуля. Как мне в эту процедуру передать свой ТабличныйДокумент??

УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.СборкаЗапасов", "МХ18", ПараметрКоманды, ПараметрыВыполненияКоманды, Неопределено);
maksa2005; +1 Ответить
5. Bukaska 140 05.11.13 15:39 Сейчас в теме
(4) Manticor, А если так пробовать?
Я так делаю при изготовлении внешних печатных форм)
А у тебя внешняя???
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	 ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

     Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТвойМакет") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
                     "ТвойМакет", "ТвойМакет", 
					 
              ПечатьДокумента ( МассивОбъектов, ОбъектыПечати));
    КонецЕсли;
КонецПроцедуры
Показать
6. Manticor 66 05.11.13 16:09 Сейчас в теме
(5) Bukaska, ааа, у меня же пея форма в виде отчета, так не прокатит занчит. Ох уж эта библиотека подсистем)) Спасибо
7. Manticor 66 05.11.13 16:45 Сейчас в теме
(5) Bukaska, кстати от этого сути не меняется к сожалению(((

вместо ПечатьДокумента у меня Функция Данные() которая возвращает ТабличныйДокумент. Тоесть
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "ТребованиеНакладная", Данные());
вообще не выводится форма.
8. SergArmy 6 05.11.13 21:17 Сейчас в теме
(7) Manticor, Это должен быть отдельный внешний отчет или внешняя печатная форма документа?
9. SergArmy 6 05.11.13 21:30 Сейчас в теме
(7) Manticor, Посмотри общую форму "ПечатьДокументов" (посмотрел в БСП) или ДополнительныеОтчетыИОбработки.ПечатьПоВнешнемуИсточнику
10. Manticor 66 06.11.13 12:33 Сейчас в теме
(9) SergArmy, там множество параметров. Откуда их все брать ? ))
11. AngelVIII 22.02.15 19:17 Сейчас в теме
решили данный вопрос?
12. пользователь 25.02.15 19:51
Сообщение было скрыто модератором.
...
13. marvel92 26.02.15 11:49 Сейчас в теме
Попробуйте сделать следующим образом щелкните ВСЕ ДЕЙСТВИЯ, потом ВЫВЕСТИ СПИСОК, там ставите галочки где надо. В общем должно получиться как тут http://www.modber.ru/catalog/item2606.html
14. maldinitaly 02.04.15 11:36 Сейчас в теме
Всем привет. Тоже встала проблема вывода ТабличногоДокумента в общую форму «ПечатьДокументов». История такова: нужна была внешняя печатная форма, подключаемая к документу, но сначала должна была появляться форма, в которой необходимо было заполнить определенные реквизиты. Эти реквизиты использовались для заполнения макета. (Конфигурация УТ 11.1 на поддержке и снимать было нельзя). Далее нажималась кнопка и должен был появляться табличный документ в общей форме( чтобы можно было его отправить по почте или распечатать)
Чтобы открыть общую форму «ПечатьДокументов» я использовал вот такой код. Здесь только вызов формы из модуля формы моей обработки с препроцессором &НаКлиенте.
ПараметрыОткрытия.Вставить("ПараметрыИсточника", ПараметрыИсточника);
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм",КоллекцияПечатныхФорм);
ПараметрыОткрытия.Вставить("ПараметрКоманды",Параметры.ОбъектыНазначения);
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ЭтаФорма );

Переменная «ПараметрыОткрытия» имеет тип «Структура». В него необходимо передать переменную «КоллекцияПечатныхФорм» тип значения которой «ТаблицаЗначений». Эту переменную получил с помощью процедуры общего модуля «УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(……)». В переменной «КоллекцияПечатныхФорм» содержится наш «ТабличныйДокумент», а у общей формы есть параметры «КоллекцияПечатныхФорм». Так вот если он уже заполнен, то происходит его вывод на форму.
Казалось бы вот и всё. Внешняя печатная форма выводится в общую форму – все довольны. Единственное я упустил, что отладку я производил на управляемых формах, но на «Толстом клиенте». А когда запустил под «Тонким клиентом» вывалилась очевидная ошибка. На тонком клиенте не доступен тип значения «ТаблицаЗначений», на форме его надо преобразовать в тип «ДанныеФормыКоллекция».
И вот здесь начались мои танцы с бубном в попытке передать «Таблицузначений». Как писалось выше конфигурацию менять нельзя, да и не к чему. Метод «ОткрытьФорму» доступен только на клиенте, поэтому передать «ТаблицуЗначений» не получилось. Пришлось поступить по-варварски.
Взял и скопировал эту общую форму к себе в обработку (знаю плохо сделал) и стал туда передавать не «ДанныеФормыКоллекция» , а Структуру из таблицызначений полученную следующим образом. Этот код выполнялся в модуле моей формы.
ТзКоллекция = объектОбработка.Печать(МассивОбъектов,КоллекцияПечатныхФорм,ОбъектыПечати,ПараметрыВывода);
	КолонкиТЗ = ТЗКоллекция.Колонки;
	структураКоллекцияПечФорм = Новый Структура();
	Для каждого строка Из тзколлекция Цикл
		Для каждого колонка Из КолонкиТЗ Цикл
			структураКоллекцияПечФорм.Вставить(колонка.Имя,строка[колонка.имя]);
		КонецЦикла;
	КонецЦикла;

Далее уже в модуле общей формы «ПечатьДокументов» в процедуре «ПриСозданииНаСервере»
Преобразовал эту структуру в таблицу значений
структураКоллекция  = Параметры.КоллекцияПечатныхФорм;
ТаблицаЗначенияКоллекция = Новый ТаблицаЗначений;
Для каждого элементКоллекции Из структураКоллекция  Цикл
		ТаблицаЗначенияКоллекция.Колонки.Добавить(элементКоллекции.Ключ);	
КонецЦикла;
Строка = ТаблицаЗначенияКоллекция.Добавить();
Для каждого элементКоллекции Из струкКолек Цикл
	Строка[элементКоллекции.Ключ] = элементКоллекции.Значение;
КонецЦикла;
Показать

И заменил переменную «КоллекцияПечатныхФорм» на «ТаблицаЗначенияКоллекция». Вот после этого у меня заработало и на «тонком клиенте».
Пробовал открывать общую форму «ПечатьДокументов» и без этих параметров, что бы вызвалась экспортная процедура «Печать» из модуля внешней обработки. Вызывается всё хорошо, но она уже не видит заполненных реквизитов на форме.
Так вот вопрос, можно как то это реализовать по другому, Что бы не тащить общею форму к себе в обработку?
25. VZyryanov 27.12.17 14:50 Сейчас в теме
(14)
На тонком клиенте не доступен тип значения «ТаблицаЗначений», на форме его надо преобразовать в тип «ДанныеФормыКоллекция».


Создаем в форме реквизит типа ТаблицаЗначений. В процедуре &НаКлиенте вызываем процедуру на &НаСервере, в которой формируем таблицу значений и преобразуем в реквизит формы ЗначениеВРеквизитФормы. &НаКлиенте используем заполненный реквизит типа «ДанныеФормыКоллекция».
15. maldinitaly 02.04.15 13:56 Сейчас в теме
кстати нашел решение, видать плохо искал.Вот и решение http://infostart.ru/public/191796/
16. Aleksandr 176 01.12.15 15:41 Сейчас в теме
&НаКлиенте
Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
		
	ТабДок = ПолучитьТабличныйДокументПриказаТ5(МассивОбъектов);
	
	//Типовая часть вывода в стандартное окно++
	ИдентификаторПечатнойФормы = "ПФ_MXL_Т5";
	НазваниеПечатнойФормы = НСтр("ru = 'Приказ о переводе работника на другую работу'");
	
	Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
		ТабДок.Показать(НазваниеПечатнойФормы);
		ДокументыПечатались = Истина;
		Возврат;
	КонецЕсли; 	
	МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент"); 	
	КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
	ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
	ПечатнаяФорма.СинонимМакета = НазваниеПечатнойФормы;
	ПечатнаяФорма.ТабличныйДокумент = ТабДок;
	ПечатнаяФорма.ИмяФайлаПечатнойФормы = НазваниеПечатнойФормы;
	
	ОбластиОбъектов = Новый СписокЗначений;
	МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);

	ДокументыПечатались = Истина;
КонецПроцедуры
Показать
werd00; Evgeny.Bogomolnyy; vx_gas; user717534; Gendelf; andreykaq; mr_sav; user1798793; user1612174; dante; mai_k; trickster; ApTeM_26_; viktor_and_ko; naumkin.s; GreyK; GeterX; MistreriX; mavinic; vitek_chainik; Sadan32; ger9; RibD; konyavka; YuriyBak; sultbec; roma03v1; SilverFalconi; user1188623; AndrewKop; Zanlug; JasonT; Rainbovv; meowmeow; AloneWolf; delsoft; ilyaleontyev; KirinaAS; fonce21; insurgut; berserjk; Mitolo; sandra; evergrim; AfroditaS; Sergo_SFK; Kostt; tps_01; Maximus993; mp40; katerinaUniv; urves; ant8; Realyzer; 31337; SkAt91; janit; pol_k; Heart Machine; salbey; shima; sanfoto; afanasko; user774630; ant1773; Omicron; pioneeer; bo0s; bav_itritm; Feelthis; uras0vd; NatalkaBal; ValeriyZ; NoRazum; nightowl; yghmd; konyashkingn; kandellaster; suepifanov; Svoloch1; nkYellOw; Agrozentr; SkyOl; shaman.nk; unichkin; Brook; fomix; feelings; Dionius1; espero2000; koshak84; Pira; Istur; AMakarov; Kennik; kimskiysanya; andrey7617; wolfsoft; Andromancer; airat-mat; markers; mymyka; Manticor; +103 Ответить
18. AMakarov 25.07.16 23:45 Сейчас в теме
(16) Aleksandr,
Это гениально. Второй день ищу код, как вывести в стандартную печать документов свой табдокумент из обработки. Спасибо, выручил.
20. koshak84 9 11.10.16 22:01 Сейчас в теме
(16) Aleksandr, Весь вечер убил на то, чтобы вывести печатную форму из внешней обработки в стандартную форму печати. Так бы и до утра сидел, если бы не наткнулся на Ваш пример. Спасибо большое! Вы сделали мой сегодняшний сон)))
21. Svoloch1 19.04.17 11:57 Сейчас в теме
(16)Супер, спасибо за код)) полдня голову ломал сидел)
22. m9508777677 21.06.17 16:36 Сейчас в теме
(16) Александр, ты тут походу выручил многих этим кодом. Респект и спасибо от меня тоже.
23. ValeriyZ 19 17.08.17 20:24 Сейчас в теме
(16)
Дружище, спасибо за код!!!
24. ant1773 5 27.12.17 12:58 Сейчас в теме
(16)
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);


Спасибо тебе добрый человек :)
26. janit 20 30.05.18 07:49 Сейчас в теме
(16) Спасибо за код!

В версии БСП 2.3.4 ТабличныйДокумент передается в коллекции печатных форм и не требуется описание печатной формы, также ОбластиОбъектов можно не указывать:

МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");     
КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабличныйДокумент;   
МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
Evgeny.Bogomolnyy; seravkin; d4rkmesa; ApTeM_26_; GeterX; MistreriX; andrey7617; Aspire1C; Polina; Meson; ASV085; Rainbovv; YNik; tps_01; SlavaKron; katerinaUniv; Realyzer; +17 Ответить
35. ASV085 3 24.01.20 17:42 Сейчас в теме
(26)
МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабличныйДокумент;
МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);

Спасибо тебе добрый человек!
27. SkAt91 19.06.18 10:27 Сейчас в теме
(16) Это супер! Помог и еще как! В рамку на стену код! )) Спасибо огромное!
28. RodinMax 05.09.18 05:14 Сейчас в теме
(27) Не подскажите, это процедура формы обработки (судя по директиве &НаКлиенте) ?
не понятно откуда "МассивОбъектов" берется
34. ilyaleontyev 11.11.19 16:05 Сейчас в теме
(16) Счастья тебе, здоровья )
36. flou 20.10.21 09:56 Сейчас в теме
(16) Aleksandr, благодарю за решение. Пусть у вас все будет хорошо!
37. user1798793 09.09.22 09:47 Сейчас в теме
(16) Спасибо от начинающего программиста-))
17. Kennik 13 21.07.16 10:14 Сейчас в теме
Спасибо, мистер Бернс ;-)
19. treavlad 29.09.16 13:45 Сейчас в теме
29. user1043809 05.09.18 09:10 Сейчас в теме
16. Aleksandr > Спасибо за элегантное решение, которым вы поделились :)
30. ceber 20.09.18 15:02 Сейчас в теме
помогите у меня ошибка УТ 3.1
и постояно ошыбка
{ОбщийМодуль.ОбщегоНазначенияКлиентСервер.Модуль(684)}: Итератор для значения не определен
Для Каждого Элемент Из МассивИсточник Цикл

помогите пожалуста


ИдентификаторПечатнойФормы = "МаршрутныйЛист";
		НазваниеПечатнойФормы = НСтр("ru = 'Приказ о переводе работника на другую работу'");
		
		ТабДок = ПечатьМаршрутныйЛистНаСервере(МассивОбъектов); 
		МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");     
		КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
		ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
		ПечатнаяФорма.СинонимМакета = НазваниеПечатнойФормы;
		ПечатнаяФорма.ТабличныйДокумент = ТабДок;
		ПечатнаяФорма.ИмяФайлаПечатнойФормы = НазваниеПечатнойФормы;
		
		ОбластиОбъектов = Новый СписокЗначений;
		МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов);
Показать
31. VZyryanov 20.09.18 15:27 Сейчас в теме
В модуле формы
&НаКлиенте
Процедура РешениеОВыплатеНадбавок(Команда)
	Если Не ЗначениеЗаполнено(Объект.МесяцОтчета) Тогда
		ПоказатьПредупреждение(,"Введите месяц отчета.");
		Возврат;
	КонецЕсли;
	ТабДок=РешениеОНадбавкахНаСервере();
	ИдентификаторПечатнойФормы="КФ_РешениеОНадбавках";
	ИмяПечатнойФормы="Надбавки_"+Формат(Объект.МесяцОтчета,"ДФ='MMMM_yyyy'");
	КФ_Клиент.ПечатьДокумента(ИдентификаторПечатнойФормы,ИмяПечатнойФормы,ТабДок);	
КонецПроцедуры
Показать


В общем модуле КФ_Клиент
Процедура ПечатьДокументов(КоллекцияПечатныхФорм, Знач ОбъектыПечати = Неопределено, ВладелецФормы = Неопределено, ЗаголовокФормы=Неопределено) Экспорт
	Если ОбъектыПечати = Неопределено Тогда
		ОбъектыПечати = Новый СписокЗначений;
	КонецЕсли;
	
	КлючУникальности = Строка(Новый УникальныйИдентификатор);
	
	ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
	ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
	ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
	ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
	ПараметрыОткрытия.Вставить("ОбъектыПечати", ОбъектыПечати);
	
	ПараметрыОткрытия.ПараметрыПечати.Вставить("ЗаголовокФормы", ЗаголовокФормы);
	
	ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
КонецПроцедуры

Процедура ПечатьДокумента(ИдентификаторПечатнойФормы,ИмяПечатнойФормы,ТабДок) Экспорт
	КоллекцияПечатныхФорм=УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
	ПечатнаяФорма=УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм,ИдентификаторПечатнойФормы);
	ПечатнаяФорма.СинонимМакета=ИмяПечатнойФормы;
	ПечатнаяФорма.ТабличныйДокумент=ТабДок;
	ОбластиОбъектов=Новый СписокЗначений;
	ПечатьДокументов(КоллекцияПечатныхФорм,ОбластиОбъектов,Неопределено,ИмяПечатнойФормы);
КонецПроцедуры
Показать
32. ceber 20.09.18 15:52 Сейчас в теме
Помогите никак немогу понять откуда взять итератор.
{ОбщийМодуль.ОбщегоНазначенияКлиентСервер.Модуль(684)}: Итератор для значения не определен
	Для Каждого Элемент Из МассивИсточник Цикл

Функция СкопироватьМассив(МассивИсточник) Экспорт
	
	МассивРезультат = Новый Массив;
	
	Для Каждого Элемент Из МассивИсточник Цикл
		МассивРезультат.Добавить(СкопироватьРекурсивно(Элемент));
	КонецЦикла;
	
	Возврат МассивРезультат;
	
КонецФункции
Показать
33. 127.0.0.0 20.11.18 13:18 Сейчас в теме
Если еще актуально и кто то не понял как выводить запрос в табличный документ. у меня работает так.
внешняя обработка. в форме создаем кнопку и нужные поля. далее событие по нажатие кнопки.
также потребуется создать макет. в нем прописать необходимые поля. (либо сразу сохранять ТабДок в файл Excel )

Ps логичнее назвать тему - как вывести результат запроса в табличный документ.

&НаКлиенте
Процедура СформироватьОтчет(Команда) //кнопка
	//... тут проверка заполнения доп. полей...если НЕ Заполнено и т.д...
        ТабДок = Новый ТабличныйДокумент; // создаем табличный документ
	СформироватьОтчетНаСервере(); // формируем запрос на сервере
	ТабДок = СформироватьОтчетНаСервере(); //возвращаем результат запроса в табличный документ 
	ТабДок.Показать();
	
КонецПроцедуры

&НаСервере
Функция СформироватьОтчетНаСервере()
	//Функция ПолучитьМакет доступна только из модуля объекта
	//в модуль объекта можно провалится из модуля формы через
	//функцию РеквизитФормыВЗначение ("Объект")

	ДокументОбъект = РеквизитФормыВЗначение("Объект");
	Макет = ДокументОбъект.ПолучитьМакет ("МакетОтчета");
	
	//формируем Запрос
	ТабДок = Новый ТабличныйДокумент;
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ.............."
			
	Результат = Запрос.Выполнить();
		
	ТабДок.Очистить();	
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	// заполняем Заголовок
		ОбластьЗаголовок.Параметры.Организация = Объект.Организация;
		и т.д.......
	    ТабДок.Вывести (ОбластьЗаголовок);
	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
		ТабДок.Вывести (ОбластьШапкаТаблицы);
	ОбластьСтроки = Макет.ПолучитьОбласть("Строки");
		// заполняем
	Выборка = Результат.Выбрать();
	Пока Выборка.Следующий() Цикл
		    ОбластьСтроки.Параметры.Дата = Выборка.Дата;
		    ОбластьСтроки.Параметры.Партнер = Выборка.Партнер;
			..................
			ТабДок.Вывести (ОбластьСтроки);
	КонецЦикла;
	Возврат ТабДок;
КонецФункции
Показать
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

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

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)