Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1
Цитата(sava1 @ 03.08.15, 12:44)
Но здесь дейсвительно лучше Итоги Вместо
СГРУППИРОВАТЬ ПО | Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи
Писать
ИТОГИ ПО Меню.Дата
ошибка {Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(48)}: Ошибка при вызове метода контекста (Выполнить) Возврат ЗапросМенюНаДень.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); по причине: {(18, 1)}: Синтаксическая ошибка "УПОРЯДОЧИТЬ" <<?>>УПОРЯДОЧИТЬ ПО
// Установка параметров области "ОбластьШапка1" ОбластьШапка1.Параметры.Подразделение = Отчет.Подразделение.Наименование;
// Установка параметров области "ОбластьШапка2" ОбластьШапка2.Параметры.Подразделение = Отчет.Подразделение.Наименование; Отбор = новый Структура; Отбор.Вставить("Подразделение", Отчет.Подразделение); ИмяДиректора = РегистрыСведений.ОтветственныеЛица.ПолучитьПоследнее(ТекущаяДата(),Отбор).ОтвЛицоДиректор; ОбластьШапка2.Параметры.ИмяДиректора = ИмяДиректора;
// Установка параметров области "ОбластьШапкаЗаголовок" ОбластьШапкаЗаголовок.Параметры.НаименованиеДокумента = "Меню на"; ОбластьШапкаЗаголовок.Параметры.ДатаДокумента = Формат(Отчет.ДатаМеню, "ДЛФ=ДД");
// Установка параметров области "ОбластьШапкаСписокГП" ОбластьШапкаСписокГП.Параметры.СписокГруппПитания = Отчет.ГруппаПитания;
// Выводим все "шапки" в результирующий документ ВыводФорма.Вывести(ОбластьШапка1); ВыводФорма.Вывести(ОбластьШапка2); ВыводФорма.Вывести(ОбластьШапкаЗаголовок); ВыводФорма.Вывести(ОбластьШапкаСписокГП);
Если ДопПоля = 3 тогда ВыводФорма.Вывести(ОбластьЗаголовокЭнц); КонецЕсли;
// Собственно выборка меню на день ВыборкаМенюНаДень = ПолучитьМенюНаДень();
Пока ВыборкаМенюНаДень.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи; ВыводФорма.Вывести(ОбластьЗаголовокПП1);
// Выборка всех блюд по данному меню ВыборкаСписокБлюдВМеню = ПолучитьСписокБлюдВМеню(ВыборкаМенюНаДень.Ссылка);
Пока ВыборкаСписокБлюдВМеню.Следующий() Цикл // ДопПоля = 0 - простое меню, без цен и калорий Если ДопПоля = 0 Тогда Если Отчет.ПечататьНР тогда ОбластьБлюдо.Параметры.НаименованиеБлюда = ВыборкаСписокБлюдВМеню.Наименование + " (" + ВыборкаСписокБлюдВМеню.КодРецептуры + ")"; Иначе ОбластьБлюдо.Параметры.НаименованиеБлюда = ВыборкаСписокБлюдВМеню.Наименование; КонецЕсли; ОбластьБлюдо.Параметры.Выход = СформироватьВыходБлюда(ВыборкаСписокБлюдВМеню.Выход1, ВыборкаСписокБлюдВМеню.Выход2, ВыборкаСписокБлюдВМеню.Выход3); ОбластьБлюдо.Параметры.ЕД = ВыборкаСписокБлюдВМеню.ЕдИзм; ВыводФорма.Вывести(ОбластьБлюдо); КонецЕсли;
// ДопПоля = 1 - меню с ценой Если ДопПоля = 1 Тогда ОбластьБлюдоСЦеной.Параметры.НаименованиеБлюда = ВыборкаСписокБлюдВМеню.Наименование; ОбластьБлюдоСЦеной.Параметры.Выход = СформироватьВыходБлюда(ВыборкаСписокБлюдВМеню.Выход1, ВыборкаСписокБлюдВМеню.Выход2, ВыборкаСписокБлюдВМеню.Выход3); ОбластьБлюдоСЦеной.Параметры.ЕД = ВыборкаСписокБлюдВМеню.ЕдИзм; Цена = УправлениеМеню.ПолучитьЦенуБлюда(ВыборкаМенюНаДень.Ссылка, ВыборкаСписокБлюдВМеню.ИдентификаторБлюда, Отчет.БазаРасчётаЦен); ОбластьБлюдоСЦеной.Параметры.Цена = Формат(Цена, "ЧДЦ=2"); ОбластьБлюдоСЦеной.Параметры.Вал = Константы.БазоваяВалютаСистемы.Получить(); ВыводФорма.Вывести(ОбластьБлюдоСЦеной); Если Цена = NULL тогда Сообщить("Цена блюда " + ВыборкаСписокБлюдВМеню.Наименование + " не определена"); Иначе ОбщаяЦена = ОбщаяЦена + Цена; КонецЕсли;
КонецЕсли;
// ДопПоля = 2 - меню с калориями Если ДопПоля = 2 Тогда ОбластьБлюдоСКалор.Параметры.НаименованиеБлюда = ВыборкаСписокБлюдВМеню.Наименование; ОбластьБлюдоСКалор.Параметры.Выход = СформироватьВыходБлюда(ВыборкаСписокБлюдВМеню.Выход1, ВыборкаСписокБлюдВМеню.Выход2, ВыборкаСписокБлюдВМеню.Выход3); ОбластьБлюдоСКалор.Параметры.ЕД = ВыборкаСписокБлюдВМеню.ЕдИзм; ОбластьБлюдоСКалор.Параметры.Калор = Формат(ВыборкаСписокБлюдВМеню.КалорийностьБлюда, "ЧДЦ=2");
ВыводФорма.Вывести(ОбластьБлюдоСКалор); Если ВыборкаСписокБлюдВМеню.КалорийностьБлюда = NULL тогда Сообщить("Калорийность блюда " + ВыборкаСписокБлюдВМеню.Наименование + " не определена"); Иначе ОбщаяКалорийность = ОбщаяКалорийность + Число(ВыборкаСписокБлюдВМеню.КалорийностьБлюда); КонецЕсли; КонецЕсли;
Если НЕ ВыборкаСписокБлюдВМеню.КалорийностьБлюда = NULL тогда ОбщаяКалорийность = ОбщаяКалорийность + Число(ВыборкаСписокБлюдВМеню.КалорийностьБлюда); КонецЕсли;
Если НЕ ВыборкаСписокБлюдВМеню.КалорийностьБлюда = NULL тогда ВсегоБелки = ВсегоБелки + Число(ВыборкаСписокБлюдВМеню.Белки); КонецЕсли;
Если НЕ ВыборкаСписокБлюдВМеню.КалорийностьБлюда = NULL тогда ВсегоЖиры = ВсегоЖиры + Число(ВыборкаСписокБлюдВМеню.Жиры); КонецЕсли;
Если НЕ ВыборкаСписокБлюдВМеню.КалорийностьБлюда = NULL тогда ВсегоУглеводы = ВсегоУглеводы + Число(ВыборкаСписокБлюдВМеню.Углеводы); КонецЕсли;
КонецЕсли;
КонецЦикла; КонецЦикла;
// Если меню с ценой - выводим общую цену по меню Если ДопПоля = 1 Тогда ПодвалМенюСЦеной.Параметры.ЦенаВсего = Формат(ОбщаяЦена, "ЧДЦ=2"); ПодвалМенюСЦеной.Параметры.Вал = Константы.БазоваяВалютаСистемы.Получить(); ВыводФорма.Вывести(ПодвалМенюСЦеной); КонецЕсли;
// Если меню с калориями - выводим общую калорийность Если ДопПоля = 2 Тогда ПодвалМенюСКалор.Параметры.КалорВсего = Формат(ОбщаяКалорийность, "ЧДЦ=2"); ВыводФорма.Вывести(ПодвалМенюСКалор); КонецЕсли;
Пока ВыборкаМенюНаДень.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи; ВыводФорма.Вывести(ОбластьЗаголовокПП1);
Пишем
Пока ВыборкаМенюНаДень.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата; ВыводФорма.Вывести(ОбластьЗаголовокПП0); ВыборкаМенюНаДень2 = ВыборкаМенюНаДень.Выбрать() Пока ВыборкаМенюНаДень2.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи; ВыводФорма.Вывести(ОбластьЗаголовокПП1);
В конце добавляем еще один КонецЦикла На макете добавляем еще одну строку с параметром ДатаПриёмаПищи (аналогично Как "НаименованиеПриёмаПищи")
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1
Цитата(sava1 @ 03.08.15, 14:42)
Вместо
Пока ВыборкаМенюНаДень.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи; ВыводФорма.Вывести(ОбластьЗаголовокПП1);
Пишем
Пока ВыборкаМенюНаДень.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата; ВыводФорма.Вывести(ОбластьЗаголовокПП0); ВыборкаМенюНаДень2 = ВыборкаМенюНаДень.Выбрать() Пока ВыборкаМенюНаДень2.Следующий() Цикл ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи; ВыводФорма.Вывести(ОбластьЗаголовокПП1);
В конце добавляем еще один КонецЦикла На макете добавляем еще одну строку с параметром ДатаПриёмаПищи (аналогично Как "НаименованиеПриёмаПищи")
ошибка после изменений
{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(170,28)}: Переменная не определена (ОбластьЗаголовокПП0) ВыводФорма.Вывести(<<?>>ОбластьЗаголовокПП0); (Проверка: Сервер)
{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(169)}: Поле объекта не обнаружено (ДатаПриёмаПищи) ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!