|
Проверить выполнение условия в запросе | ☑ | ||
|---|---|---|---|---|
|
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 статуса, там же надо заказы отбирать по статусам, поэтому статусов несколько может под вид докумена
|
|||
|
12
ЛаТина
14.06.26
✎
19:13
|
(8) не поняли, что нужно
(9) да, все верно, куча правил (10) Операция не разрешена в предложении ГДЕ статусов может несколько подобраться, я потом группирую и с самым маленьким номером беру. ну т.е. самый ранний. макет упрощенный привела, все работает кроме новых добавленных условий, по ним колхозить приходится |
|||
|
13
Garykom
гуру
14.06.26
✎
19:24
|
(12) Самый простой вариант знаешь какой?
Забить на условия в запросах и просто кодом статусы менять Причем сами "правила" хранить в виде текстов "скриптов" в базе Которые банально будут исполняться для каждого документа В которых доступны нужные данные (сам документ и прочее) как входящие параметры, а на выходе функции (или процедуры с выходными параметрами) скрипта нужный статус(ы) Один хрен чтобы поправить правила нужен будет спец - так логично делать сразу удобно и наиболее гибко На ограничиваясь некими условиями/правилами |
|||
|
14
Волшебник
14.06.26
✎
19:28
|
(12) Кто там нам чего-то не разрешает? Давайте разберём. Может Вы поделитесь прикладной частью, без этих "реквизит1=б"? Может Вы начнёте нас воспринимать, как советчиков, а не просто как восстановителей пароля?
|
|||
|
15
ЛаТина
14.06.26
✎
19:30
|
(13)
по каждому документу куча заказов может быть и в цикле просто кодом будет долго. ну и поддерживаемость такая себе. самое быстрое было как раз запросом в том числе по макету. в итоге пока добавила новые условия по (3), остальное по старому алгоритму. если бы была возможность текстовое условие подтянутое как результат запроса, пульнуть в условие запроса, было бы проще и красивее. и быстрее |
|||
|
16
Волшебник
14.06.26
✎
19:31
|
(15) Может цикл будет нормально? Вы подумайте, Вы замерьте.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |