Имя: Пароль:
1C
1С v8
Выбор в запросе
0 ogion83
 
04.06.13
09:00
В отчете СКД имеется запрос:
ВЫБРАТЬ
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   Материалы.КодОперации,
   Выбор
       Когда Материалы.КодОперации = Значение        (Перечисление.КодыОпераций.ПоступлениеМатериаловСЦеной)
       Тогда МатериалыОстаткиИОбороты.КоличествоПриход
   Конец Как Закупка,
   Выбор
       Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВыдачаМатериала)
       Тогда МатериалыОстаткиИОбороты.КоличествоРасход
   Конец Как Выдача,
   Выбор
       Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВозвратНасклад)
       Тогда МатериалыОстаткиИОбороты.КоличествоПриход
   Конец Как ВозвратНаСклад,
   Выбор
       Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВводОстатков)
       Тогда МатериалыОстаткиИОбороты.КоличествоПриход
   Конец Как ВводОстатков
ИЗ
   РегистрНакопления.Материалы.ОстаткиИОбороты(, , Авто, , ) КАК МатериалыОстаткиИОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Материалы КАК Материалы
       ПО МатериалыОстаткиИОбороты.Регистратор = Материалы.Регистратор
           И МатериалыОстаткиИОбороты.МПЗ = Материалы.МПЗ
           И МатериалыОстаткиИОбороты.МестоХранения = Материалы.МестоХранения

СГРУППИРОВАТЬ ПО
   МатериалыОстаткиИОбороты.МПЗ,
   МатериалыОстаткиИОбороты.МестоХранения,
   МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
   МатериалыОстаткиИОбороты.КоличествоПриход,
   МатериалыОстаткиИОбороты.КоличествоРасход,
   МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
   МатериалыОстаткиИОбороты.Регистратор,
   Материалы.КодОперации
Здесь в Выборе, даже если условие не выполняется появляется столбец (пустой соответственно). Как сделать чтобы пустые не отображались?
1 1Сергей
 
04.06.13
09:01
Никак
2 zippygrill
 
04.06.13
09:02
никак! ты же его выбираешь :)
3 zak555
 
04.06.13
09:02
зачем ВНУТРЕННЕЕ СОЕДИНЕНИЕ ?
4 kosts
 
04.06.13
09:03
Почему в выборе нет ветки Иначе?
5 Cyberhawk
 
04.06.13
09:05
(4) а что плохого в этом?
6 ogion83
 
04.06.13
09:05
(1)(2) Точно ни какими иными средствами не убрать?
(3)Надо, с ним работает как мне требуется)
(4) Не нужно.
7 ogion83
 
04.06.13
09:07
(5) Не красиво)
8 ogion83
 
04.06.13
09:08
(5) Ай, это про Иначе спрашивал). Тут да, просто не нужен
9 ogion83
 
04.06.13
09:09
Такой отчет работает в 1С7 и там пустые колонки не появляются. Неужто во всемогущей 8-ке так не сделать?)
10 Ненавижу 1С
 
гуру
04.06.13
09:10
это прерагатива построителя, СКД, программиста наконец
11 Ненавижу 1С
 
гуру
04.06.13
09:11
(9) такой отчет в 1С7 не будет работать вообще ))
12 Mitriy
 
04.06.13
09:12
(9) в семерке все настолько криво?
13 kosts
 
04.06.13
09:12
(5) Тем, что это может привести к ошибкам. Не сразу, а позже. "Дурно пахнущий код".
14 ogion83
 
04.06.13
09:15
(11)Работает. Выдает НачОст, КонОст и в зависимости от типа операции выдаёт столбцы (только не пустые) с пометками где поступления на склад (+), а где выдача (-).
15 ogion83
 
04.06.13
09:16
(13) Может быть. Я 8-кой 3-ий месяц занимаюсь, самоучка)
16 ogion83
 
04.06.13
09:17
(12) Может выпрямите?
17 ogion83
 
04.06.13
09:18
Хотя этот кривой код получен с помощью конструктора...
18 Cyberhawk
 
04.06.13
09:19
(13) Я вопрос в (5) без подоплеки задавал, т.е. по-настоящему интересуюсь, что плохого будет если условие выбора не сработает ни на одной из веток "когда тогда"?
19 Mitriy
 
04.06.13
09:22
(15) Семерку выпрямлять - единица будет...
20 Defender aka LINN
 
04.06.13
09:23
(13) Ну напишет там автор "ИНАЧЕ NULL". Полегчает?
21 ogion83
 
04.06.13
09:23
(18)Там где у меня "ВводОстатков" условие не выполняется и как раз там появляется пустая колонка.
22 ogion83
 
04.06.13
09:24
(19) Я про выпрямление 8-ки.
23 kosts
 
04.06.13
09:27
(13) Мне без разницы. Высказал свое мнение. Запрос рабочий, но при очередной переделке могут вылезти баги.
24 Wern
 
04.06.13
09:29
(18) Проблемы в том что NULL не сворачивается с 0 и если к примеру пользователь захочет установить отбор на значение поле 0 в этот отбор эти строки не попадут.
25 ogion83
 
04.06.13
09:33
В этом отчете у меня сделано 3 Варианта отчета, в двух отображается Итого по Начальному остатку, а в одном ни в какую. Это вот как так?
26 bvg
 
04.06.13
09:34
(0) а не проще переопределить КодОперации через конструкцию выбора , сгруппировать и уже при настройке отчета выводить как колонку, а КоличествоПриход встанет в нее как ресурс, при этом выведутся только те колонки , в которых будут данные , надеюсь понятно написал
27 ogion83
 
04.06.13
09:38
Не отображается в варианте, где выводит строку с документом.
28 ogion83
 
04.06.13
09:40
(26) Я новичек, так что не совсем понял. Нельзя ли пару строк кода?)
29 ogion83
 
04.06.13
09:42
Мне вот такой вид отчета нужен:
           НачОст  +Поступлиение +Возврат -Списание КоОст
Материал 1   57          5           1        3        60
Материал 2              34                   6         28
30 bvg
 
04.06.13
10:03
(28) для начала уберите конструкцию Выбор Когда Тогда
и попробуйте когда в СКД Конструктором Настроек создаете вариант отчета, в колонки поставить КодОперации и посмотрите что получится
31 bvg
 
04.06.13
10:05
(+30) у меня нет вашей конфигурации, поэтому не знаю правильный ли вообще запрос, может его еще можно как то упростить без внутреннего соединения
32 ogion83
 
04.06.13
10:37
(31) КодОперации у меня лежит в реквизитах регистра, поэтому вот пришлось так делать.
33 ogion83
 
04.06.13
11:03
(30) получилась куча лишних колонок
34 bvg
 
04.06.13
11:24
(33) если это дополнительные виды операций тогда надо их ограничить в запросе
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.