Табличная Часть в форму

1. user1416843 12.08.21 08:32 Сейчас в теме
Добрый день, подскажите пожалуйста, что не так. Сделала ВПФ для меню БГУ 2.0, выводит только как на скрина в разных вариантах, что не правильно сделала, не понимаю. Запрос отрабатывает правильно. Помогите пожалуйста.
Функция ПечатьДокумента(Макет, МассивОбъектов, ОбъектыПечати, СсылкаНаОбъект) Экспорт
	
	
	ТабДок = Новый ТабличныйДокумент;
	
	Макет = ПолучитьМакет("Меню");
	Запрос = Новый запрос;
	Запрос.Текст = 
	      "ВЫБРАТЬ
	      |	УППБУ_ПлановоеМенюРасшифровкаМеню.ВидПриемаПищи КАК ВидПриемаПищи,
	      |	УППБУ_ПлановоеМенюРасшифровкаМеню.Блюдо КАК Блюдо,
	      |	УППБУ_ПлановоеМеню.КатегорияДовольствующихся КАК Категория
	      |ИЗ
	      |	Документ.УППБУ_ПлановоеМеню.РасшифровкаМеню КАК УППБУ_ПлановоеМенюРасшифровкаМеню
	      |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.УППБУ_ПлановоеМеню КАК УППБУ_ПлановоеМеню
	      |		ПО УППБУ_ПлановоеМенюРасшифровкаМеню.Ссылка = УППБУ_ПлановоеМеню.Ссылка";
	
	РезультатЗапроса = Запрос.Выполнить();
	Если не РезультатЗапроса.Пустой() тогда
	Выборка = РезультатЗапроса.ВЫгрузить();
    Иначе
	Возврат("");
    КонецЕсли;


	ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
	//ОбластьТЧ   =  Макет.ПолучитьОбласть("Строка");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	
	 //
	 //Дата = СсылкаНаОбъект.Дата;
	 //ОбластьШапки.Параметры.Дата             = Формат(Дата, "ДФ=dd.MM.yyyy");
     ТабДок.Вывести(ОбластьШапки);

	 
	 Для Каждого Строка Из Выборка Цикл
	  ОбластьТЧ = Макет.ПолучитьОбласть("Строка");
      ЗаполнитьЗначенияСвойств(ОбластьТЧ.Параметры, Строка);
	  ТабДок.Вывести(ОбластьТЧ);

  КонецЦикла;
  
  
     
      ТабДок.Вывести(ОбластьПодвал);


   //  КонецЦикла;
   //
	
	Возврат ТабДок;
		КонецФункции
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 12.08.21 08:37 Сейчас в теме
(1) макет сделали так. Область макета "Строка" включает в себя и заголовки таблицы. А их нужно выводить только 1 раз. Можно заголовки включить в область Шапка, а в область Строка оставить только саму строку вывода данных.
3. user1416843 12.08.21 08:40 Сейчас в теме
(2)И правда..Исправила, спасибо большое, а я голову ломала. теперь буду знать)
4. user1416843 12.08.21 08:41 Сейчас в теме
(3)а не подскажите как сделать чтобы в форме выходило только 1 раз наименование приема пищи(завтра,ужин и т.д) а под ним несколько блюд и так до конца меню? Т.е Группировку
5. M_A_D 184 12.08.21 08:45 Сейчас в теме
(4)запрос придется переделать в запрос с группировками и проходить по группировкам, тогда, можно будет в пером обходе(группировки) выводить строку с приемом пищщи, а далее под ним выводить строки, и так на каждой итерации будет наполняться ТЧ как нужно)
6. user1416843 12.08.21 08:46 Сейчас в теме
(5)понятно, примерно поняла. Спасибо, буду разбираться)
7. spacecraft 12.08.21 09:33 Сейчас в теме
(4) в макете строку с ВидПриемаПищи вынести в отдельную область, для примера с именем "ВидПриемаПищи" .
И как вариант, пример кода:
ТабДок = Новый ТабличныйДокумент;
    
Макет = ПолучитьМакет("Меню");
Запрос = Новый запрос;
Запрос.Текст = 
      "ВЫБРАТЬ
      |    УППБУ_ПлановоеМенюРасшифровкаМеню.ВидПриемаПищи КАК ВидПриемаПищи,
      |    УППБУ_ПлановоеМенюРасшифровкаМеню.Блюдо КАК Блюдо,
      |    УППБУ_ПлановоеМеню.КатегорияДовольствующихся КАК Категория
      |ИЗ
      |    Документ.УППБУ_ПлановоеМеню.РасшифровкаМеню КАК УППБУ_ПлановоеМенюРасшифровкаМеню
      |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.УППБУ_ПлановоеМеню КАК УППБУ_ПлановоеМеню
      |        ПО УППБУ_ПлановоеМенюРасшифровкаМеню.Ссылка = УППБУ_ПлановоеМеню.Ссылка
	  |
	  |ИТОГИ ПО
	  |    ВидПриемаПищи";

РезультатЗапроса = Запрос.Выполнить();

ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ТабДок.Вывести(ОбластьШапки);

Если РезультатЗапроса.Пустой() тогда
	ТабДок.Вывести(ОбластьПодвал);
	Возврат ТабДок;
КонецЕсли;

 ВыборкаВидПриемаПищи = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 
 Пока ВыборкаВидПриемаПищи.Следующий() Цикл
    ОбластьВид = Макет.ПолучитьОбласть("ВидПриемаПищи");
	ОбластьВид.Параметры.Заполнить(ВыборкаВидПриемаПищи);
	ТабДок.Вывести(ОбластьВид);
	
	Выборка = ВыборкаВидПриемаПищи.Выбрать();
	Пока Выборка.Следующий() Цикл
		ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
		ОбластьСтрока.Параметры.Заполнить(Выборка);
		ТабДок.Вывести(ОбластьСтрока);
	КонецЦикла;
КонецЦикла;
	
ТабДок.Вывести(ОбластьПодвал);
Показать
8. user1416843 12.08.21 09:51 Сейчас в теме
(7) ооо, все заработало как нужно..почти. Спасибо вам огромное!!!
Оставьте свое сообщение

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