Имя: Пароль:
1C
 
Помогите доделать отчет на СКД
0 Обфускация
 
19.06.18
07:37
Сейчас запрос в СКД выглядит так как ниже. Он работает. Но он выводит только ту номенклатуру, которая на остатке. А надо вывести всю номенклатуру. Как его доработать, чтобы выводилась вся номенклатура?

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

СГРУППИРОВАТЬ ПО
    ОстаткиНоменклатурыОстатки.Склад.Родитель,
    ОстаткиНоменклатурыОстатки.КоличествоОстаток,
    ОстаткиНоменклатурыОстатки.Номенклатура.Наименование,
    ОстаткиНоменклатурыОстатки.ХарактеристикаНоменклатуры.Наименование,
    ОстаткиНоменклатурыОстатки.Номенклатура.асОсновнойПоставщик.Наименование,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект.ЦФО,
    УстановкаЦенНоменклатурыПоставщикаТовары.Цена,
    ОстаткиНоменклатурыОстатки.Номенклатура.Родитель,
    ОтчетКассовойСменыТовары.Цена,
    ОтчетКассовойСменыТовары.Ссылка.Склад,
    ОтчетКассовойСменыТовары.Ссылка.Дата

УПОРЯДОЧИТЬ ПО
    Номенклатура
1 catena
 
19.06.18
07:49
Сделать основной таблицу со всей номенклатурой
2 Обфускация
 
19.06.18
07:49
(1)
как это сделать
3 SleepyHead
 
гуру
19.06.18
07:54
(2)

Два вопроса:
1. Что должно быть результатом отчета;
2. Зачем брать сведения о номенклатуре из регистра остатков, если из этого регистра не выбираются сами остатки?
4 Обфускация
 
19.06.18
07:54
Я добавляю справочник номенклатура, но при установке левого соединения конструктор пишет, что "Неоднозначное поле "номенклатура.ссылка" "
5 Mankubus
 
19.06.18
07:54
(4) переименуй справочник номенклатура
6 SleepyHead
 
гуру
19.06.18
07:55
(5) В запросе, а то сейчас переименует ))
7 Обфускация
 
19.06.18
07:56
(3)
результат отчета - матрица. Сверху колонки со складами, по строкам номенклатура. На пересечении розничная цена и остаток.
8 Обфускация
 
19.06.18
08:01
(5)
вот да, это по существу, спасибо, вроде помогло
9 SleepyHead
 
гуру
19.06.18
08:03
(7) Как вариант добавить запрос по ценам номенклатуры, которая не вошла в запрос по остаткам. Но тебе виднее, думай..
10 Dotoshin
 
19.06.18
08:31
(2) вот так
ВЫБРАТЬ
    Товары.Ссылка КАК Товар,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
ИЗ
    Справочник.Номенклатура КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = Товары.Ссылка)
ГДЕ
    НЕ Товары.ЭтоГруппа
11 Обфускация
 
19.06.18
09:09
У меня сейчас такой запрос в СКД. Номенклатура все равно выводится только та, по которой есть информация в регистрах.

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

СГРУППИРОВАТЬ ПО
    ОстаткиНоменклатурыОстатки.Склад.Родитель,
    ОстаткиНоменклатурыОстатки.КоличествоОстаток,
    ОстаткиНоменклатурыОстатки.Номенклатура.Наименование,
    ОстаткиНоменклатурыОстатки.ХарактеристикаНоменклатуры.Наименование,
    ОстаткиНоменклатурыОстатки.Номенклатура.асОсновнойПоставщик.Наименование,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект.ЦФО,
    УстановкаЦенНоменклатурыПоставщикаТовары.Цена,
    ОстаткиНоменклатурыОстатки.Номенклатура.Родитель,
    ОтчетКассовойСменыТовары.Цена,
    ОтчетКассовойСменыТовары.Ссылка.Склад,
    ОтчетКассовойСменыТовары.Ссылка.Дата,
    Ном.Ссылка

УПОРЯДОЧИТЬ ПО
    Номенклатура
12 dvva
 
19.06.18
09:16
убери


ГДЕ
    ОтчетКассовойСменыТовары.Ссылка.Проведен = ИСТИНА
    И УстановкаЦенНоменклатурыПоставщикаТовары.Ссылка.Проведен = ИСТИНА
13 dvva
 
19.06.18
09:17
но зачем тебя вся помой ка которая хранится в спр. номенклатура непонятно, или ты еще не осознал что там помойка
14 Обфускация
 
19.06.18
09:28
(13)
Юзеры требуют
15 SleepyHead
 
гуру
19.06.18
09:42
(14) А зачем юзерам эта информация?:
16 Обфускация
 
19.06.18
09:47
(15)
Смотрят на товар, который завели, но почему-то не закупают и не продают
17 SleepyHead
 
гуру
19.06.18
09:50
(16) Почему бы не сделать для этого отдельный отчет? Будет проще.
18 Обфускация
 
19.06.18
11:53
Юзеры требуют чтобы все в одном было. Что еще можно сделать?
19 catena
 
19.06.18
12:03
(18)А чего еще не хватает?
20 Обфускация
 
19.06.18
12:14
(19)
Номенклатура выходит только та, что на остатках. Что нет на остатках не выходит, а надо чтобы выходило.
21 catena
 
19.06.18
12:30
(20)Рекомендации из (12) применены?
22 Обфускация
 
19.06.18
12:31
(21)
Да, но они заведомо не на что не повлияли бы
23 catena
 
19.06.18
12:32
(22)Показывай тогда
24 Sergz66
 
19.06.18
12:36
Написали же в (10) откуда теперь номенклатуру брать надо... Не ОстаткиНоменклатурыОстатки.Номенклатура.Наименование КАК Номенклатура, а Ном.Номенклатура.Наименование КАК Номенклатура,
25 MiamiVice
 
19.06.18
12:40
(11) 1) Убрать условие "ГДЕ"
2) Вместо ОстаткиНоменклатурыОстатки.Номенклатура.Наименование КАК Номенклатура --> Ном.Ссылка КАК Номенклатура
3) и неясно как в отчет должны попасть данные по складу, характеристике  и прочим полям, если нет остатков. Если понимание есть, необходимо добавить во всех полях  ЕСТЬNULL(
26 Мандалай
 
19.06.18
12:51
Автор отмечает удачное завершение задачи?
27 Обфускация
 
19.06.18
13:06
Отчет стал дольше работать после вставки Естьнулл. Раньше за минуту работал, сейчас уже 10 минут крутит. Возможно, выборка увеличилась, скоро увидим.
28 Обфускация
 
19.06.18
13:08
(25)
Все проделано, не помогает. Только дольше работает.
29 Обфускация
 
19.06.18
13:10
запрос сейчас такой

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Остаток,
    ОстаткиНоменклатурыОстатки.Номенклатура.асОсновнойПоставщик.Наименование КАК поставщик,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект КАК торговыйобъект,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект.ЦФО,
    ОстаткиНоменклатурыОстатки.Склад.Родитель,
    ЕСТЬNULL(УстановкаЦенНоменклатурыПоставщикаТовары.Цена, 0) КАК ЦенаКонтракт,
    ЕСТЬNULL(ОтчетКассовойСменыТовары.Цена, 0) КАК ЦенаРозница,
    ОтчетКассовойСменыТовары.Ссылка.Склад КАК Склад1,
    ОтчетКассовойСменыТовары.Ссылка.Дата,
    Ном.Ссылка КАК Номенклатура2,
    Ном.Код,
    Ном.Родитель
ИЗ
    РегистрНакопления.ОстаткиНоменклатуры.Остатки(&период, ) КАК ОстаткиНоменклатурыОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.УстановкаЦенНоменклатурыПоставщика.Товары КАК УстановкаЦенНоменклатурыПоставщикаТовары
        ПО ОстаткиНоменклатурыОстатки.Номенклатура = УстановкаЦенНоменклатурыПоставщикаТовары.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетКассовойСмены.Товары КАК ОтчетКассовойСменыТовары
        ПО ОстаткиНоменклатурыОстатки.Номенклатура = ОтчетКассовойСменыТовары.Номенклатура
            И ОстаткиНоменклатурыОстатки.Склад = ОтчетКассовойСменыТовары.Ссылка.Склад
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном
        ПО (Ном.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура)

СГРУППИРОВАТЬ ПО
    ОстаткиНоменклатурыОстатки.Склад.Родитель,
    ОстаткиНоменклатурыОстатки.КоличествоОстаток,
    ОстаткиНоменклатурыОстатки.Номенклатура.асОсновнойПоставщик.Наименование,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект,
    ОстаткиНоменклатурыОстатки.Склад.ТорговыйОбъект.ЦФО,
    УстановкаЦенНоменклатурыПоставщикаТовары.Цена,
    ОтчетКассовойСменыТовары.Цена,
    ОтчетКассовойСменыТовары.Ссылка.Склад,
    ОтчетКассовойСменыТовары.Ссылка.Дата,
    Ном.Ссылка,
    Ном.Код,
    Ном.Родитель
30 catena
 
19.06.18
13:32
Ты выбираешь из остатков, какого ты от нее ждешь всю прочую номенклатуру? Тебе сказали - выбирай из справочника. Левое соединение никогда не увеличит выборку.
31 MiamiVice
 
19.06.18
13:32
(29)
1) Д.б. Справочник Номенклатура и к нему левое соединение Остатки.
2) проверь какие у тебя группировки в настройках СКД. Если у тебя все группировки обращаются к полям остатка, то тоже фигня получится скорее всего.
32 DrZombi
 
гуру
19.06.18
13:36
(4) Пиши <...>.Номенклатура Как Номенклатура
или
<...>.Номенклатура Как Номенклатура1
или
<...>.Номенклатура Как Номенклатура2

и т.д. :)
33 Мандалай
 
19.06.18
13:37
У тебя в (11) правильная мысль - основной таблицей является справочник Номенклатура, и к ней цепляются все остальное левым соединением.
Зайди на вторую закладку ("Связи") и увидишь там все свои связи. Слева должна быть Номенклатура и рядом с ней должны стоять галочки во всех строках.
34 DrZombi
 
гуру
19.06.18
13:38
(29) Выбирай либо из справочника, либо из оборотов регистра
35 DrZombi
 
гуру
19.06.18
13:39
(33) В справочнике номенклатуре могут быть и элементы, которые ненужно подтягивать :)
36 Обфускация
 
19.06.18
14:26
(33)
У меня сейчас так и есть, в конструкторе в связях номенклатура 3 раза, слева, и галочка слева одна на левую связь. При этом у меня числовые поля отмечаются ресурсами в настройках СКД, чтобы таблица получалась с итогами.
Основная теорема систематики: Новые системы плодят новые проблемы.