|
запрос к таблице значений | ☑ | ||
---|---|---|---|---|
0
Deenka
20.06.12
✎
12:16
|
пробую построить запрос к таблице значений. тз3 с полем Док
Как обратится к результату запроса? Запрос = Новый Запрос; МВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = "ВЫБРАТЬ | ТЗ3.Док |ПОМЕСТИТЬ | ТЗ3 |ИЗ | &ТЗ3 КАК ТЗ3"; Запрос.УстановитьПараметр("ТЗ3", тз3); Результат = Запрос.Выполнить(); Вибірка = Результат.Выбрать(); Пока Вибірка.Следующий() Цикл сообщить(Вибірка.док); КонецЦикла; |
|||
1
zak555
20.06.12
✎
12:17
|
ТЗ получено из запроса ?
|
|||
2
Deenka
20.06.12
✎
12:18
|
вылетает ошибка
{Форма.Форма.Форма(85)}: Поле об`єкту не виявлено (док) сообщить(Вибірка.док); |
|||
3
zak555
20.06.12
✎
12:18
|
+ ещё язык english добавь
|
|||
4
ssh2006
20.06.12
✎
12:20
|
> Как обратится к результату запроса?
Результат = Запрос.Выполнить(); Вибірка = Результат.Выбрать(); |
|||
5
Reset
20.06.12
✎
12:20
|
"тз3 с полем Док"
противоречит "Поле об`єкту не виявлено (док)" Покажи формирование тз3 |
|||
6
Нуф-Нуф
20.06.12
✎
12:21
|
"Вибірка" и не впадлу ж вам раскладку переключать дл i
|
|||
7
Жан Пердежон
20.06.12
✎
12:21
|
(0) у тебя в запросе ничего не выбирается
|
|||
8
Жан Пердежон
20.06.12
✎
12:22
|
+ к (7): учу пользоваться поиском дорого
|
|||
9
ssh2006
20.06.12
✎
12:22
|
В результате такого запроса содержится одна строка с количеством записей, как-то так вроде
|
|||
10
KA-52
20.06.12
✎
12:24
|
(0) обрабатывать полученную временную таблицу религия запрещает?
|
|||
11
Deenka
20.06.12
✎
12:24
|
ТЗ3=Новый ТаблицаЗначений;
ТЗ3.Колонки.Добавить("Док",Новый ОписаниеТипов("Строка")); ФайлДаних = Новый XBase(); ФайлДаних.ОткрытьФайл("C:\ЖО.dbf"); ФайлДаних.Первая(); Пока НЕ ФайлДаних.ВКонце() Цикл НоваяСтрока1 = ТЗ3.Добавить(); НоваяСтрока1["Док"] = СокрЛП(ФайлДаних.DOC); ФайлДаних.Следующая(); так заполняю тз3 КонецЦикла; |
|||
12
Жан Пердежон
20.06.12
✎
12:26
|
(11) молодец
|
|||
13
zak555
20.06.12
✎
12:27
|
1. что в ЖО.dbf ?
2. в имени файла буквы не пропущены ? |
|||
14
Reset
20.06.12
✎
12:27
|
(11) В (7) ответ правильный, я смотрел невнимательно
|
|||
15
ssh2006
20.06.12
✎
12:28
|
> ФайлДаних = Новый XBase();
Здесь ошибка, нужно так: ФайлДаНах = Новый XBase(); |
|||
16
KA-52
20.06.12
✎
12:28
|
пилят, набери в яндексе "запрос к таблице значений ". Первая ссылка - ответ
|
|||
17
Рэйв
20.06.12
✎
12:28
|
"ВЫБРАТЬ
| Т.Док |ПОМЕСТИТЬ | ТЗ3 |ИЗ | &ТЗ3 КАК Т ; Выбрать * Из ТЗ3 "; |
|||
18
Рэйв
20.06.12
✎
12:31
|
за ТЗ3 - руки оторвать. Будут потом люди разбираться где там 3 а где З
|
|||
19
MaXpaT
20.06.12
✎
12:31
|
вот здесь ошибка:
надо вместо "КонецЦикла" писать "КонэцЦiклу" |
|||
20
Рэйв
20.06.12
✎
12:32
|
Тогда уж ПiсецЦiклу
|
|||
21
KA-52
20.06.12
✎
12:35
|
(20) нене, СлаваГiроям
|
|||
22
Deenka
20.06.12
✎
12:41
|
подскажите, пожалуйста, как правильно построить запрос
|
|||
23
Агент Инфостарта
20.06.12
✎
12:42
|
(22) Вам в посте 17 показали.
|
|||
24
Рэйв
20.06.12
✎
12:42
|
(22) Чем (17) не устроило?
|
|||
25
Рэйв
20.06.12
✎
12:43
|
только палки надо добавить к трем строкам. а то щас начнеь постить об синтаксической ошибке:-)
|
|||
26
Deenka
20.06.12
✎
12:50
|
Рэйв, спасибо! работает
|
|||
27
Deenka
20.06.12
✎
13:42
|
хочу в этот же запрос добавить условие
Для Каждого Строкатз1 Из тз1 Цикл Запрос = Новый Запрос; МВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МВТ; Запрос.Текст = "ВЫБРАТЬ | Т.Док, |ПОМЕСТИТЬ | ТЗ3 |ИЗ | &ТЗ3 КАК Т; |ВЫБРАТЬ * ИЗ ТЗ3 |ГДЕ |ТЗ3.Док = &Строка"; Запрос.УстановитьПараметр("ТЗ3", Тз3); Запрос.УстановитьПараметр("Строка", Строкатз1["док"]); Результат = Запрос.Выполнить(); Вибірка = Результат.Выбрать(); Пока Вибірка.Следующий() Цикл сообщить(Вибірка.Док); сообщить сообщить("--------------"); КонецЦикла; |
|||
28
Deenka
20.06.12
✎
13:44
|
но при исполнении вылетает ошибка
{Форма.Форма.Форма(136)}: Помилка при виклику методу контексту (Выполнить) Результат = Запрос.Выполнить(); через: {(14, 10)}: Неправильні параметри в операції порівняння. Не можна порівнювати поля необмеженої довжини і поля несумісних типів. ТЗ3.Док <<?>>= &Строка |
|||
29
Агент Инфостарта
20.06.12
✎
13:47
|
(28) Моя твой не понимай.
|
|||
30
Deenka
20.06.12
✎
13:49
|
Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченой длины и поля несоответсвующих типов
|
|||
31
Рэйв
20.06.12
✎
13:55
|
Если уж взялся заталкивать тз в запросы, то закинь и вторую таблицу в запрос, а там соедини по полю Док.
А за запрос в цикле будешь гореть в аду:-) Тем боле с повторным созданием объектов. |
|||
32
Deenka
20.06.12
✎
14:03
|
мне надо перебрать все значения из тз1 по полю Док и на основании каждого значения нужно создать Документ Операция, который будет заполнятся соответсвующими данными из тз3
|
|||
33
Рэйв
20.06.12
✎
14:04
|
(32)Не возражаю. (31) тебе в помощь
|
|||
34
Deenka
20.06.12
✎
14:05
|
вот и мучаюсь как составить запрос
|
|||
35
Рэйв
20.06.12
✎
14:07
|
повтори (17) для тз1 таблице, только сделай
Поместить тз1 Потом Выбрать тз1.Док,ЕстьNULL(тз3.Док,"нет соответсвия") КАК Док_тз3 Из тз1 Левое Соединение тз3 По тз1.Док=тз3.Док как то так. |
|||
36
Рэйв
20.06.12
✎
14:09
|
+ ну и нужные данные кроме Док вытягивай из тз3, я ж нен знаю что там у тебя
|
|||
37
Reset
20.06.12
✎
14:11
|
ВЫБРАТЬ
| Т.Док, // Здесь нужно Выразить(Т.Док КАК Строка(100)) // Вместо 100 - нужна длина строки |ПОМЕСТИТЬ .... ==> ВЫБРАТЬ | Выразить(Т.Док КАК Строка(100)) КАК Док // Вместо 100 - нужна длина строки |ПОМЕСТИТЬ .... |
|||
38
Reset
20.06.12
✎
14:12
|
Вероятно, можно и без указания длины (то есть просто СТРОКА) - задачу не знаю
|
|||
39
Reset
20.06.12
✎
14:13
|
(37) (38) Пояснение к (28)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |