Имя: Пароль:
1C
1С v8
Как выбрать давно не используемую номенклатуру
,
0 Csar
 
05.09.13
13:40
Всем привет.
Подскажите, пожалуйста с запросом. Задача вывести список номенклатуры, которая не использовалась с определенной даты. Я нарисовал запрос, но не уверен, что он оптимален по времени - вторая часть запроса с использованием ВТ ооочень тормозит, в то время как первая 10 секунд выполняется.
Принцип у меня такой. Сначала формирую список номенклатуры, которая использовалась после указанной даты (включая остатки, но не будем на этом зацикливаться), а затем второй частью запроса я вывожу всю номенклатуру справочника, исключая ранее сформированный список:
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК ИспользуемаяНоменклатура,
    ХозрасчетныйОстаткиИОбороты.Субконто1.Код КАК ИспользуемаяНоменклатураКод
ПОМЕСТИТЬ ВТНоменклатураИспользуемая
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериод, , , , , , Субконто1 ССЫЛКА Справочник.Номенклатура) КАК ХозрасчетныйОстаткиИОбороты

ИНДЕКСИРОВАТЬ ПО
    ИспользуемаяНоменклатура
;

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

Может можно как то менее ресурсоемко реализовать?
1 rbcvg
 
05.09.13
13:42
"РегистрБухгалтерии.Хозрасчетный" - то, что номенклатура не только здесь используется тебе, конечно, известно.
2 Wobland
 
05.09.13
13:43
где не ссылка в (используемая)
плюс различные
3 KarpovDeniska
 
05.09.13
13:43
Где Не Номенклатура.Ссылка в (ВТНоменклатураИспользуемая.ИспользуемаяНоменклатура)
4 Csar
 
05.09.13
13:43
(2) так?
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1 КАК ИспользуемаяНоменклатура,
    ХозрасчетныйОстаткиИОбороты.Субконто1.Код КАК ИспользуемаяНоменклатураКод
ПОМЕСТИТЬ ВТНоменклатураИспользуемая
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериод, , , , , , Субконто1 ССЫЛКА Справочник.Номенклатура) КАК ХозрасчетныйОстаткиИОбороты

ИНДЕКСИРОВАТЬ ПО
    ИспользуемаяНоменклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Номенклатура.Ссылка,
    Номенклатура.Код
ИЗ
    Справочник.Номенклатура КАК Номенклатура,
    ВТНоменклатураИспользуемая КАК ВТНоменклатураИспользуемая
ГДЕ
    НЕ Номенклатура.Ссылка В (ВТНоменклатураИспользуемая.ИспользуемаяНоменклатура)
5 Wobland
 
05.09.13
13:44
(4) из одной таблицы
6 Wobland
 
05.09.13
13:44
в (выбрать номенклатура из...)
7 Csar
 
05.09.13
13:45
(1) я понимаю, но предполагается, что интересует именно движение по счетам номенклатуры.
8 Wobland
 
05.09.13
13:45
группы, наверное, выбирать не надо
9 Csar
 
05.09.13
13:48
(6) похоже?
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Номенклатура.Ссылка,
    Номенклатура.Код
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Ссылка В
            (ВЫБРАТЬ
                ХозрасчетныйОстаткиИОбороты.Субконто1 КАК ИспользуемаяНоменклатура
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериод, , , , , , Субконто1 ССЫЛКА Справочник.Номенклатура) КАК ХозрасчетныйОстаткиИОбороты)
10 Wobland
 
05.09.13
13:49
(9) различные во вложенный пересунь. как-то так
11 Csar
 
05.09.13
13:49
(8) я обратил внимание, что если ставить условия на проверку группы или услуги, то запрос работает дольше чем если бы без этой проверки. А в результирующую таблицу группы и так не попадут.
12 Csar
 
05.09.13
13:50
(10) а зачем там? Ведь вроде бы и так все различные элементы номенклатуры? Я тут не совсем понимаю с "Различные".
13 Wobland
 
05.09.13
13:51
(12) номенклатура в (список из 20 тыщ одинаковых) - сколько сравнений будет
14 Csar
 
05.09.13
13:53
(13) я имею ввиду, что список запроса:
ВЫБРАТЬ
                ХозрасчетныйОстаткиИОбороты.Субконто1 КАК ИспользуемаяНоменклатура
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериод, , , , , , Субконто1 ССЫЛКА Справочник.Номенклатура) КАК ХозрасчетныйОстаткиИОбороты

содержит только различные элементы ведь?
15 Csar
 
05.09.13
13:53
Ну, в любом случае это условие не помешает наверное.
Спасибо большое!
16 Wobland
 
05.09.13
13:53
(14) не вижу к этому никаких оснований
17 Csar
 
05.09.13
13:54
(16) я понял. Спасибо большое!
Закон Брукера: Даже маленькая практика стоит большой теории.