|
Построенный запрос к СУБД использует слишком много таблиц | ☑ | ||
---|---|---|---|---|
0
Adecvator
02.08.13
✎
10:46
|
Что за ерунда, обыкновенный запрос -
Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ | Объект, | Значение | ТипЗначения(Объект) КАк ТипОбъекта |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов |Где | ТипЗначения(Объект) = ТИП(Документ.СчетНаОплатуПокупателю) и | Значение = &СтрПоиска и | Объект.ПометкаУдаления = Ложь"; Запрос.УстановитьПараметр("СтрПоиска",Идентификатор); Результат = Запрос.Выполнить().Выгрузить(); а выдает ошибку :( |
|||
1
GROOVY
02.08.13
✎
10:49
|
Вместо типа используй оператор ССЫЛКА. Типизируй поле ОБЪЕКТ перед проверкой на ПометкаУдаления.
|
|||
2
Bronislav Pupkov
02.08.13
✎
10:49
|
используй ВЫРАЗИТЬ() для значения
|
|||
3
GROOVY
02.08.13
✎
10:49
|
А то ".ПометкаУдаления" тебе левых соединений со всеми таблицами БД видать налепило.
|
|||
4
Adecvator
02.08.13
✎
10:52
|
(2) ВЫРАЗИТЬ(Значение) = &СтрПоиска, как правильно употреблять функцию ВЫРАЗИТЬ() ?
|
|||
5
Adecvator
02.08.13
✎
10:53
|
(3) как? это же измерение регистра.
|
|||
6
Adecvator
02.08.13
✎
10:53
|
тип у которой - ДокументСсылка, СправочникСсылка
|
|||
7
GROOVY
02.08.13
✎
10:54
|
(5) (6) Ну тип то составной.
|
|||
8
Лефмихалыч
модератор
02.08.13
✎
10:55
|
на читая (0): нужно ВЫРАЗИТЬ() или/и отбор по типу субконтно
угадал? |
|||
9
GROOVY
02.08.13
✎
10:55
|
К какой таблице думаешь запрос обращается для проверки пометки удаления? Вооот...
|
|||
10
Лефмихалыч
модератор
02.08.13
✎
10:56
|
почи. только ВЫРАЗИТЬ()
|
|||
11
GROOVY
02.08.13
✎
10:56
|
(8) Промахнулся :)
|
|||
12
Adecvator
02.08.13
✎
10:58
|
(10) ну как использовать ВЫРАЗИТЬ()? Подскажите плз.
|
|||
13
GROOVY
02.08.13
✎
10:59
|
Конфигуратор 1С:Предприятие 8
Приведение типа Поля исходных таблиц могут иметь составной тип. Для таких полей возникает необходимость привести значения поля к какому-либо определенному типу. <Приведение типа> | ВЫРАЗИТЬ ( <Выражение> КАК <Тип значения> ) | БУЛЕВО | ЧИСЛО [(Длина[, Точность])] | СТРОКА [(Длина)] | ДАТА | <Имя таблицы> <Длина> - ЧИСЛО; <Точность> - ЧИСЛО <Выражение> приводится к одному из примитивных типов, или к ссылочному типу данных; в последнем случае <Имя таблицы> указывает на соответствующую таблицу информационной базы. Если <Выражение> содержит в составном типе требуемый <Тип значения>, то приведение типа считается осуществимым, и для каждого значения указанного типа результатом будет это самое значение. Для значений других типов результатом приведения типа будет значение NULL. Если <Выражение> не содержит в составном типе требуемый <Тип значения>, то выполнение данного запроса завершится ошибкой из-за принципиальной невозможности совершить приведение типов. Для <Тип значения> СТРОКА с указанием длины максимальный размер строки составляет 1024. см. также: Использование выражений в языке запросов -------------------------------------------------------------------------------- © ООО "1С", 1996-2013. Все права защищены. |
|||
14
GROOVY
02.08.13
✎
11:04
|
О! Универсальный подсказыватель, гугл: https://www.google.ru/search?q=1с+выразить
|
|||
15
Adecvator
02.08.13
✎
11:43
|
может подскажите, как связать с одной только таблицей - "СчетНаОплатуПокупателю", потому что
ВЫРАЗИТЬ(Значение КАК СТРОКА(300)) = &СтрПоиска не работает :( |
|||
16
Adecvator
02.08.13
✎
12:37
|
Решил проблему так -
Запрос.Текст ="ВЫБРАТЬ РАЗРЕШЕННЫЕ | ЗначенияСвойствОбъектов.Значение КАК Значение | , ЗначенияСвойствОбъектов.Объект КАК Объект |ИЗ | Документ.СчетНаОплатуПокупателю КАК Счет | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО Счет.Ссылка = ЗначенияСвойствОбъектов.Объект |ГДЕ | ЗначенияСвойствОбъектов.Значение = &СтрПоиска | И Счет.ПометкаУдаления = ЛОЖЬ"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |