Имя: Пароль:
1C
 
Предопределенный элемент в запросе
0 Игорь_МММ
 
29.03.16
13:58
как правильно поставить условие. мне нужно выбрать последний из присвоенных статусов. запрос (фрагмент) такой:

ВЫБОР
        |        КОГДА ЗаказыПокупателей.Собран = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Собран)
        |            ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Собран)
        |        ИНАЧЕ ВЫБОР
        |                КОГДА ЗаказыПокупателей.Отгружен = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Отгружен)
        |                    ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Отгружен)
        |                ИНАЧЕ ВЫБОР
        |                        КОГДА ЗаказыПокупателей.НаСкладеГП = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.НаСкладеГП)
        |                            ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.НаСкладеГП)
        |                        ИНАЧЕ ВЫБОР
        |                                КОГДА ЗаказыПокупателей.ВПроизводстве = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВПроизводстве)
        |                                    ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.ВПроизводстве)
        |                                ИНАЧЕ ВЫБОР
        |                                        КОГДА ЗаказыПокупателей.КонстрПроработка = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.КонстрПроработка)
        |                                            ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.КонстрПроработка)
        |                                        ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Поступил)
        |                                    КОНЕЦ
        |                            КОНЕЦ
        |                    КОНЕЦ
        |            КОНЕЦ
        |    КОНЕЦ КАК Поле1

по факту ЗаказыПокупателей.КонстрПроработка = Перечисление.СтатусыЗаказов.КонстрПроработка. Но Поле1 получается ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Поступил), то есть ЗаказыПокупателей.КонстрПроработка <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.КонстрПроработка). Как правильно написать условие ?
1 Molinor
 
29.03.16
14:04
Можно просто писать:

ВЫБОР
КОГДА
  ТОГДА
КОГДА
  ТОГДА
...
ИНАЧЕ
КОНЕЦ

Удобнее читать код будет.

Значит у тебя в "ЗаказыПокупателей.КонстрПроработка" что-то другое, посмотри запросом что.
2 ObjectRelation Model
 
29.03.16
14:09
(0) а в чем смысл этой херни?
3 ObjectRelation Model
 
29.03.16
14:10
поле ЗаказыПокупателей.КонстрПроработка какого типа?
4 Игорь_МММ
 
29.03.16
14:12
(1) (3)ЗаказыПокупателей.КонстрПроработка - ПеречислениеСсылка.СтатусыЗаказов
5 Игорь_МММ
 
29.03.16
14:17
(1) Получается в Заказе покупателя последовательно присваиваются статусы - то есть у одного ЗаказаПокупателя могут быть статусы Поступил, КонстрПроработка, ВПроизводстве и тд - по степени выполнения заказа. Мне нужно взять последний из статусов, то бишь если уже ВПроизводстве то КонстрПроработка не интересует, нужно выбрать КонстрПроработка
6 Игорь_МММ
 
29.03.16
14:18
(5) сорри , неправильно написал - выбрать нужно ВПроизводстве
7 Dmitrii
 
гуру
29.03.16
14:22
Собран, Отгружен, НаСкладеГП, ВПроизводстве, КонстрПроработка - это всё реквизиты документа?
Бред какой-то. У вас заказ может быть одновременно и на складе и в производстве, и отгружен, и собран?
Идиотизм на марше...
8 Карупян
 
29.03.16
14:23
(7) Статусы галочками - вполне рабочий вариант
9 Повелитель
 
29.03.16
14:25
(8) Где там галочки? Там перечисления.
Руки отрывать за такое нужно.
10 Игорь_МММ
 
29.03.16
14:27
(7) так и есть ... ) однако чем богаты
У меня ЗаказыПокупателей.КонстрПроработка = Перечисление.СтатусыЗаказов.КонстрПроработка -смотрю это в отладчике , тогда почему по ветке

ВЫБОР
        |                                        КОГДА ЗаказыПокупателей.КонстрПроработка = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.КонстрПроработка)
        |                                            ТОГДА ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.КонстрПроработка)
        |                                        ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Поступил)
        |                                    КОНЕЦ

попадает на ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.Поступил), а не на ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказов.КонстрПроработка) ?
11 Карупян
 
29.03.16
14:29
(10) у тебя случайно предопределенные не задвоились?
12 Dmitrii
 
гуру
29.03.16
14:30
(8) >> Статусы галочками - вполне рабочий вариант

Вообще статусы галочками - приемлемо. С ВЗАИМОИСКЛЮЧАЮЩИМИ галочками - бред и маразм. А уж перечислениями, как у автора, - дебилизм чистой воды.
13 Игорь_МММ
 
29.03.16
14:39
(11) блин, это как может быть и как это проверить?
ПС только не кидайтесь тапками  - я пока не сильно шарю
14 Карупян
 
29.03.16
14:41
(13) хотя нет, это же перечисления
15 3ato-rado
 
29.03.16
14:47
Надо смотреть где вызывается и какие параметры передаете в запрос, может вы меняете статус, а передаете старое значение документа.