|
Таблица значений в запросе, соединение | ☑ | ||
---|---|---|---|---|
0
Штурман
26.02.13
✎
09:44
|
Есть таблица значений, использую ее в запросе:
Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | ТЗРаб.Физлицо, | ТЗРаб.Сотрудник, | ТЗРаб.Подразделение, | ТЗРаб.Должность |ПОМЕСТИТЬ ВремТаб |ИЗ | &тзРаб КАК ТЗРаб |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремТаб.Физлицо, | ВремТаб.Сотрудник, | ВремТаб.Подразделение, | ВремТаб.Должность, | ДолжностиОрганизаций.Наименование КАК ДолжностьОрганизации |ИЗ | ВремТаб КАК ВремТаб | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДолжностиОрганизаций КАК ДолжностиОрганизаций | ПО ВремТаб.Должность = ДолжностиОрганизаций.Наименование"; Запрос.УстановитьПараметр("тзРаб", ТЗРаботники); РезультатЗапроса = Запрос.Выполнить(); тзт = Новый ТаблицаЗначений; тзт.Колонки.Добавить("Сотрудник"); тзт.Колонки.Добавить("ДолжностьОрганизации"); Пока Выборка.Следующий() цикл с = тзт.Добавить(); с.Сотрудник = Выборка.Сотрудник; с.ДолжностьОрганизации = Выборка.ДолжностьОрганизации; конеццикла; Подскажите, почему в результате выводятся только Сотрудники, а Должности не выводятся? Если же поставить правое соединение, то выводятся должности, а сотрудники не выводятся. Что не так? |
|||
1
Wobland
26.02.13
✎
09:46
|
>ВремТаб.Должность = ДолжностиОрганизаций.Наименование
а не ссылку ли со строкой сравниваешь? |
|||
2
Тролль главный
26.02.13
✎
09:46
|
потому что
ПО ВремТаб.Должность = ДолжностиОрганизаций.Наименование что слева и что справа? |
|||
3
Штурман
26.02.13
✎
09:47
|
ТЗ создавал вот так:
ОписаниеТиповФ = Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"); ОписаниеТиповС = Новый ОписаниеТипов("СправочникСсылка.СотрудникиОрганизаций"); ОписаниеТиповП = Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"); ОписаниеТиповД = Новый ОписаниеТипов("СправочникСсылка.ДолжностиОрганизаций"); ТЗРаботники = Новый ТаблицаЗначений; ТЗРаботники.Колонки.Добавить("Физлицо", ОписаниеТиповФ); ТЗРаботники.Колонки.Добавить("Сотрудник", ОписаниеТиповС); ТЗРаботники.Колонки.Добавить("Подразделение", ОписаниеТиповП); ТЗРаботники.Колонки.Добавить("Должность", ОписаниеТиповД); Пока Выборка.Следующий() цикл стр = ТЗРаботники.Добавить(); стр.Физлицо = Выборка.Физлицо; стр.Сотрудник = Выборка.Сотрудник; стр.Подразделение = Выборка.Подразделение; стр.Должность = Выборка.Должность; КонецЦикла; |
|||
4
Штурман
26.02.13
✎
09:48
|
(1) возможно ссылку со строкой
|
|||
5
Тролль главный
26.02.13
✎
09:48
|
(4) как ты думаешь они могут быть равны?
|
|||
6
Штурман
26.02.13
✎
09:49
|
(2) справа вроде строка, а слева ссылка на справочник, хотя при создании таблицы значений, было явно указано:
ОписаниеТиповД = Новый ОписаниеТипов("СправочникСсылка.ДолжностиОрганизаций"); ТЗРаботники.Колонки.Добавить("Должность", ОписаниеТиповД); |
|||
7
Штурман
26.02.13
✎
09:50
|
(5) ну я так же явно указал, что это не строка в (6), хотя в итоге вероятнее всего получилась строка
а как тогда соединение в запросе сделать? |
|||
8
Тролль главный
26.02.13
✎
09:51
|
(7) оно там вообще не нужно
|
|||
9
Cube
26.02.13
✎
09:52
|
ПО ВремТаб.Должность = ДолжностиОрганизаций
|
|||
10
Cube
26.02.13
✎
09:53
|
+(9) ПО ВремТаб.Должность = ДолжностиОрганизаций.Ссылка
|
|||
11
Тролль главный
26.02.13
✎
09:55
|
Запрос.Текст = "ВЫБРАТЬ
| ТЗРаб.Физлицо, | ТЗРаб.Сотрудник, | ТЗРаб.Подразделение, | ТЗРаб.Должность |ПОМЕСТИТЬ ВремТаб |ИЗ | &тзРаб КАК ТЗРаб |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремТаб.Физлицо, | ВремТаб.Сотрудник, | ВремТаб.Подразделение, | ВремТаб.Должность, | ВремТаб.Должность.Наименование КАК ДолжностьОрганизации |ИЗ | ВремТаб КАК ВремТаб"; |
|||
12
Штурман
26.02.13
✎
09:55
|
(8) что не нужно?
|
|||
13
Тролль главный
26.02.13
✎
09:55
|
(12) соединение, смотри (11)
|
|||
14
Штурман
26.02.13
✎
09:56
|
(13) соединение как раз нужно, потому что в справочнике Должности есть Данные
|
|||
15
Штурман
26.02.13
✎
09:57
|
а мне нужны ссылки на данные, например Код должности и т.д.
|
|||
16
Штурман
26.02.13
✎
10:00
|
(10) спасибо, это работает :)
|
|||
17
sapphire
26.02.13
✎
10:00
|
(3) Глупо.
|
|||
18
Штурман
26.02.13
✎
10:01
|
(17) что не так?
|
|||
19
sapphire
26.02.13
✎
10:02
|
(18) Результат выборки можно сразу поместить во временную таблицу.
|
|||
20
Тролль главный
26.02.13
✎
10:02
|
(15) неявное соединение в (11) рулит
|
|||
21
sapphire
26.02.13
✎
10:02
|
(18) А в (0) скорее всего
ПО ВремТаб.Должность = ДолжностиОрганизаций.Ссылка"; |
|||
22
Штурман
26.02.13
✎
10:03
|
(19) дело в точ, что у меня запрос почти на 500 строк, вот я его в ТЗ выгрузил, чтобы потом еще использовать
|
|||
23
sapphire
26.02.13
✎
10:03
|
(20) Конечно, ага. 2 раза, не меньше, а еще подпердывает, подсруливает и вообще.
|
|||
24
Тролль главный
26.02.13
✎
10:04
|
(22) 500 строк? и что? менеджер временных таблиц используй
|
|||
25
sapphire
26.02.13
✎
10:04
|
(22) Разбей на неколько подзапросов в чем беда?
|
|||
26
Тролль главный
26.02.13
✎
10:04
|
(23) а конкретно есть что сказать?
|
|||
27
sapphire
26.02.13
✎
10:04
|
(26) За использование неявных соединений прибивать надо сразу.
|
|||
28
Штурман
26.02.13
✎
10:04
|
(20) (23) ну и как, допустим код должности вывести при неявном соединении?
|
|||
29
Тролль главный
26.02.13
✎
10:05
|
(28) ВремТаб.Должность.Код
|
|||
30
sapphire
26.02.13
✎
10:05
|
(28) Используй явное соединение.
|
|||
31
Штурман
26.02.13
✎
10:07
|
запрос как в (11) выдает предупреждение:
Поле не найдено "ВремТаб.Наименование" ВремТаб.<<?>>Наименование |
|||
32
Тролль главный
26.02.13
✎
10:07
|
(30) чем оно лучше?
|
|||
33
Штурман
26.02.13
✎
10:07
|
(29) не работает вообще
|
|||
34
Тролль главный
26.02.13
✎
10:14
|
ВЫРАЗИТЬ(ТЗ.Номенклатура КАК Справочник.Номенклатура).Код КАК Код
|
|||
35
Штурман
26.02.13
✎
10:16
|
(34) посмотрим :)
|
|||
36
Aprobator
26.02.13
✎
10:18
|
(0) прелесть, ради выгрузки 2 колонок из одной тз в другую юзаем запрос.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |