Вопрос по операции "ВЫБОР" в языке запросов #734970


#0 by булочник
Встроенная справка требует заключать выражение операции ВЫБОР языка запросов в одни двойные кавычки , а в действительности надо заключать в двое двойных кавычек,иначе ошибка и конструктор ругается
#1 by Wobland
потому что кавычка внутри строкового литерала экранируется кавычкой. и язык запросов тут ни при чём
#2 by Wobland
а выбрать Товары.ЭтоГруппа аллах запрещает?
#3 by D_E_S_131
Конструктором надо запросы писать и не будет таких вопросов.
#4 by булочник
а вот фрагмент справки: Пример: " ВЫБРАТЬ Справочник.Номенклатура.Наименование, ВЫБОР
#5 by Wobland
я в курсе
#6 by булочник
так не все конструктор делает, а им только по ПКМ свой г&вн0код проверяешь
#7 by Ненавижу 1С
ты заметил, что справка дана в контексте самой строки запроса? например, там нет символов переноса строк |
#8 by Ненавижу 1С
очень, очень мало чего не делает конструктор, да и то у конструктора есть возможность непосредственного редактирования кода в отдельном окне
#9 by D_E_S_131
Что не делает конструктор?
#10 by булочник
дошло
#11 by D_E_S_131
к
#12 by Wobland
имеющие только руками приходится
#13 by D_E_S_131
Да ты что?! А если сделаю не руками?
#14 by D_E_S_131
Вообще нету ничего, что можно написать руками и нельзя сделать в Конструкторе.
#15 by Wobland
откроешь для меня новость ;)
#16 by Wobland
выбрать "да?"
#17 by D_E_S_131
Просто ставишь условие на "ручное изменение" и там используешь любые агрегатные функции. Закроешь конструктор и "Имеющие" волшебным образом появится само собой.
#18 by Ненавижу 1С
упорядочивание по произвольному выражению ВЫБРАТЬ     АвансовыйОтчет.Ссылка ИЗ
#19 by Провинциальный 1сник
Храните запросы в макетах!
#20 by vhl
просто делай в конструкторе запроса, а не в тексте.
#21 by D_E_S_131
Пфф, сделай такое поле и упорядочивай.
#22 by patria0muerte
Да тоже можно вроде, не?     АвансовыйОтчет.Ссылка,    АвансовыйОтчет.КурсДокумента/АвансовыйОтчет.КратностьДокумента КАК ПолеУпорядочивания
#23 by Ненавижу 1С
а мне само поле не нужно в запросе
#24 by D_E_S_131
Конечно можно. Мозги парят. :)
#25 by D_E_S_131
Нужно! Ты просто об этом не знаешь. :)
#26 by Ненавижу 1С
слив засчитан
#27 by 1976vas
Нельзя конструктором добавить вложенный запрос в виртуальных параметрах.
#28 by Ненавижу 1С
ну там можно в конструкторе произвольно написать
#29 by D_E_S_131
Сама по себе эта конструкция в дрожь сразу бросает. Тут скорее даже не нужно так делать чем "не можно".
#30 by patria0muerte
Чем не нравится?
#31 by patria0muerte
+ Вполне штатная ситуация, когда данные документа кидаешь в ВТ и по ней фильтруешь виртуальную таблицу регистра.
#32 by Wobland
1. <Условие упорядочивания> в общем случае может представлять собой некоторое выражение. 2. 3. да и Ицик ещё говорил, что order by работает по алиасам
#33 by Wobland
+ меня п.1 смущает
#34 by 1976vas
вот здесь автор встрял, при обучении запросам.
#35 by D_E_S_131
Не нравится "медленностью". Не уверен, что подобное преобразуется в правильное соединение при конвертации в текст запроса. Я бы делал через выборку из реальной таблицы с соединением к этой ВТ.
#36 by Timon1405
ой да шо вы нам рассказываете, все там можно) например 1) пишете в ВТ (номенклатура,склад) в   <--(обязательно пробел оставить) 2) выделяете пробел мышкой 3) ПКМ --> (Внезапно!) конструктор запроса 4) выбираем поля из прошлый ВТ
#37 by ssh2006
можно вызвать еще один конструктор, находясь в поле условия вирт таблицы, и написать нужный запрос, причем в открывшемся конструкторе будут видны временные таблицы основного запроса
#38 by Drac0
ИМХО, лучше через подзапрос. Например, у тебя в ВТ собран 10 товаров или документов и надо получить по ним данные из виртуальной таблицы. Рациональнее их передать как параметр через (ВЫБРАТЬ Док ИЗ ВТ), чем получать таблицу на лям доков, а потом ее фильтровать соединением.
#39 by D_E_S_131
Хочешь сказать, что Внутреннее соединение таблицы "МлнДок" и "ВТ_10тов" будет выбирать все данные?
#40 by 1976vas
На записи у автора внезапно не получилось, но я не проверял.
#41 by Ненавижу 1С
вот еще код, вполне работает: однако в конструктор зайти нельзя
#42 by D_E_S_131
Речь не про то, что бы можно было зайти конструктором, а про возможность создать такой же текст. Временные таблицы вполне себе создаются конструктором, ставь только в имени таблицы & в начале.
#43 by ssh2006
да, приходится явное соединение со справочником делать, чтобы открывалось
#44 by D_E_S_131
Чё?
#45 by rsv
И причем здесь ВЫБОР ?  Любое явное строковое значение в запросе будете заворачивать в 4 е кавычки
#46 by D_E_S_131
"Выразить" придумано для чего?
#47 by ssh2006
ты просто не сталкивался с таким
#48 by Ненавижу 1С
он уже при сохранении начинает ругаться
#49 by D_E_S_131
Не спасет тебя ?
#50 by ssh2006
Можно сохранить, в описании таблицы указать тип поля в конструкторе, тогда сохранится. никто не говорит, что это нерешаемая проблема)
#51 by D_E_S_131
[1C] "ВЫБРАТЬ     |    ВнешнийИсточник.Номенклатура     |ПОМЕСТИТЬ ВТ_Данные     |ИЗ     |    &ИсточникДанных КАК ВнешнийИсточник     |;     |     |////////////////////////////////////////////////////////////////////////////////     |ВЫБРАТЬ     |    ВТ_Данные.Номенклатура,     |    ВЫРАЗИТЬ(ВТ_Данные.Номенклатура КАК Справочник.Номенклатура).Артикул КАК Поле1     |ИЗ     |    ВТ_Данные КАК ВТ_Данные" [1C]
#52 by rsv
Так Выбор тут причем из темы в ?
#53 by D_E_S_131
+ Вот так не ругается и открывается всегда.
#54 by D_E_S_131
#55 by Ненавижу 1С
как костыль пойдет
#56 by ssh2006
мне это известно
#57 by ssh2006
такой же "финт" можно делать когда нужно получить реквизит от параметра запроса ссылочного типа
#58 by D_E_S_131
Это не "костыль", а реально необходимая конструкция для получения данных из полей составного ссылочного типа, сильно влияет на производительность.
#59 by Ненавижу 1С
я в курсе, но здесь не тот случай
#60 by 1976vas
А как быть, если текст составной? Отлавливать в отладчике и перекидывать в конструктор?
#61 by D_E_S_131
Да обычно исходный текст все равно создается в конструкторе, а потом уже все "динамическое формирование" "допиливается". Подобный текст так же можно реализовать не закрывая форму конструктора, не особо чем будет отличаться от написания выражения в параметрах виртуальной таблицы. В итоге - создано конструктором.
#62 by D_E_S_131
+ даже этот "динамизм" вроде бы в 8.3.15 хотят превратить в "божий вид".
#63 by Ненавижу 1С
только ты им больше не откроешь а сопровождение наше все
#64 by D_E_S_131
"Отлавливать в отладчике и перекидывать в конструктор?" - тут только так. Стараюсь вообще избегать таких текстов, если это не обусловлено универсальностью конструкции, либо же условие такое хитрое, что очень сложно его описать конструкциями языка запроса.
#65 by Drac0
Обращение к виртуальной таблице - это подзапрос. Если ты не передашь туда параметр, то он получит таблицу из млн строк, а потом уже соединить ее. А если передашь, то получит таблицу только из десятка нужных, т.к. внутреннее соединение уже будет внутри этого подзапроса.
#66 by Широкий
Вообще то так:
#67 by ejikbeznojek
Я обычно пишу "ВЫБРАТЬ ПЕРВЫЕ 1 |    ШКЛистаНабора.НомерШК
#68 by D_E_S_131
Но можно же использовать в ГДЕ Выбор Когда &ТутЧтотоМутим Тогда <текст условия> Иначе Истина Конец
#69 by Ненавижу 1С
комменты конструктор затрет а так норм будет: "ВЫБРАТЬ ПЕРВЫЕ 1 |    ШКЛистаНабора.НомерШК запрос.текст=стрзаменить(запрос.текст,"&УсловиеМутим",?(УсловиеМутим,"какое то условие","ИСТИНА"));
#70 by 1976vas
Круто!
#71 by 1976vas
Интересно будет работать? Текст же разный может быть.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С