![]() |
|
Соединение таблиц с регистром сведений | ☑ | ||
---|---|---|---|---|
0
dimonram1978
30.09.13
✎
11:23
|
День добрый.
Может я что то не понимаю, но например есть две таблицы: Спр.Номенклатура Артикул Товар 001 Балалайка 002 Гусли 003 Арфа РС.Цены Номенклатура Цена Балалайка 150 Гусли Арфа 200 Хочу выбрать в запросе всю номенклатуру и соединить с регистром сведений, чтобы вывелась вся номенклатура и цены, и если цены нет, то Null. Запрос: ВЫБРАТЬ Номенклатура1.Артикул, Номенклатура1.Ссылка, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Поле1 ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО (Номенклатура1.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура) В итоге получаю в результате только те товары на которые цены есть, если цена не задана, то в результате такой товар не отображается. В чем проблема? Если соединять с регистром накопления левым соединением результат всегда нормальный... |
|||
1
Галахад
гуру
30.09.13
✎
11:28
|
Откуда уверенность, что не работает?
|
|||
2
Crush
30.09.13
✎
11:53
|
(0) Тут никто не поймет. Запрос правильный.
Есть что то еще.. Либо запрос не целиком выложил, либо - это источник данных для скд, а там отбор. Выполни свой запрос в консоли и всё должно работать |
|||
3
dimonram1978
30.09.13
✎
12:10
|
Да, я забыла написать, что идет еще отбор по типу цен:
ВЫБРАТЬ Номенклатура1.Артикул, Номенклатура1.Ссылка, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Поле1 ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО (Номенклатура1.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура) ГДЕ НЕ Номенклатура1.ЭтоГруппа И НЕ Номенклатура1.ПометкаУдаления И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен Без этого отбора запрос таки выдает все цены, а том числе и пустые. Но у некоторых товаров может быть 2 и 3 и 4 типа цен. А я хочу получить только одного типа цены и нули, если таких цен у товаров нет. |
|||
4
Sammo
30.09.13
✎
12:15
|
И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
Приводит к тому, что соединение становится внутренним. Классика. Вынести в ПО |
|||
5
Галахад
гуру
30.09.13
✎
12:15
|
Вот тут ошибка:
И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен |
|||
6
dimonram1978
30.09.13
✎
12:25
|
Каким образом можно получить такую таблицу с выбранным типом цен и нулями, когда цен нет?
|
|||
7
Ненавижу 1С
гуру
30.09.13
✎
12:27
|
ВЫБРАТЬ
Номенклатура1.Артикул, Номенклатура1.Ссылка, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Поле1 ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(,ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних ПО (Номенклатура1.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура) ГДЕ НЕ Номенклатура1.ЭтоГруппа И НЕ Номенклатура1.ПометкаУдаления |
|||
8
dimonram1978
30.09.13
✎
12:36
|
Да, сорри. Я тормоз )) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |