Имя: Пароль:
1C
1С v8
Вопрос по сортировке запроса в зависимости от параметра
0 AlexeyID
 
04.09.12
21:18
Добрый день!
Подскажите пожалуйста можно как-нибудь в запросе указать порядок сортировки с помощью параметра или через "Выбор"?
т.е. что-то такое: Упорядочить По Поле &Порядок
1 Wobland
 
04.09.12
21:19
наверное, нет. делай динамический текст, один хрен, упорядочить в конце
2 AlexeyID
 
04.09.12
21:20
Ок
3 AlexNew
 
04.09.12
21:21
(1) Почему? Через ВЫБОР - пожалуйста.
4 PR
 
04.09.12
21:21
(0) А почему нет?
5 AlexNew
 
04.09.12
21:21
(1) Отлаживать...
6 Wobland
 
04.09.12
21:21
(3) спасибо, задумаюсь
7 Ненавижу 1С
 
гуру
04.09.12
21:22
Выбор
 Когда &Условие0 Тогда ...
 Когда &Условие1 Тогда ...
 Когда &Условие2 Тогда ...
...
Конец
8 AlexeyID
 
04.09.12
21:22
Приведите пример тогда пожалуйста, у меня совершенно не получается..
9 Wobland
 
04.09.12
21:22
(8) упорядочить по выбор когда ???
10 Wobland
 
04.09.12
21:23
(9) не, вы чо? можно?
11 PR
 
04.09.12
21:23
(8) ВЫБОР КОГДА Таблица.Поле = 1 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ
12 AlexNew
 
04.09.12
21:25
(10) Спросишь, кто разрешил, скажешь - я.
13 PR
 
04.09.12
21:26
(10) А что бы не попробовать?
"ВЫБРАТЬ
|    БракВПроизводстве.Период КАК Период
|ИЗ
|    РегистрНакопления.БракВПроизводстве КАК БракВПроизводстве
|
|УПОРЯДОЧИТЬ ПО
|    ВЫБОР
|        КОГДА БракВПроизводстве.Активность
|            ТОГДА 1
|        ИНАЧЕ 0
|    КОНЕЦ"
14 Wobland
 
04.09.12
21:29
(11)(13) пометил себе, спасибо
15 Wobland
 
04.09.12
21:30
+(14) в общем случае, конечно, не работает (ведь верно? ведь правда?)
16 PR
 
04.09.12
21:32
(15) Что значит в общем случае?
17 Wobland
 
04.09.12
21:33
(16) с небулевскими вещами
18 Wobland
 
04.09.12
21:34
не, не работает
19 Wobland
 
04.09.12
21:34
ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних

УПОРЯДОЧИТЬ ПО
   выбор когда Цена>0 тогда 1 иначе 0 конец

=====

Цена
55 168
51,7
63 355
43
22
27
20 PR
 
04.09.12
21:42
Без комментариев.
21 Wobland
 
04.09.12
21:47
(20) Ром, ты договаривай

В выражениях могут непосредственно указываться значения логических, числовых, строковых и др. констант; также могут использоваться значения параметров запроса. В выражениях к значениям соответствующих типов могут применяться бинарные и унарные операции.
22 Classic
 
04.09.12
21:51
(0)
ВЫБРАТЬ
.....
ВЫБОР
  КОГДА &Параметр = ""Номенклатура""
  ТОГДА РегистрНакопления.ПартииТоваров.Номенклатура
  КОГДА &Параметр = ""Склад""
  ТОГДА РегистрНакопления.ПартииТоваров.Склад
  ИНАЧЕ РегистрНакопления.ПартииТоваров.Организация
КОНЕЦ КАК ПолеУпорядочивания
ИЗ ....
УПОРЯДОЧИТЬ ПО ПолеУпорядочивания
23 PR
 
04.09.12
21:51
(21) Да я просто не знаю, что сказать, если с почти шестилетним стажем до сих пор порешь тупости.
1. Сортировка работает по любому значению простого типа, то есть число, булево, строка, дата. Откуда в твоем мозгу родилось обратное, я ХЗ.
2. В твоем случае все сработало абсолютно правильно, почему ты решил, что не отсортировалось, я опять же ХЗ. Все числа больше нуля сначала, все меньше или равные нулю потом. Ты видимо почему-то ждал от программы, что она тебе еще и по возрастанию цены отсортирует, но это уже твои проблемы, что ты почему-то этого ждал, программа тебе этого не обещала.

Ничего личного.
24 palpetrovich
 
04.09.12
21:53
(0) может я не прав, но если речь идет о заранее известном значении (с помощью параметра), то я его заранее и определяю, типа так:
если <что-то> Тогда
ТекстУпорядочивания = "Номенклатура"
...
|УПОРЯДОЧИТЬ ПО "+ ТекстУпорядочивания +";
25 Fragster
 
гуру
04.09.12
21:54
У меня была сортировка для фифо-лифо через
Выбор Когда &СортироватьПоВозрастанию Тогда РазностьДат(Таблица.Период,&ТекущаяДата, Секунда) Иначе  РазностьДат(&ТекущаяДата, Таблица.Период, Секунда) Конец КАК ПолеСортировки... Сортировать по ПолеСортировки
26 PR
 
04.09.12
21:55
+(23) Важное дополнение, сначала конечно же вывелись все числа меньше или равные нулю.
Впрочем, таких все-равно не было :))
27 Fragster
 
гуру
04.09.12
21:55
а вообще построитель/СКД спасет отца русской демократии
28 AlexeyID
 
04.09.12
21:59
(25) Это видимо единственный (интересный) вариант, но динамический текст по совету (2) проще
29 Wobland
 
04.09.12
21:59
(23) спасибо, дошло. выпад по поводу шестилетнего стажа отношу на собственное позднее время
30 m-serg74
 
04.09.12
22:00
(22) кстати прикольный вариант, может пригодится
31 Wobland
 
04.09.12
22:03
(30) должно не взлететь. см (23) ;)
32 Wobland
 
04.09.12
22:05
(31) не, вру. сходил и проверил
33 m-serg74
 
04.09.12
22:05
что именно проверил?
34 Wobland
 
04.09.12
22:06
(33)
ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних

УПОРЯДОЧИТЬ ПО
   выбор когда истина тогда Цена конец
35 m-serg74
 
04.09.12
22:06
в (22) немного другое
36 Wobland
 
04.09.12
22:06
+(34) ну и убыв для пущего контроля
37 Wobland
 
04.09.12
22:07
(35) очень немного
38 Wobland
 
04.09.12
22:08
+(37)
ВЫБРАТЬ
   ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
   РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних

УПОРЯДОЧИТЬ ПО
   выбор когда &оппа=20 тогда Цена конец убыв
39 Wobland
 
04.09.12
22:10
(37) ага, не очень, там поле упорядочивания. всё, я спать, доброй ночи всем. у меня заработало
40 m-serg74
 
04.09.12
22:13

ВЫБРАТЬ
   ЦеныНоменклатуры.Регистратор,
   ЦеныНоменклатуры.Номенклатура,
   ЦеныНоменклатуры.Цена,
   ВЫБОР
       КОГДА &Параметр = "Номенклатура"
           ТОГДА ЦеныНоменклатуры.Номенклатура.Наименование
       КОГДА &Параметр = "Цена"
           ТОГДА ЦеныНоменклатуры.Цена
       ИНАЧЕ ЦеныНоменклатуры.Период
   КОНЕЦ КАК Поле1
ПОМЕСТИТЬ ВТ
ИЗ
   РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВТ.Регистратор,
   ВТ.Номенклатура,
   ВТ.Цена,
   ВТ.Поле1 КАК Поле1
ИЗ
   ВТ КАК ВТ

УПОРЯДОЧИТЬ ПО
   Поле1


ИМХО (22) все таки прикольно, и все работает
41 Classic
 
04.09.12
22:25
(32)
Ты как-то очень интересно проверяешь :)
Все пашет аж бегом
43 Fragster
 
гуру
04.09.12
22:43
(28) лучше построитель запроса