Отчет Меню блюд

1. user1416843 17.08.21 10:02 Сейчас в теме
В общем сдаюсь и слезно прошу помощи для совсем еще начинающего "программиста", так же прошу не кидаться тапочками, а то больно. Проблема вот в чем. Я выгрузила типовой отчет с целью изменить немного макет и сделать его внешним отчетом. Сделать внешним отчетом получилось, макет поменяла, а вот строчки в табличной части макета все никак не заполняются. Сам отчет формируется из регистра "Плановое меню", там есть все. в общем я еще совсем не опытна и все, что я могла написать это :
Выбор = Документы.УППБУ_ПлановоеМеню;
				Выборка=Выбор.Выбрать();
                 Пока Выборка.Следующий() Цикл

				ОблСтрокаТЧНомерСтроки.Параметры.Категория = Строка(Выборка.КатегорияДовольствующихся);	
				//ОблСтрокаТЧНомерСтроки.Параметры.Категория = Инд + 1;
				ДокументРезультат.Вывести(ОблСтрокаТЧНомерСтроки);
				КонецЦикла;
Показать
этот "шедевр" выводит вот так(скрин1), и я совершенно точно понимаю, что я делаю не правильно. И поэтому пришла просить помощи. Как правильно можно реализовать, чтобы выглядело так(скрин 2 эксель). На всякий случай прикреплю еще текст всей функции, авось кто-то и поможет, в "ТаблицаРезультат" категория уже не попадает, может нужно в схеме компоновке покопаться, я не понимаю
Процедура СформироватьОтчет(ДокументРезультат = Неопределено, ДанныеРасшифровки = Неопределено, Схема = Неопределено, ОтветственныеТЗ, ТабДок) Экспорт
	
	// Сформируем структуру параметров для получения таблицы списываемых продуктов.
	мСтруктураПараметров = СформироватьСтруктуруДляПолученияТаблицыДанных();
	
	ТаблицаПоВидамПриема = УППБУ_КалькуляцияПродуктовПитания.ПолучитьПлановыйРасходПродуктовПоБлюдам(мСтруктураПараметров);
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	Если Не мСтруктураПараметров.ФормироватьПоСтолам Тогда
		Для каждого ВыбранноеПоле Из Настройки.Выбор.Элементы Цикл
			Если ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Стол") Тогда
				ВыбранноеПоле.Использование = Ложь;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, Новый Структура("ТаблицаПоВидамПриема", ТаблицаПоВидамПриема), Неопределено, Истина);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

	ТаблицаРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
	
	ПодготовитьТаблицуДляВывода(ТаблицаРезультат);
	
	ДокументРезультат.Очистить();
	
	Если РасчетСтоимости = 0 Тогда
		ПолучитьОбщееКоличествоПорцийПоСпецификации(ТаблицаРезультат);
	КонецЕсли;
	
	Макет = ПолучитьМакет("Макет");
	
	// Добавляем заголовок о формировании отчета по плановым или фактическим данным.
	Если Настройки.ДополнительныеСвойства.ВыводитьЗаголовок Тогда
		ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
		ОбластьЗаголовок.Параметры.ТекстЗаголовка = "По " + ?(ВидОтчета = 0, "плановым", "фактическим") + " показаниям";
		ДокументРезультат.Вывести(ОбластьЗаголовок);
	КонецЕсли;
	
	// Выводим шапку отчета.
	ОблШапка = Макет.ПолучитьОбласть("Шапка");
	ОблШапка.Параметры.НаименованиеУчреждения = Организация.Наименование;
	ОблШапка.Параметры.Учреждение = Организация;
	ОблШапка.Параметры.ПредставлениеПериода = Формат(НачалоПериода, "ДЛФ=ДД");
	
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	ОблШапка.Параметры.пКВД = ПредставленияПоОтбору(Настройки.Отбор.Элементы, "КФО", "Перечисление.КВД", "Без учета кода вида финансового обеспечения");
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	ДокументРезультат.Вывести(ОблШапка);
	
	////////////////////////////////////////////////////////////­/////
	// ВЫВОД ТАБЛИЦЫ МЕНЮ
	
	// Выводим шапку таблицы МЕНЮ.
	ОблШапкаНомерСтроки               = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецНомерСтроки");
	ОблШапкаБелки                     = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецБелки");
	ОблШапкаЖиры                      = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецЖиры");
	ОблШапкаУглеводы                  = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецУглеводы");
	ОблШапкаКалорийность              = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецКалорийность");
	ОблШапкаНомерКарточкиНаименование = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецНомерКарточкиНаименование");
	ОблШапкаОписание                  = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецОписание");
	ОблШапкаКоличество                = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецКоличество");
	ОблШапкаВес                       = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецВес");
	ОблШапкаСтоимость                 = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецСтоимость");
	ОблШапкаСумма                     = Макет.ПолучитьОбласть("ШапкаТЧ|СтолбецСумма");
	
	ИмяСтрокиОбласти = ?(ВыводитьДанныеОСпецификации, "СтрокаТЧ", "СтрокаТЧБезСпецификации");
	ВыводитьИтоги = ВыводитьБелки Или ВыводитьЖиры Или ВыводитьКалорийность Или ВыводитьУглеводы Или ВыводитьКоличествоСумму;
	
	ДокументРезультат.Вывести(ОблШапкаНомерСтроки);
	
	Если ВыводитьБелки Тогда
		ДокументРезультат.Присоединить(ОблШапкаБелки);
	КонецЕсли;
	Если ВыводитьЖиры Тогда
		ДокументРезультат.Присоединить(ОблШапкаЖиры);
	КонецЕсли;
	Если ВыводитьУглеводы Тогда
		ДокументРезультат.Присоединить(ОблШапкаУглеводы);
	КонецЕсли;
	Если ВыводитьКалорийность Тогда
		ДокументРезультат.Присоединить(ОблШапкаКалорийность);
	КонецЕсли;
	
	ДокументРезультат.Присоединить(ОблШапкаНомерКарточкиНаименование);
	
	Если ВыводитьОписание Тогда
		ДокументРезультат.Присоединить(ОблШапкаОписание);
	КонецЕсли;
	
	Если ВыводитьКоличествоСумму Тогда
		ДокументРезультат.Присоединить(ОблШапкаКоличество);
	КонецЕсли;
	ДокументРезультат.Присоединить(ОблШапкаВес);
	ДокументРезультат.Присоединить(ОблШапкаСтоимость);
	Если ВыводитьКоличествоСумму Тогда
		ДокументРезультат.Присоединить(ОблШапкаСумма);
	КонецЕсли;
	
	// Выводим шапку таблицы на каждой странице.
	ДокументРезультат.ПовторятьПриПечатиСтроки = ДокументРезультат.Область("R11");
	
	// Выводим строки таблицы МЕНЮ.
	ТаблицаПриемаПищи =  УППБУ_КалькуляцияПродуктовПитания.ПолучитьТаблицуПриемовПищи();
	
	СписокПриемаПищи = ТаблицаПриемаПищи.Скопировать(, "ВидПриемаПорядок, ВидПриемаПищи");
	СписокПриемаПищи.Свернуть("ВидПриемаПорядок, ВидПриемаПищи",);
		
	СуммаИтого = 0;
	
	Для Каждого ТекЭлементПорядка Из СписокПриемаПищи Цикл
		
		СтруктураПоиска = Новый Структура;
		СтруктураПоиска.Вставить("ВидПриемаПищи", ТекЭлементПорядка.ВидПриемаПищи);
		СтрокиПоВидуПриема = ТаблицаРезультат.НайтиСтроки(СтруктураПоиска);
		
		// Если по текущему виду приема ничего не найдено, перейдем к поиску по следующему.
		Если СтрокиПоВидуПриема.Количество() = 0 Тогда    			
			Продолжить;
		КонецЕсли;
		
		ОблВидПриемаНомерСтроки               = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецНомерСтроки");
		ОблВидПриемаБелки                     = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецБелки");
		ОблВидПриемаЖиры                      = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецЖиры");
		ОблВидПриемаУглеводы                  = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецУглеводы");
		ОблВидПриемаКалорийность              = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецКалорийность");
		ОблВидПриемаНомерКарточкиНаименование = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецНомерКарточкиНаименование");
		ОблВидПриемаОписание                  = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецОписание");
		ОблВидПриемаКоличество                = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецКоличество");
		ОблВидПриемаВес                       = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецВес");
		ОблВидПриемаСтоимость                 = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецСтоимость");
		ОблВидПриемаСумма                     = Макет.ПолучитьОбласть("СтрокаВидПриема|СтолбецСумма");
		
		// Текущий вид приема из таблицы результата.
		ТекВидаПриема = СтрокиПоВидуПриема[0].ВидПриемаПищи;
		
		ОблВидПриемаНомерСтроки.Параметры.ВидПриемаПищи = ТекВидаПриема;
		ДокументРезультат.Вывести(ОблВидПриемаНомерСтроки);
		
		Если ВыводитьБелки Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаБелки);
		КонецЕсли;
		Если ВыводитьЖиры Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаЖиры);
		КонецЕсли;
		Если ВыводитьУглеводы Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаУглеводы);
		КонецЕсли;
		Если ВыводитьКалорийность Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаКалорийность);
		КонецЕсли;
		
		ДокументРезультат.Присоединить(ОблВидПриемаНомерКарточкиНаименование);
		
		Если ВыводитьОписание Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаОписание);
		КонецЕсли;
		
		Если ВыводитьКоличествоСумму Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаКоличество);
		КонецЕсли;
		
		ДокументРезультат.Присоединить(ОблВидПриемаВес);
		ДокументРезультат.Присоединить(ОблВидПриемаСтоимость);
		
		Если ВыводитьКоличествоСумму Тогда
			ДокументРезультат.Присоединить(ОблВидПриемаСумма);
		КонецЕсли;
		
		СуммаИтогоНаВидПриема = 0;
		
		Если Не ВыводитьВПорядкеВидовБлюд Тогда
			
			Для Инд = 0 По (СтрокиПоВидуПриема.Количество() - 1) Цикл
				
				ТекущиеДанные = СтрокиПоВидуПриема[Инд];
				
				ОблСтрокаТЧНомерСтроки               = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецНомерСтроки");
				ОблСтрокаТЧВес                       = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецВес");
				ОблСтрокаТЧБелки                     = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецБелки");
				ОблСтрокаТЧЖиры                      = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецЖиры");
				ОблСтрокаТЧУглеводы                  = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецУглеводы");
				ОблСтрокаТЧКалорийность              = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецКалорийность");
				ОблСтрокаТЧНомерКарточкиНаименование = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецНомерКарточкиНаименование");
				ОблСтрокаТЧОписание                  = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецОписание");
				ОблСтрокаТЧКоличество                = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецКоличество");
				ОблСтрокаТЧВес                       = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецВес");
				ОблСтрокаТЧСтоимость                 = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецСтоимость");
				ОблСтрокаТЧСумма                     = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецСумма");
				
				Если СокрЛП(ТекущиеДанные.Блюдо.ЕдиницаИзмерения.Код) = "163" Тогда
					ОблСтрокаТЧВес.Параметры.ВесПорции = ТекущиеДанные.ВесПорции / 1000;
				ИначеЕсли СокрЛП(ТекущиеДанные.Блюдо.ЕдиницаИзмерения.Код) <> "166" Тогда
					ОблСтрокаТЧВес.Параметры.ВесПорции = Строка(ТекущиеДанные.ВесПорции) +" ("+ТекущиеДанные.Блюдо.ЕдиницаИзмерения+")";
				КонецЕсли;
				
			//	Запрос = Новый Запрос;
			//	Запрос.Текст = "ВЫБРАТЬ
			//	               |	КатегорииДовольствующихся.Наименование КАК Категория
			//	               |ИЗ
			//	               |	Справочник.КатегорииДовольствующихся КАК КатегорииДовольствующихся";
			//	
			//	Результат = Запрос.Выполнить();
			//	Если Результат.Пустой() тогда
			//    ТабДок.Вывести(ОблСтрокаТЧВес);
			//	Возврат ТабДок;
			//КонецЕсли;
			//	Выбор = Результат.Выбрать();
			
			    Выбор = Документы.УППБУ_ПлановоеМеню;
				Выборка=Выбор.Выбрать();
                 Пока Выборка.Следующий() Цикл

				ОблСтрокаТЧНомерСтроки.Параметры.Категория = Строка(Выборка.КатегорияДовольствующихся);	
				//ОблСтрокаТЧНомерСтроки.Параметры.Категория = Инд + 1;
				ДокументРезультат.Вывести(ОблСтрокаТЧНомерСтроки);
				КонецЦикла;



				
				Если ВыводитьБелки Тогда
					ОблСтрокаТЧБелки.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧБелки);
				КонецЕсли;
				Если ВыводитьЖиры Тогда
					ОблСтрокаТЧЖиры.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧЖиры);
				КонецЕсли;
				Если ВыводитьУглеводы Тогда
					ОблСтрокаТЧУглеводы.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧУглеводы);
				КонецЕсли;
				Если ВыводитьКалорийность Тогда
					ОблСтрокаТЧКалорийность.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧКалорийность);
				КонецЕсли;
				
				ОблСтрокаТЧНомерКарточкиНаименование.Параметры.Заполнить(ТекущиеДанные);
				ДокументРезультат.Присоединить(ОблСтрокаТЧНомерКарточкиНаименование);
				
				Если ВыводитьОписание Тогда
					ТекОписание = СтрЗаменить(ТекущиеДанные.Спецификация.Описание, Символы.ПС, " ");
					ОблСтрокаТЧОписание.Параметры.Описание = ТекОписание;
					ДокументРезультат.Присоединить(ОблСтрокаТЧОписание);
				КонецЕсли;
				
				Если ВыводитьКоличествоСумму Тогда
					ОблСтрокаТЧКоличество.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧКоличество);
				КонецЕсли;
				
				ОблСтрокаТЧВес.Параметры.Заполнить(ТекущиеДанные);
				ДокументРезультат.Присоединить(ОблСтрокаТЧВес);
				
				ОблСтрокаТЧСтоимость.Параметры.Заполнить(ТекущиеДанные);
				
				СтоимостьБлюда = 0;
				
				Если РасчетСтоимости = 0 Тогда
					
					СуммаЗатрат			= ПолучитьСуммуЗатратНаБлюдо(ТекущиеДанные.Блюдо, ТекущиеДанные.Спецификация, ТекВидаПриема);
					текКоличествоПорций	= ТекущиеДанные.КоличествоПорций;
					
					СтоимостьБлюда = СтоимостьБлюда + (СуммаЗатрат / ТекущиеДанные.ОбщееКоличествоПорций) + (ПроцентНаценки / 100) * (СуммаЗатрат / ТекущиеДанные.ОбщееКоличествоПорций);
					
				Иначе
					СтруктураПараметровДляПолученияЦены = Новый Структура;
					СтруктураПараметровДляПолученияЦены.Вставить("Организация", Организация);
					СтруктураПараметровДляПолученияЦены.Вставить("Номенклатура", ТекущиеДанные.Блюдо);
					СтруктураПараметровДляПолученияЦены.Вставить("ТипЦены", ТипЦен);
					СтруктураПараметровДляПолученияЦены.Вставить("ТипВеса", Константы.УППБУ_ТипВесаДляРасчетаКоличестваПродуктов.Получить());
					СтруктураПараметровДляПолученияЦены.Вставить("ДатаЦены", НачалоПериода);
					
					СтоимостьБлюда = УППБУ_КалькуляцияПродуктовПитания.ПолучитьЦенуБлюда(СтруктураПараметровДляПолученияЦены);
				КонецЕсли;
				
				ОблСтрокаТЧСтоимость.Параметры.СтоимостьБлюда = СтоимостьБлюда;
				
				ДокументРезультат.Присоединить(ОблСтрокаТЧСтоимость);
				
				Если ВыводитьКоличествоСумму Тогда
					ТекСумма = ТекущиеДанные.КоличествоПорций * СтоимостьБлюда;
					ОблСтрокаТЧСумма.Параметры.Сумма = ТекСумма;
					
					СуммаИтогоНаВидПриема = СуммаИтогоНаВидПриема + ТекСумма;
					СуммаИтого            = СуммаИтого            + ТекСумма;
					
					ДокументРезультат.Присоединить(ОблСтрокаТЧСумма);
				КонецЕсли;
				
			КонецЦикла;
			
		Иначе
			
			ДокументРезультат.НачатьАвтогруппировкуСтрок();
			
			текВидБлюда = Неопределено;
			
			Для Инд = 0 По (СтрокиПоВидуПриема.Количество() - 1) Цикл
				
				ТекущиеДанные = СтрокиПоВидуПриема[Инд];
				
				// Если это новый вид блюда, выводиться наименование вида блюда.
				Если ТекущиеДанные.ВидБлюда <> текВидБлюда Тогда
					
					ОблСтрокаВидБлюдаНомерСтроки               = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецНомерСтроки");
					ОблСтрокаВидБлюдаБелки                     = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецБелки");
					ОблСтрокаВидБлюдаЖиры                      = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецЖиры");
					ОблСтрокаВидБлюдаУглеводы                  = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецУглеводы");
					ОблСтрокаВидБлюдаКалорийность              = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецКалорийность");
					ОблСтрокаВидБлюдаНомерКарточкиНаименование = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецНомерКарточкиНаименование");
					ОблСтрокаВидБлюдаОписание                  = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецОписание");
					ОблСтрокаВидБлюдаКоличество                = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецКоличество");
					ОблСтрокаВидБлюдаВес                       = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецВес");
					ОблСтрокаВидБлюдаСтоимость                 = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецСтоимость");
					ОблСтрокаВидБлюдаСумма                     = Макет.ПолучитьОбласть("СтрокаВидБлюда|СтолбецСумма");
					
					ОблСтрокаВидБлюдаНомерСтроки.Параметры.ВидБлюда = ?(ЗначениеЗаполнено(ТекущиеДанные.ВидБлюда), ТекущиеДанные.ВидБлюда, "<без учета вида блюда>");
					ДокументРезультат.Вывести(ОблСтрокаВидБлюдаНомерСтроки, 2);
					
					Если ВыводитьБелки Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаБелки);
					КонецЕсли;
					Если ВыводитьЖиры Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаЖиры);
					КонецЕсли;
					Если ВыводитьУглеводы Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаУглеводы);
					КонецЕсли;
					Если ВыводитьКалорийность Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаКалорийность);
					КонецЕсли;
					
					ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаНомерКарточкиНаименование);
					
					Если ВыводитьОписание Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаОписание);
					КонецЕсли;
					
					Если ВыводитьКоличествоСумму Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаКоличество);
					КонецЕсли;
					ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаВес);
					ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаСтоимость);
					Если ВыводитьКоличествоСумму Тогда
						ДокументРезультат.Присоединить(ОблСтрокаВидБлюдаСумма);
					КонецЕсли;
					
					текВидБлюда = ТекущиеДанные.ВидБлюда;
					
				КонецЕсли;
				
				ОблСтрокаТЧНомерСтроки               = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецНомерСтроки");
				ОблСтрокаТЧВес                       = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецВес");
				ОблСтрокаТЧБелки                     = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецБелки");
				ОблСтрокаТЧЖиры                      = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецЖиры");
				ОблСтрокаТЧУглеводы                  = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецУглеводы");
				ОблСтрокаТЧКалорийность              = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецКалорийность");
				ОблСтрокаТЧНомерКарточкиНаименование = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецНомерКарточкиНаименование");
				ОблСтрокаТЧОписание                  = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецОписание");
				ОблСтрокаТЧКоличество                = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецКоличество");
				ОблСтрокаТЧВес                       = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецВес");
				ОблСтрокаТЧСтоимость                 = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецСтоимость");
				ОблСтрокаТЧСумма                     = Макет.ПолучитьОбласть(ИмяСтрокиОбласти + "|СтолбецСумма");
				
				Если СокрЛП(ТекущиеДанные.Блюдо.ЕдиницаИзмерения.Код) = "163" Тогда
					ОблСтрокаТЧВес.Параметры.ВесПорции = ТекущиеДанные.ВесПорции / 1000;
				ИначеЕсли СокрЛП(ТекущиеДанные.Блюдо.ЕдиницаИзмерения.Код) <> "166" Тогда
					ОблСтрокаТЧВес.Параметры.ВесПорции = "" + ТекущиеДанные.ВесПорции +" ("+ТекущиеДанные.Блюдо.ЕдиницаИзмерения+")";
				КонецЕсли;
				
				//
				//Выбор = Категория.Наименование;
				//Для каждого Строка из Выбор цикл
				//ОблСтрокаТЧНомерСтроки.Параметры.Категория = Строка(Выбор);	
				////ОблСтрокаТЧНомерСтроки.Параметры.Категория = Инд + 1;
				//ДокументРезультат.Вывести(ОблСтрокаТЧНомерСтроки);
				//КонецЦикла;
				
				Если ВыводитьБелки Тогда
					ОблСтрокаТЧБелки.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧБелки);
				КонецЕсли;
				Если ВыводитьЖиры Тогда
					ОблСтрокаТЧЖиры.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧЖиры);
				КонецЕсли;
				Если ВыводитьУглеводы Тогда
					ОблСтрокаТЧУглеводы.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧУглеводы);
				КонецЕсли;
				Если ВыводитьКалорийность Тогда
					ОблСтрокаТЧКалорийность.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧКалорийность);
				КонецЕсли;
				
				ОблСтрокаТЧНомерКарточкиНаименование.Параметры.Заполнить(ТекущиеДанные);
				ДокументРезультат.Присоединить(ОблСтрокаТЧНомерКарточкиНаименование);
				
				Если ВыводитьОписание Тогда
					ТекОписание = СтрЗаменить(ТекущиеДанные.Спецификация.Описание, Символы.ПС, " ");
					ОблСтрокаТЧОписание.Параметры.Описание = ТекОписание;
					ДокументРезультат.Присоединить(ОблСтрокаТЧОписание);
				КонецЕсли;
				
				Если ВыводитьКоличествоСумму Тогда
					ОблСтрокаТЧКоличество.Параметры.Заполнить(ТекущиеДанные);
					ДокументРезультат.Присоединить(ОблСтрокаТЧКоличество);
				КонецЕсли;
				
				ОблСтрокаТЧВес.Параметры.Заполнить(ТекущиеДанные);
				ДокументРезультат.Присоединить(ОблСтрокаТЧВес);
				
				ОблСтрокаТЧСтоимость.Параметры.Заполнить(ТекущиеДанные);
				
				СтоимостьБлюда = 0;
				
				Если РасчетСтоимости = 0 Тогда
					
					СуммаЗатрат			= ПолучитьСуммуЗатратНаБлюдо(ТекущиеДанные.Блюдо, ТекущиеДанные.Спецификация, ТекВидаПриема);
					текКоличествоПорций	= ТекущиеДанные.КоличествоПорций;
					
					СтоимостьБлюда = СтоимостьБлюда + (СуммаЗатрат / ТекущиеДанные.ОбщееКоличествоПорций) + (ПроцентНаценки / 100) * (СуммаЗатрат / ТекущиеДанные.ОбщееКоличествоПорций);
					
				Иначе
					СтруктураПараметровДляПолученияЦены = Новый Структура;
					СтруктураПараметровДляПолученияЦены.Вставить("Организация", Организация);
					СтруктураПараметровДляПолученияЦены.Вставить("Номенклатура", ТекущиеДанные.Блюдо);
					СтруктураПараметровДляПолученияЦены.Вставить("ТипЦены", ТипЦен);
					СтруктураПараметровДляПолученияЦены.Вставить("ТипВеса", Константы.УППБУ_ТипВесаДляРасчетаКоличестваПродуктов.Получить());
					СтруктураПараметровДляПолученияЦены.Вставить("ДатаЦены", НачалоПериода);
					
					СтоимостьБлюда = УППБУ_КалькуляцияПродуктовПитания.ПолучитьЦенуБлюда(СтруктураПараметровДляПолученияЦены);
				КонецЕсли;
				
				ОблСтрокаТЧСтоимость.Параметры.СтоимостьБлюда = СтоимостьБлюда;
				
				ДокументРезультат.Присоединить(ОблСтрокаТЧСтоимость);
				
				Если ВыводитьКоличествоСумму Тогда
					ТекСумма = ТекущиеДанные.КоличествоПорций * СтоимостьБлюда;
					ОблСтрокаТЧСумма.Параметры.Сумма = ТекСумма;
					
					СуммаИтогоНаВидПриема = СуммаИтогоНаВидПриема + ТекСумма;
					СуммаИтого            = СуммаИтого            + ТекСумма;
					
					ДокументРезультат.Присоединить(ОблСтрокаТЧСумма);
				КонецЕсли;
					
			КонецЦикла;
			
			ДокументРезультат.ЗакончитьАвтогруппировкуСтрок();
			
		КонецЕсли;
		
		Если ВыводитьИтоги Тогда
			
			// Подготовка итогов по виду приема.
			ИтогиПоВидуПриема = ТаблицаРезультат.Скопировать();
			ИтогиПоВидуПриема.Свернуть("ВидПриемаПищи",
									   "Белки,
									   |Жиры,
									   |Углеводы,
									   |Калорийность,
									   |Сумма");
									   
			СтрокаИтоговПоВидуПриема = ИтогиПоВидуПриема.Найти(ТекВидаПриема, "ВидПриемаПищи");
			
			Если СтрокаИтоговПоВидуПриема = Неопределено Тогда // Если итогов нет, пропускаем.
				Продолжить;
			КонецЕсли;
			
			ОблСтрокаИтогоВидПриемаНомерСтроки               = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецНомерСтроки");
			ОблСтрокаИтогоВидПриемаВес                       = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецВес");
			ОблСтрокаИтогоВидПриемаБелки                     = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецБелки");
			ОблСтрокаИтогоВидПриемаЖиры                      = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецЖиры");
			ОблСтрокаИтогоВидПриемаУглеводы                  = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецУглеводы");
			ОблСтрокаИтогоВидПриемаКалорийность              = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецКалорийность");
			ОблСтрокаИтогоВидПриемаНомерКарточкиНаименование = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецНомерКарточкиНаименование");
			ОблСтрокаИтогоВидПриемаОписание                  = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецОписание");
			ОблСтрокаИтогоВидПриемаКоличество                = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецКоличество");
			ОблСтрокаИтогоВидПриемаВес                       = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецВес");
			ОблСтрокаИтогоВидПриемаСтоимость                 = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецСтоимость");
			ОблСтрокаИтогоВидПриемаСумма                     = Макет.ПолучитьОбласть("СтрокаИтогоВидПриема|СтолбецСумма");
			
			ОблСтрокаИтогоВидПриемаНомерСтроки.Параметры.ВидПриема = ТекВидаПриема;
			ДокументРезультат.Вывести(ОблСтрокаИтогоВидПриемаНомерСтроки);
			
			Если ВыводитьБелки Тогда
				ОблСтрокаИтогоВидПриемаБелки.Параметры.Заполнить(СтрокаИтоговПоВидуПриема);
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаБелки);
			КонецЕсли;
			Если ВыводитьЖиры Тогда
				ОблСтрокаИтогоВидПриемаЖиры.Параметры.Заполнить(СтрокаИтоговПоВидуПриема);
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаЖиры);
			КонецЕсли;
			Если ВыводитьУглеводы Тогда
				ОблСтрокаИтогоВидПриемаУглеводы.Параметры.Заполнить(СтрокаИтоговПоВидуПриема);
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаУглеводы);
			КонецЕсли;
			Если ВыводитьКалорийность Тогда
				ОблСтрокаИтогоВидПриемаКалорийность.Параметры.Заполнить(СтрокаИтоговПоВидуПриема);
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаКалорийность);
			КонецЕсли;
			
			ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаНомерКарточкиНаименование);
			
			Если ВыводитьОписание Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаОписание);
			КонецЕсли;
			
			Если ВыводитьКоличествоСумму Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаКоличество);
			КонецЕсли;
			
			ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаВес);
			ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаСтоимость);
			
			Если ВыводитьКоличествоСумму Тогда
				ОблСтрокаИтогоВидПриемаСумма.Параметры.Сумма = СуммаИтогоНаВидПриема;
				ДокументРезультат.Присоединить(ОблСтрокаИтогоВидПриемаСумма);
			КонецЕсли;
			
			ИтогиПоВидуПриема.Очистить();
			
		КонецЕсли;
		
	КонецЦикла;
	
	Если ВыводитьИтоги Тогда
		
		// Подготовка общих итогов.
		ИтогиОбщие = ТаблицаРезультат.Скопировать();
		ИтогиОбщие.Колонки.Добавить("ДляСвертки");
		ИтогиОбщие.Свернуть("ДляСвертки",
		"Белки,
		|Жиры,
		|Углеводы,
		|Калорийность,
		|Сумма");
		
		Если ИтогиОбщие.Количество() <> 0 Тогда // Проверка на наличие итогов.
			
			СтрокаОбщихИтогов = ИтогиОбщие[0];
		
			// Выводим итоги таблицы МЕНЮ.
			ОблСтрокаИтогоНомерСтроки               = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецНомерСтроки");
			ОблСтрокаИтогоВес                       = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецВес");
			ОблСтрокаИтогоБелки                     = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецБелки");
			ОблСтрокаИтогоЖиры                      = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецЖиры");
			ОблСтрокаИтогоУглеводы                  = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецУглеводы");
			ОблСтрокаИтогоКалорийность              = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецКалорийность");
			ОблСтрокаИтогоНомерКарточкиНаименование = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецНомерКарточкиНаименование");
			ОблСтрокаИтогоОписание                  = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецОписание");
			ОблСтрокаИтогоКоличество                = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецКоличество");
			ОблСтрокаИтогоВес                       = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецВес");
			ОблСтрокаИтогоСтоимость                 = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецСтоимость");
			ОблСтрокаИтогоСумма                     = Макет.ПолучитьОбласть("СтрокаИтого|СтолбецСумма");
			
			ДокументРезультат.Вывести(ОблСтрокаИтогоНомерСтроки);
			
			ОблСтрокаИтогоБелки.Параметры.Заполнить(СтрокаОбщихИтогов);
			ОблСтрокаИтогоЖиры.Параметры.Заполнить(СтрокаОбщихИтогов);
			ОблСтрокаИтогоУглеводы.Параметры.Заполнить(СтрокаОбщихИтогов);
			ОблСтрокаИтогоКалорийность.Параметры.Заполнить(СтрокаОбщихИтогов);
			
			Если ВыводитьБелки Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоБелки);
			КонецЕсли;
			Если ВыводитьЖиры Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоЖиры);
			КонецЕсли;
			Если ВыводитьУглеводы Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоУглеводы);
			КонецЕсли;
			Если ВыводитьКалорийность Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоКалорийность);
			КонецЕсли;
			
			ДокументРезультат.Присоединить(ОблСтрокаИтогоНомерКарточкиНаименование);
			
			Если ВыводитьОписание Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоОписание);
			КонецЕсли;
			
			Если ВыводитьКоличествоСумму Тогда
				ДокументРезультат.Присоединить(ОблСтрокаИтогоКоличество);
			КонецЕсли;
			
			ДокументРезультат.Присоединить(ОблСтрокаИтогоВес);
			ДокументРезультат.Присоединить(ОблСтрокаИтогоСтоимость);
			
			Если ВыводитьКоличествоСумму Тогда
				ОблСтрокаИтогоСумма.Параметры.Сумма = СуммаИтого;
				ДокументРезультат.Присоединить(ОблСтрокаИтогоСумма);
			КонецЕсли;
			
		КонецЕсли;
		
		ИтогиОбщие.Очистить();
		
	КонецЕсли;
	
	////////////////////////////////////////////////////////////­/////
	// ВЫВОД ТАБЛИЦЫ №2
	
	Если ВыводитьВитаминыИМинВещества Тогда
		
		ТабДок    = Новый ТабличныйДокумент;
		
		// Выводим шапку отчета.
		ОблШапка = ОблШапка.ПолучитьОбласть("R1C1:R7C60");
		ТабДок.Вывести(ОблШапка);

		// выводим вторую шапку
		
		ОблШапкаДоп = Макет.ПолучитьОбласть("ШапкаДоп");
		ОблШапкаДоп.Параметры.ПредставлениеПериода = Формат(НачалоПериода, "ДЛФ=ДД");
		ТабДок.Вывести(ОблШапкаДоп);
		
		ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ШапкаДоп");
		
		// выводим шапку таблицы 2
		ОблШапкаТЧДоп = Макет.ПолучитьОбласть("ШапкаТЧДоп");
		ТабДок.Вывести(ОблШапкаТЧДоп);
		
		// выводим строки таблицы 2
		Для Каждого ТекЭлементПорядка Из СписокПриемаПищи Цикл
		
			СтруктураПоиска = Новый Структура;
			СтруктураПоиска.Вставить("ВидПриемаПищи", ТекЭлементПорядка.ВидПриемаПищи);
			СтрокиПоВидуПриема = ТаблицаРезультат.НайтиСтроки(СтруктураПоиска);
			
			// Если по текущему виду приема ничего не найдено, перейдем к поиску по следующему.
			Если СтрокиПоВидуПриема.Количество() = 0 Тогда
				Продолжить;
			КонецЕсли;
			
			// текущий вид приема из таблицы результата
			ТекВидаПриема = СтрокиПоВидуПриема[0].ВидПриемаПищи;
			
			ОблСтрокаВидПриемаДоп = Макет.ПолучитьОбласть("СтрокаВидПриемаДоп");
			ОблСтрокаВидПриемаДоп.Параметры.ВидПриемаПищи = ТекВидаПриема;
			
			ТабДок.Вывести(ОблСтрокаВидПриемаДоп);
			
			Для Инд = 0 По (СтрокиПоВидуПриема.Количество() - 1) Цикл
				
				ТекущиеДанные = СтрокиПоВидуПриема[Инд];
				
				ОблСтрокаТЧДоп = Макет.ПолучитьОбласть("СтрокаТЧДоп");
				ОблСтрокаТЧДоп.Параметры.Заполнить(ТекущиеДанные);
				ТабДок.Вывести(ОблСтрокаТЧДоп);
				
			КонецЦикла;
			
			// Подготовка итогов по виду приема для витаминов и минералов.
			ИтогиПоВидуПриема = ТаблицаРезультат.Скопировать();
			ИтогиПоВидуПриема.Свернуть("ВидПриемаПищи",
									   "ВитаминА,
									   |ВитаминB1,
									   |ВитаминB2,
									   |ВитаминB6,
									   |ВитаминB12,
									   |ВитаминPP,
									   |ВитаминC,
									   |ВитаминD,
									   |ВитаминE,
									   |Na,K,Ca,Mg,P,Fe,Zn,J");
									   
			СтрокаИтоговПоВидуПриема = ИтогиПоВидуПриема.Найти(ТекВидаПриема, "ВидПриемаПищи");
			
			Если СтрокаИтоговПоВидуПриема = Неопределено Тогда // если итогов нет, пропускаем
				Продолжить;
			КонецЕсли;
			
			ОблСтрокаИтогоВидПриемаДоп = Макет.ПолучитьОбласть("СтрокаИтогоВидПриемаДоп");
			ОблСтрокаИтогоВидПриемаДоп.Параметры.Заполнить(СтрокаИтоговПоВидуПриема);
			ОблСтрокаИтогоВидПриемаДоп.Параметры.ВидПриемаПищи = ТекВидаПриема;
			ТабДок.Вывести(ОблСтрокаИтогоВидПриемаДоп);
			
			ИтогиПоВидуПриема.Очистить();
			
		КонецЦикла;
		
		// Вывод общих итогов таблицы по витаминам и минералам.
		ИтогиОбщие = ТаблицаРезультат.Скопировать();
		ИтогиОбщие.Колонки.Добавить("ДляСвертки");
		ИтогиОбщие.Свернуть("ДляСвертки",
		"ВитаминА,
		|ВитаминB1,
		|ВитаминB2,
		|ВитаминB6,
		|ВитаминB12,
		|ВитаминPP,
		|ВитаминC,
		|ВитаминD,
		|ВитаминE,
		|Na,K,Ca,Mg,P,Fe,Zn,J");
		
		Если ИтогиОбщие.Количество() <> 0 Тогда // проверка на наличие итогов
			
			СтрокаОбщихИтогов = ИтогиОбщие[0];
			
			ОблСтрокаИтогоДоп = Макет.ПолучитьОбласть("СтрокаИтогоДоп");
			ОблСтрокаИтогоДоп.Параметры.Заполнить(СтрокаОбщихИтогов);
			ТабДок.Вывести(ОблСтрокаИтогоДоп);
			
		КонецЕсли;
		
		ИтогиОбщие.Очистить();
				
		ОбластьТекста = ТабДок.Область("R1C1");
		Пока Не ОбластьТекста = Неопределено Цикл
			ОбластьТекста = ТабДок.НайтиТекст("ВспомогательныйТекстДляОбъединения", ОбластьТекста, , Истина);
			Если Не ОбластьТекста = Неопределено Тогда
				ОбластьТекста.Текст = "";
				ИмяОбласти = ОбластьТекста.Имя;
				НомерСимволаС = Найти(ИмяОбласти, "C");
				ПозицияСтолбец = Лев(ИмяОбласти, НомерСимволаС - 1);
				ОбластьОбъединения = ТабДок.Область(ПозицияСтолбец + "C2" + ":" + ИмяОбласти);
				ОбластьОбъединения.Объединить();
				ОбластьОбъединения.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
			КонецЕсли;
		КонецЦикла;
		
		// выводим подвал "Содержание Витаминов и Минеральных Веществ".
		ОблОтветственные = Макет.ПолучитьОбласть("Ответственные");
		Для Каждого ТекСтрока Из ОтветственныеТЗ Цикл
			Если Не ПустаяСтрока(ТекСтрока.Ответственный) Тогда
				ОтветственныйФИО = КорреспондентыКлиентСервер.ФИО(ТекСтрока.Ответственный.Наименование, Ложь);
				ОблОтветственные.Параметры.Должность = ТекСтрока.Должность;
				ОблОтветственные.Параметры.Ответственный = ОтветственныйФИО;;
				ТабДок.Вывести(ОблОтветственные);
			КонецЕсли;
		КонецЦикла;
		
		ТабДок.ИмяПараметровПечати = "УППБУ_МенюБлюд";
		ТабДок.АвтоМасштаб = Истина;
	КонецЕсли;
	
	ОбластьТекста = ДокументРезультат.Область("R1C1");
	Пока Не ОбластьТекста = Неопределено Цикл
		ОбластьТекста = ДокументРезультат.НайтиТекст("ВспомогательныйТекстДляОбъединения", ОбластьТекста, , Истина);
		Если Не ОбластьТекста = Неопределено Тогда
			ОбластьТекста.Текст = "";
			ИмяОбласти = ОбластьТекста.Имя;
			НомерСимволаС = Найти(ИмяОбласти, "C");
			ПозицияСтолбец = Лев(ИмяОбласти, НомерСимволаС - 1);
			ОбластьОбъединения = ДокументРезультат.Область(ПозицияСтолбец + "C2" + ":" + ИмяОбласти);
			ОбластьОбъединения.Объединить();
			ОбластьОбъединения.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
		КонецЕсли;
	КонецЦикла;
	
	// выводим подвал "Меню Блюд".
	ОблОтветственные = Макет.ПолучитьОбласть("Ответственные");
	Для Каждого ТекСтрока Из ОтветственныеТЗ Цикл
		Если Не ПустаяСтрока(ТекСтрока.Ответственный) Тогда
			ОтветственныйФИО = КорреспондентыКлиентСервер.ФИО(ТекСтрока.Ответственный.Наименование, Ложь);
			ОблОтветственные.Параметры.Должность = ТекСтрока.Должность;
			ОблОтветственные.Параметры.Ответственный = ОтветственныйФИО;
			ДокументРезультат.Вывести(ОблОтветственные);
		КонецЕсли;
	КонецЦикла;
	ДокументРезультат.ИмяПараметровПечати = "УППБУ_МенюБлюд";
	ДокументРезультат.ЧерноБелаяПечать    = Ложь;
	ДокументРезультат.АвтоМасштаб = Истина;
	
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1559729 17.08.21 11:44 Сейчас в теме
Добавьте выборку Категории в основном запросе СКД.
3. user1416843 17.08.21 12:36 Сейчас в теме
(2) Как это сделать? Категория,кажется, там уже есть
Прикрепленные файлы:
4. user1559729 17.08.21 13:20 Сейчас в теме
На закладке Настройки в ВыбранныхПолях есть это поле?
5. user1416843 17.08.21 13:21 Сейчас в теме
(4)да, вот
Прикрепленные файлы:
6. Megaiff 17.08.21 13:54 Сейчас в теме
Там случайно отборы не стоят?
7. user1416843 17.08.21 13:56 Сейчас в теме
(6) Стоят, в изначальном варианте "категория" была в отборе
8. user1416843 17.08.21 13:58 Сейчас в теме
(6)вот тут была
Прикрепленные файлы:
9. user1559729 17.08.21 16:27 Сейчас в теме
Что у вас в функции ПодготовитьТаблицуДляВывода()?
10. user1416843 17.08.21 16:31 Сейчас в теме
(9)
Процедура ПодготовитьТаблицуДляВывода(ТаблицаРезультат)
	
	// Сортировка таблицы в соответствии с настройками.
	Если ПорядокВыводаДанных > 0 Тогда // Если указаны поля сортировки
		
		СтрокаСортировки = "";
		
		// Если вывод по видам блюд, то добавляется первоначальная сортировка по порядку вывода видов блюд.
		Если ВыводитьВПорядкеВидовБлюд Тогда
			СтрокаСортировки = "ПорядокВывода";
		КонецЕсли;
		
		Для Каждого ЭлементПорядка Из ПорядокВыводаДанных Цикл
			Если ЭлементПорядка.ПутьКДанным = Неопределено Тогда
				Продолжить;
			КонецЕсли;
			СтрокаСортировки = СтрокаСортировки + ?(ЗначениеЗаполнено(СтрокаСортировки), ",","") + ЭлементПорядка.ПутьКДанным
							   + ?(ЭлементПорядка.Направление = НаправлениеСортировки.Убыв, " Убыв", "");
		КонецЦикла;
		
		Если ЗначениеЗаполнено(СтрокаСортировки) Тогда
			ТаблицаРезультат.Сортировать(СтрокаСортировки);
		КонецЕсли;
		
	КонецЕсли;
	
	// Свертка таблицы.
	ТаблицаРезультат.Свернуть("ВидПриемаПищи,
	                           |ВидПриемаПорядок,
							   |ВидБлюда,
							   |Блюдо,
							   |НаименованиеБлюда,
							   |НомерКарточки,
							   |Спецификация,
							   |Белки,
							   |Жиры,
							   |Углеводы,
							   |Калорийность,
							   |ВитаминА,
							   |ВитаминB1,
							   |ВитаминB2,
							   |ВитаминB6,
							   |ВитаминB12,
							   |ВитаминPP,
							   |ВитаминC,
							   |ВитаминD,
							   |ВитаминE,
							   |Na,K,Ca,Mg,P,Fe,Zn,J,
							   |ВесПорции", "КоличествоПорций, Сумма");
КонецПроцедуры


НаборПоказателей = Новый Массив
Показать
11. user1559729 17.08.21 16:37 Сейчас в теме
Добавьте в сворачиваемую таблицу Категорию.

ТаблицаРезультат.Свернуть("Категория,
                                                 |ВидПриемаПищи,
	                                         |ВидПриемаПорядок,
						 |ВидБлюда,
						 |Блюдо,
						 |НаименованиеБлюда,
						 |НомерКарточки,
						 |Спецификация,
						 |Белки,
						 |Жиры,
						 |Углеводы,
						 |Калорийность,
						 |ВитаминА,
						 |ВитаминB1,
						 |ВитаминB2,
						 |ВитаминB6,
						 |ВитаминB12,
						 |ВитаминPP,
						 |ВитаминC,
						 |ВитаминD,
						 |ВитаминE,
						 |Na,K,Ca,Mg,P,Fe,Zn,J,
						 |ВесПорции", "КоличествоПорций, Сумма");
Показать
12. user1416843 17.08.21 16:38 Сейчас в теме
13. user1559729 17.08.21 16:38 Сейчас в теме
Как было в самом начале - больше ничего не надо.
14. user1416843 17.08.21 16:39 Сейчас в теме
(13) в плане то что изначально было в отчете оставить?
15. user1559729 17.08.21 16:40 Сейчас в теме
Без ваших доработок. Только в макете, чтобы был параметр Категория.
Так, как было в https://forum.infostart.ru/forum9/topic267609/

Только добавить Категорию, как в (11)
16. user1416843 17.08.21 16:45 Сейчас в теме
(15) И правда сработала, хотя я уже там добавляла...
17. user1559729 17.08.21 16:45 Сейчас в теме
18. user1416843 17.08.21 17:06 Сейчас в теме
(17)Дааа,спасибо огромное
19. user1559729 17.08.21 17:17 Сейчас в теме
(18) Хорошо, Таня. Слава Богу! Не унывай, продолжай, всё получится! Постепенно, не всё сразу.
Можно было бы поскорее помочь, но есть и своя работа. Возможно, нужно было сразу запросить у тебя текст этой функции, но бывает не сразу всё понятно по кусочкам кода и скриншотам. Всего тебе доброго! :) (sm можешь оставить себе ;) )
20. user1416843 18.08.21 07:55 Сейчас в теме
(19)Спасибо за хорошие слова, я стараюсь и постепенно узнаю все больше, на теорию особо времени нет, сразу практика, да и так намного легче разбираться, сразу по ходу) Но честно говоря, когда в тупике, не хватает знаний и опыта, руки немного опускаются)
21. user1559729 18.08.21 09:44 Сейчас в теме
Судя по двум созданным темам - разбираться сразу по ходу не всегда легче ;), поэтому теорией пренебрегать не стоит.
22. FatPanzer 18.08.21 09:46 Сейчас в теме
(21) Ну да, главное скальпелем ткнуть в грудную клетку, а там по ходу разберемся как сердце зашунтировать...
23. user1559729 18.08.21 09:54 Сейчас в теме
24. FatPanzer 18.08.21 09:59 Сейчас в теме
(23) Ну, про колоноскопию уж не стал...
Оставьте свое сообщение

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