|
Запрос -получить значение "по умолчанию" | ☑ | ||
---|---|---|---|---|
0
Dirk Diggler
14.07.11
✎
07:35
|
В доке УТ "Заказ поставщику" есть возможность распечатать его по данным поставщика, с его артикулами и т.п.
Реализуется это следующей строкой: ТекстИсточникАртикула = " | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура | И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры | И НоменклатураКонтрагентов.Контрагент = ЗаказПоставщику.Поставщик"; Записей может быть несколько, скажем, в зависимости от характеристики номенклатуры. Допустим, в доке указана позиция номенклатуры Х с характеристикой А, а в регистре сведений такой записи нет, есть запись только для самой номенклатуры Х, без характеристики. Как мне поправить запрос так, чтобы всех характеристик, для которых нет записей в РС "Номенклатура контрагентов", возвращались значения из строки с пустой характеристикой? |
|||
1
Dirk Diggler
14.07.11
✎
07:37
|
очевидно, что
|И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры ИЛИ НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = Значение(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) не подойдет - появится дополнительная строка в рез-те запроса.... больше пока в голову не идет ничего. |
|||
2
Extro
14.07.11
✎
07:40
|
ЕстьNULL(НоменклатураКонтрагентов.ХарактеристикаНоменклатуры, Значение(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
|
|||
3
Extro
14.07.11
✎
07:41
|
еще одна ")" в конце
|
|||
4
Dirk Diggler
14.07.11
✎
07:44
|
Работает. Спасибо!
|
|||
5
Dirk Diggler
14.07.11
✎
07:47
|
Но, правда, в такой модификации:
ТекстИсточникАртикула = " | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура | И ЕстьNULL(НоменклатураКонтрагентов.ХарактеристикаНоменклатуры,ЗаказПоставщику.ХарактеристикаНоменклатуры) = ЗаказПоставщику.ХарактеристикаНоменклатуры | И НоменклатураКонтрагентов.Контрагент = ЗаказПоставщику.Поставщик"; |
|||
6
Dirk Diggler
14.07.11
✎
07:52
|
а, не, не работает...
|
|||
7
Dirk Diggler
14.07.11
✎
07:55
|
но мысль понятна, ща разовьем
|
|||
8
Extro
14.07.11
✎
08:34
|
Не, кажись непонял
подсказываю: Выбрать ЗаказПоставщику.Номенклатура, ЕстьNULL(НоменклатураКонтрагентов.ХарактеристикаНоменклатуры,ЗаказПоставщику.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатуры ИЗ Документ.ЗаказПоставщику.Товары ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура |
|||
9
Dirk Diggler
14.07.11
✎
09:20
|
Да опять не то.... Тут, похоже, вложенный запрос со сверткой придется городить...
|
|||
10
Extro
14.07.11
✎
09:30
|
текст запроса напиши
|
|||
11
Dirk Diggler
14.07.11
✎
11:12
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Поставщик, | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + " | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | 2 КАК НомерТЧ, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | NULL КАК Серия" + ТекстПоляАртикула + " |ИЗ | ( | ВЫБРАТЬ | ЗаказПоставщику.Поставщик, | ЗаказПоставщику.Номенклатура, | ЗаказПоставщику.ЕдиницаИзмерения, | ЗаказПоставщику.Цена КАК Цена, | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки, | СУММА(ЗаказПоставщику.Количество) КАК Количество, | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма, | СУММА(ЗаказПоставщику.СуммаНДС ) КАК СуммаНДС, | ЗаказПоставщику.ХарактеристикаНоменклатуры КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + " | ИЗ | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщику | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура | И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры | И НоменклатураКонтрагентов.ЕдиницаИзмерения = ЗаказПоставщику.ЕдиницаИзмерения | И НоменклатураКонтрагентов.Контрагент = ЗаказПоставщику.Поставщик) | | ГДЕ | ЗаказПоставщику.Ссылка = &ТекущийДокумент | ) КАК ВложенныйЗапрос |
|||
12
Extro
14.07.11
✎
11:31
|
|ВЫБРАТЬ
| ВложенныйЗапрос.Поставщик, | ВложенныйЗапрос.Номенклатура," + ТекстПоляТовараДляТоваров + " | ВложенныйЗапрос.Номенклатура." + ТекстКодАртикул + " КАК КодАртикул, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | 2 КАК НомерТЧ, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | NULL КАК Серия" + ТекстПоляАртикула + " |ИЗ | ( | ВЫБРАТЬ | ЗаказПоставщику.Поставщик, | ЗаказПоставщику.Номенклатура, | ЗаказПоставщику.ЕдиницаИзмерения, | ЗаказПоставщику.Цена КАК Цена, | МИНИМУМ(ЗаказПоставщику.НомерСтроки) КАК НомерСтроки, | СУММА(ЗаказПоставщику.Количество) КАК Количество, | СУММА(ЗаказПоставщику.Сумма ) КАК Сумма, | СУММА(ЗаказПоставщику.СуммаНДС ) КАК СуммаНДС, | ЕстьNULL(НоменклатураКонтрагентов.ХарактеристикаНоменклатуры, Значение(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика" + ТекстВыборкиАртикула + ТекстВыборкиНоменклатуры + " | ИЗ | Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщику | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура | И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры | И НоменклатураКонтрагентов.ЕдиницаИзмерения = ЗаказПоставщику.ЕдиницаИзмерения | И НоменклатураКонтрагентов.Контрагент = ЗаказПоставщику.Поставщик) | | ГДЕ | ЗаказПоставщику.Ссылка = &ТекущийДокумент | ) КАК ВложенныйЗапрос ы? |
|||
13
Dirk Diggler
14.07.11
✎
11:36
|
?? Вообще не похоже
|
|||
14
Dirk Diggler
14.07.11
✎
11:40
|
суть вопроса. Вот есть соединение:
| ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов | ПО НоменклатураКонтрагентов.Номенклатура = ЗаказПоставщику.Номенклатура | И НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры | И НоменклатураКонтрагентов.ЕдиницаИзмерения = ЗаказПоставщику.ЕдиницаИзмерения | И НоменклатураКонтрагентов.Контрагент = ЗаказПоставщику.Поставщик) Надо, если не исполняется равенство, НоменклатураКонтрагентов.ХарактеристикаНоменклатуры = ЗаказПоставщику.ХарактеристикаНоменклатуры, присоединить другую строчку, для которой совпадает номенклатура, а НоменклатураКонтрагентов.ХарактеристикаНоменклатуры - пустая ссылка. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |