|
Вопрос по работе с СКД | ☑ | ||
---|---|---|---|---|
0
Baglandir
15.08.13
✎
16:08
|
Написал запрос в консоле отчетов работает так как надо.
А вот СКД мне добавляет я параметра "НачалоПериода" и "КонецПериода" . И сделать с ними в скд я ничего не могу. они там не удаляются. И причем работают ети параметры поверх моих, Тоесть я например задаю значение НачалоПрошлогоКвартала = 01.04.2013 а НачалоПериода пустое - то у меня по регистру продаж берутся все движения с начала периода.... Если кто сталкивался с таким - помогите. Вот сам запрос в нем кстати такого параметра как "НачалоПериода" вообще нету ВЫБРАТЬ ТоварныйКредит.K, ТоварныйКредит.ПервыйКварталПрошлогоГодаСтоимостьОтгрузок, ТоварныйКредит.ТекущийКварталПрошлогоГодаСтоимостьОтгрузок, ТоварныйКредит.Контрагент, ТоварныйКредит.ДоговорКонтрагента, ТоварныйКредит.SS, ТоварныйКредит.V, ТоварныйКредит.N, ВЫБОР КОГДА ТоварныйКредит.N = 0 ИЛИ ТоварныйКредит.V = 0 ИЛИ ТоварныйКредит.SS = 0 ИЛИ ТоварныйКредит.K = 0 ТОГДА 0 ИНАЧЕ ВЫБОР КОГДА ТоварныйКредит.N <= 30 ТОГДА (ТоварныйКредит.V * ТоварныйКредит.N / 30 + ТоварныйКредит.SS / 1.5) * ТоварныйКредит.K ИНАЧЕ (ТоварныйКредит.V * ТоварныйКредит.N / 30 + ТоварныйКредит.SS * 30 / ТоварныйКредит.N) * ТоварныйКредит.K КОНЕЦ КОНЕЦ КАК ТоварныйКредитДляКОнтрагента ИЗ (ВЫБРАТЬ ЕСТЬNULL(РасчетКоефициентаК.К, 1) КАК K, РасчетКоефициентаК.ПервыйКварталПрошлогоГодаСтоимостьОтгрузок КАК ПервыйКварталПрошлогоГодаСтоимостьОтгрузок, РасчетКоефициентаК.ТекущийКварталПрошлогоГодаСтоимостьОтгрузок КАК ТекущийКварталПрошлогоГодаСтоимостьОтгрузок, ЕСТЬNULL(РасчетКоефициентаК.Контрагент, РасчетПоказателейVSS.Контрагент) КАК Контрагент, ЕСТЬNULL(РасчетКоефициентаК.ДоговорКонтрагента, РасчетПоказателейVSS.ДоговорКонтрагента) КАК ДоговорКонтрагента, РасчетПоказателейVSS.SS КАК SS, РасчетПоказателейVSS.V КАК V, ЕСТЬNULL(РасчетКоефициентаК.N, РасчетПоказателейVSS.N) КАК N ИЗ (ВЫБРАТЬ ВЫБОР КОГДА ПродажиТекущегоКварталаПрошлогоГода.СтоимостьОборот = 0 ИЛИ ПродажиПрошлогоКварталаПрошлогоГода.СтоимостьОборот = 0 ТОГДА 1 ИНАЧЕ ПродажиТекущегоКварталаПрошлогоГода.СтоимостьОборот / ПродажиПрошлогоКварталаПрошлогоГода.СтоимостьОборот КОНЕЦ КАК К, ПродажиПрошлогоКварталаПрошлогоГода.СтоимостьОборот КАК ПервыйКварталПрошлогоГодаСтоимостьОтгрузок, ПродажиТекущегоКварталаПрошлогоГода.СтоимостьОборот КАК ТекущийКварталПрошлогоГодаСтоимостьОтгрузок, ЕСТЬNULL(ПродажиПрошлогоКварталаПрошлогоГода.Контрагент, ПродажиТекущегоКварталаПрошлогоГода.Контрагент) КАК Контрагент, ЕСТЬNULL(ПродажиПрошлогоКварталаПрошлогоГода.ДоговорКонтрагента, ПродажиТекущегоКварталаПрошлогоГода.ДоговорКонтрагента) КАК ДоговорКонтрагента, ЕСТЬNULL(ПродажиПрошлогоКварталаПрошлогоГода.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, ПродажиТекущегоКварталаПрошлогоГода.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности) КАК N ИЗ (ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ПродажиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ИЗ РегистрНакопления.Продажи.Обороты(&НачалоТекущегоПериодаВПрошломГоду, &КонецТекущегоПериодаВПрошломГоду, Месяц, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.ДоговорКонтрагента, ПродажиОбороты.Контрагент, ПродажиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ПродажиТекущегоКварталаПрошлогоГода ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ПродажиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ИЗ РегистрНакопления.Продажи.Обороты(&НачалоКварталаПрошлогоГода, &КонецКварталаПрошлогоГода, Месяц, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.ДоговорКонтрагента, ПродажиОбороты.Контрагент, ПродажиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК ПродажиПрошлогоКварталаПрошлогоГода ПО ПродажиТекущегоКварталаПрошлогоГода.Контрагент = ПродажиПрошлогоКварталаПрошлогоГода.Контрагент И ПродажиТекущегоКварталаПрошлогоГода.ДоговорКонтрагента = ПродажиПрошлогоКварталаПрошлогоГода.ДоговорКонтрагента И ПродажиТекущегоКварталаПрошлогоГода.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности = ПродажиПрошлогоКварталаПрошлогоГода.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности) КАК РасчетКоефициентаК ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ SS.СуммаОборот КАК SS, РасчетПоказателяV.V КАК V, ЕСТЬNULL(SS.Контрагент, РасчетПоказателяV.Контрагент) КАК Контрагент, ЕСТЬNULL(SS.ДоговорКонтрагента, РасчетПоказателяV.ДоговорКонтрагента) КАК ДоговорКонтрагента, ЕСТЬNULL(SS.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, РасчетПоказателяV.ДопустимоеЧислоДнейЗадолженности) КАК N ИЗ (ВЫБРАТЬ ДвиженияДенежныхСредствОбороты.Контрагент КАК Контрагент, СУММА(ДвиженияДенежныхСредствОбороты.СуммаОборот) КАК СуммаОборот, СУММА(ДвиженияДенежныхСредствОбороты.СуммаУпрОборот) КАК СуммаУпрОборот, ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&НачалоКварталаТекущегоГода, &КонецКварталаТекущегоГода, Месяц, ) КАК ДвиженияДенежныхСредствОбороты СГРУППИРОВАТЬ ПО ДвиженияДенежныхСредствОбороты.Контрагент, ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента, ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК SS ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РасчетV.СтоимостьОборот КАК V, РасчетV.ДоговорКонтрагента КАК ДоговорКонтрагента, РасчетV.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности, РасчетV.Контрагент КАК Контрагент ИЗ (ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ПродажиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности, СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ИЗ РегистрНакопления.Продажи.Обороты(&НачалоКварталаТекущегоГода, &КонецКварталаТекущегоГода, Месяц, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.ДоговорКонтрагента, ПродажиОбороты.Контрагент, ПродажиОбороты.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности) КАК РасчетV) КАК РасчетПоказателяV ПО SS.Контрагент = РасчетПоказателяV.Контрагент И SS.ДоговорКонтрагента = РасчетПоказателяV.ДоговорКонтрагента И SS.ДоговорКонтрагентаДопустимоеЧислоДнейЗадолженности = РасчетПоказателяV.ДопустимоеЧислоДнейЗадолженности) КАК РасчетПоказателейVSS ПО РасчетКоефициентаК.Контрагент = РасчетПоказателейVSS.Контрагент И РасчетКоефициентаК.ДоговорКонтрагента = РасчетПоказателейVSS.ДоговорКонтрагента И РасчетКоефициентаК.N = РасчетПоказателейVSS.N) КАК ТоварныйКредит |
|||
1
Нуф-Нуф
15.08.13
✎
16:09
|
{}
|
|||
2
Нуф-Нуф
15.08.13
✎
16:09
|
а запрос просто жесть
|
|||
3
Baglandir
15.08.13
✎
16:10
|
(1) он простой, просто немного объемный :)
|
|||
4
genosse
15.08.13
✎
16:12
|
в СКД когда открываешь конструктор запроса, перейди на закладку "Схема компоновки данных", по кнопке настройка ткни, вот те параметры которые там указаны и используются в СКД
|
|||
5
Нуф-Нуф
15.08.13
✎
16:13
|
дело во вложенных запросах и соединении с виртуальными таблицами
|
|||
6
Baglandir
15.08.13
✎
16:17
|
(4) Открыл конструктор запроса, перешол на вкладку "компоновкиа данных" (Вкладки схемы компоновкиа данных не нашол) На данной вкладке просто поле с названием моего запроса и флаг "обязательный"
(5) А в чем именно дело , СКД не работает из сложеными запросами ? соединений с фиртуальными таблицами в запросе нету |
|||
7
genosse
15.08.13
✎
16:19
|
Нужно открыть там где используется сама таблица регистра, вбей туда свои параметры
|
|||
8
Нуф-Нуф
15.08.13
✎
16:20
|
(6) виртуальную таблицу Обороты соединяешь с подзапросом, в котором виртуальная таблица Обороты. страшный сон оптимизатора.
|
|||
9
genosse
15.08.13
✎
16:20
|
(8) СКД оптимизирует этот запрос, все будет ок
|
|||
10
Нуф-Нуф
15.08.13
✎
16:21
|
(9) таки да?
|
|||
11
genosse
15.08.13
✎
16:23
|
(10) 146 процентная гарантия
|
|||
12
Нуф-Нуф
15.08.13
✎
16:26
|
(11) нуну
|
|||
13
Нуф-Нуф
15.08.13
✎
16:27
|
(11) продолжай жить в своем розовом мире )))
|
|||
14
genosse
15.08.13
✎
16:28
|
(13) проверил? оптимизатор не исправил чтоль?
|
|||
15
Нуф-Нуф
15.08.13
✎
16:32
|
(14) сформируй отчет в консоли, и посмотри какой запрос будет результирующим? изменения будут минимальны.
речь шла про скулевский оптимизатор |
|||
16
grayshadow
15.08.13
✎
17:36
|
СКД любит совать свои параметры куда не надо:)
если (как в вашем случае) они не нужны, то ставим ограничение доступности, и пусть себе болтаются, на результат не влияют вопрос: чему у вас равны остальные 2 параметра: &НачалоКварталаТекущегоГода, &КонецКварталаТекущегоГода ?? не смогла прочитать весь запрос, но насторожило "полное соединение", может данные "с начала времен" и должны выбираться? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |