Имя: Пароль:
1C
1С v8
Отчет в СКД
,
0 laby1
 
18.04.17
09:15
Здравствуйте!

Хочу отчет сделать... Такого плана. Упрощеннно так:

Шапка:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Номенклатура | ДокументПлан | Сумма по плану | Документ заказ | Сумма по документу | Документ поступления | Сумма поступления
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Для одного плана может быть несколько заказов, для одного заказа несколько поступлений. Но проблема в том, что тогда несколько одинаковых строчек получается по плану. И что самое страшное сумма в итогах суммируется. То есть имею такую картину:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Номенклатура | ДокументПлан | Сумма по плану | Документ заказ | Сумма по документу | Документ поступления | Сумма поступления
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Бачок №1      | План №1         |                 5000 | Заказ №1         |                      2500   | Поступление №1         |                      1100
Бачок №1      | План №1         |                 5000 | Заказ №1         |                      2500   | Поступление №2         |                      1200
Бачок №1      | План №1         |                 5000 | Заказ №2         |                      3000   | Поступление №3         |                      1300
Бачок №1      | План №1         |                 5000 | Заказ №2         |                      3000   | Поступление №4         |                      1400
Итого:                                                      20000                                                  11000                                                              5000

А хотелось бы эту картину:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Номенклатура | ДокументПлан | Сумма по плану | Документ заказ | Сумма по документу | Документ поступления | Сумма поступления
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Бачок №1      | План №1         |                 5000 | Заказ №1         |                      2500   | Поступление №1         |                      1100
                     |                        |                         |                         |                                | Поступление №2         |                      1200
                     |                        |                         | Заказ №2         |                      3000   | Поступление №3         |                      1300
                     |                        |                         |                         |                                | Поступление №4         |                      1400
Итого:                                                        5000                                                  5500                                                                5000
1 Одинесю
 
18.04.17
09:27
Автобиография?
2 laby1
 
18.04.17
09:35
(1) да
3 laby1
 
18.04.17
09:47
Что, такое не делается в СКД?
4 DrShad
 
18.04.17
09:50
(3) делается
5 laby1
 
18.04.17
09:51
(4) Хоть куда копать подскажите.
6 1Садовник
 
18.04.17
09:52
Посмотри: на вкладке "Другие настройки", настройка "Расположение полей группировок".
7 laby1
 
18.04.17
09:54
(6) посмотрел ...
8 Strogg
 
18.04.17
09:56
1) определить структуру группировок.
2) в ресурсах, по требуемым группировкам выбирать сумму, а по не требуемым - значение. Что то типа: Выбор когда [ненужнаяДляСуммирвоанияГруппировка] тогда [Значение] иначе [СуммаЗначение]
3) так же, можно в пользовательских полях прописать значение по уровню. Тоже Выбор когда уровень > твоего уровня группировки тогда сумма, иначе 0
9 laby1
 
18.04.17
10:09
(8) непонятно ...
10 Dotoshin
 
18.04.17
10:12
11 laby1
 
18.04.17
10:25
(10) Сомневаюсь, что там это рассказывается, но щас изучу ...
12 DrShad
 
18.04.17
10:27
(11) там более 100 видеоуроков - приятного просмотра
13 laby1
 
18.04.17
10:29
(12) 110 уроков отовсюду вырезали - оставили только 51
14 laby1
 
19.04.17
10:15
(10) Занимательно, но бесполезно - ничего там нет по моей задаче ...
15 laby1
 
19.04.17
11:16
вот сделал ресурсы
количество и сумма
  по номенклатуре - Максимум,
  остальное - сумма.

Топливо (10.3)            807 155,172        22 455 790,90
Бензин А-80 (л)            10        219,90
Бензин А-80 (л)        л    10,000    21,99    219,90
Бензин Аи-92 (л)            12 324        373 293,96
Бензин Аи-92 (л)        л    12 324,000    30,29    373 293,96
Дизтопливо (л)            198 651,293        5 518 532,92
Дизтопливо (л)        л    198 651,293    27,78    5 518 532,92
Дизтопливо (л)        л    198 651,293    27,78    5 518 532,92
Дизтопливо (л)        л    198 651,293    27,78    5 518 532,92
Дизтопливо (л)        л    198 651,293    27,78    5 518 532,92
Керосин (л)            216        8 145,36
Керосин (л)        л    216,000    37,71    8 145,36

Теперь по номенклатуре выводит не сумму, а вот как бы сделать, чтоб на выше уровнях группировок суммировала не по детальным записям, а по агрегатным группировок
16 DrShad
 
19.04.17
11:18
вычисляемые поля + ВычислитьВыражениеСГруппировкой...
17 laby1
 
19.04.17
11:19
то есть в Топливо кол-во
Топливо (10.3)            807 155,172
она суммирует
198 651,293 4 раза, а надо один.
18 laby1
 
19.04.17
11:20
(16) А как мне для группировки вычисляемое поле сделать?
19 DrShad
 
19.04.17
11:22
для начала запрос покажи
20 laby1
 
19.04.17
11:23
ВЫБРАТЬ
    ПланЗакупокСоставПлана.Номенклатура КАК Номенклатура,
    ВЫБОР
        КОГДА ЕСТЬNULL(ЗаказПоставщикуТовары.Номенклатура, ПланЗакупокСоставПлана.Номенклатура) <> ПланЗакупокСоставПлана.Номенклатура
            ТОГДА ЗаказПоставщикуТовары.Номенклатура
    КОНЕЦ КАК НоменклатураПоЗаказу,
    ПланЗакупокСоставПлана.ЕдиницаИзмерения,
    ПланЗакупокСоставПлана.Количество,
    ПланЗакупокСоставПлана.Цена,
    ПланЗакупокСоставПлана.Сумма,
    ПланЗакупокСоставПлана.СуммаНДС,
    ЗаказПоставщикуТовары.Ссылка КАК Заказ,
    ПланЗакупокСоставПлана.Контрагент,
    ПланЗакупокСоставПлана.Договор,
    ПланЗакупокСоставПлана.Номенклатура.Родитель КАК НоменклатураРодитель,
    ЗаказПоставщикуТовары.Количество КАК Количество1,
    ЗаказПоставщикуТовары.Цена КАК Цена1,
    ЗаказПоставщикуТовары.Сумма КАК Сумма1,
    ЗаказПоставщикуТовары.СуммаНДС КАК СуммаНДС1,
    ЗаказПоставщикуТовары.Ссылка.ДоговорКонтрагента КАК Договор1,
    ЗаказПоставщикуТовары.Ссылка.Контрагент КАК Поставщик,
    ЗаказПоставщикуТовары.Ссылка.ДатаОплаты КАК Оплата,
    ПлатежноеПоручениеИсходящееРасшифровка.Ссылка КАК Платежка,
    ПланЗакупокСоставПлана.Ссылка КАК ПланЗакупок,
    ПоступлениеТоваровУслугТовары.Ссылка КАК Поступление,
    ПоступлениеТоваровУслугТовары.Количество КАК Количество2,
    ПоступлениеТоваровУслугТовары.Цена КАК Цена2,
    ПоступлениеТоваровУслугТовары.Сумма КАК Сумма2,
    ПоступлениеТоваровУслугТовары.СуммаНДС КАК СуммаНДС2,
    СостояниеДоговора.Значение КАК СостояниеДоговора,
    СрокПоставкиДоговора.Значение КАК СрокПоставкиДоговора,
    УсловияОплаты.Значение КАК УсловияОплаты,
    УсловияПоставки.Значение КАК УсловияПоставки,
    Толеранс.Значение КАК Толеранс,
    ПланЗакупокСоставПлана.Номенклатура.ОтветственныйМенеджерЗаПокупки
ИЗ
    Документ.ПланЗакупок.СоставПлана КАК ПланЗакупокСоставПлана
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеИсходящееРасшифровка
            ПО ЗаказПоставщикуТовары.Ссылка = ПлатежноеПоручениеИсходящееРасшифровка.Сделка И ПлатежноеПоручениеИсходящееРасшифровка.Ссылка.Проведен
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
            ПО ЗаказПоставщикуТовары.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка.Сделка
                И ЗаказПоставщикуТовары.Номенклатура = ПоступлениеТоваровУслугТовары.Номенклатура
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СостояниеДоговора
            ПО ЗаказПоставщикуТовары.Ссылка.ДоговорКонтрагента = СостояниеДоговора.Объект
                И (СостояниеДоговора.Свойство.Наименование = "Состояние")
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК СрокПоставкиДоговора
            ПО ЗаказПоставщикуТовары.Ссылка.ДоговорКонтрагента = СрокПоставкиДоговора.Объект
                И (СрокПоставкиДоговора.Свойство.Наименование = "Срок поставки")
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК УсловияОплаты
            ПО ЗаказПоставщикуТовары.Ссылка.ДоговорКонтрагента = УсловияОплаты.Объект
                И (УсловияОплаты.Свойство.Наименование = "Условия оплаты")
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК УсловияПоставки
            ПО ЗаказПоставщикуТовары.Ссылка.ДоговорКонтрагента = УсловияПоставки.Объект
                И (УсловияПоставки.Свойство.Наименование = "Условия поставки")
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК Толеранс
            ПО ЗаказПоставщикуТовары.Ссылка.ДоговорКонтрагента = Толеранс.Объект
                И (Толеранс.Свойство.Наименование = "Толеранс")
        ПО ПланЗакупокСоставПлана.Ссылка = ЗаказПоставщикуТовары.Заказ
            И (ПланЗакупокСоставПлана.Номенклатура = ЗаказПоставщикуТовары.НоменклатураПоПлануЗакупок
                ИЛИ ПланЗакупокСоставПлана.Номенклатура = ЗаказПоставщикуТовары.Номенклатура)
ГДЕ
    ПланЗакупокСоставПлана.Ссылка = &ПланЗакупок

УПОРЯДОЧИТЬ ПО
    ПланЗакупокСоставПлана.Номенклатура.Родитель.Наименование,
    ПланЗакупокСоставПлана.Номенклатура.Наименование
21 DrShad
 
19.04.17
11:28
почему!? почему запросы к документам, а не к регистрам!?
22 DrShad
 
19.04.17
11:31
и зачем в СКД столько полей в выборке!?
23 Dotoshin
 
19.04.17
11:32
(20) А теперь расскажи простыми русскими словами, что должен делать этот запрос?
24 laby1
 
19.04.17
11:41
(21) Ну вот написал к документам. А что если по регистрам - решу свои проблемы?
25 DrShad
 
19.04.17
11:42
(24) по крайней мере карму почистишь
26 laby1
 
19.04.17
11:42
(22) (23) Анализ плана закупок - сколько заказали - сколько купили, по каким ценам
27 laby1
 
19.04.17
11:44
(25) да, не по фен-шую. Н у а зачем, если данных то немного - анализируется один документ и связанные с ним
28 DrShad
 
19.04.17
11:45
(27) ну я тогда пас ибо в таком зоопарке соединений влом разбираться
29 laby1
 
19.04.17
11:46
или что - сделать один регистр накопления в котором данные как раз для отчета будут собираться
30 DrShad
 
19.04.17
11:47
(29) что за конфа?
31 laby1
 
19.04.17
11:50
(28) Да суть то не в запросе, а в том как данные типа (0) представить в отчете СКД. Хорошо, сделаю упрощенный запрос, чтоб только суть проблемы выразить, через часок другой выложу.
32 laby1
 
19.04.17
11:51
(30) УПП. но для этого отчета связаны документы уже мноюписанно
33 DrShad
 
19.04.17
11:51
(31) чтобы представить в СКД такой зоопарк!? СКД многое сама умеет и не нужно ей в основной набор тащить все подряд
34 DrShad
 
19.04.17
11:53
ну вот и используй РН ПланЗакупок + РН ЗаказыПоставщикам и не надо никаких связей документов
35 laby1
 
19.04.17
11:54
(33) Наверное, но я еще до этого не дошёл. Наши экономисты хотят портянку, как они делают в экселе ...
36 DrShad
 
19.04.17
11:55
(35) так и рисуй ее в настройках структуры, а не в наборе данных
37 laby1
 
19.04.17
11:56
(34) они хотят видеть платежку, условия договора, поступление...
38 DrShad
 
19.04.17
11:57
(37) и в чем проблема?
39 laby1
 
19.04.17
11:58
(36) а откуда данные брать - через регистраторы этих РН?
40 laby1
 
19.04.17
11:58
(38) плохо пока представляю
41 laby1
 
19.04.17
11:59
и всё ж не понимаю, как РН помогут мне в решении проблемы суммирования ...
42 DrShad
 
19.04.17
12:11
доверься старшим
43 laby1
 
19.04.17
13:37
То есть мне теперь надо в РН ЗаказыПоставщикам добавлять реквизиты для связи с РН планыЗакупок?
44 laby1
 
19.04.17
13:41
или измерения ... ?
45 laby1
 
19.04.17
13:42
это план закупок сам (ПЗ) и НоменклатураПланаЗакупок, потому как могут купить не ту номенклатуру, что в ПЗ
46 DrShad
 
19.04.17
14:04
не нужно ничего менять, кроме методики, а именно ЗК нужно размещать в ЗП
47 laby1
 
19.04.17
14:23
(46) ЧТО??? Какой ЗК??? В КАКОМ ЗП????????????????
48 laby1
 
19.04.17
14:44
ладно - молчите ... добавляю в РН ЗаказаПоставщикам измерения ПЗ и НоменклатураПЗ, при проведении ЗП пишу туда их, при проведении поступления ищу ПЗ в ЗП и также пишу туда
49 laby1
 
03.05.17
11:36
Переделал на регистры - ничего это не меняет ...

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


Суммирует всё подряд:


Топливо (10.3)        1 005 806,465    139 877,900    
Бензин А-80 (л)        10,000        
Бензин Аи-92 (л)        12 324,000        
Дизтопливо (л)    Заказ поставщику 00000000566 от 05.04.2017 17:14:17    198 651,293    28 750,000    
Дизтопливо (л)    Заказ поставщику 00000000657 от 18.04.2017 9:24:53    198 651,293    25 110,000    
Дизтопливо (л)    Заказ поставщику 00000000651 от 14.04.2017 20:12:50    198 651,293    29 761,900    
Дизтопливо (л)    Заказ поставщику 00000000652 от 12.04.2017 17:20:07    198 651,293    28 128,000    
Дизтопливо (л)    Заказ поставщику 00000000595 от 10.04.2017 12:38:12    198 651,293    28 128,000
50 PiotrLoginov
 
03.05.17
11:43
(32) да как же можно в УПП самому документы "уже мноюписанно" при таком уровне квалификации? Отвечать не надо.
51 DrShad
 
03.05.17
11:58
(49) во-первых условие по документу планирования в параметры таблицы, а не на итоговую выборку
во-вторых что с вычисляемыми полями?
52 LordCMEPTb
 
03.05.17
12:03
Еще не было предложения вынести запрос по плану в один набор данных, запрос по документу в другой, а запрос по оплате в третий, а затем соединить эти наборы или объединить (зависит от конечной цели)?
53 DrShad
 
03.05.17
12:05
(52) нет тут никакой оплаты )))
54 laby1
 
03.05.17
12:30
В общем дельных соображений нету как всегда :(
55 DrShad
 
03.05.17
12:35
(54) если вы не поняли ответа - это не означает, что вам его не дали
56 DrShad
 
03.05.17
12:36
видео уроки то просмотрел хоть?
57 laby1
 
03.05.17
12:37
(56) Да, там бред всё не по теме
58 laby1
 
03.05.17
12:38
(52) не было. Конечная цель в (0)
59 laby1
 
03.05.17
12:40
(53) Да, в (49) нет. Упростил пример. Потом добавлю. Пока бы разобраться как в принципе сделать. В (15) есть.
60 laby1
 
03.05.17
12:40
(51) понял. С выч полями пока ничего, а что надо с ними?
61 laby1
 
03.05.17
12:42
(50) Конечно писано ибо ЗП не были связаны с ПЗ
62 Franchiser
 
гуру
03.05.17
12:46
Самое простое: делай не 1-м запросом а 2-мя наборами.
Или разбирайся с формулами ресурсов.
63 vicof
 
03.05.17
12:48
Прострелить коленку уже предлагали?
64 laby1
 
03.05.17
13:04
(62) Что это даст?
65 ejikbeznojek
 
03.05.17
13:05
(62) +
Я обычно так и делаю, чтобы итоги не суммировались
66 laby1
 
03.05.17
13:06
(65) Что именно. "не 1-м запросом а 2-мя наборами" ?
67 laby1
 
03.05.17
13:10
(65) (62) (52) Попробую раскидать на разные запросы, что будет посмотрим ...
68 Franchiser
 
гуру
03.05.17
13:14
(66) при соединении наборами дубликаты сумм не будут учитываться в итогах по ресурсу,  отпадает необходимость писать формулы по суммированию максимумов на разных уровнях группировок.
69 laby1
 
03.05.17
13:33
(65) (62) (52) (68) Страннннно ... Разбил на 2 запросааааа аааааа и заработала. Блин 3 недели мучался ...
70 laby1
 
03.05.17
13:35
Спасибо :-) Но не пойму механизма - почему так ...
71 laby1
 
03.05.17
13:37
(68) в том то и дело, что формулы на разных уровнях группировок. А тут и не надо делать группировок!!!
72 Franchiser
 
гуру
03.05.17
14:45
(71) Чтобы было правильно нужно использовать агрегат ВычислитьВыражениеСГруппировокойМассив() на некоторых уровнях
73 Franchiser
 
гуру
03.05.17
14:46
(70) посмотри видеоуроки, там есть про особенность расчета итогов при соединении нескольких наборов данных.
74 laby1
 
03.05.17
15:10
(73) Теперь уж пересмотрю, после мучений должно дойти :)