|
|
Проверить выполнение условия в запросе
Vostochnick, Волшебник, craxx, oleg_km, Anton1307, PR, tulke, Garykom, ЛаТина, Chameleon1980, Prog_man, SleepyHead, ДемьянТ, laeg, END, X Leshiy, 2S, Amra, obs191, slafor, Эх-эх-эх
| ☑ |
|
0
ЛаТина
14.06.26
✎
16:10
|
Добрый день
при проведении документа (может быть разных типов) подтягиваются все связанные с ним заказы.
нужно в зависимости от типа документа, его статуса и статуса заказа определять новый статус заказа.
раньше проверялся только один реквизит, поэтому условия собраны в макете, по которому запросом по фильтрам определялись новые статусы.
сейчас условия меняются и добавляются. появилась необходимость загнать в запрос условия и выполнить их.
макет упрощенно выглядит так:
тип условие новый статус
ртиу "реквизит1 = а и реквизит2 = в" статус2
ртиу "реквизит1 = б и реквизит2 = ш" статус3
птиу "реквизит1 = с и реквизит5 = д" статус5
птиу "реквизит2 = п и реквизит3 = т" статус1
заявка "реквизит4 = истина" статус4
если забить в макете текстовые условия, то при выполнении запроса валится ошибка
как можно реализовать такое?
|
|
|
1
craxx
14.06.26
✎
15:20
|
(0) Схема компоновки данных в помощь, и не надо никаких макетов.
Точнее схема и будет макетом.
|
|
|
2
ЛаТина
14.06.26
✎
15:35
|
а можете немного конкретизировать, как именно?
пока не понимаю, как из результата запроса сделать сам его текст.
|
|
|
3
Волшебник
14.06.26
✎
16:25
|
ВЫБОР КОГДА ... ТОГДА
КОНЕЦ
|
|
|
4
ЛаТина
14.06.26
✎
16:29
|
(3)
крайний вариант - в реальном макете строк 40 и колонок больше. очень раздутый запрос получится :(
|
|
|
5
Garykom
гуру
14.06.26
✎
16:35
|
Тебе же сказали СКД и даже условия отбора можно программно менять
Откуда их брать пофиг, лично я предпочел бы хранить в базе
Заполнять первоначально да из макетов или предопределенных/кода
А затем возможность менять в базе
И чтобы оно использовалось как правила/условия через СКД
|
|
|
6
Волшебник
14.06.26
✎
16:48
|
(4) генерите запрос программно
|
|
|
7
ЛаТина
14.06.26
✎
16:48
|
(5)
скд сама по себе настолько обширная, что сказать: пользуйте скд - это все равно, что послать.
что именно в скд, где там? как запихать текст условий, полученный из макета в сам текст запроса, чтоб они проверялись?
|
|
|
8
craxx
14.06.26
✎
16:50
|
(7) там макета вообще не надо, в СКД есть волшебная вкладочка "Отбор", где любые по сути условия можно прописать, гораздо круче чем в макете. Запрос самый общий исходный в источнике данных.
|
|
|
9
Garykom
гуру
14.06.26
✎
17:38
|
(8) У ТС задачка не просто отбор а по сути некие правила, которые отвечают за изменение статуса
Поэтому логично их хранить в базе
А еще сделать кнопочку проверки этих правил, на их непротиворечивость и т.д.
Чтобы не получилось что одновременно два разных статуса подходят для состояния документа
|
|
|
10
Волшебник
14.06.26
✎
17:51
|
(0) Какая ошибка?
|
|
|
11
craxx
14.06.26
✎
18:53
|
(9) там может и 2 статуса, там же надо заказы отбирать по статусам, поэтому статусов несколько может под вид докумена
|
|