Имя: Пароль:
1C
1С v8
v8: Запрос. Производительность
0 Ministr
 
24.04.14
16:23
В запросе ест группировка. Есть допустим в запросе документ "реализация товаров и услуг" и его табличная часть соединенная левым соединением к нему. В запросе поля - Ссылка, Контрагент, Договор, Банковский счет, и прочие поля шапки и есть поля табличной части номенклатура , сумма. При группировке Ссылка, номенклатура - идут в "Групповое поле", а сумма - в "Суммируемое поле". А где лучше расположить остальные реквизиты ? в суммируемом поле и взять максимум или минимум без разницы или в группируемое поле? Какой из вариантов отработает быстрее? Задали вопрос на собеседовании, друг рассказал вчера. Я уверен в группируемое поле, он почему-то говорит наоборот, как считаете вы?
1 Ministr
 
24.04.14
16:26
То есть реквизитам Контрагент, Договор , без разницы, где находиться результат будет один и тот же, так как группировка по ссылке уже гарантирует, корректную группировку по шапке
2 ИА1С
 
24.04.14
16:27
А за чем соединять сам документ и табличную часть? Нельзя сразу взять табличную часть и из ссылки вынуть все что надо?
3 Ненавижу 1С
 
гуру
24.04.14
16:28
(2) не увидишь документов с пустой ТЧ
4 Ministr
 
24.04.14
16:28
Это к примеру, понятно, что можно взять подчиненные поля ссылки получим в тоже самое, но чтобы избавить от дублей строк в Таб. части документа все равно придется группировать записи. Вот этом вопрос заключается
5 Ненавижу 1С
 
гуру
24.04.14
16:29
(0) можно вообще их игнорировать, вот рабочий запрос:

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.Склад,
    РеализацияТоваровУслуг.Контрагент,
    СУММА(РеализацияТоваровУслуг.СуммаДокумента) КАК СуммаДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслуг.Ссылка
6 Ministr
 
24.04.14
16:31
(5) Зайдешь после в конструктор увидишь что они автоматом попадут в группируемое поле.
7 Ненавижу 1С
 
гуру
24.04.14
16:32
(6) согласен, но тем не менее))
8 hhhh
 
24.04.14
17:02
(6) если сгруппировать по Ссылка, группировка по Ссылка.Контрагент, Ссылка.Склад не имеет смысла, это лишнее время просто.
9 Ministr
 
24.04.14
17:07
(8) ну вот и получается, что засовывать их в агрегатные функции - это будет потеря времени, поэтому конструктор вносит поля в "группируемые поля"(поля которые пользователь не указал явно) и скорей всего в запросе игнорирует, если есть группировка по полю родитель. А может он их игнорирует в общем случае и нету разницы куда их засунуть? Но отнести их к одной из групп надо обязательно, это в принципе логично.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший