Имя: Пароль:
1C
 
Вывод пустого значения в характеристику номенклатуры в запросе
0 A1nurich
 
04.12.23
14:26
В запросе соединил две таблицы по номенклатуре и по характеристики. Может быть такое, что характеристика бывает пустой и из-за связи не выводит номенклатуру, где характеристика пустая. Как можно это обойти ?
8.3.22 УТ 11
Вот запрос:

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

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

СГРУППИРОВАТЬ ПО
    ДниНаличияНаОстатках.Характеристика,
    ДниНаличияНаОстатках.Номенклатура,
    ДниНаличияНаОстатках.Период


Пытался вывести так "ВЫБОР
    КОГДА ДниНаличияНаОстатках.Номенклатура.ВидНоменклатуры.ИспользоватьХарактеристики = ИСТИНА  
    ТОГДА ДниНаличияНаОстатках.Характеристика
    ИНАЧЕ "Null"
    КОНЕЦ КАК Характеристика", но не получилось
1 A1nurich
 
04.12.23
14:45
Проблему решил тем, что просто убрал "Ссылка" в СвободныеОстаткиОстаткиИОбороты.Характеристика.Ссылка КАК Характеристика
2 Asmody
 
04.12.23
14:50
(0) если у номенклатуры не используется учет по характеристикам, в измерении Характеристика регистра будет пустая ссылка. Нафига эти танцы с ВЫБРАТЬ NULL и всё такое?
3 Asmody
 
04.12.23
14:51
(1) За такое даже франчи с собеседований выгоняют
4 A1nurich
 
04.12.23
16:46
(2) Не знал, как решить проблему, поэтому и придумывал, как можно обойти, в итоге нашел проблему и решил.
5 A1nurich
 
04.12.23
16:47
(3) Ты о чем ?
6 Asmody
 
04.12.23
18:46
(5) про такое использование .Ссылка в запросе