Имя: Пароль:
1C
1С v8
Параметр СКД и условие компоновки данных. Как сделать параметр не обязательным?
0 Нуф-Нуф
 
25.04.13
14:16
Доброго дня. Имеет УПП последнего релиза и типовой отчет Анализ точки заказа.

Результат запроса в СКД является таблица, содержащая информацию о том, какой товар требуется заказать, какой рекомендуется, какой не требуется.
Вот поле, которое отвечает за это:

ВЫБОР
   КОГДА ВложенныйЗапрос.МинимальныйСтраховойЗапас > 0
           И ВложенныйЗапрос.МинимальныйСтраховойЗапас > ВложенныйЗапрос.Остаток
       ТОГДА 0
   КОГДА ВложенныйЗапрос.ЗначениеТочкиЗаказа > 0
           И ВложенныйЗапрос.ЗначениеТочкиЗаказа > ВложенныйЗапрос.Остаток
       ТОГДА 1
   ИНАЧЕ 2
КОНЕЦ


Так же это поле выбрано компоновке данных и соответственно в запросе имеем следующий код:

{ГДЕ
   (ВЫБОР
           КОГДА ВложенныйЗапрос.МинимальныйСтраховойЗапас > 0
                   И ВложенныйЗапрос.МинимальныйСтраховойЗапас > ВложенныйЗапрос.Остаток
               ТОГДА 0
           КОГДА ВложенныйЗапрос.ЗначениеТочкиЗаказа > 0
                   И ВложенныйЗапрос.ЗначениеТочкиЗаказа > ВложенныйЗапрос.Остаток
               ТОГДА 1
           ИНАЧЕ 2
       КОНЕЦ) КАК Состояние,
...
}


Однако поле "Состояние" не попадает на закладку Параметры. Если же добавить этот параметр вручную - то он никак не влияет на результат компоновки.


Как сделать "Состояние" параметром? Это необходимо для того, чтобы указать допустимые значения параметра (0,1,2 с представлениями "требуется" и т.п.)
Если "Состояние" сделать отбором - то в качестве значений придется указывать конкретные числа - 0,1 или 2. А хочется список выбора...
Для отбора конечно немного помогает указание допустимых значений (и их представления) для поля компоновки "Состояние", и в пользовательском интерфейсе значение отбора можно выбрать из списка. НО в случае вида сравнения "В списке" - в качестве значения опять же можно выбрать только 0,1 или 2...

Как состояние сделать параметром?
1 toypaul
 
гуру
25.04.13
14:24
твое выражение = &Состояние

или что?
2 olegves
 
25.04.13
14:26
(0) сделай Состояние перечислением - и выбирай, что нужно
3 Никола_
Питерский
 
25.04.13
14:26
С группируй значения в списке и буит тебе счастье. Параметром не сделаешь.
4 Никола_
Питерский
 
25.04.13
14:27
В отборе добавь группу или и запихай туда значения поле можно даже равенством.
5 toypaul
 
гуру
25.04.13
14:28
{где твое выражение = &Состояние}

а так будет необязательный. то есть если  Состояние незаполнен, то условие не будет применяться.
6 Никола_
Питерский
 
25.04.13
14:29
(5) Да у него состояние это поле. Ему не это нужно.
7 Aprobator
 
25.04.13
14:33
(0) а зачем его делать в данном случае параметром? Отбор то, чем не катит?
8 toypaul
 
гуру
25.04.13
14:35
(7) в тексе сообщений написано. зачем второй раз повторять :)
9 Aprobator
 
25.04.13
14:37
(8) не дочитал )
10 Нуф-Нуф
 
25.04.13
14:48
(1) если я сделаю жестко = &Состояние, тогда это будет вор-первых обязательный (без его указания не сформировать) параметр, а во-вторых нельзя будет выбрать несколько значений.
11 Нуф-Нуф
 
25.04.13
14:48
(2) править конфу только для этого - не вариант имхо
12 Нуф-Нуф
 
25.04.13
14:49
(5) в сабже так и сделано. однако поле не появляется в параметрах
13 Никола_
Питерский
 
25.04.13
14:52
(12) В отборе можно группировать условия или это не помогает ?
14 Aprobator
 
25.04.13
14:53
небось автозаполнение стоит
15 Aprobator
 
25.04.13
14:53
(13) упс. Кстати, нарисовать отбор и задать его представление не катит?
16 Aprobator
 
25.04.13
14:54
а пользователь, чтобы тупо по представлению галочки ставил, какой отбор юзать.
17 Нуф-Нуф
 
25.04.13
14:55
(13) в отборе можно группировать условия, но пока не догнал как это мне поможет...
18 Нуф-Нуф
 
25.04.13
14:56
(15) (16) хм... наверно вариант... возьму на заметку...

но все равно хочется "красивее"
19 Никола_
Питерский
 
25.04.13
14:56
(17) Ты же говоришь что можно наложить условие, но только на конкретное значение на пример 1 или 2 и т.д.

Ну так сделай нужные значения и засунь их в группу ИЛИ и получится у тебя нечто похожее на "В СПИСКЕ"
20 Aprobator
 
25.04.13
15:00
красивее - быстрей добавить реквизит отчета. Поле выбора  нарисовать ручками на форме. И в модуле отчета в Событии ПриКомпоновкеРезультата тупо подставить значение отбора в зависимости от выбора на форме.
21 Defender aka LINN
 
25.04.13
15:01
А после того, как добавил в запрос

{ГДЕ
   (ВЫБОР
           КОГДА ВложенныйЗапрос.МинимальныйСтраховойЗапас > 0
                   И ВложенныйЗапрос.МинимальныйСтраховойЗапас > ВложенныйЗапрос.Остаток
               ТОГДА 0
           КОГДА ВложенныйЗапрос.ЗначениеТочкиЗаказа > 0
                   И ВложенныйЗапрос.ЗначениеТочкиЗаказа > ВложенныйЗапрос.Остаток
               ТОГДА 1
           ИНАЧЕ 2
       КОНЕЦ) КАК Состояние,
...
}

вкладку "Отбор" открывал вообще?
22 Эмбеддер
 
25.04.13
15:01
на закладке наборы данных в списке полей есть колонки "Тип значения" и "Доступные значения" - не подойдет?
23 Aprobator
 
25.04.13
15:01
(21) ему не отбор, а именно параметр нужен ) Читай до конца, я на эти грабли наступал уже.
24 Aprobator
 
25.04.13
15:02
(20) млин, реквизит формы нафиг не нужен. Реально нарисовать параметр ручками. Остальное все в Событии ПриКомпоновке результата. Возни минут 15.
25 Эмбеддер
 
25.04.13
15:03
(22) + проверил, нормально будет работать так
26 Нуф-Нуф
 
25.04.13
15:09
(22) такое уже делал, в сабже описал, что подходит только частично, так как как только выставишь вид сравнения "в списке", то в значениях опять же можно будет указывать только числа
27 Нуф-Нуф
 
25.04.13
15:10
(21) а что на закладке отборы? доступные поля отбора есть, но в отбор я не выношу
28 Нуф-Нуф
 
25.04.13
15:11
пока что самым красивым вижу способ - добавить собственный параметр, и в обработчике "при компоновке результата" подставлять значение этого параметра в значение отбора
29 Aprobator
 
25.04.13
15:15
(28) с тя пузырь на идею )
30 Нуф-Нуф
 
25.04.13
15:30
:)
31 Нуф-Нуф
 
25.04.13
15:33
но у (28) свой минус. так как это параметр - я не смогу выбирать тип сравнения. я смогу выбирать только доступен список значений или нет, а точнее - я смогу установить галку "доступен список значений" и мне всегда придется указывать значения параметра через список, даже если буду указывать только одно значение
32 Нуф-Нуф
 
25.04.13
15:34
ну где же вы БОГИ СКД?
33 Defender aka LINN
 
25.04.13
15:46
(32) Оставь отбором и не полощи моск.
Открою тайну: вместо 0,1,2 можно использовать строки.
34 toypaul
 
гуру
25.04.13
15:52
бред какой-то

вот это

(ВЫБОР
           КОГДА ВложенныйЗапрос.МинимальныйСтраховойЗапас > 0
                   И ВложенныйЗапрос.МинимальныйСтраховойЗапас > ВложенныйЗапрос.Остаток
               ТОГДА 0
           КОГДА ВложенныйЗапрос.ЗначениеТочкиЗаказа > 0
                   И ВложенныйЗапрос.ЗначениеТочкиЗаказа > ВложенныйЗапрос.Остаток
               ТОГДА 1
           ИНАЧЕ 2
       КОНЕЦ) КАК Состояние

и вот это

(ВЫБОР
           КОГДА ВложенныйЗапрос.МинимальныйСтраховойЗапас > 0
                   И ВложенныйЗапрос.МинимальныйСтраховойЗапас > ВложенныйЗапрос.Остаток
               ТОГДА 0
           КОГДА ВложенныйЗапрос.ЗначениеТочкиЗаказа > 0
                   И ВложенныйЗапрос.ЗначениеТочкиЗаказа > ВложенныйЗапрос.Остаток
               ТОГДА 1
           ИНАЧЕ 2
       КОНЕЦ) = &Состояние

есть разница?
35 Defender aka LINN
 
25.04.13
15:53
(34) Есть
36 Эмбеддер
 
25.04.13
15:54
конфигурацию можно править? может перечисление сделать?
37 Нуф-Нуф
 
25.04.13
16:23
(33) раскрой тайну, как можно использовать строки?
38 Нуф-Нуф
 
25.04.13
16:23
(36) это совсем грубо для отчета имхо
39 Aprobator
 
25.04.13
16:26
(37) ljcnegyst pyfxtybz c ghtlcnfdktybzvb )
40 Aprobator
 
25.04.13
16:26
(37) доступные значения с представлениями.
41 Aprobator
 
25.04.13
16:28
(31) так поставь сразу список значений, какая хрен разница то?
42 Aprobator
 
25.04.13
16:28
ты еще там бантик на форме нарисуй ))
43 Aprobator
 
25.04.13
16:31
кстати, параметр с доступными значениями с представлениями и в коде, что то наподобие (34) тока скобки там фигурные правильно поставить.
44 Нуф-Нуф
 
25.04.13
16:36
пока единственный адекватный вариант "добавить собственный параметр, и в обработчике "при компоновке результата" подставлять значение этого параметра в значение отбора" (хотя не самый удобный).

какие еще варианты остались?
45 Defender aka LINN
 
25.04.13
16:41

{ГДЕ
   (ВЫБОР
           КОГДА ВложенныйЗапрос.МинимальныйСтраховойЗапас > 0
                   И ВложенныйЗапрос.МинимальныйСтраховойЗапас > ВложенныйЗапрос.Остаток
               ТОГДА "Значение раз"
           КОГДА ВложенныйЗапрос.ЗначениеТочкиЗаказа > 0
                   И ВложенныйЗапрос.ЗначениеТочкиЗаказа > ВложенныйЗапрос.Остаток
               ТОГДА "Значение два"
           ИНАЧЕ "Куита какаята"
       КОНЕЦ) КАК Состояние,
...
}
46 Нуф-Нуф
 
25.04.13
16:47
(45) и ты эти слова при установке отбора писать будешь?
47 Defender aka LINN
 
25.04.13
16:48
(46) Я их пропишу в доступные значения. Ты - не знаю.
48 Нуф-Нуф
 
25.04.13
16:54
(47) блин, да я писал уже про это. я прописывал в доступные значения 0,1 и 2, и там же указал представления их значений (как "требуется", "не требуется"...)
49 Эмбеддер
 
25.04.13
16:56
выходит, что нет решения - такого, как тебе надо
50 Нуф-Нуф
 
25.04.13
16:56
+(48) и при установке отбора у меня есть возможность выбрать эти доступные значения по словам (по представлениям).
НО! если в отборе установить вид сравнения "в списке", то при установке значений отбора в этом самом списке - СКД забьет на доступные значения и их представления, и будет просить ввести конкретное значение отбора (в моем случае цифру), а в твоем случае текст типа "Куита какаята". это я писал еще в сабже
51 Aprobator
 
25.04.13
17:16
из за 3-х возможных состояний список городить, вот это точно "Куита какая то".
52 Нуф-Нуф
 
25.04.13
17:24
(51) а сколько нужно для списка?
53 Aprobator
 
25.04.13
17:24
(52) справочник )
54 calmius
 
25.04.13
20:07
(0) Решение в том, чтобы приравнять отбор настройки СКД изменяемому пользователем параметру. Для этого в поле отбора "Правое значение" нужно нажать на кнопку очистки, при выборе типа данных выбрать "Поле компоновки данных", а затем в качестве поля выбрать параметр СКД. Отбор в доступные пользователю настройки включать не нужно, а параметр с представлениями - наоборот.
55 Эмбеддер
 
26.04.13
04:31
(54) при этом пользователь сможет регулировать вид отбора или всегда будет "равно"?
56 Defender aka LINN
 
26.04.13
06:22
(48) Вот ты тугой... Открой глаза до щелчка и посмотри на (45) и потом на (47)
57 Эмбеддер
 
26.04.13
07:28
(56) подтверждаю, работает даже со сравнением "в списке", а не только "равно". Нуф-Нуф вчера писал, что так не работает, я поверил и проверять не стал
58 Aprobator
 
26.04.13
08:45
(56) а млин, вот для чего значения строкой в запросе строкой прописывать то! Надо будет взять себе на заметку. Может пригодится когда.