Имя: Пароль:
1C
1С v8
Ошибка в запросе. Соединения
,
0 MAPATNK2
 
naïve
19.04.21
15:11
Всем доброго дня. УТ 11.4.
Делаю запрос в конструкторе.
1) При сохранении текущего запроса, лезет ошибка "Неоднозначое поле "Номенклатура.ВидНоменклатуры В(&МассивВидов)"". Но если я удаляю из выборки регистр штрих кодов - ошибка исчезает.  
2) При попытке добавить соединение Штрих кода с характеристикой лезет ошибка и говорит, что это соединение противоречит второму (Где идет соединение с номенклатурой). Характеристики может и не быть, поэтому соединение с номенклатурой нужно.

ВЫБРАТЬ
    &ИмяОрганизации КАК ИмяОрганизации,
    &ИННОрганизации КАК ИННОрганизации,
    ВЫБОР
        КОГДА ХарактеристикиНоменклатуры.Ссылка ЕСТЬ NULL
            ТОГДА Номенклатура.Наименование
        ИНАЧЕ Номенклатура.Наименование + " " + ХарактеристикиНоменклатуры.Наименование
    КОНЕЦ КАК Наименование,
    ВЫБОР
        КОГДА Номенклатура.ВидНоменклатуры.Наименование = "Наборы и единичные позиции парфюмерии"
            ТОГДА ""
        ИНАЧЕ 3303
    КОНЕЦ КАК КодТовараОбрез,
    ВЫБОР
        КОГДА ВЫБОР
                КОГДА ХарактеристикиНоменклатуры.Ссылка ЕСТЬ NULL
                    ТОГДА Номенклатура.Наименование
                ИНАЧЕ Номенклатура.Наименование + " " + ХарактеристикиНоменклатуры.Наименование
            КОНЕЦ ПОДОБНО "%духи%"
            ТОГДА 3303001000
        ИНАЧЕ ВЫБОР
                КОГДА Номенклатура.ВидНоменклатуры.Наименование = "Наборы и единичные позиции парфюмерии"
                    ТОГДА ""
                ИНАЧЕ 3303009000
            КОНЕЦ
    КОНЕЦ КАК КодТовара
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        ПО Номенклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО ШтрихкодыНоменклатуры.Номенклатура = Номенклатура.Ссылка
ГДЕ
    Номенклатура.ВидНоменклатуры В(&МассивВидов)
1 acht
 
19.04.21
15:17
Измени псевдоним "Номенклатура" на "СправочникНоменклатура". Подумай, почему это мешает.
2 hhhh
 
19.04.21
15:28
(0) ну вот же

    Справочник.Номенклатура КАК Номенклатура

зачем таблицу назвал Номенклатура? И ежу понятно, что там уже есть Номенклатура.
3 MAPATNK2
 
naïve
19.04.21
15:32
(1) (2) Справочник.Номенклатура КАК Номенклатура я не называл. Он стандартно так называется.
4 программистище
 
19.04.21
15:33
(2) так конструктор автоматом так пихает, в 1с не удосужились делать префикс наименованиям таблиц в запросе
5 программистище
 
19.04.21
15:34
(3) замени КАК Номенклатура на КАК СправочникНоменклатура
и все будет работать
6 MAPATNK2
 
naïve
19.04.21
15:37
(5) (2) (1) Спасибо, заменил, работает. Но туго доходит суть ошибки.
7 1Сергей
 
19.04.21
15:42
(6) для интерпретатора Номенклатура - это и Таблица и Реквизит одновременно. Он путается
8 MAPATNK2
 
naïve
19.04.21
15:43
(7) Спасибо, понял
9 MAPATNK2
 
naïve
19.04.21
15:45
А характристику как вставить в условие запроса?
10 MAPATNK2
 
naïve
19.04.21
15:45
Не могу в связь добавить характристику с реигстром
11 1Сергей
 
19.04.21
15:47
(10) у тебя регистр связан со справочником, а не с характеристикой

//Вместо
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        ПО Номенклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО ШтрихкодыНоменклатуры.Номенклатура = Номенклатура.Ссылка

//Пиши
ИЗ
    Справочник.Номенклатура КАК Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
            ПО ШтрихкодыНоменклатуры.Номенклатура = Номенклатура.Ссылка
        ПО Номенклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец
12 MAPATNK2
 
naïve
19.04.21
15:49
(11) но характеритики может и не быть у номенклатуры
13 1Сергей
 
19.04.21
15:50
(12) Тогда делай связь
Справочник
    Регистр
        Характеристика

или хз какая тебе нужна логика тогда
14 MAPATNK2
 
naïve
19.04.21
15:57
Какая логика? Есть справочник номенклатура и справочник характеристика. Есть регистр Штрих кодов. Дак вот я хочу связать реигстр штрих кодов и с номенклатурой и с характеритсикой. Чтобы он мне выдавал штрих код по номекналутре и характеристике, а если характеристики нет, то только по Номенклатуре.
15 1Сергей
 
19.04.21
16:15
я бы временную таблицу использовал, или вложенный запрос
16 MAPATNK2
 
naïve
19.04.21
16:19
(15) та же ошибка лезет
17 MAPATNK2
 
naïve
19.04.21
16:21
(15) (15) Попробовать 2 вложенных запроса. Первый со связью с Характеристикой, 2-ой со связью с Номенклатурой. Потом уже Выбором вытаскивать тот или инойштрих код с проверкой на Характеристика Eсть NUll
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой