Вход | Регистрация


1С:Предприятие ::

Метки: 

Помогите доделать отчет на СКД

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

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

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

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

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

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

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

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


ГДЕ
    ОтчетКассовойСменыТовары.Ссылка.Проведен = ИСТИНА
    И УстановкаЦенНоменклатурыПоставщикаТовары.Ссылка.Проведен = ИСТИНА
   dvva
 
13 - 19.06.18 - 09:17
но зачем тебя вся помой ка которая хранится в спр. номенклатура непонятно, или ты еще не осознал что там помойка
   Обфускация
 
14 - 19.06.18 - 09:28
(13)
Юзеры требуют
   SleepyHead
 
15 - 19.06.18 - 09:42
(14) А зачем юзерам эта информация?:
   Обфускация
 
16 - 19.06.18 - 09:47
(15)
Смотрят на товар, который завели, но почему-то не закупают и не продают
   SleepyHead
 
17 - 19.06.18 - 09:50
(16) Почему бы не сделать для этого отдельный отчет? Будет проще.
   Обфускация
 
18 - 19.06.18 - 11:53
Юзеры требуют чтобы все в одном было. Что еще можно сделать?
   catena
 
19 - 19.06.18 - 12:03
(18)А чего еще не хватает?
   Обфускация
 
20 - 19.06.18 - 12:14
(19)
Номенклатура выходит только та, что на остатках. Что нет на остатках не выходит, а надо чтобы выходило.
   catena
 
21 - 19.06.18 - 12:30
(20)Рекомендации из (12) применены?
   Обфускация
 
22 - 19.06.18 - 12:31
(21)
Да, но они заведомо не на что не повлияли бы
   catena
 
23 - 19.06.18 - 12:32
(22)Показывай тогда
   Sergz66
 
24 - 19.06.18 - 12:36
Написали же в (10) откуда теперь номенклатуру брать надо... Не ОстаткиНоменклатурыОстатки.Номенклатура.Наименование КАК Номенклатура, а Ном.Номенклатура.Наименование КАК Номенклатура,
   MiamiVice
 
25 - 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,
    Ном.Код,
    Ном.Родитель
ИЗ
    РегистрНакопления.ОстаткиНоменклатуры.Остатки(&период, ) КАК ОстаткиНоменклатурыОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.УстановкаЦенНоменклатурыПоставщика.Товары КАК УстановкаЦенНоменклатурыПоставщикаТовары
        ПО ОстаткиНоменклатурыОстатки.Номенклатура = УстановкаЦенНоменклатурыПоставщикаТовары.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетКассовойСмены.Товары КАК ОтчетКассовойСменыТовары
        ПО ОстаткиНоменклатурыОстатки.Номенклатура = ОтчетКассовойСменыТовары.Номенклатура
            И ОстаткиНоменклатурыОстатки.Склад = ОтчетКассовойСменыТовары.Ссылка.Склад
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Ном
        ПО (Ном.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура)

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



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует