Имя: Пароль:
1C
1С v8
Управляемые формы. Подскажите пожалуйста, почему кусок кода долго отрабатывает
0 espanol
 
22.05.12
13:07
&НаСервере
Функция ПереопределениеЦены()
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ЕСТЬNULL(ЦеныСрезПоследних.Цена, 0) КАК Цена,
   |    ПодборАксессуаровТовары.Номенклатура
   |ИЗ
   |    Документ.ПодборАксессуаров.Товары КАК ПодборАксессуаровТовары
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(
   |                &Дата,
   |                ПодразделениеКомпании = &ПодразделениеКомпании
   |                    И ТипЦен = &ТипЦен) КАК ЦеныСрезПоследних
   |        ПО ПодборАксессуаровТовары.Номенклатура = ЦеныСрезПоследних.Номенклатура
   |ГДЕ
   |    ПодборАксессуаровТовары.Ссылка = &Ссылка";
   Запрос.УстановитьПараметр("ПодразделениеКомпании", Объект.ПодразделениеКомпании);
   Запрос.УстановитьПараметр("ТипЦен",                Объект.ТипЦен);
   Запрос.УстановитьПараметр("Дата",                  Объект.Дата);
   Запрос.УстановитьПараметр("Ссылка",                Параметры.Ключ.Ссылка);
   
   Результат = Запрос.Выполнить().Выгрузить();
1 ДенисЧ
 
22.05.12
13:12
индексы по всем полям есть?
2 shuhard
 
22.05.12
13:19
(0) типичный пример как не надо писать

у тебя из Рг сведений тащиться вся номенклатура, а надо ограничиться ТЧ Документ.ПодборАксессуаров.Товары
3 Ns33
 
22.05.12
13:26
Я делаю запросы по остаткам примерно так:

ВЫБРАТЬ
   ОказаниеУслугиПереченьНоменклатуры.Ссылка,
   ОказаниеУслугиПереченьНоменклатуры.Номенклатура КАК Номенклатура,
   ОказаниеУслугиПереченьНоменклатуры.Количество,
   ОказаниеУслугиПереченьНоменклатуры.Цена,
   ОказаниеУслугиПереченьНоменклатуры.Сумма
ПОМЕСТИТЬ ТЧДокумента
ИЗ
   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
ГДЕ
   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТЧДокумента.Номенклатура,
   ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Кво
ИЗ
   ТЧДокумента КАК ТЧДокумента
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
               &период,
               Номенклатура В
                   (ВЫБРАТЬ
                       ТЧДокумента.Номенклатура
                   ИЗ
                       ТЧДокумента КАК ТЧДокумента)) КАК ОстаткиМатериаловОстатки
       ПО ТЧДокумента.Номенклатура = ОстаткиМатериаловОстатки.Номенклатура
4 espanol
 
22.05.12
13:31
(2) (3) точно веть! спасибо!