|
Как вернуть результат выполнения запроса из функции? | ☑ | ||
---|---|---|---|---|
0
Garnet27
02.09.13
✎
09:51
|
Здравствуйте.
Подскажите, пожалуйста, как вернуть результат выполнения запроса из функции? Возможно ли это сделать? |
|||
1
zak555
02.09.13
✎
09:52
|
Возврат Результат;
|
|||
2
Wobland
02.09.13
✎
09:52
|
употребить Возврат, да
|
|||
3
Фокусник
02.09.13
✎
09:52
|
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса; ;) |
|||
4
Garnet27
02.09.13
✎
09:55
|
Так не получается почему-то. Я в основной части пытаюсь перебрать строки:
"Для каждого стр из РезультатЗапроса" пишет, что РезультатЗапроса переменная не определена ((( |
|||
5
Wobland
02.09.13
✎
09:56
|
(4) как это связано с (0)?
|
|||
6
Ёпрст
02.09.13
✎
09:57
|
больше кода
|
|||
7
ale-sarin
02.09.13
✎
09:58
|
(4) Надо сначала выбрать или выгрузить. Типовой код-то глянь.
Хотя, если "переменная не определена", то и это не поможет. |
|||
8
Garnet27
02.09.13
✎
10:04
|
Вот код, собственно:
Функция Запрос(Владелец) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура, |СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Владелец |ИЗ |Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие |ГДЕ |СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Владелец = &Владелец"; Запрос.УстановитьПараметр("Владелец", Владелец); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Возврат РезультатЗапроса; КонецФункции Процедура КнопкаВыполнитьНажатие(Кнопка) Уровень = 0; Деталь = СсылкаНаОбъект.Продукция; Для Каждого Стр из Деталь Цикл Спецификация = Стр.Спецификация; ИсхКомпл = Спецификация.ИсходныеКомплектующие; Запрос(Стр.Номенклатура); Для Каждого Стр из РезультатЗапроса Цикл Номенкл = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Стр.Номенклатура),истина); КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
9
Wobland
02.09.13
✎
10:04
|
(8) теперь сам скажи, что такое РезультатЗапроса?
|
|||
10
Wobland
02.09.13
✎
10:05
|
+(9) и почему не стоит отстреливать коленку за запрос в цикле
|
|||
11
ale-sarin
02.09.13
✎
10:10
|
(9) (10) Да ладно. Все равно проблема не в этом.
(8) РезультатЗапроса = Запрос(Стр.Номенклатура); И функцию бы переименовать. И на (10) обратить внимание |
|||
12
Wobland
02.09.13
✎
10:11
|
(11) даже платформа говорит, что в этом
|
|||
13
ale-sarin
02.09.13
✎
10:14
|
(12) Что Вы тут разводите? На запрос в цикле платформа не ругается.
|
|||
14
ДенисЧ
02.09.13
✎
10:14
|
А ещё.... Клиент-сервер...
|
|||
15
Wobland
02.09.13
✎
10:15
|
(13) и что?
|
|||
16
ale-sarin
02.09.13
✎
10:15
|
(12) Ладно, понял. Речь об отсутствии переменной. А я умничаю в (11). )))
|
|||
17
ale-sarin
02.09.13
✎
10:15
|
(15) И ни что. Не надо полусловами говорить.
|
|||
18
Elf_80_lvl
02.09.13
✎
10:15
|
Номенкл = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Стр.Номенклатура),истина);
Просто любопытно, зачем выбирая в запросе ссылку нужно потом искать по наименованию? |
|||
19
Garnet27
02.09.13
✎
10:19
|
Вот ничего не понятно из комментов. Что-то не так делаю? Почему не возвращает результат?
|
|||
20
ale-sarin
02.09.13
✎
10:20
|
(19) на
РезультатЗапроса = Запрос(Стр.Номенклатура); Для Каждого Стр из РезультатЗапроса Цикл Номенкл = Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(Стр.Номенклатура),истина); КонецЦикла; |
|||
21
ale-sarin
02.09.13
✎
10:21
|
+21 И еще (19) намекает тебе на:
РезультатЗапроса = Запрос(Стр.Номенклатура); Для Каждого Стр из РезультатЗапроса Цикл Номенкл = Стр.Номенклатура; КонецЦикла; |
|||
22
Serg_1960
02.09.13
✎
10:22
|
Сорри, коллеги, для себя не вижу смысла в... эээ... ыыы... даже затрудняюсь определить термин к набору символов в (8)... но вы - обсуждайте. Я тут постою рядом, послушаю :)
|
|||
23
Elf_80_lvl
02.09.13
✎
10:22
|
(19) Во-первых, ты возвращаешь не рузультат за проса а табличу значений.
Во-вторых, функция возвращает результат только в переменную Например: мТаблица = Запрос(Стр.Номенклатура); |
|||
24
Starhan
02.09.13
✎
10:23
|
Отправте человека читать что такое функция и не партесь, готовый код может не отлодить в памяти решение проблемы.
|
|||
25
Garnet27
02.09.13
✎
10:26
|
Получается, таблицу значений из функции я не передам, так? (((
|
|||
26
Molinor
02.09.13
✎
10:27
|
(25) Не так.
|
|||
27
Wobland
02.09.13
✎
10:27
|
(25) ложь
|
|||
28
Garnet27
02.09.13
✎
10:28
|
Все получилось. Все понятно, где тупилось)))) Спасибо всем большое)))
|
|||
29
ale-sarin
02.09.13
✎
10:30
|
(28) У тебя есть проблема с именованием переменных и функций. Или непонимание, что есть результат запроса, а что будет после Выгрузить() и т.п.
Также избегать надо по возможности использования запросов в цикле. |
|||
30
le_
02.09.13
✎
10:31
|
(0)(8) Вредитель.
|
|||
31
Garnet27
02.09.13
✎
10:38
|
Да, видимо в голове не связалось что в переменную ТЗ надо записать (((. Опыт небольшой у меня еще... Почему Вредитель, интересно? Просто любопытно
|
|||
32
Wobland
02.09.13
✎
10:39
|
(31) потому что не получаешь нужную таблицу сразу, а гоняешь запрос ы цикле
|
|||
33
le_
02.09.13
✎
10:48
|
(31) Потому, что в (8) пример того, как не надо делать.
ВСЁ, что тебе нужно, можно получить одним запросом, а у тебя их там будет выполняться столько, сколько строк в Деталях, без учета последующего поиска номенклатуры по наименованию... |
|||
34
Garnet27
02.09.13
✎
11:03
|
Задача состоит в том, чтобы выбрать все дерево спецификаций номенклатуры, привязанных к конкретной основной спецификации в документе. Одним запросом, честно говоря, не придумаю, как сделать, пока еще в запросах далеко не ас (((... Если подскажете, как, было бы просто здорово.
|
|||
35
Wobland
02.09.13
✎
11:11
|
(34) кури соединения
|
|||
36
Garnet27
02.09.13
✎
11:31
|
А поподробнее хоть чуток?
|
|||
37
Elf_80_lvl
02.09.13
✎
11:36
|
(36)
http://www.v8.1c.ru/metod/books/book.jsp?id=187 Купить. Прорешать. У Вас присутствует непонимание основ программирования на языке 1С. Быстрее научиться через книгу чем на форуме. |
|||
38
le_
02.09.13
✎
11:38
|
||||
39
Infsams654
02.09.13
✎
11:49
|
(37) Не..., У Вас присутствует непонимание основ SQL.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |