Имя: Пароль:
1C
1С v8
ПродажиПоОплате
0 tnadya
 
02.04.12
11:45
Вопрос к знатокам. Помогите, где можно покопать. Есть отчет ПродажиПоОплате в файловом режиме работы 1С он работает минут 5, при переброски базы в SQL данный отчет с теми же настройками формируется минут за 30 или более. При чем не зависит от SQL postgrey или майкрософтовский. Из этого делаю вывод, что "собака" зарыта в базе 1С, что-то не так для SQL-ных таблиц. Может кто сталкивался с такой проблемой.

Вот код Запроса, именно он долго работает в SQL


ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
|    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот КАК СуммаПродажи,
|    ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот КАК КоличествоОборот,
|    ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоЕдиницДляОтчетовОборот,
|    ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Себестоимость,
|    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК Маржа,
|    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот КАК ЧистаяМаржа,
|    ((ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - ПродажиСДатамиЦенИДатамиКурсов.СебестоимостьОборот)/ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот)*100 КАК Рентабельность, //Макар. 2009.11.12.
|    0 КАК СуммаЗатрат,
|    РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяСебестоимость,
|    ПродажиСДатамиЦенИДатамиКурсов.СуммаПродажиОборот - РСЦеныКомпании.Цена * ПродажиСДатамиЦенИДатамиКурсов.КоличествоОборот * ПродажиСДатамиЦенИДатамиКурсов.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / РСЦеныКомпании.ЕдиницаИзмерения.Коэффициент * РСКурсыВалютыЦен.Курс / РСКурсыВалютыЦен.Кратность * РСКурсыВалютыУпрУчета.Кратность / РСКурсыВалютыУпрУчета.Курс * &КоэффициентОтБазовогоТипа КАК ПлановаяПрибыль,
|    ПродажиСДатамиЦенИДатамиКурсов.Регистратор КАК ДокументРеализации,
|    ПродажиСДатамиЦенИДатамиКурсов.Период КАК Период, //Макар. 2009.10.30.
|    ПродажиСДатамиЦенИДатамиКурсов.ПериодМесяц КАК ПериодМесяц, //Макар. 2009.10.30.
|    ПродажиСДатамиЦенИДатамиКурсов.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
|    ПродажиСДатамиЦенИДатамиКурсов.Подразделение КАК Подразделение,
|    ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя КАК ЗаказПокупателя,
|    ПродажиСДатамиЦенИДатамиКурсов.ДоговорВзаиморасчетовПокупателя КАК ДоговорВзаиморасчетовПокупателя,
|    ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя.Ответственный КАК Ответственный,
|    ПродажиСДатамиЦенИДатамиКурсов.ЗаказПокупателя.ОтветственныйИнженер КАК ОтветственныйИнженер,
|    ПродажиСДатамиЦенИДатамиКурсов.Номенклатура КАК Номенклатура,
|    ПродажиСДатамиЦенИДатамиКурсов.Контрагент КАК Покупатель
|{ВЫБРАТЬ
|    СуммаПродажи,
|    КоличествоОборот,
|    КоличествоЕдиницДляОтчетовОборот,
|    Себестоимость,
|    Маржа,
|    ЧистаяМаржа,
|    Рентабельность,
|    СуммаЗатрат,
|    ПлановаяСебестоимость,
|    ПлановаяПрибыль,
|    ДокументРеализации.*,
|    Период, //Макар. 2009.10.30.
|    ПериодМесяц, //Макар. 2009.10.30.
|    ХарактеристикаНоменклатуры.*,
|    ЗаказПокупателя.*,
|    Ответственный.*,
|    ОтветственныйИнженер.*,
|    ДоговорВзаиморасчетовПокупателя.*,
|    Покупатель.*,
|    Подразделение.*,
|    Номенклатура.*,
|    ПродажиСДатамиЦенИДатамиКурсов.ДокументПродажи.*}
|ИЗ (
|ВЫБРАТЬ
|    ПродажиОбороты.СтоимостьОборот*ДопКоэффициент КАК СуммаПродажиОборот,
|    (ВЫБОР КОГДА (ПродажиСебестоимостьОбороты.СтоимостьОборот) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьОбороты.СтоимостьОборот КОНЕЦ + ВЫБОР КОГДА (ПродажиСебестоимостьКорректировка.Стоимость) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьКорректировка.Стоимость КОНЕЦ)*ДопКоэффициент КАК СебестоимостьОборот,
|    ПродажиОбороты.КоличествоОборот*ДопКоэффициент КАК КоличествоОборот,
|    ПродажиОбороты.Регистратор,
|    ПродажиОбороты.Период, //Макар. 2009.10.30.
|    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
|    ПродажиОбороты.Номенклатура,
|    ПродажиОбороты.ХарактеристикаНоменклатуры,
|    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорВзаиморасчетовПокупателя,
|    ПродажиОбороты.Контрагент,
|    ПродажиОбороты.ЗаказПокупателя,
|    ПродажиОбороты.Подразделение,
|    ПродажиОбороты.ДокументПродажи,
|    СписокРегистраторов.ДатаКурсаВалютыУпрУчета,
|    МАКСИМУМ(РСЦеныКомпании.Период) КАК ДатаЦены,
|    МАКСИМУМ(РСКурсыВалют.Период) КАК ДатаКурсаВалютыЦены
|ИЗ
|    РегистрНакопления.Продажи.Обороты(, &ДатаКон, Регистратор,
|     {Номенклатура.*, ХарактеристикаНоменклатуры.*, ЗаказПокупателя.*, Подразделение.*, ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя, Контрагент.* КАК Покупатель, ДокументПродажи.*}
| ) КАК ПродажиОбороты

// Ниже пошел запрос, отвечающий за передачу Продажам только тех регистраторов, которые оплатились
// в течение периода отчета.
|    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
|     (ВЫБРАТЬ РАЗЛИЧНЫЕ
|     ОсновнаяТаблица.Регистратор,
|     ОсновнаяТаблица.Сделка,
|     МАКСИМУМ(ВЫБОР КОГДА
|     ВЫБОР //документ не был оплаченным на ДатаНач
|     КОГДА НеоплаченныеНаДатуКон.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
|     ОсновнаяТаблица.Период < НеоплаченныеНаДатуКон.Период
|     ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуКон.Период
|     И ОсновнаяТаблица.Регистратор<НеоплаченныеНаДатуКон.ПервыйРегистратор
|     ИНАЧЕ
|     ОсновнаяТаблица.Период <= &КонДата
|     КОНЕЦ
|     И
|     ВЫБОР //и стал оплаченным на ДатаКон
|     КОГДА НеоплаченныеНаДатуНач.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
|     ОсновнаяТаблица.Период > НеоплаченныеНаДатуНач.Период
|     ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуНач.Период
|     И ОсновнаяТаблица.Регистратор>=НеоплаченныеНаДатуНач.ПервыйРегистратор
|     ИНАЧЕ
|     ОсновнаяТаблица.Период >= &НачДата
|     КОНЕЦ ТОГДА 1
|     ИНАЧЕ -1 КОНЕЦ) КАК ДопКоэффициент,
|     МАКСИМУМ(РСКВ.Период) КАК ДатаКурсаВалютыУпрУчета //это даты курсов
|     ИЗ
|     РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ОсновнаяТаблица
|     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКВ
|     ПО РСКВ.Валюта = &ВалютаУпрУчета И РСКВ.Период<=ОсновнаяТаблица.Период

|     ЛЕВОЕ СОЕДИНЕНИЕ ("+ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуКон+") КАК НеоплаченныеНаДатуКон
|     ПО НеоплаченныеНаДатуКон.ДоговорКонтрагента = ОсновнаяТаблица.ДоговорКонтрагента
|     И НеоплаченныеНаДатуКон.Сделка = ОсновнаяТаблица.Сделка

|     ЛЕВОЕ СОЕДИНЕНИЕ ("+ТекстВложенногоЗапросаПоНеоплаченнымДокументамНаДатуНач+") КАК НеоплаченныеНаДатуНач
|     ПО НеоплаченныеНаДатуНач.ДоговорКонтрагента = ОсновнаяТаблица.ДоговорКонтрагента
|     И НеоплаченныеНаДатуНач.Сделка = ОсновнаяТаблица.Сделка

|     ГДЕ
|     ВЫБОР //документ не был оплаченным на ДатаНач
|     КОГДА НеоплаченныеНаДатуКон.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
|     ОсновнаяТаблица.Период < НеоплаченныеНаДатуКон.Период
|     ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуКон.Период
|     И ОсновнаяТаблица.Регистратор<НеоплаченныеНаДатуКон.ПервыйРегистратор
|     ИНАЧЕ
|     ОсновнаяТаблица.Период <= &КонДата
|     КОНЕЦ
|     И
|     ВЫБОР //и стал оплаченным на ДатаКон
|     КОГДА НеоплаченныеНаДатуНач.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
|     ОсновнаяТаблица.Период > НеоплаченныеНаДатуНач.Период
|     ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуНач.Период
|     И ОсновнаяТаблица.Регистратор>=НеоплаченныеНаДатуНач.ПервыйРегистратор
|     ИНАЧЕ
|     ОсновнаяТаблица.Период >= &НачДата
|     КОНЕЦ
|     ИЛИ
|     ВЫБОР //документ был оплаченным на ДатаНач, т.е. находился левее границы
|     КОГДА НеоплаченныеНаДатуНач.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
|     ОсновнаяТаблица.Период < НеоплаченныеНаДатуНач.Период
|     ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуНач.Период
|     И ОсновнаяТаблица.Регистратор<НеоплаченныеНаДатуНач.ПервыйРегистратор
|     ИНАЧЕ
|     ОсновнаяТаблица.Период < &НачДата
|     КОНЕЦ
|     И
|     ВЫБОР //и стал НЕоплаченным на ДатаКон, т.е находится правее границы
|     КОГДА НеоплаченныеНаДатуКон.ДоговорКонтрагента ЕСТЬ НЕ NULL ТОГДА
|     ОсновнаяТаблица.Период > НеоплаченныеНаДатуКон.Период
|     ИЛИ ОсновнаяТаблица.Период = НеоплаченныеНаДатуКон.Период
|     И ОсновнаяТаблица.Регистратор>=НеоплаченныеНаДатуКон.ПервыйРегистратор
|     ИНАЧЕ
|     Ложь //этот вариант предполагает, что появились неоплаченные документы
|     КОНЕЦ
|     СГРУППИРОВАТЬ ПО
|     ОсновнаяТаблица.Регистратор,
|     ОсновнаяТаблица.Сделка
|    ) КАК СписокРегистраторов
|    ПО ПродажиОбороты.Регистратор = СписокРегистраторов.Регистратор
|     И    ВЫБОР    КОГДА ПродажиОбороты.ДоговорКонтрагента.ВедениеВзаиморасчетов = ЗНАЧЕНИЕ(Перечисление.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам)
|     ТОГДА ПродажиОбороты.ЗаказПокупателя = СписокРегистраторов.Сделка
|     ИНАЧЕ ИСТИНА
|     КОНЕЦ
// Себестоимость продаж, списываемая сразу
|    ЛЕВОЕ СОЕДИНЕНИЕ
|     (ВЫБРАТЬ СУММА(СтоимостьОборот) КАК СтоимостьОборот, Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Регистратор
|     ИЗ РегистрНакопления.ПродажиСебестоимость.Обороты(,&ДатаКон,Регистратор) КАК ПродажиСебестоимость
|    СГРУППИРОВАТЬ ПО Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Регистратор) ПродажиСебестоимостьОбороты
|    ПО ПродажиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор
|    И ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура
|    И ПродажиОбороты.ХарактеристикаНоменклатуры = ПродажиСебестоимостьОбороты.ХарактеристикаНоменклатуры
|    И ПродажиОбороты.ЗаказПокупателя = ПродажиСебестоимостьОбороты.ЗаказПокупателя
// Себестоимость продаж, списываемая при корректировке
|    ЛЕВОЕ СОЕДИНЕНИЕ
|     (ВЫБРАТЬ СУММА(Стоимость) КАК Стоимость, Номенклатура, ДокументДвижения, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение
|     ИЗ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
|//     ГДЕ ПродажиСебестоимость.ДокументДвижения <> Неопределено
|     СГРУППИРОВАТЬ ПО Номенклатура, ДокументДвижения, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение
|     ) ПродажиСебестоимостьКорректировка
|     ПО ПродажиСебестоимостьКорректировка.Номенклатура = ПродажиОбороты.Номенклатура
|     И ПродажиСебестоимостьКорректировка.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
|     И ПродажиСебестоимостьКорректировка.ДокументДвижения = ПродажиОбороты.Регистратор
|     И ПродажиСебестоимостьКорректировка.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя
|     И ПродажиСебестоимостьКорректировка.Подразделение = ПродажиОбороты.Подразделение
// ...
// Цены для плановой себестоимости
|    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК РСЦеныКомпании
|     ПО РСЦеныКомпании.ТипЦен = &ТипЦенПлановойСебестоимости
|     И ПродажиОбороты.Номенклатура = РСЦеныКомпании.Номенклатура
|     И ПродажиОбороты.ХарактеристикаНоменклатуры = РСЦеныКомпании.ХарактеристикаНоменклатуры
|     И РСЦеныКомпании.Период<=ПродажиОбороты.Период
// Курсы валют для плановой себестоимости
|    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКурсыВалют
|     ПО РСКурсыВалют.Валюта = РСЦеныКомпании.Валюта
|     И РСКурсыВалют.Период<=РСЦеныКомпании.Период
|СГРУППИРОВАТЬ ПО
|    ПродажиОбороты.СтоимостьОборот*ДопКоэффициент,
|    (ВЫБОР КОГДА (ПродажиСебестоимостьОбороты.СтоимостьОборот) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьОбороты.СтоимостьОборот КОНЕЦ + ВЫБОР КОГДА (ПродажиСебестоимостьКорректировка.Стоимость) ЕСТЬ NULL ТОГДА 0 ИНАЧЕ ПродажиСебестоимостьКорректировка.Стоимость КОНЕЦ)*ДопКоэффициент,
|    ПродажиОбороты.КоличествоОборот*ДопКоэффициент,
|    ПродажиОбороты.Регистратор,
|    ПродажиОбороты.Период, //Макар. 2009.10.30.
|    НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ), //Макар. 2009.10.30.
|    ПродажиОбороты.Номенклатура,
|    ПродажиОбороты.ХарактеристикаНоменклатуры,
|    ПродажиОбороты.Контрагент,
|    ПродажиОбороты.ДоговорКонтрагента,
|    ПродажиОбороты.ЗаказПокупателя,
|    ПродажиОбороты.Подразделение,
|    ПродажиОбороты.ДокументПродажи,
|    СписокРегистраторов.ДатаКурсаВалютыУпрУчета
|) КАК ПродажиСДатамиЦенИДатамиКурсов
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК РСЦеныКомпании
|    ПО РСЦеныКомпании.ТипЦен = &ТипЦенПлановойСебестоимости
|    И РСЦеныКомпании.Период = ПродажиСДатамиЦенИДатамиКурсов.ДатаЦены
|    И РСЦеныКомпании.Номенклатура = ПродажиСДатамиЦенИДатамиКурсов.Номенклатура
|    И РСЦеныКомпании.ХарактеристикаНоменклатуры = ПродажиСДатамиЦенИДатамиКурсов.ХарактеристикаНоменклатуры
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКурсыВалютыУпрУчета
|    ПО РСКурсыВалютыУпрУчета.Период = ПродажиСДатамиЦенИДатамиКурсов.ДатаКурсаВалютыУпрУчета
|    И РСКурсыВалютыУпрУчета.Валюта = &ВалютаУпрУчета
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК РСКурсыВалютыЦен
|    ПО РСКурсыВалютыЦен.Валюта = РСЦеныКОмпании.Валюта
|    И РСКурсыВалютыЦен.Период = ПродажиСДатамиЦенИДатамиКурсов.ДатаКурсаВалютыЦены
|}
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
|    0 КАК СуммаПродажи,
|    0 КАК КоличествоОборот,
|    0 КАК КоличествоЕдиницДляОтчетовОборот,
|    0 КАК Себестоимость,
|    0 КАК МАРЖА,
|    -ЗатратыОбороты.СуммаОборот КАК ЧистаяМаржа,
|    0 КАК Рентабельность, //Макар
|    ЗатратыОбороты.СуммаОборот КАК СуммаЗатрат,
|    0 КАК ПлановаяСебестоимость,
|    0 КАК ПлановаяПрибыль,
|    ЗатратыОбороты.Регистратор КАК ДокументРеализации,
|    ЗатратыОбороты.Период КАК Период, //Макар. 2009.10.30.
|    НАЧАЛОПЕРИОДА(ЗатратыОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
|    NULL КАК ХарактеристикаНоменклатуры,
|    ЗатратыОбороты.Подразделение КАК Подразделение,
|    ЗатратыОбороты.Заказ КАК ЗаказПокупателя,
|    ЗатратыОбороты.Заказ.ДоговорКонтрагента КАК ДоговорВзаиморасчетовПокупателя,
|    ЗатратыОбороты.Заказ.Ответственный КАК Ответственный,
|    ЗатратыОбороты.Заказ.ОтветственныйИнженер КАК ОтветственныйИнженер,
|    ЗатратыОбороты.СтатьяЗатрат КАК Номенклатура,
|    ЗатратыОбороты.Заказ.Контрагент КАК Покупатель
|{ВЫБРАТЬ
|    СуммаПродажи,
|    КоличествоОборот,
|    КоличествоЕдиницДляОтчетовОборот,
|    Себестоимость,
|    Маржа,
|    ЧистаяМаржа,
|    Рентабельность, //Макар.
|    СуммаЗатрат,
|    ПлановаяСебестоимость,
|    ПлановаяПрибыль,
|    ДокументРеализации.*,
|    Период, //Макар. 2009.10.30.
|    ПериодМесяц, //Макар. 2009.10.30.
|    ХарактеристикаНоменклатуры.*,
|    Покупатель.*,
|    ЗаказПокупателя.*,
|    ДоговорВзаиморасчетовПокупателя,
|    Ответственный.*,
|    ОтветственныйИнженер.*,
|    Подразделение.*,
|    Номенклатура.*}
|ИЗ РегистрНакопления.Затраты.Обороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность}, Заказ <> НЕОПРЕДЕЛЕНО) КАК ЗатратыОбороты
|{ГДЕ
|    ЗатратыОбороты.Подразделение.* КАК Подразделение,
|    ЗатратыОбороты.Заказ.Ответственный.* КАК Ответственный,
|    ЗатратыОбороты.Заказ.ОтветственныйИнженер.* КАК ОтветственныйИнженер,
|    ЗатратыОбороты.Заказ.Контрагент.* КАК Покупатель,
|    ЗатратыОбороты.Заказ.ДоговорКонтрагента.* КАК ДоговорВзаиморасчетовПокупателя,
|    ЗатратыОбороты.Заказ.* КАК ЗаказПокупателя,
|    ЗатратыОбороты.СтатьяЗатрат КАК Номенклатура,
|    0 КАК СуммаПродажи,
|    0 КАК КоличествоОборот,
|    0 КАК КоличествоЕдиницДляОтчетовОборот,
|    0 КАК Себестоимость,
|    0 КАК МАРЖА,
|    -ЗатратыОбороты.СуммаОборот КАК ЧистаяМаржа,
|    0 КАК Рентабельность, //Макар. 2009.11.12
|    ЗатратыОбороты.СуммаОборот КАК СуммаЗатрат,
|    0 КАК ПлановаяСебестоимость,
|    0 КАК ПлановаяПрибыль
|    //СВОЙСТВА
|    //КАТЕГОРИИ
|}
|{УПОРЯДОЧИТЬ ПО
|    ЗаказПокупателя.*,
|    Подразделение.*,
|    Покупатель.*,
|    Ответственный.*,
|    ОтветственныйИнженер.*,
|    Номенклатура.*,
|    СуммаПродажи,
|    КоличествоОборот,
|    КоличествоЕдиницДляОтчетовОборот,
|    Себестоимость,
|    Маржа,
|    ЧистаяМаржа,
|    СуммаЗатрат,
|    ПлановаяСебестоимость,
|    ПлановаяПрибыль,
|    Период,
|    ПериодМесяц
|    //СВОЙСТВА
|}
|ИТОГИ
|    СУММА(СуммаПродажи),
|    СУММА(КоличествоОборот),
|    СУММА(КоличествоЕдиницДляОтчетовОборот),
|    СУММА(Себестоимость),
|    СУММА(Маржа),
|    СУММА(ЧистаяМаржа),
//|    СУММА(СуммаПродажи) / СУММА(СуммаПродажи) КАК Рентабельность,
//Макар. 2009.11.12.
|    ВЫБОР
|     КОГДА СУММА(СуммаПродажи) <>0
//|     КОГДА ЗаказПокупателя ЕСТЬ НЕ NULL
|     ТОГДА СУММА(СуммаПродажи-Себестоимость) / СУММА(СуммаПродажи) * 100
|     ИНАЧЕ 0
|    КОНЕЦ КАК Рентабельность,
//Макар.
|    СУММА(СуммаЗатрат),
|    СУММА(ПлановаяСебестоимость),
|    СУММА(ПлановаяПрибыль)
|
|ПО ОБЩИЕ
|
|{ИТОГИ ПО
|    ЗаказПокупателя.*,
|    Подразделение.*,
|    Покупатель.*,
|    Ответственный.*,
|    ОтветственныйИнженер.*,
|    Период, //Макар. 2009.10.30
|    ПериодМесяц, //Макар. 2009.10.30
|    Номенклатура.*
|    //СВОЙСТВА
|}
|";
1 hhhh
 
02.04.12
11:56
(0) ну так и должно быть. Самая быстрая база - это файловая в монопольном режиме. А дальше по убыванию.

НУ и у вас выбирается информация абсолютно по всей базе и еще по регистраторам:

РегистрНакопления.Продажи.Обороты(, &ДатаКон, Регистратор,


ну то есть там десятки миллионов строк в выборке, а может и миллиарды. Поэтому 30 минут для такой выборки - это нормально.
2 Ненавижу 1С
 
гуру
02.04.12
11:57
Макар отжег!
3 tnadya
 
02.04.12
12:02
Я написала свой отчет, он работает гораздо быстрее, но народ привык к этому при переходе на SQL будет много вопросов.

Так ничего сделать нельзя для убыстрения этого отчета?
4 Ненавижу 1С
 
гуру
02.04.12
12:05
(3) пусть отвыкают, не ну конечно хотят медленно, то пусть работают
5 Ненавижу 1С
 
гуру
02.04.12
12:06
(3) в конце концов интерфейс внешне можно сделать идентичным
6 tnadya
 
02.04.12
12:06
Ясно, спасибо.
7 Maxus43
 
02.04.12
12:07
переписывать в ипеня этот запрос, теже соединения с вложенными запросами и т.д.
8 tnadya
 
02.04.12
12:10
можно попробовать повозиться с ним. Если получится, то выложу что получилось.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший