|
Что не так с запросом? | ☑ | ||
---|---|---|---|---|
0
Max Street
17.12.15
✎
15:38
|
Привет. Вот запрос
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТЗ.Номенклатура, | ТЗ.ДокументПоступления |ПОМЕСТИТЬ ВремТаб |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремТаб.Номенклатура, | ВремТаб.ДокументПоступления, | ISNULL(СерииНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)) КАК Серия |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры | ПО ВремТаб.Номенклатура = СерииНоменклатуры.Номенклатура | И ВремТаб.ДокументПоступления = ВЫРАЗИТЬ(СерииНоменклатуры.ДокументПоставки КАК Документ.ПоступлениеТоваровУслуг).Ссылка"; Запрос.УстановитьПараметр("ТЗ", ТЗ); В результате выполнения запроса серия пуста, хотя в справочнике содержатся нужные элементы. Что не так? |
|||
1
Cyberhawk
17.12.15
✎
15:40
|
Выразить не в тему, достаточно
И ВремТаб.ДокументПоступления = СерииНоменклатуры.ДокументПоставки |
|||
2
Cyberhawk
17.12.15
✎
15:40
|
А если уж хочется ограничить серии только из ПТУ, то второе условие добавить:
И СерииНоменклатуры.ДокументПоставки ССЫЛКА Документ.ПоступлениеТоваровУслуг |
|||
3
Max Street
17.12.15
✎
15:41
|
(1) уже пробовал, тот же результат
|
|||
4
Max Street
17.12.15
✎
15:41
|
(2) а есть разница?
|
|||
5
Лефмихалыч
17.12.15
✎
15:44
|
может
ПО ВремТаб.Номенклатура = СерииНоменклатуры.Владелец ? |
|||
6
palpetrovich
17.12.15
✎
15:46
|
а в Документе ПоступлениеТоваровУслуг Серии нет случайно?
|
|||
7
Max Street
17.12.15
✎
15:48
|
(5) нет, СерииНоменклатуры неподчиненный справочник
|
|||
8
dk
17.12.15
✎
15:50
|
а без условия на поставку выводит?
|
|||
9
Defender aka LINN
17.12.15
✎
15:52
|
(0) Значит, в справочнике нужных элементов не содержится. Мы серверу больше верим, чем тебе.
|
|||
10
palpetrovich
17.12.15
✎
15:52
|
(7) а табЧасти "Серии" тоже нет?
|
|||
11
palpetrovich
17.12.15
✎
15:53
|
(9) да лано, может там в "ТЗ.Номенклатура" - строка, вот и не соединяется ничего :)
|
|||
12
Max Street
17.12.15
✎
15:56
|
(6) В документе есть табличная часть "Товары", а в ней реквизит "Серия". Но доставать напрямую из документа не могу, т.к. номенклатуру загружаю из Excel. самый оптимальный способ сформировать ТЗ из номенклатуры и левым соединением к справочнику получить серию
|
|||
13
Max Street
17.12.15
✎
15:56
|
(11)
ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); |
|||
14
Max Street
17.12.15
✎
15:56
|
(8) без условия на что?
|
|||
15
dk
17.12.15
✎
15:57
|
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
| ПО ВремТаб.Номенклатура = СерииНоменклатуры.Номенклатура; без поставки |
|||
16
Max Street
17.12.15
✎
16:00
|
(15) так выходит, только данные будут дублироваться
|
|||
17
palpetrovich
17.12.15
✎
16:01
|
(12) фигня какая, изыините за непарламентское
если есть массивНоменклатуры загруженный из Excel - почему-бы не сделать запрос к табЧасти ПоступлениеТоваровУслуг с условием на этот массив? |
|||
18
Max Street
17.12.15
✎
16:04
|
(17) потому что из Excel я гружу не только номенклатуру
|
|||
19
dk
17.12.15
✎
16:05
|
(16) значит смотри что с поставкой не так
типы или значения |
|||
20
Max Street
17.12.15
✎
16:07
|
(19) и это проверял. типы совпадают, значения заполнены
|
|||
21
palpetrovich
17.12.15
✎
16:22
|
(20) а что в ТЗ.ДокументПоступления ?
|
|||
22
Max Street
17.12.15
✎
16:23
|
(21) ДокументСсылка.ПоступлениеТоваровУслуг, который выбирается на форме
|
|||
23
palpetrovich
17.12.15
✎
16:25
|
(22) упс, а зачем его в ТЗ пихать?
|
|||
24
Max Street
17.12.15
✎
16:26
|
(23) для соединения в запросе
|
|||
25
palpetrovich
17.12.15
✎
16:28
|
(24)
"ВЫБРАТЬ | ТЗ.Номенклатура ПОМЕСТИТЬ ВремТаб ИЗ &ТЗ КАК ТЗ |; |ВЫБРАТЬ | ВремТаб.Номенклатура | ISNULL(СерииНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)) КАК Серия |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры | ПО ВремТаб.Номенклатура = СерииНоменклатуры.Номенклатура | И СерииНоменклатуры.ДокументПоставки = &ДокументПоступленияНаФопме"; |
|||
26
Max Street
17.12.15
✎
16:31
|
даже так не работает:
"ВЫБРАТЬ | ТЗ.Номенклатура, | ТЗ.ДокументПоступления |ПОМЕСТИТЬ ВремТаб |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СерииНоменклатуры.Ссылка, | СерииНоменклатуры.Номенклатура |ПОМЕСТИТЬ Серии |ИЗ | Справочник.СерииНоменклатуры КАК СерииНоменклатуры |ГДЕ | СерииНоменклатуры.ДокументПоставки = &ДокументПоставки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремТаб.Номенклатура, | ВремТаб.ДокументПоступления, | ЕСТЬNULL(Серии.Ссылка, ЗНАЧЕНИЕ(Справочник.СерииНоменклатуры.ПустаяСсылка)) КАК Серия |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ Серии КАК Серии | ПО ВремТаб.Номенклатура = Серии.Номенклатура |
|||
27
Max Street
17.12.15
✎
16:31
|
(25) сейчас попробую твой вариант
|
|||
28
palpetrovich
17.12.15
✎
16:35
|
кста, при левом соединение, на ЕСТЬNULL проверять незачем
"ВЫБРАТЬ | ТЗ.Номенклатура ПОМЕСТИТЬ ВремТаб ИЗ &ТЗ КАК ТЗ |; |ВЫБРАТЬ | ВремТаб.Номенклатура | СерииНоменклатуры.Ссылка КАК Серия |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры | ПО ВремТаб.Номенклатура = СерииНоменклатуры.Номенклатура | И СерииНоменклатуры.ДокументПоставки = &ДокументПоступленияНаФопме"; |
|||
29
Max Street
17.12.15
✎
16:37
|
(25) тот же результат. ни так:
И СерииНоменклатуры.ДокументПоставки = &ДокументПоступления ни так И ВЫРАЗИТЬ(СерииНоменклатуры.ДокументПоставки КАК Документ.ПоступлениеТоваровУслуг).Ссылка = &ДокументПоступления не работает |
|||
30
Max Street
17.12.15
✎
16:38
|
(28) это еще почему? незачем проверять только при внутреннем соединении
|
|||
31
palpetrovich
17.12.15
✎
16:42
|
(30) потому как соединени по "=СерииНоменклатуры.Номенклатура" и если есть реквизит Номенклатура, то будет и ссылка, а если нет - зачем цеплять пустую ссылку?
|
|||
32
palpetrovich
17.12.15
✎
16:51
|
(29) в УТ в справочнике СерииНоменклатуры реквизита ДокументПоставки не нашел, проверить не могу :)
|
|||
33
Max Street
17.12.15
✎
16:57
|
(32) Спасибо за помощь, буду дальше искать :)
|
|||
34
palpetrovich
17.12.15
✎
17:19
|
(33) в моем случае, когда у дока ПоступлениеТоваровУслугТовары есть реквизит СерияНоменклатуры, код для получения желаемого в (0) выглядит так:
ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Номенклатура, СерииНоменклатуры.Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры ПО ПоступлениеТоваровУслугТовары.СерияНоменклатуры = СерииНоменклатуры.Ссылка И ПоступлениеТоваровУслугТовары.Номенклатура В (&СписНоменклатуры) ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка |
|||
35
palpetrovich
17.12.15
✎
17:20
|
+(34) впрочем, ступил, нафик эти соединения ваще? :)
|
|||
36
palpetrovich
17.12.15
✎
17:21
|
ВЫБРАТЬ
ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугТовары.СерияНоменклатуры ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка И ПоступлениеТоваровУслугТовары.Номенклатура В (&СписНоменклатуры) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |