1. user1004898 4 15.05.19 10:45 Сейчас в теме

Путое значение в регистре

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

Когда остаток любое число = 2, 1, 10, то выводится строка о товаре и об остатке.
А когда остаток пуст (реально пуст, без "0") вообще ничего не выводит?
чего так?
Ни NULL ни НЕОПРЕДЕЛЕНО ни "" не подходят чего-то..
Найденные решения
4. dhurricane 15.05.19 10:59 Сейчас в теме
Во-первых, необходимо исключить из секции "ГДЕ" условия по полям присоединяемой таблицы. У Вас оно повторяет условие соединение, поэтому можно просто удалить.
Во-вторых, поле остатка в секции "ВЫБРАТЬ" должно быть таким:
ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК Поле1
либо таким:
ВЫБОР
        КОГДА ТоварыОрганизацийОстатки.КоличествоОстаток ЕСТЬ NULL
            ТОГДА "0"
        ИНАЧЕ ТоварыОрганизацийОстатки.КоличествоОстаток
    КОНЕЦ КАК Поле1
7. Oldsad 15.05.19 11:05 Сейчас в теме
(3)
смотрю уже переделал запрос и по факту у тебя уже внутреннее соединение

для решения задачи тебе нужно присоединить к таблице номенклатура таблицу остатков
а было наоборот

в (4) говорят что было дублирование связи в секции ГДЕ, поэтому не заработало при изменении левого на правое соединение, каюсь просмотрел
Остальные ответы
Избранное Подписка Сортировка: Древо
2. Oldsad 15.05.19 10:50 Сейчас в теме
тебе но сделать правое соединение а не левое
3. user1004898 4 15.05.19 10:59 Сейчас в теме
(2)
по идее там вообще соединения ни к чему. я обращаюсь по параметру на указанный товар.
В реальности пробовал и Левое и Правое - без толку.
7. Oldsad 15.05.19 11:05 Сейчас в теме
(3)
смотрю уже переделал запрос и по факту у тебя уже внутреннее соединение

для решения задачи тебе нужно присоединить к таблице номенклатура таблицу остатков
а было наоборот

в (4) говорят что было дублирование связи в секции ГДЕ, поэтому не заработало при изменении левого на правое соединение, каюсь просмотрел
9. Oldsad 15.05.19 11:11 Сейчас в теме
(7)
соединение обязательно
10. user1004898 4 15.05.19 11:11 Сейчас в теме
(7)
там, что Внутреннее, что левое, что правое - результат один: если остаток "2" - оно показывает "2".
Если ничего нет, ни "0" - то вообще строк нет.
4. dhurricane 15.05.19 10:59 Сейчас в теме
Во-первых, необходимо исключить из секции "ГДЕ" условия по полям присоединяемой таблицы. У Вас оно повторяет условие соединение, поэтому можно просто удалить.
Во-вторых, поле остатка в секции "ВЫБРАТЬ" должно быть таким:
ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК Поле1
либо таким:
ВЫБОР
        КОГДА ТоварыОрганизацийОстатки.КоличествоОстаток ЕСТЬ NULL
            ТОГДА "0"
        ИНАЧЕ ТоварыОрганизацийОстатки.КоличествоОстаток
    КОНЕЦ КАК Поле1
5. user1004898 4 15.05.19 11:02 Сейчас в теме
(4)
КОГДА ТоварыОрганизацийОстатки.КоличествоОстаток ЕСТЬ NULL

а чем это отличается от моего ?
КОГДА ТоварыОрганизацийОстатки.КоличествоОстаток = NULL 
6. dhurricane 15.05.19 11:04 Сейчас в теме
(5) Тем, что даст не "Истина" или "Ложь" в результате, а "NULL".
8. user1004898 4 15.05.19 11:06 Сейчас в теме
(6)
я конечно попробовал ваш результат - все равно ничего...
11. user1004898 4 15.05.19 11:16 Сейчас в теме
Спасибо!
Однозначно, и соединение и условие ГДЕ мешало.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Самара
зарплата от 50 000 руб. до 100 000 руб.
По совместительству


Ведущий программист 1С
Сочи
зарплата от 82 500 руб. до 99 000 руб.
Полный день