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

1С:Предприятие :: 1С:Предприятие 8 общая

При обращении к регистру накопления ТоварыНаСкладахОстатки выдаёт только положительные зна

При обращении к регистру накопления ТоварыНаСкладахОстатки выдаёт только положительные зна
Я
   taimens
 
21.11.17 - 10:54
Доброго дня уважаемые форумчане. 1с 8.3 УТ 11.2 Необходимо было добавить колонку остатков в форме списка номенклатуры, остатки добавляет, но не могу понять почему при обращении к регистру накопления ТоварыНаСкладахОстатки выдаёт только положительные значения, остаётся только номенклатура у которой есть остаток, остальная недоступна.Текст запроса:
ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Ссылка,
    СпрНоменклатура.Код КАК Код,
    СпрНоменклатура.Наименование КАК Наименование,
    СпрНоменклатура.Артикул КАК Артикул,
    СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
    СпрНоменклатура.Родитель,
    ВЫБОР
        КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
            ТОГДА 4 + ВЫБОР
                    КОГДА СпрНоменклатура.ПометкаУдаления
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ + ВЫБОР
                    КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                        ТОГДА 0
                    ИНАЧЕ 2
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СпрНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК Ленинский,
    ЕСТЬNULL(ТоварыНаСкладахОстаткиДаниловская.ВНаличииОстаток, 0) КАК Даниловская,
    ЕСТЬNULL(ТоварыНаСкладахЛенинский30.ВНаличииОстаток, 0) КАК Ленинский30,
    ЦеныНоменклатурыСрезПоследних.Цена КАК РознUSD
ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстаткиДаниловская
        ПО (ТоварыНаСкладахОстаткиДаниловская.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахЛенинский30
        ПО (ТоварыНаСкладахЛенинский30.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
    НЕ СпрНоменклатура.ЭтоГруппа
    И ТоварыНаСкладахОстатки.Склад.Наименование = "1. Склад  (Ленинский)"
    И ТоварыНаСкладахОстаткиДаниловская.Склад.Наименование = "2, Склад (Даниловская)"
    И ТоварыНаСкладахЛенинский30.Склад.Наименование = "3. Розничный магазин Л-30"
    И ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Розничные USD"
{ГДЕ
    (СпрНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}


Предполагаю что-то с соединением таблиц, но не могу понять что. 
Намекните пожалуйста в чём проблема.
 
 
   Timon1405
 
1 - 21.11.17 - 11:00
(0) Нужно перенести условия из где в соединение примерно так
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахЛенинский30
        ПО (ТоварыНаСкладахЛенинский30.Номенклатура = СпрНоменклатура.Ссылка) 
И ТоварыНаСкладахЛенинский30.Склад.Наименование = "3. Розничный магазин Л-30" 

При вашем запросе левое соединение превращается во внутреннее
остальной ужс в запросе комментировать не буду
   НЕА123
 
2 - 21.11.17 - 11:05
(0)
что-то даже показывает при
   И ТоварыНаСкладахОстатки.Склад.Наименование = "1. Склад  (Ленинский)"
    И ТоварыНаСкладахОстаткиДаниловская.Склад.Наименование = "2, Склад (Даниловская)"
    И ТоварыНаСкладахЛенинский30.Склад.Наименование = "3. Розничный магазин Л-30" 

?
   taimens
 
3 - 21.11.17 - 11:12
Не кидайтесь особо тапками.Я не силён в этом. просто попытался разобраться сам на сколько это возможно. Запрос создавал конструктором, поэтому имею что имею.
Остатки показывает по трём складам, но только где есть остаток, нулевые не показывет.
   Buster007
 
4 - 21.11.17 - 11:26
(3) у нулевых, например,
   И ТоварыНаСкладахОстатки.Склад.Наименование = "1. Склад  (Ленинский)"
это условие не выполняется
   Михаил Козлов
 
5 - 21.11.17 - 11:28
(3) См. (1)
   aka AMIGO
 
6 - 21.11.17 - 11:31
   taimens
 
7 - 21.11.17 - 11:34
Timon1405 спасибо за наводку, разобрался где ошибка, не правильно задавал условия. Всё получилось, код поправил.
   taimens
 
8 - 21.11.17 - 12:53
В связи с добавлением остатков, почему пропала возможность заходить в карточку товара ?
   Timon1405
 
9 - 21.11.17 - 14:30
(8) скорее всего в динамическом списке слетела основная таблица
   taimens
 
10 - 21.11.17 - 15:45
Timon1405 второй раз выручаете меня, респект и уважение. Спасибо
 
 Рекламное место пустует

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