|
|
|
Виртуальные таблицы или ОТБОРЫ против ГДЕ -2 | ☑ | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
0
Odavid
14.05.10
✎
12:47
|
Итак, снова поднимаю тему про параметры-отборы в виртуальных таблицах и их смысл.
Прочитав глас одинокого вопиющего Гения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С: почему так, и что теперь делать. Пользуюсь в основном ГДЕ |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |