Имя: Пароль:
1C
1С v8
как в запросе поставить условие аналогичное условию ГДЕ?
,
0 FiftyStars
 
21.12.11
23:09
Вобщем помню смотрел Чистова давно, там увидел как он в запросе ставит условие. А сейчас этих видео у меня нет.
Вобщем логика такая:если условие ГДЕ отрабатывает по окончании формирования всех результатов, то условие, поставленное им отсеивает неподходящие значения ПРИ формировании оных.
К примеру:

ВЫБРАТЬ Сотрудники.фамилия
ИЗ Справочник.Сотрудники

Если поставить условие ГДЕ Сотрудники.фамилия=&Парам, ну и допустим Парам=Петров, то вначале формируется полный список сотрудников(Петровы, сидоровы, ивановы и т.д.), а затем отбрасываются все кроме петровых.
Для моей задачи это долго будет.
А там условие ставилось вроде в скобках, не помню в ВЫБРАТЬ или в ИЗ...но с этим условием результат сразу добавляло только Петровых.
Вобщем стыдно мне, что помню суть акак именно делать не помню, но  с запросами давно не работал =)
1 GROOVY
 
21.12.11
23:11
Это Вы с параметрами вирт. Таблиц путаете. У справочников их нет.
Видео кстати доступно на chistov.spb.ru
2 Живой Ископаемый
 
21.12.11
23:12
суть та что это применяется к параметрам ВИРТУАЛЬНЫХ таблиц
3 Maxus43
 
21.12.11
23:20
но в итоге всё зависит от плана запроса, для файлов может и справедливо (0), а на СУБД не факт что так поведёт себя запрос
4 H A D G E H O G s
 
21.12.11
23:22
<<Если поставить условие ГДЕ Сотрудники.фамилия=&Парам, ну и допустим Парам=Петров, то вначале формируется полный список сотрудников(Петровы, сидоровы, ивановы и т.д.), а затем отбрасываются все кроме петровых.>>

Кто такое сказал?
5 H A D G E H O G s
 
21.12.11
23:23
<<Для моей задачи это долго будет.>>
Задача по расчету Фобос-Грунта?

Че там, миллион сотрудников штоле?
6 Neco
 
21.12.11
23:26
Если реквизит проиндексировать то СУБД будет искать значение в индексе и потом делать выборку.
7 Maxus43
 
21.12.11
23:27
ГДЕ Сотрудники.фамилия=&Парам - если действительно так сделать - может и долго, ибо не ссылочный тип будет проверяться, и на него нет индексов в субд. В реляционных базах данных индексы играют одну из ключевых ролей для выборки данных
8 H A D G E H O G s
 
21.12.11
23:28
(6) Если записей больше 600 вроде (для ms sql 2005). Вопрос - есть ли столько сотрудников у аутора?
9 H A D G E H O G s
 
21.12.11
23:28
(7) goto (8)
10 Maxus43
 
21.12.11
23:29
(9) метки - ЗЛО :)
11 H A D G E H O G s
 
21.12.11
23:29
Окститесь, человеки.
Справочник сотрудников!

Че там, запрос в цикле тока, но за это бить надо.
12 Maxus43
 
21.12.11
23:31
(11) ну у мну сотрудников 3 тыщи было. суть не в том есть ли у автора столько, он вопрос про тайный смысл вирт таблиц и условий ГДЕ задал. мы филосовствуем...
13 FiftyStars
 
21.12.11
23:33
(4) почитай про порядок выполнения запроса
(HADGEHOG) про сотрудников это пример был и видимо не очень хороший...думал сойдет...
а по вирт таблицам синтаксис подскажите пожалуйста че то всю справку перерыл...справка в 1с полное УГ...то что надо - не найти, зато потом когда будешь искать другие вещи, на глаза попадается то что искал в прошлый раз
14 Maxus43
 
21.12.11
23:35
(13) вирт таблицы только у регистров есть, у каждого свои. в конструкторе они отдельными таблицами идут. например регистр ТоварыНаСкладах, есть вирт таблица ТоварыНаскладахОбороты, у неё можно параметры задавать
15 FiftyStars
 
21.12.11
23:36
насчет порядка я ж не из пальца высосал...
даже если отбросить кто что слышал то тупо логически можно допереть...выполнение запроса происходит поэтапно "изнутри" "наружу" и сверху вниз
16 H A D G E H O G s
 
21.12.11
23:38
(13) Индексы-хериндексы

Почитайте
http://www.sql.ru/articles/mssql/03013101Indexes.shtml
17 Maxus43
 
21.12.11
23:40
(15) зависит от конкретной ситуации и плана запроса который внутри формируется. Нас так же в УЦ учили в своё время, но в реальных условиях это оказалось не совсем так.
Например внешне один и тот же запрос на СУБД преобразуется в несколько вариаций, если оптимизатор запросов решит что данных много - пойдёт один, если нет - другой.
18 Maxus43
 
21.12.11
23:43
короче нафиг эти тонкие материи, просто следуй рекомендациям с того же ИТС, есть статья про оптимизацию запросов
19 H A D G E H O G s
 
21.12.11
23:44
(14) Херовато.
Примитивно:
Для Остаточных таблиц вирт. таблица Остатки() - это физическая (хранимая в базе данных sql) таблица итогов на начало месяца + движуха с начала месяца по заданное число.

Чтобы sql не выбирал все Итоги и всю движуху и суммировал, а потом уже фильтровал в ГДЕ, юзаются параметры ВТ, при которых он отберет только нужные Итоги (по заданной номенклатуре) и нужную движуху.
20 H A D G E H O G s
 
21.12.11
23:45
(19) Я примитивно объяснил, я в курсе про Итоги на 3999 год и минусовку, а то заклюете.
21 FiftyStars
 
21.12.11
23:45
(14) ну приблизительный синтаксис напиши уже=)))PLEASEEE
не помню я =)а скорость инета там где я ща сижу не позволит видео чистова скачать быстрее чем за &ПараметрОченьДохренаВремени =)тем более это в какой то из частей с 6 по 13 не помню, так что оченьдохренавремени умножаем на 8 и это будет вечность уже, я состарюсь и умру пока оно скачается :D
(16) что это за ересь=)))
22 H A D G E H O G s
 
21.12.11
23:46
Ну а для РС виртуальная таблица - это почти аналог вот этого

Книга знаний: Срез последних на каждую дату в запросе
23 FiftyStars
 
21.12.11
23:47
(18) не все так просто, дамы и господа :D
после предыдущего работничка смотреть больше негде :DD
24 Maxus43
 
21.12.11
23:48
(19) ясен фиг херовато, я всю теорию должен был издложить когда у автора один вопрос простой?)
25 H A D G E H O G s
 
21.12.11
23:48
(21)
<<(16) что это за ересь=)))>>

А может ну его, этот 1С с докучи программированием, если такие умные?
Вон, в аэрокосмосе бида-пичаль, Фобосы строем не ходють, айда туды?
26 Maxus43
 
21.12.11
23:48
(23) прошлый работник спёр ИТС? воистину жадны 1сники
27 H A D G E H O G s
 
21.12.11
23:49
(24) Он же полез во "внутрь-снаружи" и "вверх - вниз"; ясно же, теории хочет.
28 FiftyStars
 
21.12.11
23:49
(25) я только за ="D но я лучше стану кубинским наркобароном=) ну или мексиканским =DD
29 FiftyStars
 
21.12.11
23:53
(26) ну книжкой судяя по ее состоянию он зад свой подтирал....пол книги осталось всего :DD
диск еще был....но он теперь стал горшком для цветка на подоконнике :DD
30 Maxus43
 
21.12.11
23:55
короче есть простые правила описаные на ИТС, если их придерживаться - то не будут плевать тебе в воображаемое лицо когда будут смотреть твой код.
Пользуй конструктор запросов, он за тебя синтаксис напишет, потом посмотриш... смотри типовые запросы как написаны, в большинстве своём грамотно, исключая ситуации запросов в цикле (увы и ах, даже 1с не следует своим рекомендациям)
31 H A D G E H O G s
 
21.12.11
23:56
(30)
исключая ситуации запросов в цикле (увы и ах, иногда этого не миновать)
32 Maxus43
 
21.12.11
23:57
(31) кстати смотрел в УПП несколько таких запросов, в некоторых не миновать, но 1-2 точно со зла они так, можно было переписать
33 ПесняПроЗайцев
 
21.12.11
23:59
(0) Мне не стыдно за вас, 1-ники. Кем начал - тем и помре )
34 FiftyStars
 
22.12.11
00:01
(30) Че то я голый запрос в 1С понимаю лучше чем конструктор...для меня это как лего с квадратными выпуклостями и круглыми впуклостями:D
35 Maxus43
 
22.12.11
00:04
(34) незнаю, многостраничные запросы ЗУПа вобще мало кто без конструктора поймёт :)
он на самом деле полезен, понять и приобщиться надо... а когда читаеш запросы самоделкиных без переносов строк да ещё и на англицком - хочется материться, выть на луну и бежать за водкой
36 rs_trade
 
22.12.11
00:07
в сотый раз могу посоветовать прочитать книги по ms sql. с уверенностью могу сказать что, тот кто изучал язык запросов по книгам 1С, нихрена язык запросов не знает.
37 FiftyStars
 
22.12.11
00:15
(33)(35)(36) какие мои годы=) я не так давно 1С занялся и еще только учусь, каждый день сталкиваюсь с трудностями но решаю ведь их, а работать по течению 1С помогает нормальное знание других языков программирования, во всяком случае принципы одни=)
+мне английский даже удобнее=) я когда общий курс ЭсКуЭль проходил придраконился к нему чутка=)да и вобще с английским порядок)вот имена таблиц на транслите это задница))
38 FiftyStars
 
22.12.11
00:36
Кстати дополнительный вопрос:
Можно ли замутить такую же вещь но со справочниками/документами?
У меня ДОПУСТИМ 100 000 000 заказов, и только на 1 нужно достать номер счета, номер реализации, номер закрытия и еще всякой лобуды кучу.
Чую что все эти соединения нехорошо скажутся на скорости при таком количестве записей.
Или лучше сделать вложенный запрос, который достанет только тот заказ а к нему прикреплять всё остальное?
39 Maxus43
 
22.12.11
08:52
соединение с вложеным запросом ещё большее зло. делай Врем таблицу и к ней соединяй
40 Maxus43
 
22.12.11
08:54
с вложеными запросами СУБД может не правильно определить более оптимальный план, что приведёт к тормозам. да ещё и соединение с ним...