Версия для печати темы (https://pro1c.org.ua/index.php?s=7995b6712633a15bcfbd68e3dc759e28&showtopic=24374)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Печать Меню в разрез дат

Автор: burza 02.08.15, 18:00

Добрый вечер форум)

Нужна помощь! У меня есть отчет для "Склада и питания" на 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
 

Автор: logist 02.08.15, 18:58

В чем конкретно проблема?

Автор: burza 03.08.15, 8:49

Проблема в том что я не знаю как сделать " Период С и По". Сейчас работает только на 1 день "сформировать меню на день с ценой" и дата меню выбирается за 1 день, а мне нада за несколько.
с 01.07 по 10.07 например.

Что мне добавить или исправить, подскажите пожалуйста

Автор: sava1 03.08.15, 9:19

Вывести на форму НачалоПериода и КонецПериода.
В запросе вместо

Меню.ДатаМеню = &ПараметрДатаМеню

писать
Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода

Автор: burza 03.08.15, 9:38

Цитата(sava1 @ 03.08.15, 10:19) *
Вывести на форму НачалоПериода и КонецПериода.
В запросе вместо
Меню.ДатаМеню = &ПараметрДатаМеню

писать
Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода



Добавил в форму и изменил в запросе, и вот что выдает:

 ! 

Правила, п.11
 

Автор: sava1 03.08.15, 9:48

Ну так в параметры запроса надо было вставить начало и конец периода (так-же как ПараметрДатаМеню)

Автор: burza 03.08.15, 9:56

Цитата(sava1 @ 03.08.15, 10:48) *
Ну так в параметры запроса надо было вставить начало и конец периода (так-же как ПараметрДатаМеню)


Вот так если я правильно понимаю?

 ! 

Правила, п.11
 
то все ровно ошибка таже.

Автор: sava1 03.08.15, 10:01

    ЗапросМенюНаДень.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.НачалоПериода));
    ЗапросМенюНаДень.УстановитьПараметр("КонецПериода", КонецДня(Отчет.КонецПериода));

Автор: burza 03.08.15, 10:36

Цитата(sava1 @ 03.08.15, 11:01) *
    ЗапросМенюНаДень.УстановитьПараметр("НачалоПериода", НачалоДня(Отчет.НачалоПериода));
    ЗапросМенюНаДень.УстановитьПараметр("КонецПериода", КонецДня(Отчет.КонецПериода));


Большое спасибо, считает теперь за период)
Только у меня теперь другая проблема, у меня отчет выводиться на форму выглядит так

 ! 

Правила, п.11
 

После того как я выбираю переодичность отчета "с и до" он мне выводит и считает все верно и правильно только пишет что 3 число и все там вмести

 ! 

Правила, п.11
 


Можно как-то сделать чтобы каждый день был отдельно?

Автор: sava1 03.08.15, 10:43

Добавить группировку по дате и результат запроса обойти ПоГруппировкам

Автор: burza 03.08.15, 11:17

Цитата(sava1 @ 03.08.15, 11:43) http://pro1c.org.ua/index.php?act=findpost&pid=101536

Автор: sava1 03.08.15, 11:25

Да.

Автор: burza 03.08.15, 11:27

Сделал так

 ! 

Правила, п.11
 
и вот что вылазит

 ! 

Правила, п.11
 

Автор: sava1 03.08.15, 11:33

Выложите текст запроса в ответе - не на картинке.

Автор: VikingKosmo 03.08.15, 11:33

Вы сделали не правильно. Если поле Меню.Ссылка присутствует в конструкции СГРУППИРОВАТЬ ПО, то к остальным полям выборки должны применяться агрегатные функции СУММА(), КОЛИЧЕСТВО() и т.п. Но в данном случае мне кажется, вам нужно использовать конструкцию ИТОГИ ПО.

Автор: sava1 03.08.15, 11:35

"ВЫБРАТЬ
                             |    Меню.Ссылка,
                             |    Меню.ПриёмПищи КАК ПриёмПищи,
                             |    Сумма(Меню.КоличествоПитающихся) КоличествоПитающихся
                             |ИЗ
                             |    Документ.Меню КАК Меню
                             |ГДЕ
                             |    Меню.ДатаМеню = &ПараметрДатаМеню
                             |    И Меню.Подразделение = &ПараметрПодразделение
                             |    И Меню.ГруппаПитания = &ПараметрГруппаПитания
                             |    И Меню.ПометкаУдаления = ЛОЖЬ

                                          Сгруппировать по Меню.Ссылка, Меню.ПриёмПищи
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    ПриёмПищи
                             |АВТОУПОРЯДОЧИВАНИЕ";


Автор: burza 03.08.15, 11:40

"ВЫБРАТЬ
                             |    Меню.Ссылка,
                             |  Меню.Дата,
                             |    Меню.ПриёмПищи КАК ПриёмПищи,
                             |    Меню.КоличествоПитающихся
                             |ИЗ
                             |    Документ.Меню КАК Меню
                             |ГДЕ
                             |    Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода
                             |    И Меню.Подразделение = &ПараметрПодразделение
                             |    И Меню.ГруппаПитания = &ПараметрГруппаПитания
                             |    И Меню.ПометкаУдаления = ЛОЖЬ
                             |  
                             |СГРУППИРОВАТЬ ПО
                             |   Меню.Дата
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    ПриёмПищи
                             |АВТОУПОРЯДОЧИВАНИЕ";


 ! 

Правила, п.12
 

Автор: sava1 03.08.15, 11:43

"ВЫБРАТЬ
| Меню.Ссылка,
| Меню.Дата,
| Меню.ПриёмПищи КАК ПриёмПищи,
| Сумма(Меню.КоличествоПитающихся) КоличествоПитающихся
|ИЗ
| Документ.Меню КАК Меню
|ГДЕ
| Меню.ДатаМеню МЕЖДУ &НачалоПериода и &КонецПериода
| И Меню.Подразделение = &ПараметрПодразделение
| И Меню.ГруппаПитания = &ПараметрГруппаПитания
| И Меню.ПометкаУдаления = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
| Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи
|
|УПОРЯДОЧИТЬ ПО
| ПриёмПищи
|АВТОУПОРЯДОЧИВАНИЕ";

Автор: burza 03.08.15, 11:44

Цитата(sava1 @ 03.08.15, 12:35) *
"ВЫБРАТЬ
                             |    Меню.Ссылка,
                             |    Меню.ПриёмПищи КАК ПриёмПищи,
                             |    Сумма(Меню.КоличествоПитающихся) КоличествоПитающихся
                             |ИЗ
                             |    Документ.Меню КАК Меню
                             |ГДЕ
                             |    Меню.ДатаМеню = &ПараметрДатаМеню
                             |    И Меню.Подразделение = &ПараметрПодразделение
                             |    И Меню.ГруппаПитания = &ПараметрГруппаПитания
                             |    И Меню.ПометкаУдаления = ЛОЖЬ

                                          Сгруппировать по Меню.Ссылка, Меню.ПриёмПищи
                             |
                             |УПОРЯДОЧИТЬ ПО
                             |    ПриёмПищи
                             |АВТОУПОРЯДОЧИВАНИЕ";



ничего не изменилось, пишет все вмести

Автор: sava1 03.08.15, 11:44

Но здесь дейсвительно лучше Итоги
Вместо

СГРУППИРОВАТЬ ПО
| Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи

Писать
ИТОГИ ПО Меню.Дата

Автор: burza 03.08.15, 11:47

Цитата(sava1 @ 03.08.15, 12:44) *
Но здесь дейсвительно лучше Итоги
Вместо
СГРУППИРОВАТЬ ПО
| Меню.Ссылка, Меню.Дата, Меню.ПриёмПищи

Писать
ИТОГИ ПО Меню.Дата


ошибка
{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(48)}: Ошибка при вызове метода контекста (Выполнить)
Возврат ЗапросМенюНаДень.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
по причине:
{(18, 1)}: Синтаксическая ошибка "УПОРЯДОЧИТЬ"
<<?>>УПОРЯДОЧИТЬ ПО

Автор: sava1 03.08.15, 11:59

попробуйте так

ВЫБРАТЬ
                             |    Меню.Ссылка,
                             |    Меню.ПриёмПищи КАК ПриёмПищи,
                             |    Меню.КоличествоПитающихся
                             |ИЗ
                             |    Документ.Меню КАК Меню
                             |ГДЕ
                             |    Меню.ДатаМеню = &ПараметрДатаМеню
                             |    И Меню.Подразделение = &ПараметрПодразделение
                             |    И Меню.ГруппаПитания = &ПараметрГруппаПитания
                             |    И Меню.ПометкаУдаления = ЛОЖЬ

                                         Итоги Сумма(Меню.КоличествоПитающихся) по Ссылка,ПриёмПищи
                             |                           ";

Автор: logist 03.08.15, 12:26

burza, давайте Вы прочитаете правила форума, и отпишитесь мне в личку, что сделали это, а тогда я открою тему обратною. Спасибо.

Автор: burza 03.08.15, 13:13

Цитата(sava1 @ 03.08.15, 12:59) *
попробуйте так
ВЫБРАТЬ
                             |    Меню.Ссылка,
                             |    Меню.ПриёмПищи КАК ПриёмПищи,
                             |    Меню.КоличествоПитающихся
                             |ИЗ
                             |    Документ.Меню КАК Меню
                             |ГДЕ
                             |    Меню.ДатаМеню = &ПараметрДатаМеню
                             |    И Меню.Подразделение = &ПараметрПодразделение
                             |    И Меню.ГруппаПитания = &ПараметрГруппаПитания
                             |    И Меню.ПометкаУдаления = ЛОЖЬ

                                         Итоги Сумма(Меню.КоличествоПитающихся) по Ссылка,ПриёмПищи
                             |                           ";



Сделал так. теперь приемы пищи идут по очереди, но все ровно все в одной дате и в одной форме вмести за 3 августа.

Автор: sava1 03.08.15, 13:27

Код вывода данных покажите.

Автор: burza 03.08.15, 13:30


Автор: sava1 03.08.15, 13:42

Вместо

Пока ВыборкаМенюНаДень.Следующий() Цикл
        ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
        ВыводФорма.Вывести(ОбластьЗаголовокПП1);

Пишем
    Пока ВыборкаМенюНаДень.Следующий() Цикл
        ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;
        ВыводФорма.Вывести(ОбластьЗаголовокПП0);      
        ВыборкаМенюНаДень2 = ВыборкаМенюНаДень.Выбрать()
        Пока ВыборкаМенюНаДень2.Следующий() Цикл
            ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
            ВыводФорма.Вывести(ОбластьЗаголовокПП1);

В конце добавляем еще один КонецЦикла
На макете добавляем еще одну строку с параметром ДатаПриёмаПищи (аналогично Как "НаименованиеПриёмаПищи")

Автор: burza 03.08.15, 13:51

Цитата(sava1 @ 03.08.15, 14:42) *
Вместо
Пока ВыборкаМенюНаДень.Следующий() Цикл
        ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
        ВыводФорма.Вывести(ОбластьЗаголовокПП1);

Пишем
    Пока ВыборкаМенюНаДень.Следующий() Цикл
        ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;
        ВыводФорма.Вывести(ОбластьЗаголовокПП0);      
        ВыборкаМенюНаДень2 = ВыборкаМенюНаДень.Выбрать()
        Пока ВыборкаМенюНаДень2.Следующий() Цикл
            ОбластьЗаголовокПП1.Параметры.НаименованиеПриёмаПищи = ВыборкаМенюНаДень.ПриёмПищи;
            ВыводФорма.Вывести(ОбластьЗаголовокПП1);

В конце добавляем еще один КонецЦикла
На макете добавляем еще одну строку с параметром ДатаПриёмаПищи (аналогично Как "НаименованиеПриёмаПищи")


ошибка после изменений

{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(170,28)}: Переменная не определена (ОбластьЗаголовокПП0)
        ВыводФорма.Вывести(<<?>>ОбластьЗаголовокПП0);       (Проверка: Сервер)

Автор: sava1 03.08.15, 13:58

Цитата(sava1 @ 03.08.15, 14:42) *
На макете добавляем еще одну строку с параметром ДатаПриёмаПищи

и наименованием "ЗаголовокПП0"
там где получаем области пишем
ОбластьЗаголовокПП0     = Отчеты.МенюНаДень.ПолучитьМакет("Макет").ПолучитьОбласть("ЗаголовокПП0");

Автор: burza 03.08.15, 14:13

Цитата(sava1 @ 03.08.15, 14:58) *
и наименованием "ЗаголовокПП0"
там где получаем области пишем
ОбластьЗаголовокПП0     = Отчеты.МенюНаДень.ПолучитьМакет("Макет").ПолучитьОбласть("ЗаголовокПП0");


все сделал как вы написали

ошибка вот таже:
{Отчет.МенюНаДень3.Форма.ФормаОтчета.Форма(169)}: Поле объекта не обнаружено (ДатаПриёмаПищи)
        ОбластьЗаголовокПП1.Параметры.ДатаПриёмаПищи = ВыборкаМенюНаДень.Дата;

Автор: sava1 03.08.15, 14:18

Выложите отчет на гуглодиск.

Автор: burza 03.08.15, 14:23



отчет прилагаеться: http://pro1c.org.ua/redirect.php?https://drive.google.com/file/d/0B2dcPjksZLAIc3BoZ1VjUGR5ZE0/view?usp=sharing

Автор: sava1 03.08.15, 14:52

Последний вариант

Почту в личку

Автор: burza 03.08.15, 14:55


http://pro1c.org.ua/redirect.php?https://drive.google.com/file/d/0B2dcPjksZLAIQmNQcHlFNC14dlE/view?usp=sharing

Автор: burza 04.08.15, 8:28

поможет кто?_))

Автор: sava1 04.08.15, 8:36

В почте.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua