Имя: Пароль:
1C
 
Виртуальные таблицы или ОТБОРЫ против ГДЕ -2
0 Odavid
 
14.05.10
12:47
1. Пользуюсь в основном отбором (по измерениям) 0% (0)
2. Пользуюсь в основном ГДЕ 0% (0)
3. Пользуюсь только ГДЕ - так проще и нагляднее 0% (0)
4. Не использую ВТ в принципе 0% (0)
Всего мнений: 0

Итак, снова поднимаю тему про параметры-отборы в виртуальных таблицах и их смысл.
Прочитав глас одинокого вопиющего Гения1С в http://www.forum.mista.ru/topic.php?id=282346&page=1, а также недовыясненные вопросы в http://www.forum.mista.ru/topic.php?id=432055, снова вопрошаю защитников отбора в виртуальной таблице:
Как использовать виртуальную таблицу (а зачем её вообще использовать, нельзя - не используй, спросите вы? А для чего еще, если не для быстроты запроса к "базовому" регистру этой таблицы), если нужен отбор по записи и - самое важное! - по ссылкам-реквизитам этой записи (пусть это будет склад из документа РТиУ, который в свою очередь, является документом-регистратором в РН Продажи (да даже неважно, в каком).
Непонятные отсылки к Книга знаний: v8: Виртуальные таблицы запросов (а что там сказано про параметры ВТ вообще и отборы в частности?) и к книге "Проф.разработка 1С8" (а нет там даже строчечки о том, что в отборах ВТ к РН НЕЛЬЗЯ использовать реквизиты и прочее, а только ИЗМЕРЕНИЯ самого РН - стр. 231 "Получение данных из РН и применение отборов к РН") - непонятны в силу "а к чему они были приведены?", и поэтому прошу их не давать.
Вот значит, что получается: документ как регистратор является костяком всего регистра (и должен являться ведущим и для производного от регистра - виртуальной таблицы с её итогами; ведущим - т.е. уж по нему-то я должен получать полную информацию при любом виде запроса к регистру), а отбор по его реквизиту я могу сделать только обыкновенным способом - через ГДЕ уже после формирования ВТ (тогда зачем она вообще нужна, если я могу и сам регистр запросить с точно таким же успехом).
Для наглядности, о чем речь - пример:

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

ИТОГИ
  СУММА(СуммаВзаиморасчетовОборот)
ПО
  ОБЩИЕ

И полностью согласен с Гением1С - зачем вообще нужен параметр-отбор в ВТ (да и само понятие ВТ - если смотреть на это с точки зрения требования быстродействия с одной стороны, и невозможности в данном случае пользоваться этим быстродействием - с другой), если я не могу прописать в её отборе:
РегистрНакопления.СуммаПродажОборот.Обороты(&НачПериода, &КонПериода, Регистратор, Регистратор.Контрагент.Адрес = &Адрес) КАК СуммаПродажиОбороты
- и только потому, что Регистратор - не ИЗМЕРЕНИЕ регистра накопления Продажи, а "всего лишь" РЕГИСТРАТОР! :)
1 Odavid
 
14.05.10
12:51
Отвечаю Широкий: а причем тут SQL-запросы?
Это формирование запросов от 1С к SQL, и все восклицания - к 1С: почему так, и что теперь делать.

Пользуюсь в основном ГДЕ
2 Sammo
 
14.05.10
12:54
По разному. В некоторых случаях быстрее отработает условие в виртуальной таблице. Иногда перенос условия в ГДЕ ускоряет работу запроса
Другое
3 Mitriy
 
14.05.10
12:55
(0) вообще-то костяком, если уж речь пошла о костяках, является не регистратор, а как раз измерения...
4 Odavid
 
14.05.10
12:57
(2) весь нюанс - а зачем ВТ, если её нельзя использовать? Не универсальный механизм, призванный якобы ускорять выполнение запроса, да еще столько вокруг в самой платформе 1С накручено (а уж восхвалений в книжках - сотни страниц, причем об ограничениях - ни гу-гу), а применение - строго ограничено.
5 Odavid
 
14.05.10
12:58
(3) вы регистр РН зачем вообще создаете? Измерения в нем хранить?
6 Sammo
 
14.05.10
13:00
(4) Я сказал что нельзя? Можно.
А использовать хотя бы потому, что в некоторых случаях работает быстрее
7 Sonny
 
14.05.10
13:04
Ну сделай регистратор измерением, если так уж приспичило. Кто мешает-то? Зачем косяк проектирования структуры какого-то конкретного регистра валить на платформу?
8 Odavid
 
14.05.10
13:08
(6) ... только эти некоторые случаи ограничиваются очень сильно :)
И об этом нособо не распространяются в теории :)
(7) и что в результате получится в уж готовой типовой конфигурации, работающей несколько лет?
9 Sammo
 
14.05.10
13:11
Ихмо, из частного случая невозможности наложить условие по реквизиту делается глобальный вывод о ненужности механизма.

P.S. Ассоциация. В 1с нет операций ++ и --. Вывод: механизм арифметических операций реализован криво и должен быть удален.
10 kiruha
 
14.05.10
13:12
(0)
Может Вам про индексы почитать, про оптимизатор ....
Попробуй подобрать вручную...

В конце концов измерения проведи...

Обсуждать нечего - только собственные непонятки
11 Sonny
 
14.05.10
13:12
(8) Ты бы определился что тебя не устраивает: платформа или типовые?
12 Всеяд
 
14.05.10
13:15
(0) Нет варианта КГ/АМ
13 kiruha
 
14.05.10
13:20
(0)
Почитай на досуге, как ты в ручном режиме будешь использовать эти таблицы
c разными вариантами отборов
>>
Размещение  данных  1С:Предприятия  8.1. Таблицы  и поля

Регистры накопления

Для каждого регистра накопления создается таблица движений (_AccumReg<n>) с полями:

   * _Period - момент времени движения;
   * _Recorder<suff> - ссылка на регистратор;
   * _LineNo - номер движения по данному регистратору;
   * _Active - признак того, что движение активно (участвует в подсчете остатков и оборотов);
   * _RecordKind - вид движения (приход/ расход);
   * _Fld<n><suff> - измерение, ресурс или реквизит (для каждого измерения, каждого ресурса и каждого реквизита);
   * _DimHash - хеш функция измерений. Поле присутствует, если количество измерений не позволяет организовать уникальный индекс по измерениям.

Если регистр поддерживает остатки, то создается таблица остатков (_AccumRegTotals<n>) с полями:

   * _Period - момент времени, на который посчитаны остатки;
   * _Fld<n><suff> - измерение или остаток по ресурсу (для каждого измерения и каждого ресурса).

Если регистр поддерживает обороты, то создается таблица оборотов (_AccumRegTurnovers<n>) с полями:

   * _Period - момент времени, на который посчитаны обороты;
   * _Fld<n><suff> - измерение или оборот по ресурсу (для каждого измерения и каждого ресурса).

Если регистр накопления участвует хотя бы в одном плане обмена, то создается таблица регистрации изменений (_AccumRegChangeRec<n>) с такими же полями, какие у таблицы регистрации изменений последовательности.

Если конфигурация содержит хотя бы один регистр накопления, то создается одна таблица настроек хранения итогов (_AccumRegOptions) с полями:

   * _RegID - идентификатор регистра накопления;
   * _Period - периодичность хранения итогов. Не используется;
   * _ActualPeriod - хранение актуальных итогов;
   * _Periodicity - периодичность регистра;
   * _RepetitionFactor - кратность. Не используется;
   * _UseTotals - использовать итоги;
   * _MinPeriod - минимальный период с которого надо пересчитывать итоги;
   * _UseSplitter - использовать разделитель итогов (для обеспечения параллельности проведения документов)
14 Odavid
 
14.05.10
15:44
(13) да вот как-бы мне не нужны обороты по каждому реквизиту - а по регистратору в целом. Правильно, поэтому в итоговой виртуальной таблице нет поля _Fld<n><suff> по реквизиту. Это и не нужно.
Как писал Гений1С - нужно, чтобы был один вариант инструкции отбора, и если 1С "могет" - пусть все выбирает по "виртуальной таблице", а не может - накладывает условие "которое не может" уже после формирования ВТ (как ГДЕ).
И не пришлось бы огород городить с "обычными регистрами" и "виртуальными таблицами" - а был бы просто механизм запроса к регистру, быстро делающий отбор по измерениям (раз не смогли реализовать быстро по ссылочным объектам), и медленно - по всем остальным вариантам.
Кто из вас даст пример, когда нужно "медленно" получить данные по тем же измерениям РН, используя "обычный" метод доступа, и не нужно быстро - "с помощью ВТ"??
15 Odavid
 
14.05.10
15:51
Вообще, странно - вся база в виде одной большой "таблицы" с ключами, а 1С не может быстро найти ссылки на ссылки.
Хотя - понятно: подробный механизм обработки СУБД SQL был отвергнут (мы умнее), а введен "как бы такой же или даже мощнеее" свой собственный - сначала преобразующий и обрабатывающий данные сам (1С-сервер), передающий их SQL, который сам тоже обрабатывает их по-своему(для хранения и быстрого доступа).
1С - не СУБД, и никогда ей не будет, вот и вся немощь 1С от этого.
А по логике - либо должна ей быть, либо д.б. полностью всю работу на ней строить.
16 H A D G E H O G s
 
14.05.10
15:51
Параметры ВТ работают на 100%
1) Если есть отбор по Измерениям - тогда норм.
2) Если есть отбор по Реквизитам Измерений - юзаем ВременныеТаблицы из Пакетных запросов.
17 H A D G E H O G s
 
14.05.10
15:52
(16) Или тут Холивор только по поводу Регистратора из Оборотного регистра?
18 Sonny
 
14.05.10
15:58
(14) Это уже претензии к синтаксису языка запросов пошли?
(15) Трехзвенная архитектура лучше масштабируется. Не стоит охаивать то в чем слабо разбираешься.
19 Odavid
 
14.05.10
17:37
(18) вот не надо про масштабируемость, "знаток".
Там точно такие же ограничения (своего рода), как и при работе с виртуальной таблицей.
20 Odavid
 
14.05.10
17:41
(16) а вопрос "как получить отбор по реквизиту с использованием ВТ" попадает под холивар?
И можно пример, как использовать временные таблицы в отборе ВТ? Учтите, что отбор НЕ ПО измерению (по реквизиту измерения я запрос-отбор и так напишу в параметрах ВТ, без всяких врем.таблиц), а по регистратору.
21 Sonny
 
14.05.10
17:52
(20) С отбором по регистратору можешь использовать таблицу движений. На кой хрен в данном случае тебе сдалась виртуальная?
22 Odavid
 
14.05.10
17:56
Это как так?! :)
Мне нужна выборка из регистра, тут документ постольку поскольку является регистратором :)
23 Sonny
 
14.05.10
18:07
(22) Ты может определишься все-таки что тебе надо? Только те записи, которые принадлежат определенным регистраторам или что-то другое? Если тебе нужен именно ОТБОР, тогда выбирай из таблицы движений.
24 Odavid
 
14.05.10
18:10
(23) да, определенным регистраторам, - плюс отбор еще по реквизиту регистратора, например. Причем тут движения? Строки движений я и так найду, по регистратору.
25 Sonny
 
14.05.10
18:20
(24)
ВЫБРАТЬ
   Продажи.Регистратор,
   СУММА(Продажи.Стоимость) КАК Стоимость
ИЗ
   РегистрНакопления.Продажи КАК Продажи
ГДЕ
   Продажи.Регистратор.Контрагент.Адрес = &Адрес

СГРУППИРОВАТЬ ПО
   Продажи.Регистратор

Этим вопрос исчерпывается.
26 vandalsvq
 
14.05.10
19:29
(0) если честно предмет вопроса мне непонятен. Я бы лучше поставил вопрос, а почему еще нет параметра СОЕДИНЕНИЯ, и возможность ограничить выборку только одним ресурсом (если есть необходимость).

Пользуюсь в основном отбором (по измерениям)
27 Immortal
 
14.05.10
19:59
ГДЕ допустимо при очень больших объемах данных,
ВТ лучше использовать, чем обращения к основной таблице - в основную пишут документы,
Параметры ВТ можно использовать, если явно их указывать, без запросов в параметрах ВТ.

голосовалка ниочем
28 Immortal
 
14.05.10
20:00
(25)регистр неправильно спроектирован.
29 Defender aka LINN
 
14.05.10
20:43
(14) Лови гранату:

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

Куда надо пеоместить условие?

Пользуюсь в основном отбором (по измерениям)
30 NcSteel
 
14.05.10
20:57
Ибо так в разы быстрее. А если еще прикрутить умеючи временные таблицы , то ух как хорошо.

Пользуюсь в основном отбором (по измерениям)
31 Лефмихалыч
 
14.05.10
21:41
глупый вопрос теоретика, который сам ни разу не пробовал

Пользуюсь в основном отбором (по измерениям)
32 notton
 
14.05.10
23:37
(0) вот челу заняться то нечем
33 Odavid
 
14.05.10
23:50
(29) 1C-cпециалист? Оно и видно.
Сказано же уже, что по ИЗМЕРЕНИЯМ можно отловить реквизиты, это и без вас уже я писал. И условие Резервы.Склад - при наличии такого реквизита у РН ТоварыНаСкладах, - поместится в РегистрНакопления.ТоварыВРезерверНаСкладах.Остатки (,,,Склад.АдресСклада В (&СписокСкладов)). И запрос там же поместится, и массив - был бы только измерением регистра отбираемый элемент.
А вот если он не входит в число "избранных" - все, только через ГДЕ.
И где в данном примере увеличение быстродействия и "юзание преимущества виртуальных таблиц", если все равно сначала отбор в ВТ идет всего и вся, причем два раза (и то даже не по регистратору, а по опять измерению), а потом обычный "медленный" отбор по Складу?
34 Odavid
 
14.05.10
23:56
(27) "ГДЕ допустимо при очень больших объемах данных" - т.е. ВТ тут опять в пролете? Зачем тогда и высший смысл возни вокруг неё?
"ВТ лучше использовать, чем обращения к основной таблице - в основную пишут документы,
Параметры ВТ можно использовать, если явно их указывать, без запросов в параметрах ВТ." - не понял, расшифруйте :)
"В основной регистр пишут [записи, данные] документы.." а дальше выпали целые слова, стало совсем непонятно.
(28) А что такое "правильный" регистр? У вас регистры проектируются по одинаковые инструкции, а не по месту и назначению?
(26) А как вы видите в ВТ другие виды соединений!? И пожалуйста, берите одно измерение в отбор, и выбирайте по нему.
35 Odavid
 
14.05.10
23:58
(30) вы повторяете за другими или как? вот хоть бы пример кто привел применения в отборе ВТ временных таблиц. Интересно взглянуть, что туда пихают :)
36 Odavid
 
15.05.10
00:06
Итак, нечто, громко названное "механизм виртуальных таблиц", оказалось на деле просто сверткой по измерениям, и, как всегда, с добавками в виде одинэсовского взгляда на мир.
Ну так и сделали бы просто: месяц кончился - дополнительно вписывается в регистр строка итогов по числовым измерениям тут же, ставится особый ключ "ЭтоИтоги!!!" - и вуаля, выбирай по ключу итоги за месяц или как тебе надо. И никакого "особого механизма виртуальных таблиц", вообще никаких дополнительных таблиц на сервере.
И отбор можно было бы также по итоговым (+непопавшие до итога записи при "неитоговом" периоде выборки) только строкам делать.
Но нет, замутим этакое, чтобы выглядело как ВОООТ, а уж работать - ну как-нибудь.
37 Immortal
 
15.05.10
00:47
(34)ВТ нужна для получения строго определенных наборов данных. Остатков, например.
"Пишут документы"- блокировки при записи данных.
В 1С правда почти везде "грязное" чтение, но особого утешения это не доставляет.
"Запросы в параметрах ВТ" - RTFM

"Правильный регистр" - структура таблицы, при которой не требуется разыменований, обращений через точку.
38 Вуглускр1991
 
15.05.10
00:59
Такое впечатление, что структуру регистра разрабатывают одни, а запросы пишут другие. Вот уже когда придумываете регистр тогда и думайте, как сделать максимальное использование ВТ в будущих запросах. От одного индекса и плюсодного измерения база не попухнет.

Пользуюсь в основном отбором (по измерениям)
39 Odavid
 
15.05.10
01:20
(38) очень смешно.
Вы в 1С на каждую типовую конфу такое пишете? :)))
Типа, ребята, думайте, прежде чем мне такую поделку подсовывать?
40 Odavid
 
15.05.10
01:25
(34) в (36) я вам описал, как получение тех же остатков можно было сделать нормальным способом.
У вас уже в RTFM появились "соединения в ВТ" или, все-таки, запросы в параметрах? Которые сами по себе отношения к ВТ не имеют, а только РАЗРЕШЕНЫ к использованию в ограниченном виде (как вложенный запрос во вложенный запрос)?
Про "правильный" регистр - это вам с Вуглускр1991 надо, может, вдвоем, пробьете 1С хоть в этом :)))
41 milan
 
15.05.10
02:02
(36) >> Итак, нечто, громко названное "механизм виртуальных таблиц", оказалось на деле просто сверткой по измерениям

а мужики то не знают...

разберись до конца что такое виртуальные таблицы, глупые вопросы отпадут сами собой.

Пользуюсь в основном отбором (по измерениям)
42 Odavid
 
15.05.10
02:56
(41) глупая реализация - вызывает, по меньшей мере, недоуменные вопросы своим существованием. Вы сначала разберитесь, что такое "механизм виртуальных таблиц" по 1С, и что такое свертка регистра по ключевым полям.
И обсудите с мужиками. Где вы там обсуждаете. И тогда мужики тоже знать будут :)
43 milan
 
15.05.10
03:46
(42) спасибо, я знаю что такое свертка регистра, механизм похожий на виртуальные таблицы использовал в системе биллинга, когда в таблице регистра в сутки по 2 млн записей, не очень хочется считать по ней сальдо счета, а хочется взять сальдо на конец рассчитанного периода и добавить не попавшие в этот период движения, это тебе вт остатки.
С оборотами не менее весело, порой хочется свернуть по месяцу, порой по дню, за разные периоды, опять колбасить гигабайты ???
Опять же запросы оборотов остатков и среза к основным таблицам получаются однотипными, почему их не заменить на инструкцию обращения к вт???

Кстати твой запрос в  (0) показывает что ты не понимаешь, что делаешь, грамотные люди тебе намекали по ходу ветки, но чукча не читатель...
44 Мерседес
 
15.05.10
04:43
Как в требованиях к спецу было сказано, так и использую

Пользуюсь в основном отбором (по измерениям)
45 Odavid
 
15.05.10
12:44
(43) ну конечно, грамотные люди держат в секрете тайны массонской ложи, не переставая оставаться грамотными людьми :))
Вот только грамоты, видно, не хватает, чтобы понять, что вопрос не "как написать запрос через ГДЕ", а как в данной конструкции использовать ВТ? А если нельзя - то почему этот механизм так распиарен, да еще и прославлен и начищент в книжках до блеска?
46 Ksandr
 
15.05.10
14:06
всё не читал. Но голос свой оставлю.

Так быстрее!

Пользуюсь в основном отбором (по измерениям)
47 milan
 
15.05.10
14:50
(45) присоединяйся к ложе :-)
в случае отбора по измерениям будет меньше кода в запросе, значит меньше ошибок, лучше оптимизация запроса,
48 Мебиус
 
15.05.10
15:29
(0)
Механизм виртуальных таблиц, по сути  - это обернутое обращение к таблице остатков/оборотов и движений. Платформа сама решает, что ей взять  данный момент и из какой таблицы (часть из остатков/оборотов, а часть из движений). Причем делает это на своем низком/быстром уровне.

Основное назначение ВТ  - быстрое получение остатков/оборотов по набору измерений за счет использования агрегатов. Сам по себе механизм виртуальных таблиц никакого быстродействия не несет. Обращение к данным ускоряется только за счет использования агрегатов.

Если нужно обратится к оборотам  РН с детализацией по регистратору, то  использование агрегатов без необходимости.  Даже более того, накладные расходы будут выше. Проще напрямую обратится к физической таблице регистра.

Если же по условиям задачи необходимо получать обороты в разрезе регистраторов.  Добавить новое измерение. В типовых именно так и сделано  - измерение "Документ продажи" в РН "Продажи". Хотя эффективность данного подхода сомнительна.

В общем случае для понимания сути и назначения механизмов было бы неплохо прочитать про структуру хранения данных в РН в книжке  "Профессиональная разработка в системе 1С:Предприятие 8" http://v8.1c.ru/metod/books/book.jsp?id=63.

Так же неплохо было бы глянуть  физическую структуру таблиц РН в SQL.  А если интересует физический механизм работы ВТ то с помощью профайлера разобрать план запроса и текст запроса в РН.

Пользуюсь в основном отбором (по измерениям)
49 Офелия
 
16.05.10
00:07
(45) А какие еще измерения в регистре Продажи? Нельзя найти всех контрагентов с нужным адресом, а в параметры виртуальной таблицы передать список контрагентов?

// Каждый механизм для своего, и для чего ВТ "распиарен" - он прекрасно справляется. Используйте вещи по своему назначению :)

Пользуюсь в основном отбором (по измерениям)
50 Odavid
 
16.05.10
12:02
(49) в том и дело, что измерения Контрагенты нет, есть только Регистратор (и то не измерение, а предопределенное поле). В параметры ВТ нельзя передать то, что не является измерением или его частью.
И отбор по контрагентам с нужным адресом вначале - это уже использование ГДЕ, а не ВТ :)
51 Odavid
 
16.05.10
12:09
(48) "Основное назначение ВТ  - быстрое получение остатков/оборотов по набору измерений за счет использования агрегатов. Сам по себе механизм виртуальных таблиц никакого быстродействия не несет."
Так что помешало сделать так, как описано в (36)? И никаких поисков "по другим таблицам" и прочих "преимуществ" :). А также бы отпало желание пиарить ВТ вне свертки регистра по остаткам/оборотам.

"Добавить новое измерение. В типовых именно так и сделано  - измерение "Документ продажи" в РН "Продажи""
В УТ не нашел такого измерения. И "добавить новое" - это если на этапе разработки, а не когда уже база наработана, и "Продажи" так заполнен, что скоро под собственной тяжестью рухнет :(
52 Мебиус
 
16.05.10
12:22
(51)
"Так что помешало сделать так, как описано в (36)? "

А добавить  себе проблем с определением что мы в текущий момент бурум из итогов а что из движений. А если произвольная переодичность нужна (кварлал, месяц, год). Разработчики платформы значительно упростили жизнь всем.

В общем то - хочется своей структуры. Пиши на РС (обычной плоской таблице) свой РН и будут тебе счастье. Никто не мешает.

"В УТ не нашел такого измерения" В какой версии?
Может там и измерения тоже  "Контрагент" нет?


Да и кстати запрос из (0) просто ужас как с точки зрения смого написния так и с точки зрения SQL. Не поленитесь - откройте профайлер и посмотрите что он из себя представляет.
53 Odavid
 
16.05.10
23:53
(52) будете смеяться - но в в моей версии, в которой пишу, нет и поля Контрагент!
А теперь посмеюсь я - как, интересно, продажу в розницу вы запишете на контрагента? Интересно - на какого спишете? :))
Делать по кварталу (месяцу, году) в (36) - все также, как делает 1С сейчас: брать итоги за месяц, а потом, если период не совпадает, вычитать (прибавлять - как удобно) недостающие продажи. И все из этого же регистра, и никаких "доптаблиц, ускоряющих (засирающих базу) работу". И намного быстрее, чем за весь период считать "напрямую перебором"(именно за счет уже расчитанных итогов - только они в самой таблице уже будут; все - как в 1С, только умнее; и давно уже взято на вооружение путными системами СУБД). Или опять непоняли простой сути? :)
И насчет профилера - что я должен открыть в PostgreSQL?
54 Офелия
 
17.05.10
00:24
(53) Контрагента нет, а адрес есть? Может все-таки от теоретических вопросов перейти к решаемой задаче? :)
55 Odavid
 
17.05.10
00:32
(54) ну знаете, иногда заглядывает такой како-нить дядечка солидный, и говорит: "я вот буду у вас покупать 1 раз в месяц, но регулярно и партию в 5000 коробок. А вы мне скидочку какую-никакую, идет?" Вот он уже - контрагент :)
56 Odavid
 
17.05.10
00:33
...и право слово, не заводить же отдельный регистр на дядечку...
57 Офелия
 
17.05.10
00:56
То есть вы его идентифицировать хотите по адресу? А если еще кто-то по такому же адресу купит? Я бы завела контрагента ИП "Солидный дядя - аноним". Кстати идея с отдельным регистром неплохая, раз в Продажах даже нет контрагента (кстати как тогда вы другим клиентам обсчитываете накопительные скидки?). Тут нам не только виртуальная, но и физическая таблица ничем не поможет. Кажется ВТ просто под раздачу попала :)
58 Advan
 
17.05.10
02:08
(0)Если у тебя есть сертификаты - то выкинь их и получи снова и так до полного просветления.

Пример быстродействия ВТ - совсем недавно немного поправил обработку от одного очень крупного франча - просто перенес условия из где в свойства виртуальной таблицы - время действия обработки уменьшилось с 1-2х часов до 5 минут
59 Advan
 
17.05.10
02:08

Пользуюсь в основном отбором (по измерениям)
60 Advan
 
17.05.10
02:09
А за использования где тогда когда нужно использовать условия в свойствах ВТ руки бы отрывал...
61 Odavid
 
17.05.10
02:59
(5*) еще один 1С-специалист? Ребят, вы хотя б профессионалами пытаетесь стать или так, куда повернут, туда и смотрим?
62 milan
 
17.05.10
11:33
(61) Все еще не понял что такое ВТ и с чем едят ???
в (48) по-моему отлично все расписано
63 Odavid
 
18.05.10
09:21
(62) здесь вопрос поднят несколько другой - зачем такое распиаренное средство передвижения, если оно ездит только в одном направлении и при попутном ветре.
ВТ - это свертка регистра по измерениям в оригинальном исполнении 1С.
64 Defender aka LINN
 
18.05.10
09:22
(63) Нормально оно ездит. Приложи линейку к рукам.
(61) Ты так говоришь, как будто это что-то плохое.
65 Odavid
 
04.06.10
12:53
(64) это жутко ограниченное средство, которое ПО УМОЛЧАНИЮ продвигается как универсальное средство получения данных из регистра.
66 Odavid
 
04.06.10
12:55
(64) - да, я уже заметил, что прямые руки только у тех, кто дальше мануала ("Краткой истории партии") не ездит.
67 IamAlexy
 
04.06.10
12:56
странно что нет до сих пор темы


"справочники vs документы"

или "регистр бухгалтерии vs регистр накопления"


вполне в духе этой темы....
68 Odavid
 
04.06.10
13:01
(67) потому как 1С-ники и их описатели взяли на себя труд расписать назначения, различия, ограничения и способы использования как тех, так и других.
69 hhhh
 
04.06.10
13:04
(68) ну не пользуйся 1С. Чего ты пристал? Ведь куча других программ есть. И никто тебя не заставляет пользоваться ВТ. Можешь не пользоваться. Как будто мы все собрались, приставили тебе нож к горлу и требуем пользоваться ВТ.
70 Defender aka LINN
 
04.06.10
13:28
(66) "Пришла тушеночная невеста и нас всех разоблачила" © Даун-Хаус
Смотрю, (29) броню черепной коробки не одолело, но тем не менее:
Запрос №1:

ВЫБРАТЬ
   Номенклатура,
   Цена
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦен)
ГДЕ
   Цена >= &Цена

Запрос №2:

ВЫБРАТЬ
   Номенклатура,
   Цена
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ТипЦен = &ТипЦен И Цена >= &Цена)

Разницу крутому профессионалу объяснять надо?
71 Odavid
 
04.06.10
13:35
Для небронированных, и потому открытых и незащищенных от выветривания:
в пятый раз повторяю - я кружу вокруг Регистра Накопления, и примеры - по нему же (которые так и не предоставили).
Что если просто выбрать из регистра, и тоже самое из ВирТ - будет быстрее, это даже Вам понятно.
А если попытаться выбрать то, что обычным способом выбирается из регистра, а по ВТ - 1С не предусмотрела - вот об этом тема.
Читайте (33) - там суть.
72 Defender aka LINN
 
04.06.10
13:42
(71) "я кружу вокруг Регистра Накопления" - угу. Давайте для каждого чиха отдельные механизмы придумывать, так прикольно будет, прямо как в 7.7.
В (33) написано нечто, что не соотносится с сабжем никак, если что.
73 Odavid
 
04.06.10
13:51
77 намного более "программибельна", чем 8-ка - хотя и там не без SQL-недостатков :)
74 hhhh
 
04.06.10
13:54
(71) если вы вставите в ВТ регистратор, она естественно станет не быстрее, а медленнее чем обычная таблица, потому что по слову

Регистратор.Контрагент.Адрес

вы включаете в запрос соединение со всеми документами, которые могут быть регистратором этого регистра. То есть дополнительно 100 таблиц в запрос хотите засунуть.
75 Odavid
 
04.06.10
13:56
(71) правильно, потому что это - 1С.
А вот если б они не изобретали велосипед и сделали в ВТ отбор как в SQL (по индексам и ключевым строкам) - то и тем бы не было таких...
76 hhhh
 
04.06.10
14:33
(75) ну в 1С работают не такие придурки, как тебе хочется.
77 Odavid
 
04.06.10
16:00
да уж, достаточно взглянуть на 8.2 и вспомниь историю версий: 6-7.7-8.0-8.2
И восхититься глубиной и провиденьем 1С в отношении своего собственного продукта.
78 Odavid
 
04.06.10
16:07
Хотя чего говорить.... есть поклонники 1С, создатели которого даже не удосужились сделать безусловный переход GoTo...
79 Defender aka LINN
 
04.06.10
16:09
(78) Жгешь.