|
Как получить запросом данные из табличной части документа? | ☑ | ||
---|---|---|---|---|
0
new1snik
08.05.13
✎
10:47
|
Добрый день.
Пытаюсь получить запросом данные из табличной части Товары документа ПоступлениеТоваровУСлуг. Код такой: Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", ДокументСсылка.Ссылка); Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслуг.Товары.( | Количество, | Цена, | Сумма | ) |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Номер = &Ссылка" ; СписокТоваров = Запрос.Выполнить().Выгрузить(); Для Каждого Товары из СписокТоваров Цикл Сообщить(Товары.Количество); Сообщить("!"); КонецЦикла; В табличной части документа точно есть записи. Но запрос их там не находит. В чем я ошибся? |
|||
1
Ненавижу 1С
гуру
08.05.13
✎
10:47
|
я бы тоже не нашел
ГДЕ ПоступлениеТоваровУслуг.Номер = &Ссылка |
|||
2
Wobland
08.05.13
✎
10:48
|
(1) мало ли что у него там в &Ссылке
|
|||
3
mikecool
08.05.13
✎
10:48
|
(1) а ты найди!!
|
|||
4
Ненавижу 1С
гуру
08.05.13
✎
10:48
|
(2) а ты глаза открой шире и посмотри в (0)
|
|||
5
mikecool
08.05.13
✎
10:48
|
(2) Запрос.УстановитьПараметр("Ссылка", ДокументСсылка.Ссылка); )
|
|||
6
Wobland
08.05.13
✎
10:49
|
(2) а, нуда
(0) выбирай из Документ.ПоступлениеТоваровУслуг.Товары, легче станет |
|||
7
cw014
08.05.13
✎
10:49
|
"ВЫБРАТЬ
| ПоступлениеТоваровУслугТовары.Количество, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Сумма |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка" |
|||
8
х86
08.05.13
✎
10:51
|
(5)у него ДокументСсылка - это структура, и у ключа Ссылка значение строка/число(номер) ))
|
|||
9
new1snik
08.05.13
✎
10:54
|
(2) ДокументСсылка = ФормаВыбора.ОткрытьМодально();
ЕСли поменять код на такой: Запрос = Новый Запрос; Запрос.УстановитьПараметр("Номер", ДокументСсылка.Номер); Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслуг.Товары.( | Количество, | Цена, | Сумма | ) |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Номер = &Номер" ; СписокТоваров = Запрос.Выполнить().Выгрузить(); Для Каждого Товары из СписокТоваров Цикл Сообщить(Товары.Количество); Сообщить("!"); КонецЦикла; Выдает сообщение, что Поле объекта не обнаружено(Количество) |
|||
10
Ненавижу 1С
гуру
08.05.13
✎
10:55
|
(9) тебе уже запрос написали
|
|||
11
cw014
08.05.13
✎
10:55
|
Меня видимо игнорируют
|
|||
12
Ненавижу 1С
гуру
08.05.13
✎
10:56
|
(11) хорошо хоть не посылают, а ведь он мог бы
|
|||
13
НЕА123
08.05.13
✎
10:56
|
(0) Для Каждого Товары из СписокТоваров Цикл
Для Каждого Товар из Товары Цикл Сообщить(Товар.Количество); Сообщить("!"); КонецЦикла; КонецЦикла; |
|||
14
zippygrill
08.05.13
✎
10:57
|
а что такое? нормальный запрос ребята :)
|
|||
15
cw014
08.05.13
✎
10:57
|
(12) Что то типа - "Не нравится такой запрос - сильно простой, я сделаю свой, с Преферансом и Куртизанками..."
|
|||
16
НЕА123
08.05.13
✎
10:58
|
+(13)
самое правильное (7). |
|||
17
х86
08.05.13
✎
10:59
|
(9)по номеру искать не кашерно, ищи по ссылке
|ГДЕ | ПоступлениеТоваровУслуг.Ссылка = &Ссылка" ; |
|||
18
new1snik
08.05.13
✎
10:59
|
(11) Нет, я просто проверял:)
|
|||
19
new1snik
08.05.13
✎
11:03
|
(7)ПИшет, что поле объекта не обнаружено.
|
|||
20
zippygrill
08.05.13
✎
11:03
|
а что ты хочешь сделать с результатом запроса? таблица значений обязательна?
|
|||
21
cw014
08.05.13
✎
11:04
|
(19) Какое поле?
|
|||
22
zippygrill
08.05.13
✎
11:04
|
"ВЫБРАТЬ
| ПоступлениеТоваровУслугТовары.Количество, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Сумма |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка" СписокТоваров = Запрос.Выполнить().Выгрузить(); Для Каждого Товары из СписокТоваров Цикл Сообщить(Товары.Количество); Сообщить("!"); КонецЦикла; |
|||
23
new1snik
08.05.13
✎
11:04
|
(20) Пока я просто хочу вывести значение поля цена для номенклатуры в документе.
|
|||
24
new1snik
08.05.13
✎
11:07
|
(22) Да, такой запрос сейчас. Все равно не работает. Документ ПоступлениеТоваровУслуг стандартный в УТ, поле "количество" в табличной части точно есть.
|
|||
25
cw014
08.05.13
✎
11:07
|
(24) А может быть ответишь на (21)???
|
|||
26
new1snik
08.05.13
✎
11:08
|
(25) Поле "Количество"
|
|||
27
zippygrill
08.05.13
✎
11:08
|
вот как настойщие мужики пишут.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Количество, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Сумма |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка" Результат = Запрос.Выполнить; ВыборкаДетальныхЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныхЗаписи.Следующий() Цикл Сообщить(Строка(ВыборкаДетальныхЗаписи.Количество)); КонецЦикла |
|||
28
cw014
08.05.13
✎
11:10
|
(27) Синтаксическая ошибка в строке 10
|
|||
29
cw014
08.05.13
✎
11:10
|
(26) Значит где то что то неправильно написал
|
|||
30
new1snik
08.05.13
✎
11:11
|
(27) Это работает.
|
|||
31
zippygrill
08.05.13
✎
11:11
|
Результат = Запрос.Выполнить();
|
|||
32
new1snik
08.05.13
✎
11:13
|
zippygrill, спасибо за работающий код.
Кто скажет, где здесь ошибка? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Количество, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Сумма |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка" Результат = Запрос.Выполнить; ВыборкаДетальныхЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныхЗаписи.Следующий() Цикл Сообщить(Строка(ВыборкаДетальныхЗаписи.Количество)); КонецЦикла |
|||
33
НЕА123
08.05.13
✎
11:15
|
(32) их две. нет ";" после закрывающей кавычки + (31)
|
|||
34
zippygrill
08.05.13
✎
11:18
|
после запроса | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка" всегда должно стоять | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка";
и синтаксис Выполнить() это метод объекта Запрос. |
|||
35
Шапокляк
08.05.13
✎
11:20
|
(32) А параметр запроса где устанавливаете?
|
|||
36
cw014
08.05.13
✎
11:20
|
(32) Вот "то ли я дурак, толи лыжи не едут" (С) К/Ф Каникулы строгого режима...
Сравни свой запрос с запросом в (7) и найди хотя бы 1 отличие |
|||
37
new1snik
08.05.13
✎
11:20
|
(34) Тьфу, не тот запрос. Сорри.
Я про этот хотел спросить: "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Количество, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Сумма |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка" СписокТоваров = Запрос.Выполнить().Выгрузить(); Для Каждого Товары из СписокТоваров Цикл Сообщить(Товары.Количество); Сообщить("!"); КонецЦикла; |
|||
38
ssh2012
08.05.13
✎
11:22
|
(37) не задан параметр
|
|||
39
new1snik
08.05.13
✎
11:22
|
(36) Не знаю. Видима ошибка появлялась не в запросе, а где то в коде.
|
|||
40
cw014
08.05.13
✎
11:23
|
(39) Рукалицо... Отойди от компьютера и позови программиста
|
|||
41
new1snik
08.05.13
✎
11:26
|
(40) Ну вот зачем ты так. Может я недавно занимаюсь 1С, и поэтому задаю глупые вопросы. Но ведь пытаюсь понять. Пытаюсь учиться.
Грубый ты. |
|||
42
cw014
08.05.13
✎
11:35
|
(41) Просто непонятно, как два абсолютно одинаковых запроса у тебя то работают то не работают. Значит где то врешь
|
|||
43
anddro
08.05.13
✎
11:36
|
И это, после ДокументСсылка.Ссылка или ДокументСсылка.Номер запросом уже ничего выбирать не надо.
На первом же обращении через точку документ целиком считывается в кэш. Т.е. использование разыменовния просто перечеркивает все выгоду от использования запроса. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |