|
Отбор в ПостроительЗапроса | ☑ | ||
---|---|---|---|---|
0
Pro100
22.10.13
✎
11:36
|
Пытаюсь добавить отбор в ПостроительЗапроса и 1С выдает ошибку:
ВнешняяОбработка.абс.МодульОбъекта(463)}: Ошибка при вызове метода контекста (Добавить) ЭлемОтбораЗапроса = Запрос.Отбор.Добавить(ЭлементОтбора.ПутьКДанным); по причине: Недопустимое значение параметра (параметр номер '1') Вот кусок кода: Запрос = Новый ПостроительЗапроса; Запрос.Текст = "ВЫБРАТЬ " + ТекСтрока.ИмяТаблицы +".*"; Запрос.ЗаполнитьНастройки(); Запрос.Отбор.УстановитьДоступныеПоля(СтрокаТЗ.Отбор.ПолучитьДоступныеПоля()); Для Каждого ЭлементОтбора ИЗ СтрокаТЗ.Отбор Цикл ЭлемОтбораЗапроса = Запрос.Отбор.Добавить(ЭлементОтбора.ПутьКДанным); ЗаполнитьЗначенияСвойств(ЭлемОтбораЗапроса,ЭлементОтбора); КонецЦикла; РезультатЗапросаТЗ = Запрос.Результат.Выгрузить(); Подскажите пожалуйста, что не нравится 1С, не пойму. Отбор выставляю на форме по ИНН контрагента |
|||
1
Pro100
22.10.13
✎
11:50
|
Есть кто пользовался ПостроителемЗапроса?
|
|||
2
User_Agronom
22.10.13
✎
11:52
|
А текст запроса без ошибок?
|
|||
3
Defender aka LINN
22.10.13
✎
11:52
|
(0) Построитель, конечно, поумнее многих одинэснегов, но даже он не способен понять, что от него хотят с текстом запроса "Выбрать Контрагенты.*"
|
|||
4
User_Agronom
22.10.13
✎
11:53
|
Поставь прерывание на строку Запрос.ЗаполнитьНастройки();
И скинь сюда значение Запрос.Текст |
|||
5
Defender aka LINN
22.10.13
✎
11:53
|
(4) А без этого не понятно, что ли?
|
|||
6
Pro100
22.10.13
✎
11:54
|
2) Текст запроса без ошибок это 100 %
3) Вот текст запроса в отладчике: Выбрать Справочник.Контрагенты.* Попрбуйте его, уверяю вас, что он выдает все записи справочника )) |
|||
7
User_Agronom
22.10.13
✎
11:54
|
(5) У меня неи такого навыка телепатии. Кто ж знает что хранит ТекСтрока.ИмяТаблицы
|
|||
8
Fragster
модератор
22.10.13
✎
11:54
|
(3) выбрать справочник.контрагенты.* работает
|
|||
9
Defender aka LINN
22.10.13
✎
11:55
|
(6) Да что ты говоришь...
|
|||
10
User_Agronom
22.10.13
✎
11:56
|
(9) В консоли отчетов действительно сработал.
|
|||
11
Fragster
модератор
22.10.13
✎
11:56
|
(9) инфа 146%
|
|||
12
Pro100
22.10.13
✎
11:56
|
(7) Текст запроса дан в (6)
(9)Не понял шутку, если вы знаете, что такой текст запроса выдает, то откуда тогда вопрос (3) ?? Или переделать на обычный запрос: выбрать * ИЗ Справочник.Контрагенты как Контрагенты и тогда в отборе нормально сработает метод Добавить? |
|||
13
Defender aka LINN
22.10.13
✎
11:57
|
В любом случае, путь к отбору неправильный, о чем какбе символизирует текст ошибки
|
|||
14
User_Agronom
22.10.13
✎
11:58
|
(12) Переделать. И указать не "*", а конкретные поля
|
|||
15
User_Agronom
22.10.13
✎
11:59
|
Попробуй открыть этот запрос конструктором. Он живо его перекрутит. А построитель отчета этого перекрутить не умеет.
|
|||
16
Fragster
модератор
22.10.13
✎
11:59
|
Выбрать * Из &_Таблица КАК Таблица {ГДЕ Таблица.Ссылка.* КАК Ссылка}
|
|||
17
Fragster
модератор
22.10.13
✎
12:00
|
Построитель.Текст = СтрЗаменить(ТЗ, "&_Таблица", Метаданные.ПолноеИмя)
|
|||
18
Feunoir
22.10.13
✎
12:02
|
Построитель запроса сам в этом случае разворачивает запрос в нормальный. Можно посмотреть в консоли запросов. И если в отбор там-же добавить поле, то получается нормально. А вот что ТС пытается добавить в ЭлементОтбора.ПутьКДанным не очень понятно.
|
|||
19
vhl
22.10.13
✎
12:07
|
(0) ЭлемОтбораЗапроса = Запрос.Отбор.Добавить(""+ЭлементОтбора.ПутьКДанным);
|
|||
20
vhl
22.10.13
✎
12:10
|
Ну и текст запроса конечно должен быть чем то вроде:
"ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |{ГДЕ | Контрагенты..*}"; |
|||
21
Pro100
22.10.13
✎
12:12
|
Сейчас буду пробовать что написали, всем пока спасибо )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |