Имя: Пароль:
1C
1С v8
Сложный отчет с периодом
0 on2
 
09.10.19
13:14
Привет мальчики! Не могу никак сообразить как реализовать. Делаю на базе СКД на базе регистра.

Нужно вывести следующую информацию о продажах (период нужно выбирать (например с марта по май)
-------------------------------------------------------------------
продукция/месяц   март     апрель    май    ....
-------------------------------------------------------------------
курица             100       50       0
яйцо               3         0        5
-------------------------------------------------------------------
ИТОГ              103        50       5
1 Волшебник
 
09.10.19
13:16
В чём проблема?
2 on2
 
09.10.19
13:16
Подскажите алгоритм действий...
3 piter3
 
09.10.19
13:16
На что алгоритм?
4 on2
 
09.10.19
13:16
для начала нужно понять как перейти в конкретных дат на месяцы (1)
5 Жан Пердежон
 
09.10.19
13:16
в каком месте этот отчет сложный?
6 on2
 
09.10.19
13:17
и в ячейки "не попадают" значения в виде кол-ва, где что делаю не так((
7 pechkin
 
09.10.19
13:17
(4) в скд у дат есть плюсики
8 on2
 
09.10.19
13:17
(5) для меня везде))))
9 on2
 
09.10.19
13:18
(7) там много плюсиков))) на какой вкладке смотреть?
10 trooba
 
09.10.19
13:30
(9) на последней- дополнения периода
11 D_E_S_131
 
09.10.19
14:27
(0) А у Вас просто вывести продажи получается? Типа:
Курица, 23.03.2019, 100
Яйцо, 25.03.2019, 3
Курица, 02.04.2019, 50
Яйуо, 10.05.2019, 5
ИТОГО 158
12 on2
 
09.10.19
15:29
(11) да у меня по горизонту даты идут....
-------------------------------------------
номенклатура  01.03.18      01.04.18
-------------------------------------------
яйцо          3                 0    
курица         100             50
13 _Дайвер_
 
09.10.19
15:50
Делаешь оформление в наборе данных для поля дата ММММ гггг, на вкладке Настройки, на поле группировки ставишь дополнение "месяц", чтобы по порядку шло
14 on2
 
09.10.19
17:33
(13) сейчас попробую
15 on2
 
09.10.19
19:16
(13) что то у меня нет ничего похожего...может есть пример какой аналогичный??
16 on2
 
10.10.19
22:47
Ну как бы я отчет сделала!!!!! ВАУУУУ!
Так вот -  теперь для гуру 1С расскажу в чем смысл "сложного" отчета)))
Мне надо его запрограммировать без СКД и конструкторов отчета.

Набросала макет, форму, на форму накинула табличный документ...
теперь думаю как извлечь данные причем с группировкой по месяцам...

Какие будут мысли мальчики?
17 MuxaH
 
11.10.19
07:57
(16) В запросе есть конструкция ПЕРИОДАМИ. Получится примерно та же конструкция, что  была в СКД. Только чтоб получить эти периоды в выборке надо в методе Выбрать() для результата запроса, третьим вроде параметром, указать "ВСЕ". Ну и вперёд - заполнять макет.
18 D_E_S_131
 
11.10.19
10:25
"Какие будут мысли мальчики?" - есть мысль поискать курсы по 1С.
19 on2
 
12.10.19
14:54
(16) сказал так, что я ничего не поняла))))
В общем осталась передо мной простая задачка:
1. сформировать запрос
2. построить по группировка присоединение секций.
3. вывести в макет.

Сейчас при формировании запроса проблема с периодом не могу найти пример как период в запросе реализовать с учетом что регистр накопления (Продажи.Обороты).
-------------
сейчас ругается что поле ПродажиОбороты.Период не найдено.
-----сам запрос-----
ВЫБРАТЬ
    ПродажиОбороты.Рыбы КАК Номенклатура,
    СУММА(ПродажиОбороты.КолвоОборот) КАК Количество,
    ПродажиОбороты.Период КАК Период
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, месяц, ) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО
    ПродажиОбороты.Период,
    ПродажиОбороты.Рыбы
ИТОГИ
    СУММА(Количество)
ПО
    ОБЩИЕ,
    Номенклатура,
    Период
20 hhhh
 
12.10.19
15:12
(19) вот такой запрос

ВЫБРАТЬ
    ПродажиОбороты.Рыбы КАК Номенклатура,
    ПродажиОбороты.КолвоОборот КАК Количество,
    ПродажиОбороты.Период КАК Период
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты


остальное мусор. Выкинь.
21 on2
 
12.10.19
15:17
(20) сейчас попробую....
так а в период что передавать?  две даты?
22 on2
 
12.10.19
15:48
(20) все вроде разобралась с запросом))) еду дальше
23 on2
 
12.10.19
17:45
Скажите почему функция "ЗаполнитьЗначенияСвойств" у меня не работает:

Область_данные    = Макет.ПолучитьОбласть("Данные|Номенклатура");

ВыбНом=Выборканоменклатура.Рыбы;
ЗаполнитьЗначенияСвойств(Область_данные_Ном.Параметры,ВыбНом);
ТабДок.Вывести(Область_данные);


При этом в макете параметр также "ВыбНом".
Что не так мола сделать?((
24 on2
 
12.10.19
18:31
Все отбой (23)- сделала простым способом.
25 on2
 
12.10.19
20:03
Ребят, почему ошибка на "Результат" выдает?


ВыборкаПериод = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ");
Пока ВыборкаПериод.Следующий() Цикл
    ОбластьПериод.Параметры.Заполнить(ВыборкаПериод);
    ТабДок.Вывести(ОбластьПериод, ВыборкаПериод.Уровень());
КонецЦикла;
26 Franchiser
 
гуру
12.10.19
20:37
Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период");
27 on2
 
12.10.19
20:40
В 7.7 я делала проще
Группировка(1) и группировка(2) в случае двух группировок....а тут ХЗ взрыв мозга у меня))))
28 on2
 
12.10.19
20:41
ПРостой запрос, выбираю за период номенклатуру и колв-во
а как вывести группировку по номенклатуре и отдельно за период
- взрыв мозга!
29 on2
 
12.10.19
20:50
Где ошибка... не могу разобраться! Пишет что измерение "Период" не найдено....

----------
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    ПродажиОбороты.Номенклатура КАК Номенклатура ,
               |    ПродажиОбороты.Период КАК Период,
               |    СУММА(ПродажиОбороты.КолвоОборот) КАК КолвоОборот
               |ИЗ
               |    РегистрНакопления.Продажи.Обороты(,, Месяц, ) КАК ПродажиОбороты
               |
               |СГРУППИРОВАТЬ ПО
           |    ПродажиОбороты.Период,
               |    ПродажиОбороты.Номенклатура
               |                  
               |УПОРЯДОЧИТЬ ПО
               |    Период,
               |    Номенклатура ,
               |    КолвоОборот";


Выборка_мес = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период",);

Пока Выборка_мес.Следующий() Цикл
    Выборка_н = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
    Пока Выборка_н.Следующий() Цикл
        Сообщить("номенклатура="+Выборка_н.Номенклатура);
    КонецЦикла;    
КонецЦикла;
30 on2
 
13.10.19
00:36
закрываем тему! я разобралась!!!!!
31 on2
 
13.10.19
00:36
Я умничка)))))
32 on2
 
13.10.19
08:06
Единственное, что хотелось бы у вас спросить, совет....
Я три раза запрос вызываю, как можно вызвав один раз вернуться к его обходу по группировкам без его вызова.... т.е. что бы не делать так:
------------
Выгрузка_3=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "Все");
33 Franchiser
 
гуру
13.10.19
10:49
Выборка_Мес.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
34 Franchiser
 
гуру
13.10.19
10:51
РезЗапроса = Запрос.Выполнить();
Выборка_мес = реззапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период");
35 Franchiser
 
гуру
13.10.19
10:52
(0) открой для себя конструктор запроса с обработкой результата
36 Franchiser
 
гуру
13.10.19
10:54
И у тебя в запросе нет секции Итоги По
37 on2
 
13.10.19
11:41
(35) (36)итоги ПО зачем нужны ?
38 hhhh
 
13.10.19
12:43
(36) в СКД итогов не пишут










д
39 Franchiser
 
гуру
13.10.19
16:49
(36)(37) тогда зачем обходить результата запроса по группировкам?
40 on2
 
13.10.19
17:48
(39) что бы вывести данные в макет, без использования СКД.
Месяца по горизонтали. По вертикали номенклатура, а на пересечении значения.
Это только с помощью обхода групп можно сделать, насколько мне известно... может я не права?
41 hhhh
 
13.10.19
18:25
(40) да, но группы - это в ИТОГИ задаются, тут он прав.
42 Franchiser
 
гуру
13.10.19
18:36
(40) не понятно, ты как нужно тебе вывести данные с СКД или без СКД.
Обход результат по группировкам имеет смысл только для "не СКД".
43 on2
 
13.10.19
19:21
(42) мне в макете это надо. БЕЗ СКД!!!!
44 Franchiser
 
гуру
13.10.19
21:22
(43) тогда нужны Итоги По
45 Franchiser
 
гуру
13.10.19
21:23
Обход результатов по группировкам работает по секции ИТОГИ ПО