|
v7: Как задать алиас для ДокументСтроки, вид которого определяется в самом запросе? |
☑ |
0
Zhuravlik
09.10.12
✎
10:15
|
... и потом выбрать все значения атрибутов для текущей строки.
Вот есть такой код:
Элем = "";
спрАвтомобили = СоздатьОбъект("Справочник.Автомобили");
спрАвтомобили.ВыбратьЭлементы();
Пока спрАвтомобили.ПолучитьЭлемент() = 1 Цикл
Элем = спрАвтомобили.ТекущийЭлемент();
Прервать;
КонецЦикла;
база = СоздатьОбъект("SQLiteBase");
база.Открыть(":memory:");
Запрос = база.НовыйЗапрос();
запрос.ВыполнитьЗапрос("PRAGMA journal_mode = OFF");
Мета = СоздатьОбъект("MetaDataWork");
стр = Мета.ЗначениеВСтрокуБД(Элем);
Запрос.Подставлять("ВыбАвто", стр);
ТекстЗапроса = "
|Select
| Период.DOCID as [Doc $Документ],
| Период.LINENO as LINENO,
| jour.iddocDef as Doc_kind
|From [_1S.Const] as Период
|Left join Journal as jour on Jour.IDDoc = Период.DOCID
|Left join [ДокументСтроки.] as Строки on Строки.LINENO = Период.LINENO
|Where Период.id = :ИсторияРеквизита.Автомобили.Загружен and Период.objid = :ВыбАвто
|";
ТЗ = Запрос.ВыполнитьЗапрос(ТекстЗапроса);
глНаЭкран(ТЗ);
Left join [ДокументСтроки.] as Строки on Строки.LINENO = Период.LINENO - Я понимаю, что нужно присоеденить эту таблицу, но как мне сказать что нужно ДокументСтроки. + "jour.iddocDef" (в селекте алиас - Doc_kind)? Как мне указать программе, что нужно выбрать строки документа, вид которого я определил в самом запросе?
|
|
1
mikecool
09.10.12
✎
10:17
|
только динамически составить запрос или лефт джойнить все возможные виды
|
|
2
Zhuravlik
09.10.12
✎
10:18
|
"лефт джойнить все возможные виды" - а все возможные виды можно прямо в запросе узнать, или надо заранее подготовить таблицу средствами 1С?
|
|
3
Zhuravlik
09.10.12
✎
10:19
|
+ а, туплю jour.iddocDef, сейчас буду пробовать, спасибо
|
|
4
Zhuravlik
09.10.12
✎
10:34
|
(1) А если я полчил все возможные виды, как дальше? Если просто пишу [ДокументСтроки] получаю "no such table".
|
|
5
Zhuravlik
09.10.12
✎
10:39
|
(1) + Или вы имеете в виду ЯВНО укзывать все возможные виды? Типа
ДокументСтроки.Вид1 as Вид1
ДокументСтроки.Вид2 as Вид2
ДокументСтроки.Вид3 as Вид3
ДокументСтроки.Вид4 as Вид4
....
Не хотелось бы так... Неужели по-другому нельзя?
|
|
6
Zhuravlik
09.10.12
✎
11:01
|
ап...
|
|
7
mikecool
09.10.12
✎
11:02
|
(5) либо так, либо динамически собрать текст запроса
|
|
8
Zhuravlik
09.10.12
✎
11:06
|
(7) :(
Спасибо за подсказку, буду динамически формировать... Я думал скуль покруче...
|
|
9
Mikeware
09.10.12
✎
11:07
|
так хочется забанить....
|
|
10
Mikeware
09.10.12
✎
11:07
|
пля, 1986...
все, вопрос снят...
|
|
11
Zhuravlik
09.10.12
✎
11:07
|
(9) А что я нарушил??
|
|
12
Ёпрст
гуру
09.10.12
✎
11:12
|
(10) :)
|
|
13
Mikeware
09.10.12
✎
11:13
|
(11) во избежание нарушения правил мной...
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший