Имя: Пароль:
1C
 
Отборы виртуальных таблиц - благо или маразм?
0 Гений 1С
 
гуру
05.07.07
09:53
1. Благо, хорошее решение 0% (0)
2. Маразм 0% (0)
3. Все равно 0% (0)
Всего мнений: 0

Господа, то что 1С в виртуальных таблицах использует отдельные отборы в параметрах виртуальной таблицы и в условии ГДЕ - это благо или маразм?

Дело в том, что по сути, она перекладывает на программиста то, с чем легко может справиться компилятор средней руки и усложняет язык запросов. Чем ей не нравится классические условия в ГДЕ?
Неужели по условиям в ГДЕ нельзя автоматом определить, какие ограничения накладываются на виртуальную таблицу!?

А вы как считаете?
1 ТелепатБот
 
гуру
05.07.07
09:53
2 Гений 1С
 
гуру
05.07.07
16:45
ап
3 Terv
 
05.07.07
16:48
(0) тебе скучно ?
или я не понял вопрос?
как ты предлагаешь объединить фильтр и условие? как в 7.7?
4 Terv
 
05.07.07
16:49
+(3) а если мне для периодического РС, нужно именно условие "ГДЕ" , а не фильтр ... как твой "компилятор средней руки" это отработает?
5 Гений 1С
 
гуру
05.07.07
16:50
Вместо:
ИЗ Регистр.Обороты(&ДатаНач, &ДатаКон, КОнтрагент=&Контрагент)

Использовать классику:
ИЗ Регистр.Обороты()
ГДЕ Дата Между &ДатаНач И &ДатаКон И КОнтрагент=&Контрагент

Ибо компьютер может сам оптимизировать запрос, нафига эти извращения?
6 Terv
 
05.07.07
16:56
(5) ты серьезно считаешь что эти 2 запроса, во всех случаях вернут одно и тоже?

//первый запрос
ВЫБРАТЬ
   МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
ИЗ
   РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&ДатаОстатков,    Организация = &Организация И  МОЛ = &МОЛ И Местонахождение = &Подразделение) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних

//второй запрос  
ВЫБРАТЬ
   МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
ИЗ
   РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&ДатаОстатков,    ) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних
ГДЕ     Организация = &Организация И МОЛ = &МОЛ И Местонахождение = &Подразделение
7 Гений 1С
 
гуру
05.07.07
17:05
(6) Терв, ты тупишь, речь шла об оборотах...
В примере остатков дату среза можно оставить в виртуальных таблицах, но фильтры нужно выносить за ГДЕ, смысл в этих издевательствах над SQL?
8 AntonioS
 
05.07.07
17:09
Вариант 2. В отношении ветки.

Для справки: при переводе запроса на скл, виртуальная таблица преобразуется в подзапрос.
Отбор в виртуальной таблице будет условием ВНУТРИ подзапроса.
Если применять ГДЕ, то условие будет снаружи подзапроса.
Вот и весь смысл - производительность
9 Terv
 
05.07.07
17:11
(8) это то он знает ... насколько я понимаю он предлагает компилятору автоматически определять куда лучше засунуть в фильтр или в условие.... вот только непойму нафига нужно это извращение...
10 Terv
 
05.07.07
17:12
(7) о каких издевательствах над SQL ты говоришь?
11 Гений 1С
 
гуру
05.07.07
17:16
(8) Я в курсе.
(9) Терв правильно говорит - компилятор сам может понять, где выполнять запрос.
(10) Виртуальная таблица - это издевательство, на плечи кодера перекладывают то, что должен делать оптимизатор запроса.
12 sapphire
 
05.07.07
17:16
(5) Чушь, на самом деле в твоем случае осьминожка семерит т.е. вернет тебе всю таблицу и только потом наложит условия, да и для регистров остатков в таком случае никакой оптимизации не будет
13 vde69
 
05.07.07
17:17
мое мнение, что как реализовала 1с более читабельно, тоесть мы заранее знаем где будет условие, а супер оптимизаторы - это фантастика...

собственно код будет сложнее если придеться делать соединение... тогда надо сделать подзапрос, а в нем условие.... или ты хочешь, сто-бы оптимизатор и при соединение сам решал куда условие???
14 sapphire
 
