|
Выгрузка результата пакетного запроса в таблицу значений | ☑ | ||
---|---|---|---|---|
0
новичок12345
14.10.12
✎
17:03
|
помогите плиз! не могу понять что не так делаю. Запрос точно рабочий, как его правильно выгрузить?
Для каждого СтрокаТаблицы Из ТаблицаДанных Цикл а = а + 1; Если а > 1 тогда Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ "; КонецЕсли; ИмяВида = СтрокаТаблицы.ИмяТаблицы; Запрос.Текст = Запрос.Текст + "ВЫБРАТЬ | "+ИмяВида+".Ссылка |ИЗ | Документ."+ИмяВида+" КАК "+ИмяВида+" |ГДЕ | ("+ИмяВида+".Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И ("+ИмяВида+".ОтражатьВБухгалтерскомУчете = &БухУчет | ИЛИ "+ИмяВида+".ОтражатьВНалоговомУчете = &НалУчет))"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаКонца", ДатаОкончания); Запрос.УстановитьПараметр("БухУчет", "Нет"); Запрос.УстановитьПараметр("НалУчет", "Нет"); КонецЦикла; МассивРезультатов = Запрос.ВыполнитьПакет(); ТаблицаОтобранных.Очистить(); Для Каждого Строка Из МассивРезультатов Цикл ЗаполнитьЗначенияСвойств(ТаблицаОтобранных.Добавить(), Строка); КонецЦикла; массивРезультатов пустой, почему? |
|||
1
Нуф-Нуф
14.10.12
✎
17:04
|
ТаблицаОтобранных.Очистить();
Для Каждого Строка Из МассивРезультатов Цикл ЗаполнитьЗначенияСвойств(ТаблицаОтобранных.Добавить(), Строка); КонецЦикла; это че? |
|||
2
aleks-id
14.10.12
✎
17:05
|
а зачем в цикле параметры устанавливать?
|
|||
3
новичок12345
14.10.12
✎
17:06
|
ТаблицаОтобранных - это таблица значений. Просто очищаю ее перед записью. А цикл это попытка заполнить таблицу значений результатом запроса, но так как результат запроса пустой, то не получается
|
|||
4
новичок12345
14.10.12
✎
17:07
|
(2) косяк , сейчас подправим
|
|||
5
France
14.10.12
✎
17:08
|
посмотри что у тебя в "Строка"
|
|||
6
новичок12345
14.10.12
✎
17:08
|
консоль запросов показывает что запрос рабочий. А вот как его выгрузить непонятно мне
|
|||
7
новичок12345
14.10.12
✎
17:09
|
(5) поле объекта не обнаружено
|
|||
8
новичок12345
14.10.12
✎
17:12
|
Вообще, это правильно: МассивРезультатов = Запрос.ВыполнитьПакет()
В данном случае эту конструкцию нужно использовать? |
|||
9
France
14.10.12
✎
17:13
|
МассивРезультатов[XXX].Выбрать()
|
|||
10
новичок12345
14.10.12
✎
17:17
|
(9) дело в том, что в массив записана одна строка с типом результат запроса и пустым значением
|
|||
11
dauster
14.10.12
✎
17:24
|
Мне одному кажется, что "Строка" - служебное слово и не следует его использовать в цикле? Может, использовать другое обозначение?
|
|||
12
aleks-id
14.10.12
✎
17:26
|
МассивРезультатов = Запрос.ВыполнитьПакет().Выгрузить();
|
|||
13
новичок12345
14.10.12
✎
17:28
|
(12) метод объекта Выгрузить() не обнаружен
|
|||
14
новичок12345
14.10.12
✎
17:30
|
(11) мне кажется что косяк идет на этапе выполнения запроса, я сейчас закомментировал все, кроме массиваРезультатов все равно не работает
|
|||
15
новичок12345
14.10.12
✎
17:31
|
если делаю так:
МассивРезультатов = Запрос.Выполнить().Выгрузить() то просто ТЗ пустая |
|||
16
France
14.10.12
✎
17:33
|
(13) ты внЫмательно хлянь 9.. если и это не поможет, в любом типовом сделай глобальный поиск по "ВыполнитьПакет" и насладись ж Ызнью.. вот... как то так..
|
|||
17
новичок12345
14.10.12
✎
17:33
|
(16) Спасибо, сейчас пробегусь.
|
|||
18
новичок12345
14.10.12
✎
18:04
|
все равно идет пустой массив. уже и так делал:
МассивРезультатов = Запрос.Выполнить(); ма = МассивРезультатов.Выгрузить(); и так: МассивРезультатов = Запрос.ВыполнитьПакет(); ВсегоЗапросов = МассивРезультатов.Количество(); Для Индекс = 0 по МассивРезультатов.ВГраница() Цикл Выборка = МассивРезультатов[Индекс].Выгрузить(); КонецЦикла; |
|||
19
новичок12345
14.10.12
✎
18:08
|
может дело все-таки в запросе? хотя консоль дает результат
|
|||
20
notebug
14.10.12
✎
18:30
|
(0) а текст запроса формируется только в цикле? до цикла текст запроса пустой? если да, то зачем вам пакет?
Результат = Запрос.Выполнить();
а если все же пакет, то: МассивРезультатов = Запрос.ВыполнитьПакет();
|
|||
21
новичок12345
14.10.12
✎
18:41
|
(20) возвращает почему-то пустой... в чем может быть причина?
|
|||
22
новичок12345
14.10.12
✎
18:47
|
Для каждого СтрокаТаблицы Из ТаблицаДанных Цикл
а = а + 1; //Если а > 1 тогда // Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ "; //КонецЕсли; ИмяВида = СтрокаТаблицы.ИмяТаблицы; Запрос.Текст = //Запрос.Текст + "ВЫБРАТЬ | "+ИмяВида+".Ссылка |ИЗ | Документ."+ИмяВида+" КАК "+ИмяВида+" |ГДЕ | ("+ИмяВида+".Дата МЕЖДУ &ДатаНачала И &ДатаКонца | И ("+ИмяВида+".ОтражатьВБухгалтерскомУчете = &БухУчет | ИЛИ "+ИмяВида+".ОтражатьВНалоговомУчете = &НалУчет))"; РезультатЗапроса = Запрос.Выполнить().Выгрузить(); КонецЦикла; Сделал так... уже тут результатЗапроса пустой... |
|||
23
новичок12345
14.10.12
✎
18:47
|
На выходе беру Запрос.Текст, копирую в консоль, все работает
|
|||
24
notebug
14.10.12
✎
19:05
|
а параметры куда дел?
|
|||
25
новичок12345
14.10.12
✎
19:08
|
ОХОХ!!!! Вот я затупил!!!!! Взял из консоли значение "Отражать в бух учете" так и скопировал "Нет"!!! Ну это ж надо! Всем спасибо, сломал себе мозг и вас помучил, а все из-за своей невнимательности((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |