Имя: Пароль:
1C
1С v8
Отчет на СКД. если делаешь отбор неправильно, без отбора правильно. как быть?
,
0 Cerera
 
22.01.13
08:25
Есть сложный отчет написанный с использованием СКД. дело в том, что если делать отбор по номенклатуре, то он работает неправильно. Если же делать отбор по номенклатурной группе или вообще без отбора, то правильно. Как теоретически такое возможно?
При этом добавлю, что если отлаживать запрос через консоль, то результат всегда правильный.

Основной смысл запроса в том, что анализируются продажи в разрезе документов и из них исключаются продажи в разрезе номенклатурных групп, которые по количеству превышают допустимое значение, прописанное в регистре. Но беда в том, что если мы делаем отбор в СКД по номенклатуре, то условие отбрасывания игнорируетс почему то.

ВЫБРАТЬ
   НоменклатураПоСпискуАСрезПоследних.Номенклатура,
   МАКСИМУМ(НоменклатураПоСпискуАСрезПоследних.КоличествоПороговое) КАК КоличествоПороговое
ПОМЕСТИТЬ НоменклатураПоСпискуА
ИЗ
   РегистрСведений.НоменклатураПоСпискуА.СрезПоследних(&ДатаАнализа, ) КАК НоменклатураПоСпискуАСрезПоследних

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) КАК День,
   ПродажиОбороты.Склад,
   ПродажиОбороты.Регистратор КАК Регистратор,
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.ХарактеристикаНоменклатуры,
   СУММА(ПродажиОбороты.КоличествоРасход) КАК КоличествоРасход,
   МАКСИМУМ(НоменклатураПоСпискуА.КоличествоПороговое) КАК КоличествоПороговое,
   МАКСИМУМ(ВЫБОР
           КОГДА НоменклатураПоСпискуА.КоличествоПороговое > 0
               ТОГДА ВЫБОР
                       КОГДА НоменклатураПоСпискуА.КоличествоПороговое > ПродажиОбороты.КоличествоРасход
                           ТОГДА ПродажиОбороты.КоличествоРасход
                       ИНАЧЕ 0
                   КОНЕЦ
           ИНАЧЕ ПродажиОбороты.КоличествоРасход
       КОНЕЦ) КАК Условие,
   ПродажиОбороты.Номенклатура.ВидНоменклатуры,
   НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК Месяц,
   СУММА(ПродажиОбороты.КоличествоПриход) КАК КоличествоПриход
ПОМЕСТИТЬ Расход
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Обороты(&ВыбНачПериода, &ВыбКонПериода, Регистратор, ) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураПоСпискуА КАК НоменклатураПоСпискуА
       ПО ПродажиОбороты.Номенклатура.НоменклатурнаяГруппа = НоменклатураПоСпискуА.Номенклатура
ГДЕ
   ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
   И ВЫБОР
           КОГДА НоменклатураПоСпискуА.КоличествоПороговое > 0
               ТОГДА ВЫБОР
                       КОГДА НоменклатураПоСпискуА.КоличествоПороговое > ПродажиОбороты.КоличествоРасход
                           ТОГДА ПродажиОбороты.КоличествоРасход
                       ИНАЧЕ 0
                   КОНЕЦ
           ИНАЧЕ ПродажиОбороты.КоличествоРасход
       КОНЕЦ > 0
   И ПродажиОбороты.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Склад,
   ПродажиОбороты.Регистратор,
   ПродажиОбороты.Номенклатура,
   ПродажиОбороты.ХарактеристикаНоменклатуры,
   НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ),
   ПродажиОбороты.Номенклатура.ВидНоменклатуры,
   НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)
1 Defender aka LINN
 
22.01.13
08:27
В 100564-й раз: галка "Автозаполнение"
2 Fragster
 
гуру
22.01.13
08:29
(1) да не, просто если бы назван в первой таблице номенклатурную группу номенклатурной группой - все было бы ОК
3 Fragster
 
гуру
22.01.13
08:30
но вообще - надо просто смотреть результирующий запрос, прежде чем на форум лезть
4 Defender aka LINN
 
22.01.13
08:32
(2) Эта галка кроме вреда еще никому ничего не принесла. Чем раньше одинэснеги начнут ее выключать, тем лучше.
5 Cerera
 
22.01.13
08:36
(2)ааа. вот как. я подозревал что чтото дело в номенклатурных группах. спасибо бвам! а как посмотреть результирующий запрос ? в консоли СКД в режиме 1с предприятия вы имеете ввиду? я же ВТ все просматривал.
6 Cerera
 
22.01.13
08:37
(1)там в запросе порядка 30ти ВТ. пробовали и без автозаполнения делать. но тяжело.
7 Fragster
 
гуру
22.01.13
08:39
(4) надо просто уметь готовить
8 Cerera
 
22.01.13
08:56
Фрагстер самый лучший СКД программист.
9 Odavid
 
22.01.13
09:33
(2) не понял, где тут вообще Номенклатурная группа (вижу только какую-то номенклатуру по списку А), ну да ладно, раз у вас у обоих она есть :)
(4) >>Чем раньше одинэснеги начнут ее выключать
зачем её выключать, если она как раз не дает путаться в заполнении полей - т.е. обеспечивает полное соответствие названий полей в запросе и полей в СКД?
еще одна загадка.
(5) >>а как посмотреть результирующий запрос ? в консоли СКД
сумеете в консоли СКД - смотрите там. А проще можно было и в консоли запросов сначала отработать.
(8)>>Фрагстер самый лучший СКД программист.
наверное :)
10 Cerera
 
22.01.13
14:00
(2)помогло!