05.07.07
17:17
(11) твои утверждения про виртуальные таблицы смелы конечно, но также абсурдны.
15 Terv
 
05.07.07
17:18
(11) боюсь если доверить это дело компилятору, то станет непредсказуем результат ... иногда нужно одно, а иногда другое.
16 sapphire
 
05.07.07
17:18
(10) одна фраза ХДЕ - уже само по себе издевательство :)))
17 AntonioS
 
05.07.07
17:18
(9) нет, ну теоретически, наверное, это реализуемо
только я вспомнил свой запрос, где виртуальных таблиц больше 10 ка
представил, что будет в ГДЕ
неудобно. нагляднее когда в таблице отбор прописан.
18 GenV
 
05.07.07
17:18
Просто в некоторых случаях мне нужно кокретно указать куда это условие нужно засунуть. Например при запросе к регистру сведений. Компьютер может быть со мной не согласен :)
19 Terv
 
05.07.07
17:19
(18) +1, это я и имел ввиду в (6)
20 sapphire
 
05.07.07
17:19
(15) а с учетом того, что 90 % писателей пользуются всякими построителями-сочинителями так вообще будет неясно не зги... кста, а може именно для построителей?!
21 Гений 1С
 
гуру
05.07.07
17:20
(17) Если речь о твоем извращенном удобсвте, используй вложенный запрос.
А в большинстве случаев распределение запросов на фильтры вирт.таблиц и условие запроса только усложняет понимание.
22 Гений 1С
 
гуру
05.07.07
17:20
(18) приведи контрпример, гыгыгы...
23 Гений 1С
 
гуру
05.07.07
17:20
(20) читай (21)
24 mikecool
 
05.07.07
17:21
(11) а есть ли уверенность, что запрос будет оптимизирован?
25 Гений 1С
 
гуру
05.07.07
17:21
все очень просто, если в условии где встречается поле, которое есть в виртуальной таблице, но накладывать это условие до формирования виртуальной таблицы, а не после....

Просто и логично, долой извращения.
26 Terv
 
05.07.07
17:21
(22) см. (6)
27 Гений 1С
 
гуру
05.07.07
17:21
(24) читай (25). Приведи контрпример
28 sapphire
 
05.07.07
17:22
(23) как (20) коррелируется с (21)?
29 Terv
 
05.07.07
17:22
(27) пля, оптимизируй мне по твоему запрос, есть измерения Организация,Мол,Местонахождение

"ВЫБРАТЬ
   МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
ИЗ
   РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&ДатаОстатков,    ) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних
ГДЕ     Организация = &Организация И МОЛ = &МОЛ И Местонахождение = &Подразделение
"
30 mikecool
 
05.07.07
17:22
(27) ущу раз спрошу - ты уверен в том, что переданный тобой серверу запрос будет оптимизирован на сервере?
31 mikecool
 
05.07.07
17:23
+30 еще раз...
32 AntonioS
 
05.07.07
17:23
(20) да вряд ли, щас тоже можешь ГДЕ взять в фигурные скобки, тот же результат
(21) речь о том, что ты опять занимаешься брейнфакингом.
сделала бы 1С так как ты щас хочешь, ты б написал, что маразм, надо отборы делать.
33 Гений 1С
 
гуру
05.07.07
17:24
(26) и че, разве запросы вернут разные данные? Поясни, а то я че-то не догоняю...
34 Гений 1С
 
гуру
05.07.07
17:25
(30) Оптимизировать может компилятор, до перевода в SQL
35 vde69
 
05.07.07
17:25
еще раз спрошу:

КАК определить куда ставить условие если виртуальная таблица имеет СОЕДИНЕНИЕ!!!!
36 Гений 1С
 
гуру
05.07.07
17:26
(32) Не скажи, исчез бы лишний труд по поводу того, чтобы думать, что в фильтры ставить, что в отборы.
37 Гений 1С
 
гуру
05.07.07
17:26
(35) пример
38 GenV
 
05.07.07
17:26
Есть переодический регистр сведений Работники. В нем Измерение Работник, Ресурс Состояние. Принимется/увольнятся один работник может много раз.

1) Нужно узнать всех уволенных на данный момент работников
2) Нужно узнать когда каждый работник был последний раз уволен

Никаких вложенных запросов не нужно ... Достаточно условий :)
39 Terv
 
05.07.07
17:26
(33) если ОС было принято в организацию, в определенное подразделение, определенному МОЛ, но было перещено (т.е. в срезе последних его не будет) ... если поставить фильтр .. то в результат оно попадет... а не должно ...

ЗЫ. это ошибка из типовой БП, не знай подправили или нет.
40 Гений 1С
 
гуру
05.07.07
17:26
(35) Каждое поле, которое участвует в соединении однозначно определяется, к какой таблице относится. Какие проблемы?
41 AntonioS
 
05.07.07
17:27
(21) кстати, по поводу виртуальных таблиц во вложенных запросах.
очень не рекомендую. после того как я наткнулся на гнездовое лупление, стараюсь использовать втрт таблицы только снаружи.
42 Гений 1С
 
гуру
05.07.07
17:28
(29) Гыгыгы, легко...

ВЫБРАТЬ
   МестонахождениеОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОсновноеСредство,
ИЗ
   РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&ДатаОстатков,    ) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних

ГДЕ     МестонахождениеОСБухгалтерскийУчетСрезПоследних.Поля.Организация = &Организация И МестонахождениеОСБухгалтерскийУчетСрезПоследних.Поля.МОЛ = &МОЛ И МестонахождениеОСБухгалтерскийУчетСрезПоследних.Поля.Местонахождение = &Подразделение ИЛИ МестонахождениеОСБухгалтерскийУчетСрезПоследних.Подразделение=&Подразделение2


Вкурил, или разжевать?
43 ОператорПК
 
05.07.07
17:29
(41) можно подробнее что есть "гнездовое лупление"
44 Гений 1С
 
гуру
05.07.07
17:29
(41) это потому что вместо классического WHERE используется уродство вроде фильтра вирт. таблиц.

Ах да, забыл проголосовать!

Маразм
45 DrWatson
 
05.07.07
17:30
Как мы уже поняли эта оптимизация применима только для оборотов и остатков, для среза последних она вредна. Получается отсутствие стандарта. Либо параметры виртуальных таблиц есть и есть они для всех таблиц, либо их нет.

Благо, хорошее решение
46 Гений 1С
 
гуру
05.07.07
17:31
(45) для среза тоже катит
47 vde69
 
05.07.07
17:31
(40)

ВЫБРАТЬ
   ЗаключенныеДоговораОбороты.СуммаОборот,
   ЗаключенныеДоговораОбороты.Договор,
   ГрафикиПлатежейОбороты.СуммаОборот КАК СуммаОборот1
ИЗ
   РегистрНакопления.ЗаключенныеДоговора.Обороты(, , , Договор = &Договор) КАК ЗаключенныеДоговораОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикиПлатежей.Обороты(, , , Договор = &Договор) КАК ГрафикиПлатежейОбороты
       ПО ЗаключенныеДоговораОбороты.Помещение = ГрафикиПлатежейОбороты.Помещение


ну и как ты тут условие по договору реализуешь????
48 Terv
 
05.07.07
17:31
(42) ты не вкурил... с периодического РС ... фильтр и условие ГДЕ ... возвращают разный результат, при определенном наборе данных
49 AntonioS
 
05.07.07
17:31
(43) можно - Nested Loops
50 Leksus
 
05.07.07
17:32
(0) хехе... какой-то Гений не гинеальный
51 Гений 1С
 
гуру
05.07.07
17:33
(45) Например, если ты пишешь

Выбрать Курс из РегистрСведений.ИмяРек(&ДатаСреза) КАК Т
ГДЕ Т.Организация=&Организация

Ты подразумеваешь, что нужно получить срез последних и из результата выбрать те записи, где организация=Организация.

А если Выбрать Курс из РегистрСведений.ИмяРек(&ДатаСреза) КАК Т
ГДЕ Т.Поля.Организация=&Организация

То подразумеваешь, что перед срезом последних нужно сделать еще доп.отбор исходной для виртуальной таблицы.

ПРоблем не вижу.

ПРоблемы в мозгах разработчиков 1це.
52 ОператорПК
 
05.07.07
17:34
(49) а по Русски можно? почему ты не рекомендуеш использовать вирт. таблицы в подзапросах?
53 Гений 1С
 
гуру
05.07.07
17:34
(48) я то вкурил, читай (51)
54 Гений 1С
 
гуру
05.07.07
17:34
(50) Какой то лексус подозрительно дешевый
55 Гений 1С
 
гуру
05.07.07
17:35
ВЫБРАТЬ
   ЗаключенныеДоговораОбороты.СуммаОборот,
   ЗаключенныеДоговораОбороты.Договор,
   ГрафикиПлатежейОбороты.СуммаОборот КАК СуммаОборот1
ИЗ
   РегистрНакопления.ЗаключенныеДоговора.Обороты(, , , ) КАК ЗаключенныеДоговораОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикиПлатежей.Обороты(, , , ) КАК ГрафикиПлатежейОбороты
       ПО ЗаключенныеДоговораОбороты.Помещение = ГрафикиПлатежейОбороты.Помещение

ГДЕ ЗаключенныеДоговораОбороты.Договор = &Договор И ГрафикиПлатежейОбороты.Договор = &Договор


Какие проблемы?
56 Гений 1С
 
гуру
05.07.07
17:36
ну что, контрпример будет?
57 Terv
 
05.07.07
17:36
(51) пля ... так и пиши мне не нравиться желтый цвет в "1С", давай те поменяем на "генитальный" ....
разница в чем? между фильтрами и твоими полями?
одна х-ня
58 GenV
 
05.07.07
17:37
(57)+1 :) И так и так придется указывать как фильтровать
59 Гений 1С
 
гуру
05.07.07
17:39
(57) дык в том, что в моих где не нужно думать о производительности и не нужно думать, какие можно включать поля в фильтр, а какие нет. Да и к классическому SQL ближе.
60 Гений 1С
 
гуру
05.07.07
17:39
(58) читай (59)
Суть в том, что 1С заставляет кодера думать там, где и так все ясно...
61 Гений 1С
 
гуру
05.07.07
17:40
и еще выдает это за прогресс, гыгыгы....
И на экзаменах по спецам спрашивает... мда...
62 AntonioS
 
05.07.07
17:40
(52) а че ж нельзя то. можно и по-русски.
при большом количестве вложений скл сервер может ступить и выбрать неоптимальный план запроса. Nested Loops это когда для каждой записи одной таблицы выполняется запрос из другой таблицы или запроса.
вместо того, что бы сделать слияние этих таблиц (в экстазе).
А поскольку виртуальная таблица при переводе в скл сама представляет подзапрос, то вложенность увеличивается.
Все это можно прочитать в Проф разработке.
63 Terv
 
05.07.07
17:41
(59) ага и получим аналог языка запросов как в 7.7, спасибо знаем,наелись....
ты вот допустим знаешь, как поставить фильтры на таблицы в "клюшках" ?
64 GenV
 
05.07.07
17:41
(60) Я от этих раздумий не сильно утруждаюсь :) Но, для варианта в (51)

Все равно
65 vde69
 
05.07.07
17:42
(55) и ты хочешь сказать, что
ГДЕ ЗаключенныеДоговораОбороты.Договор = &Договор И ГрафикиПлатежейОбороты.Договор = &Договор

лучше?

конечно дело вкуса, но я не извращенец... мне не нравиться...
66 DrWatson
 
05.07.07
17:45
(46) Не катит. Нужно выбрать затраты у которых настроен способ распределения статьи затрат.
ВЫБРАТЬ
   НЗП.*
ИЗ
   РегистрНакопления.НезавершенноеПроизводство.Остатки КАК НЗП
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СпособыРаспределенияСтатейЗатрат.СрезПоследних КАК СпособыРаспределенияСтатейЗатратСрезПоследних
       ПО НЗП.Подразделение = СпособыРаспределенияСтатейЗатратСрезПоследних.Подразделение
           И НЗП.СтатьяЗатрат = СпособыРаспределенияСтатейЗатратСрезПоследних.СтатьяЗатрат
ГДЕ
   СпособыРаспределенияСтатейЗатратСрезПоследних.НеРаспределять = ЛОЖЬ

В этом запросе будут записи, где на дату среза НеРаспределять = ЛОЖЬ. А теперь если оптимизатор засунет это условие в параметры вирт таблицы, то в срез последних попадут записи где на предыдущую дату галка стоит, а на текущую не стоит. Что недопустимо
67 Гений 1С
 
гуру
05.07.07
17:46
(65) значит ты извращенец, ибо в варианте с ГДЕ не нужно думать, на что накладывать условие, и какие поля допустимы в вирт.таблице, какие нет.
68 DrWatson
 
05.07.07
17:47
+(66) Что-то я усложнил, обычного среза последних достаточно для понимания недопустимости таких "оптимизаций"
69 Гений 1С
 
гуру
05.07.07
17:47
(66) покури (51), уже разжевывал!

Могу еще раз, персонально:

Вариант 1:

ВЫБРАТЬ
   НЗП.*
ИЗ
   РегистрНакопления.НезавершенноеПроизводство.Остатки КАК НЗП
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СпособыРаспределенияСтатейЗатрат.СрезПоследних КАК СпособыРаспределенияСтатейЗатратСрезПоследних
       ПО НЗП.Подразделение = СпособыРаспределенияСтатейЗатратСрезПоследних.Подразделение
           И НЗП.СтатьяЗатрат = СпособыРаспределенияСтатейЗатратСрезПоследних.СтатьяЗатрат
ГДЕ
   СпособыРаспределенияСтатейЗатратСрезПоследних.НеРаспределять = ЛОЖЬ



Вариант 2:

ВЫБРАТЬ
   НЗП.*
ИЗ
   РегистрНакопления.НезавершенноеПроизводство.Остатки КАК НЗП
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СпособыРаспределенияСтатейЗатрат.СрезПоследних КАК СпособыРаспределенияСтатейЗатратСрезПоследних
       ПО НЗП.Подразделение = СпособыРаспределенияСтатейЗатратСрезПоследних.Подразделение
           И НЗП.СтатьяЗатрат = СпособыРаспределенияСтатейЗатратСрезПоследних.СтатьяЗатрат
ГДЕ
   СпособыРаспределенияСтатейЗатратСрезПоследних.Поля.НеРаспределять = ЛОЖЬ
70 Гений 1С
 
гуру
05.07.07
17:48
(68) Почитай (69), хватит тупить про регистр сведений.
71 Гений 1С
 
гуру
05.07.07
17:48
По сути срез последних - это вложенный запрос, в условии ГДЕ можо использовать отбор по полям вложенного запроса.
72 Гений 1С
 
гуру
05.07.07
17:49
ВЫБРАТЬ Х ИЗ (ВЫБРАТЬ Y ИЗ Б) КАК А ГДЕ Х=11 И Б.Y=12
ВЫБРАТЬ Х ИЗ (ВЫБРАТЬ Y ИЗ Б) КАК А ГДЕ Х=11 И А.Y=12

Так понятнее? Тот же регистр сведений, срез последних
73 vde69
 
05.07.07
17:52
а чем тебы построитель не устраивае? используй его везде и будет тебе счастье :)
74 DrWatson
 
05.07.07
17:52
(71) Суть именно в том что по логике задачи нельзя где переносить в этот "вложенный запрос"
Допустим у нас есть такие данные
период  реквизит Галка
01.01   1        +
01.02   2        -
01.03   3        +

Делаем выбрать реквизит из среза последних () где галка= "-". Получаем пусто. Но если засунуть условие в параметры получим 2.
Я хочу сам управлять моим условием, к тому же получаются разные результаты
75 Гений 1С
 
гуру
05.07.07
17:56
(73) речь ваще не об этом.... Мне надо думать, например, когда можно использовать поле регистратор, а когда нет... Тупизна, одним словом.
76 DrWatson
 
05.07.07
17:56
(69) Что-тоя твоего объяснения не понял: там одинаковые варианты.
(72) И этих выражений я тоже не понимаю
Давай на примере в (74)
77 Гений 1С
 
гуру
05.07.07
17:58
(74) блин, сколько надо разжевывать:

Выбрать Реквизит ИЗ Регистр.Имярек ГДЕ ИмяРек.Галка="-"

Получаем пусто.

Выбрать Реквизит  ИЗ Регистр.Имярек ГДЕ ИмяРек.Поля.Галка="-"

Получаем 2.


Еще вопросы, господа матросы?

Ватсон, помедитируй над (72).
78 Гений 1С
 
гуру
05.07.07
17:58
Поля в данном случае - это обращение к исходным полям вложенного запроса, по сути виртуальная таблица - это вложенный запрос
79 Terv
 
05.07.07
17:59
(78) купи слона.
80 DrWatson
 
05.07.07
18:02
Чего-чего? добавляется слово ПОЛЯ? Это по этому полю оптимизатор должен понять что нужно засунуть условие в "вложенный запрос"?
81 DrWatson
 
05.07.07
18:03
+(80) Так где же здесь оптимизация, если ты сам говоришь что нужно наложить условие на вложенный запрос. По сути нет никакой разницы написать слово ПОЛЯ или поставить круглые скобки
82 Гений 1С
 
гуру
05.07.07
18:04
Смотри пример (72), там для явного вложенного запроса написано...
Вместо поля можно юзать любое другое имя.

ПО сути Выбрать Х из Регистр.ИмяРек.СрезПоследних

аналог:

Выбрать Х из (ВЫБРАТЬ ..ИЗ СЛУЖРегистр.ИмяРек КАК Поля) КАК ИмяРек.СрезПоследних

Чуствуешь аналогию?
83 Гений 1С
 
гуру
05.07.07
18:05
(81) это только если тебе нужно различать поля вложенного запроса и поля результата этого запроса, а сколько народа на этом обжигалось в регистрах сведений, я то точно... Так прозрачнее.
84 Гений 1С
 
гуру
05.07.07
18:06
По сути я так понял, что 1Сники привыкли писать раком и все, что улучшает их жизнь, воспринимается в штыки, гыгыгы..... Свое болото родным кажется, гыгыгы...
85 DrWatson
 
05.07.07
18:09
(82) Да понятно, что СрезПоследних - это вложенный запрос
Я говорю о том что все начиналось с высказывания "Неужели по условиям в ГДЕ нельзя автоматом определить, какие ограничения накладываются на виртуальную таблицу!? "
А закончилось тем что нужно писать слово ПОЛЯ, чтобы компилятор перенес данное условие в "вложенный запрос"
Сами себе противоречите, батенька
86 DrWatson
 
05.07.07
18:11
(83) не знаю. это может поперву обжигаешься, а потом когда вникаешь в суть вещей проблем не возникает
87 Terv
 
05.07.07
18:11
(85)  он сейчас тебе на  (59) укажет
88 DrWatson
 
05.07.07
18:13
(87) придется ответить, что в некоторых случаях думать очень даже нужно
89 Terv
 
05.07.07
18:16
(88) зачем ему думать.. он же "Гений" ....
видно совсем фиксина спермотоксикоз замучил, с каждым днем, ветки все бредовей и бредовей становятся
90 DrWatson
 
05.07.07
18:17
(89) Ну ладно хватит и так уже 90 постов нафлудили
91 Гений 1С
 
гуру
05.07.07
18:23
(89) не вкурил смысл? ну-ну...
92 Гений 1С
 
гуру
05.07.07
18:24
(85) и что? По любому тебе не нужно думать над тем, какие поля допустимы в виртуальных таблицах, какие нет. Ты просто накладываешь общее условие ГДЕ, а компилятор сам раскидывает по вложенным таблицам.

Констатирую: Тупые 1Сники.
93 BabySG
 
05.07.07
19:20
(92) бред - такими темпами появиться язык програмирования, а-ля:

void main(void){
  CreateNewGameAndRun();
  return 0;
}
94 VitaliySm
 
06.07.07
02:07
(92)и самый тупой из них - это Гений 1С.
95 Емельянов Алексей
 
06.07.07
07:33
Гений 1С почему бы тебе не написать свою платформу, а то у тебе столько претензии.
Вообще на половина твоих вопросов все ответы в ИТС!
96 Гений 1С
 
гуру
06.07.07
09:33
Окей.
Вот логические доводы в пользу моего решения:
1. Защита от дурака. Невозможно написать медленный запрос. Система по-любому оптимизирует его на этапе компиляции.
2. Точечность. Условие записывается только в одном месте.
3. Лаконичность. В виртуальные таблицы передаются только необходимые параметры, избавляемся от множества запятых, например в запросе к бухитогам сейчас отдельное условие для счета, для корсчета, и еще одно общее отдельное условие - это ли не маразм.
4. Полнота - обыгрываются все ситуации, в том числе со срезами регистров сведений и вложенными запросами.
5. Дополнительный функционал - из внешнего запроса можно управлять отбором во вложенном запросе.

А теперь ваши доводы, тупые 1Сники. ;-)
97 прролдд
 
06.07.07
09:50
(92), (96) А что говорил Сергей Нуралиев на эту тему в 2004 году по форумам, когда 8-ка только разрабатывалась? Наверняка вопросы были.

не надо слишком часто константировать на тупых одинэсников.
для этого есть блондинки-одинэсницы

Все равно
98 Гений 1С
 
гуру
06.07.07
10:18
(97) слив засчитан
100 Гений 1С
 
гуру
06.07.07
11:01
Сотка!
101 rsv
 
06.07.07
11:06
Велик и могуч T-SQL . Вот взяли в 1С8.* за конька конструкции типа  select А.* from (select * from B where .. and ...) A . Всеж на этом постороено. Надо просто это спокойно воспринимать.
102 g_frost
 
06.07.07
11:28
(96) не особо силен пока в ядре 8ки но есть вопрос, а когда мы создаем виртуальную таблицу в запросе, с условиями, не ограничиваем ли мы тем самым её объём? Оперативная то память не резиновая, или запрос все равно перед исполнением будет оптимизирован, вне зависимости от того где прописаны условия в параметрах таблицы или на вкладке условия?
103 agarych
 
06.07.07
11:43
(0)мне не влом указать параметры виртуальной таблици... но в лом думать про какие то поля которые я должен выбрать чтобы компилятор понял что это надо поставить в качестве параметра виртуальной таблице...

Благо, хорошее решение
104 Гений 1С
 
гуру
06.07.07
11:44
(102) в том то и дело, что 1С работу по оптимизации (чисто механическую, без всякого ИИ) с плеч компилятора переложила на мозги программиста.
105 Гений 1С
 
гуру
06.07.07
11:44
(103) клиника
106 agarych
 
06.07.07
11:46
(105) думай как хочешь, революционер :)
107 Гений 1С
 
гуру
06.07.07
11:50
(106) ты бы почитал список доводов в пользу моего решения, а тебе мешает только твоя безграмотность
108 Noise Hustler
 
06.07.07
13:33
есть здесь специалисты t-sql? для написания запроса вы тоже конструктором пользуетесь? ))
109 Гений 1С
 
гуру
06.07.07
13:45
(108) а почему бы и не юзать конструктор. Я умею и с конструктором и без.
110 Гений 1С
 
гуру
06.07.07
13:45
Это новые понты - я пишу SQL без конструктора?
111 Директор PR отдела
 
06.07.07
13:47
(110) Обезъянка, всё, что делают нормальные люди - это ПОНТЫ.
Не понты - это жрать манную кашку, изобретать ведрокат и пирамидальную память.
112 AntonioS
 
06.07.07
13:52
(108) прикинь до чего дошел прогресс!
не только запросы, можно и приложение целиком накликать.
113 Гений 1С
 
гуру
06.07.07
14:07
(112) видимо он классик - пишет в нотпаде.
114 AlexSSSS
 
06.07.07
15:20
1. Защита от дурака. Невозможно написать медленный запрос. Система по-любому оптимизирует его на этапе компиляции - и ЭТО называет себя "программистом" ???
115 Гений 1С
 
гуру
06.07.07
21:23
(114) действительно, зачем это в паскале и 1С контроль выхода индекса за границы массива сделан, наверное специально для тупых 1сников, гыгыгыы....
116 Гений 1С
 
гуру
06.07.07
21:23
(114) идиот, суть программирования - не только писать машинные коды, а автоматизировать труд программиста. Если можно не думать, нужно не думать.