Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 дек 2023, 23:58

1C 8.3. Как вывести в запросе нулевой остаток?

Автор gulnyr, 23 июн 2023, 09:55

0 Пользователей и 1 гость просматривают эту тему.

gulnyr

Пробовал такие варианты:

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

2)
Выбрать ЕСТЬNULL(ОстатокТоваровКомпании.КоличествоОстаток,999) Как Остаток, ОстатокТоваровКомпании.Номенклатура
Из РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстатокТоваровКомпании
ГДЕ ОстатокТоваровКомпании.Номенклатура.Код=&Код

3)
Выбрать ЕСТЬNULL(ОстатокТоваровКомпании.КоличествоОстаток,0.00) Как Остаток, ОстатокТоваровКомпании.Номенклатура
Из РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстатокТоваровКомпании
ГДЕ ОстатокТоваровКомпании.Номенклатура.Код=&Код

Но что-то все равно выводит. Как можно вывести номенклатуру с нулевым остатком?

Максим75

gulnyr, ЕСТЬNULL необходимо использовать при соединении с другой таблицей, а при прямой выборке зачем оно надо?
должно и так выводить, перечень товаров с остатками, даже с нулевыми

Максим75

gulnyr, как вариант - с кодом проблема.
вот не понимаю, почему нельзя на товар условие наложить, почему то на наименование, то на код.
чем сама ссылка не кошерно то?

да и хорошим тоном является накладывание условий сразу в виртуальной таблице, а не потом в запросе.

LexaK

Максим75, так человек вообще не понимает что такое Ссылка и вообще зачем она! отсюда все это г..творчество  :(
а остатки (из вт.Остатки) если нулевые то не выводятся!
если помогло нажмите: Спасибо!

gulnyr

Максим75, написал такой вариант:

ВЫБРАТЬ
ОстатокТоваровКомпании.КоличествоОстаток КАК Остаток,
ОстатокТоваровКомпании.Номенклатура
ИЗ
РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Номенклатура.Ссылка = &Номенклатура) КАК ОстатокТоваровКомпании

Но все равно выводятся только те номенклатуры, у которых остатки отличны от нуля. Что еще можно сделать?

Максим75

gulnyr, вот честно не знал, что не выводятся из виртуальной таблицы нулевые остатки, но это и логично.

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

Afinogen

 B) вы делаете запрос к регистру остатков, если остаток нудлевой то в нем ничего не будет, вам надо делать левое соединение со справочником

ВЫБРАТЬ
    СпрНом.Ссылка КАК Номенклоатура
    ЕСТЬNULL(ОстатокТоваровКомпании.КоличествоОстаток,0) КАК Остаток
   
ИЗ
    Справочник.Номенклатура КАК СпрНом
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Номенклатура.Ссылка = &Номенклатура) КАК ОстатокТоваровКомпании

ПО
    СпрНом.Ссылка = ОстатокТоваровКомпании.Номенклтаура
ГДЕ
   ЕСТЬNULL(ОстатокТоваровКомпании.КоличествоОстаток,0) = 0

Afinogen

 B) ну или второй вариант делать запрос не к регистру остатков а к регистру оборотов,в котором получать приход  и рапсход  и затем минусовать их, если =0 то такие товары выводить

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск