Имя: Пароль:
1C
1С v8
ВЫБОР в запросе
0 ogion83
 
29.07.13
09:13
День добрый подскажите, пожалуйста.
В запросе отчета СКД использую:
|ВЫБОР КОГДА ... ТОГДА
|      ИНАЧЕ ...
|КОНЕЦ КАК Закупка
Можно ли сделать так, чтобы при не выполнении условия в отчете не отображалось "Закупка"?
1 Starhan
 
29.07.13
09:15
Уточняй. Хочешь что бы полностью колонка не выводилась или хочешь пустое поле в тех случаях что не сработало условие?
2 ogion83
 
29.07.13
09:19
Чтобы колонка не выводилась
3 Cube
 
29.07.13
09:20
(2) Это не реально. Состав полей ты определяешь жестко. Исключения составляют только итоговые поля...
4 ogion83
 
29.07.13
09:21
Таких выборов в запросе несколько штук и с пустыми колонками отчет не смотрится)
5 Maxus43
 
29.07.13
09:21
(2) в одной строке выполнится, в другой нет - что делать будешь? Нельзя так, только если предварительно вычислить надо ли выводить, и текст запроса изменить динамически, перед выполнением
6 Maxus43
 
29.07.13
09:22
(4) сделай на скд. настраиваемый. Пусть юзер сам говорит какие ему нужны
7 Starhan
 
29.07.13
09:24
Допилить отчет. :) Например в ведомости по зп в ЗУП, если конечное сальдо пустое то колонка не выводиться
:))))
8 Cube
 
29.07.13
09:26
(4) Скрин отчета покажи.
9 ogion83
 
29.07.13
09:26
может как-нибудь по другому можно тогда сделать, чтобы были нужные колонки по условию,не через выбор?
10 ogion83
 
29.07.13
09:31
Что то не вижу тут где можно картинки прикреплять
11 Maxus43
 
29.07.13
09:34
(10) на любой бесплатный хостинг картинок. сюда ссылку
12 Cube
 
29.07.13
09:35
13 ogion83
 
29.07.13
09:40
ВЫБРАТЬ
    МатериалыОстаткиИОбороты.МестоХранения,
    МатериалыОстаткиИОбороты.МПЗ,
    МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
    МатериалыОстаткиИОбороты.КоличествоПриход,
    МатериалыОстаткиИОбороты.КоличествоРасход,
    МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
    МатериалыОстаткиИОбороты.Регистратор,
    Материалы.КодОперации,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ПоступлениеМатериаловСЦеной)
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
    Конец Как Закупка,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВыдачаМатериала)
        Тогда МатериалыОстаткиИОбороты.КоличествоРасход
    Конец Как Выдача,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВозвратНасклад)
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
    Конец Как ВозвратНаСклад,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВводОстатков)
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
        Иначе 0
    Конец Как ВводОстатков
ИЗ
    РегистрНакопления.Материалы.ОстаткиИОбороты(, , Авто, , ) КАК МатериалыОстаткиИОбороты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Материалы КАК Материалы
        ПО МатериалыОстаткиИОбороты.Регистратор = Материалы.Регистратор
            И МатериалыОстаткиИОбороты.МПЗ = Материалы.МПЗ
            И МатериалыОстаткиИОбороты.МестоХранения = Материалы.МестоХранения

СГРУППИРОВАТЬ ПО
    МатериалыОстаткиИОбороты.МПЗ,
    МатериалыОстаткиИОбороты.МестоХранения,
    МатериалыОстаткиИОбороты.КоличествоНачальныйОстаток,
    МатериалыОстаткиИОбороты.КоличествоПриход,
    МатериалыОстаткиИОбороты.КоличествоРасход,
    МатериалыОстаткиИОбороты.КоличествоКонечныйОстаток,
    МатериалыОстаткиИОбороты.Регистратор,
    Материалы.КодОперации
14 Maxus43
 
29.07.13
09:41
(13) это всё прекрасно, но что ты хочешь? сказали - нельзя. Только предварительный анализ если.
Т.е. выполняешь этот запрос, потом анализируешь какие столбцы надо выводить, выводишь.
15 ogion83
 
29.07.13
09:45
16 ogion83
 
29.07.13
09:45
(14) Ок
17 Maxus43
 
29.07.13
09:49
СКД? там по другому придётся... лучше оставить на откуп юзерам это. Сами решат какие столбцы нужны... Нельзя расслаблять юзеров, совсем думать перестанут
18 ogion83
 
29.07.13
09:51
(17) С моими юзверями так не выйдет)
19 ogion83
 
29.07.13
09:55
Блин в 1С7 у меня подобное реализовано, а в 8-ке нельзя чтоли?
20 Cube
 
29.07.13
10:01
(19) Да ты мутишь какую-то залепуху...
21 ogion83
 
29.07.13
10:20
В регистре есть реквизит Код операции, по ним нужен отчет: был для данного материала код операции "Выдача со склада" значит вывести столбец "Выдача" и указать в нем сколько выдано, не было "Выдвча сотруднику", значит не выводить столбец.
Какая тут нахрен залепуха?
22 Cube
 
29.07.13
10:32
(21) Да такая. Ты состав колонок определяешь в запросе жестко. А зачем? Кто мешает написать вместо

    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ПоступлениеМатериаловСЦеной)
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
    Конец Как Закупка,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВыдачаМатериала)
        Тогда МатериалыОстаткиИОбороты.КоличествоРасход
    Конец Как Выдача,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВозвратНасклад)
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
    Конец Как ВозвратНаСклад,
    Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ВводОстатков)
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
        Иначе 0
    Конец Как ВводОстатков

Вот так

    Выбор
        Когда МатериалыОстаткиИОбороты.КоличествоПриход > 0
        Тогда МатериалыОстаткиИОбороты.КоличествоПриход
        Иначе МатериалыОстаткиИОбороты.КоличествоРасход
    Конец Как Сумма

И сгруппировать колонки отчета по виду операции?

P.S. Красивые названия видам операций можно задать прямо в запросе, если душа желает.
23 shadowfiend10
 
29.07.13
10:34
Соединение запроса, с аналогичным, только по которому считаются итоги флагов, если выбрано значение 1, если не выбрано- 0, свернул второй запрос СУММА(Выбор
        Когда Материалы.КодОперации = Значение(Перечисление.КодыОпераций.ПоступлениеМатериаловСЦеной)
        Тогда 1
ИНАЧЕ 0
    Конец Как ЗакупкаВыбрана) по всем полям без СГРУППИРОВАТЬ ПО, после чего в условном оформлении устанавливаешь максимальную ширину колонки, 1 если поле ЗакупкаВыбрана > 0. Изврат, но некоторые клиенты требуют, если кто знает как сделать проще - подскажите.
24 Cube
 
29.07.13
10:41
(23) Проще в (22)
25 ИС-2
 
naïve
29.07.13
11:08
(0) из идей, только через условное оформление. Условие: если закупка = [условие не выполнилось], то ширина колонки = 0. Сам не проверял
26 shadowfiend10
 
29.07.13
11:08
(24) Если по твоему то надо делать соединение каждой строки с таблицей перечислений, потом разбирать перечисления по ВЫБОР Когда и брать нужную сумму помещать в ресурс
27 ogion83
 
29.07.13
11:54
Во, идеи. Ща опробуем...
28 ogion83
 
29.07.13
11:59
(25) Сработало)
29 ogion83
 
29.07.13
12:06
Только надо ставить ширину = 0,01)