Добрый вечер форум)
Нужна помощь! У меня есть отчет для "Склада и питания" на 1С:Предприятие 8.3 (8.3.4.365).
Отчет делает расчеты и считает себестоимость питание на 1 день. Мне нужно добавить чтобы можно было сразу посчитать на 10 дней вперед например, помогите пожалуйста)
отчет прилагаеться: http://pro1c.org.ua/redirect.php?https://drive.google.com/file/d/0B2dcPjksZLAIc3BoZ1VjUGR5ZE0/view?usp=sharing
! | Правила, п.5 |
В чем конкретно проблема?
Проблема в том что я не знаю как сделать " Период С и По". Сейчас работает только на 1 день "сформировать меню на день с ценой" и дата меню выбирается за 1 день, а мне нада за несколько.
с 01.07 по 10.07 например.
Что мне добавить или исправить, подскажите пожалуйста
Вывести на форму НачалоПериода и КонецПериода.
В запросе вместо
Меню.ДатаМеню = &ПараметрДатаМеню
Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода
Меню.ДатаМеню = &ПараметрДатаМеню
Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода
! | Правила, п.11 |
Ну так в параметры запроса надо было вставить начало и конец периода (так-же как ПараметрДатаМеню)
! | Правила, п.11 |
ЗапросМенюНаДень.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.НачалоПериода));
ЗапросМенюНаДень.УстановитьПараметр("КонецПериода", КонецДня(Отчет.КонецПериода));
ЗапросМенюНаДень.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.НачалоПериода));
ЗапросМенюНаДень.УстановитьПараметр("КонецПериода", КонецДня(Отчет.КонецПериода));
! | Правила, п.11 |
! | Правила, п.11 |
Добавить группировку по дате и результат запроса обойти ПоГруппировкам
Да.
Сделал так
! | Правила, п.11 |
! | Правила, п.11 |
Выложите текст запроса в ответе - не на картинке.
Вы сделали не правильно. Если поле Меню.Ссылка присутствует в конструкции СГРУППИРОВАТЬ ПО, то к остальным полям выборки должны применяться агрегатные функции СУММА(), КОЛИЧЕСТВО() и т.п. Но в данном случае мне кажется, вам нужно использовать конструкцию ИТОГИ ПО.
"ВЫБРАТЬ
| Меню.Ссылка,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Сумма(Меню.КоличествоПитающихся) КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню = &ПараметрДатаМеню
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
Сгруппировать по Меню.Ссылка, Меню.ПриёмПищи
|
|УПОРЯДОЧИТЬ ПО
| ПриёмПищи
|АВТОУПОРЯДОЧИВАНИЕ";
"ВЫБРАТЬ
| Меню.Ссылка,
| Меню.Дата,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Меню.КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
| Меню.Дата
|
|УПОРЯДОЧИТЬ ПО
| ПриёмПищи
|АВТОУПОРЯДОЧИВАНИЕ";
! | Правила, п.12 |
"ВЫБРАТЬ
| Меню.Ссылка,
| Меню.Дата,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Сумма(Меню.КоличествоПитающихся) КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
| Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи
|
|УПОРЯДОЧИТЬ ПО
| ПриёмПищи
|АВТОУПОРЯДОЧИВАНИЕ";
"ВЫБРАТЬ
| Меню.Ссылка,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Сумма(Меню.КоличествоПитающихся) КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню = &ПараметрДатаМеню
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
Сгруппировать по Меню.Ссылка, Меню.ПриёмПищи
|
|УПОРЯДОЧИТЬ ПО
| ПриёмПищи
|АВТОУПОРЯДОЧИВАНИЕ";
Но здесь дейсвительно лучше Итоги
Вместо
СГРУППИРОВАТЬ ПО
| Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи
ИТОГИ ПО Меню.Дата
СГРУППИРОВАТЬ ПО
| Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи
ИТОГИ ПО Меню.Дата
попробуйте так
ВЫБРАТЬ
| Меню.Ссылка,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Меню.КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню = &ПараметрДатаМеню
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
Итоги Сумма(Меню.КоличествоПитающихся) по Ссылка,ПриёмПищи
| ";
burza, давайте Вы прочитаете правила форума, и отпишитесь мне в личку, что сделали это, а тогда я открою тему обратною. Спасибо.
ВЫБРАТЬ
| Меню.Ссылка,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Меню.КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню = &ПараметрДатаМеню
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
Итоги Сумма(Меню.КоличествоПитающихся) по Ссылка,ПриёмПищи
| ";
Код вывода данных покажите.
Вместо
Пока ВыборкаМенюНаДень.Следующий() Цикл
ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
ВыводФорма.Вывести(ОбластьЗаголовокПП1);
Пока ВыборкаМенюНаДень.Следующий() Цикл
ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;
ВыводФорма.Вывести(ОбластьЗаголовокПП0);
ВыборкаМенюНаДень2 = ВыборкаМенюНаДень.Выбрать()
Пока ВыборкаМенюНаДень2.Следующий() Цикл
ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
ВыводФорма.Вывести(ОбластьЗаголовокПП1);
Пока ВыборкаМенюНаДень.Следующий() Цикл
ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
ВыводФорма.Вывести(ОбластьЗаголовокПП1);
Пока ВыборкаМенюНаДень.Следующий() Цикл
ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;
ВыводФорма.Вывести(ОбластьЗаголовокПП0);
ВыборкаМенюНаДень2 = ВыборкаМенюНаДень.Выбрать()
Пока ВыборкаМенюНаДень2.Следующий() Цикл
ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
ВыводФорма.Вывести(ОбластьЗаголовокПП1);
{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(170,28)}: Переменная не определена (ОбластьЗаголовокПП0)
ВыводФорма.Вывести(<<?>>ОбластьЗаголовокПП0); (Проверка: Сервер)
ОбластьЗаголовокПП0 = Отчеты.МенюНаДень.ПолучитьМакет("Макет").ПолучитьОбласть("ЗаголовокПП0");
ОбластьЗаголовокПП0 = Отчеты.МенюНаДень.ПолучитьМакет("Макет").ПолучитьОбласть("ЗаголовокПП0");
{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(169)}: Поле объекта не обнаружено (ДатаПриёмаПищи)
ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;
Выложите отчет на гуглодиск.
отчет прилагаеться: http://pro1c.org.ua/redirect.php?https://drive.google.com/file/d/0B2dcPjksZLAIc3BoZ1VjUGR5ZE0/view?usp=sharing
Последний вариант
Почту в личку
http://pro1c.org.ua/redirect.php?https://drive.google.com/file/d/0B2dcPjksZLAIQmNQcHlFNC14dlE/view?usp=sharing
поможет кто?_))
В почте.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua