Имя: Пароль:
1C
1С v8
СКД: борьба с компоновщиком макета
0 bzaugolnov
 
07.11.12
16:59
Пишу такой запрос:
ВЫБРАТЬ
   Продажи.Номенклатура,
   Продажи.Контрагент,
   ВЫБОР
       КОГДА СУММА(Продажи.Стоимость) > 500
           ТОГДА 2
       ИНАЧЕ 1
   КОНЕЦ КАК Значение
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
   РегистрНакопления.Продажи КАК Продажи

СГРУППИРОВАТЬ ПО
   Продажи.Номенклатура,
   Продажи.Контрагент
;

//////////////////////////////////////////////////////////////////////ВЫБРАТЬ
   ВТ_Продажи.Номенклатура,
   СРЕДНЕЕ(ВТ_Продажи.Значение) КАК Значение
ИЗ
   ВТ_Продажи КАК ВТ_Продажи

СГРУППИРОВАТЬ ПО
   ВТ_Продажи.Номенклатура

При компоновке макета умный оптимизатор выкидывает поле Контрагент из первого запроса. Никак не могу придумать как с этим бороться? Версия 8.2.16.352 (MSSQL). Получается следующее:

<query>ВЫБРАТЬ
   Продажи.Номенклатура КАК Номенклатура,
   ВЫБОР
       КОГДА СУММА(Продажи.Стоимость) &gt; 500
           ТОГДА 2
       ИНАЧЕ 1
   КОНЕЦ КАК Значение
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
   РегистрНакопления.Продажи КАК Продажи

СГРУППИРОВАТЬ ПО
   Продажи.Номенклатура
;

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

СГРУППИРОВАТЬ ПО
   ВТ_Продажи.Номенклатура</query>
1 zak555
 
07.11.12
17:01
набор данных должен быть

ВЫБРАТЬ
   Продажи.Номенклатура,
   Продажи.Контрагент,
   Продажи.Стоимость
ИЗ
   РегистрНакопления.Продажи КАК Продажи



всё остальное настройкой задай
2 bzaugolnov
 
07.11.12
17:13
На самом деле там пакет из 10+ запросов. И среднее значение мне нужно получить не на последнем этапе. Я просто привел простой пример, отражающий суть проблемы.