Здравствуйте, делаю отчет в котором выводятся данные о том, сколько компьютеров можно произвести из материалов, имеющихся на складах. При этом, если нет возможности произвести компьютер, то не должно выводиться ничего. К сожалению получается не совсем то, что нужно. Вот мой код:

```1c
    ВЫБРАТЬ
    ОстаткиМатериаловОстатки.Склад КАК Склад,
    ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Количество КАК Количество,
    ОстаткиМатериаловОстатки.КоличествоОстаток / КомпутерыКомплектация.Количество КАК МожноСобрать,
    Компутеры.Наименование КАК Наименование
    ПОМЕСТИТЬ вт_собрано
    ИЗ
    Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ПО КомпутерыКомплектация.Комплектующая = ОстаткиМатериаловОстатки.Материал
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Компутеры КАК Компутеры
    ПО КомпутерыКомплектация.Ссылка = Компутеры.Ссылка
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_собрано.Склад КАК Склад,
    МИНИМУМ(вт_собрано.МожноСобрать) КАК МожноСобрать,
    вт_собрано.Наименование КАК Наименование
    ПОМЕСТИТЬ вот
    ИЗ
    вт_собрано КАК вт_собрано

    СГРУППИРОВАТЬ ПО
    вт_собрано.Наименование,
    вт_собрано.Склад
```

и 2 скрина, показывающие, что он выводит в консоль запросов. HDD относится к материалам Игрового Пк. Этого материала нет на складах и отчет не должен выводить эти строчки или хотя бы выводить нули. Прошу помочь разобраться в том какие связи нужно провести, чтобы связать компьютер с конкретными комплектующими(они хранятся в справочнике компьютеры в табличных частях элементов этого справочника). Версия 1с 8.3 13 1809 Прилепил базу, буду очень благодарен, если посмотрите. Заранее спасибо!
---
```1c
    ВЫБРАТЬ
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Ссылка КАК Компьютер,
    КомпутерыКомплектация.Количество КАК Количество,
    ОстаткиМатериаловОстатки.Склад КАК Склад
    ПОМЕСТИТЬ вт_сборка
    ИЗ
    Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация,
    РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_сборка.Компьютер КАК Компьютер,
    вт_сборка.Склад КАК Склад,
    МИНИМУМ(ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / вт_сборка.Количество - 0.5 КАК ЧИСЛО(15, 0))
    КОНЕЦ) КАК Количество
    ИЗ
    вт_сборка КАК вт_сборка
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ПО вт_сборка.Комплектующая = ОстаткиМатериаловОстатки.Материал
    И вт_сборка.Склад = ОстаткиМатериаловОстатки.Склад

    СГРУППИРОВАТЬ ПО
    вт_сборка.Компьютер,
    вт_сборка.Склад

    ИМЕЮЩИЕ
    МИНИМУМ(ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / вт_сборка.Количество - 0.5 КАК ЧИСЛО(15, 0))
    КОНЕЦ) > 0
```
---
как-то сяк

```1c
    ВЫБРАТЬ
    ОстаткиМатериаловОстатки.Склад КАК Склад,
    ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Количество КАК Количество,
    ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / КомпутерыКомплектация.Количество > 1
    ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / КомпутерыКомплектация.Количество - 0.5 КАК ЧИСЛО(10, 0))
    ИНАЧЕ 0
    КОНЕЦ КАК МожноСобрать,
    КомпутерыКомплектация.Ссылка КАК Наименование
    ПОМЕСТИТЬ вт_собрано

    ИЗ
    Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ПО КомпутерыКомплектация.Комплектующая = ОстаткиМатериаловОстатки.Материал
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_собрано.Наименование КАК Наименование,
    вт_собрано.Склад КАК Склад,
    МИНИМУМ(вт_собрано.МожноСобрать) КАК ПолныхПК
    ПОМЕСТИТЬ ВТ_ПолныхСборов
    ИЗ
    вт_собрано КАК вт_собрано

    СГРУППИРОВАТЬ ПО
    вт_собрано.Наименование,
    вт_собрано.Склад
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ПолныхСборов.Наименование КАК Наименование,
    ВТ_ПолныхСборов.Склад КАК Склад,
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Количество * ВТ_ПолныхСборов.ПолныхПК КАК Количество,
    ВТ_ПолныхСборов.ПолныхПК КАК ПолныхПК
    ИЗ
    ВТ_ПолныхСборов КАК ВТ_ПолныхСборов,
    КомпутерыКомплектация КАК КомпутерыКомплектация
```
---
Все как у меня в первых 2 таблицах, только дроби стали назад округляться, но на третьей совсем не то, что нужно
---
В Моем запросе нет "Поле1"
---
Я забыл соединения написать

 ВТ_ПолныхСборов КАК ВТ_ПолныхСборов
  ЛЕВОЕ СОЕДИНЕНИЕ КомпутерыКомплектация КАК КомпутерыКомплектация
  ПО (ВТ_ПолныхСборов.Наименование = КомпутерыКомплектация.Ссылка)
---
http://prntscr.com/p5518a - остатки и комплектующие

http://prntscr.com/p551i0 - то что получится
---
Ой теперь совсем ерунда какая-то, уже в 1 части запроса почему то табличку никакую не выдает

```1c
    ВЫБРАТЬ
    ОстаткиМатериаловОстатки.Склад КАК Склад,
    ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Количество КАК Количество,
    ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / КомпутерыКомплектация.Количество > 1
    ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / КомпутерыКомплектация.Количество - 0.5 КАК ЧИСЛО(10, 0))
    ИНАЧЕ 0
    КОНЕЦ КАК МожноСобрать,
    КомпутерыКомплектация.Ссылка КАК Наименование
    ПОМЕСТИТЬ вт_собрано
    ИЗ
    Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ПО КомпутерыКомплектация.Комплектующая = ОстаткиМатериаловОстатки.Материал
    ;
```
---
А все понял
---
аааа нет все равно ерунда какая то(

```1c
    ВЫБРАТЬ
    ОстаткиМатериаловОстатки.Склад КАК Склад,
    ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Количество КАК Количество,
    ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / КомпутерыКомплектация.Количество > 1
    ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / КомпутерыКомплектация.Количество - 0.5 КАК ЧИСЛО(10, 0))
    ИНАЧЕ 0
    КОНЕЦ КАК МожноСобрать,
    КомпутерыКомплектация.Ссылка КАК Наименование
    ПОМЕСТИТЬ вт_собрано
    ИЗ
    Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ПО КомпутерыКомплектация.Комплектующая = ОстаткиМатериаловОстатки.Материал
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_собрано.Наименование КАК Наименование,
    вт_собрано.Склад КАК Склад,
    МИНИМУМ(вт_собрано.МожноСобрать) КАК ПолныхПК
    ПОМЕСТИТЬ ВТ_ПолныхСборов
    ИЗ
    вт_собрано КАК вт_собрано

    СГРУППИРОВАТЬ ПО
    вт_собрано.Наименование,
    вт_собрано.Склад
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_ПолныхСборов.Наименование КАК Наименование,
    ВТ_ПолныхСборов.Склад КАК Склад,
    ВТ_ПолныхСборов.ПолныхПК КАК ПолныхПК,
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Количество * ВТ_ПолныхСборов.ПолныхПК КАК Количество
    ИЗ
    ВТ_ПолныхСборов КАК ВТ_ПолныхСборов
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация
    ПО ВТ_ПолныхСборов.Наименование = КомпутерыКомплектация.Ссылка
```
---
Потому что остатка нет в принципе - но это не 0 а NULL скорее всего , а 2 большие разницы!
---
Достаточно исправить 1 строчку в вашем тексте

ВЫБРАТЬ
ОстаткиМатериаловОстатки.Склад КАК Склад,
ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
КомпутерыКомплектация.Комплектующая КАК Комплектующая,
КомпутерыКомплектация.Количество КАК Количество,
ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток,0) / КомпутерыКомплектация.Количество КАК МожноСобрать,
Компутеры.Наименование КАК Наименование
ПОМЕСТИТЬ вт_собрано
ИЗ
Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
ПО КомпутерыКомплектация.Комплектующая = ОстаткиМатериаловОстатки.Материал
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Компутеры КАК Компутеры
ПО КомпутерыКомплектация.Ссылка = Компутеры.Ссылка
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
вт_собрано.Склад КАК Склад,
МИНИМУМ(вт_собрано.МожноСобрать) КАК МожноСобрать,
вт_собрано.Наименование КАК Наименование
ПОМЕСТИТЬ вот
ИЗ
вт_собрано КАК вт_собрано

СГРУППИРОВАТЬ ПО
вт_собрано.Наименование,
вт_собрано.Склад
---
хм

Если планок оперативки 3, а для компутера нужно 2, то сколько собрать можно компутеров? 1,5 ?? )))
---
Добавил строчку и вообще перестало выводить(
---
```1c
    ВЫБРАТЬ
    КомпутерыКомплектация.Комплектующая КАК Комплектующая,
    КомпутерыКомплектация.Ссылка КАК Компьютер,
    КомпутерыКомплектация.Количество КАК Количество,
    ОстаткиМатериаловОстатки.Склад КАК Склад
    ПОМЕСТИТЬ вт_сборка
    ИЗ
    Справочник.Компутеры.Комплектация КАК КомпутерыКомплектация,
    РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    вт_сборка.Компьютер КАК Компьютер,
    вт_сборка.Склад КАК Склад,
    МИНИМУМ(ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / вт_сборка.Количество - 0.5 КАК ЧИСЛО(15, 0))
    КОНЕЦ) КАК Количество
    ИЗ
    вт_сборка КАК вт_сборка
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки
    ПО вт_сборка.Комплектующая = ОстаткиМатериаловОстатки.Материал
    И вт_сборка.Склад = ОстаткиМатериаловОстатки.Склад

    СГРУППИРОВАТЬ ПО
    вт_сборка.Компьютер,
    вт_сборка.Склад

    ИМЕЮЩИЕ
    МИНИМУМ(ВЫБОР
    КОГДА ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) = 0
    ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) / вт_сборка.Количество - 0.5 КАК ЧИСЛО(15, 0))
    КОНЕЦ) > 0
```