0
- 13.11.2015 - 16:28
|
Необходимо: 1.если хоть один из товаров имеет пометку удаления - не разрешать запись документа. 2.это должно действовать с определенной даты управляемые формы (хотя для RLS это не сильно важно). Текст ниже НЕ работает РеализацияТоваровУслуг ГДЕ (НЕ РеализацияТоваровУслуг.Ссылка В (ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ НЕ РеализацияТоваровУслугТовары.Номенклатура.ПометкаУ даления )) (подглядел в каком-то FAQ по RLS) пробовал через левое соединение - что типа такого: РеализацияТоваровУслуг ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РеализацияТоваровУслугТовары.Ссылка КАК Ссылка ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ НЕ РеализацияТоваровУслугТовары.Номенклатура.ПометкаУ даления) КАК ВложенныйЗапрос ПО РеализацияТоваровУслуг.Ссылка = ВложенныйЗапрос.Ссылка тоже не работает. Вариантов перепробовал массу вариантов. вот это работает РеализацияТоваровУслуг ГДЕ НЕ РеализацияТоваровУслуг.ПометкаУдаления если принять, что задание - НЕ сохранять помеченные на удаление документы. До даты даже не добрался. Но это может и смогу сам. А вот обращение к табличной части. Понимаю, что надо отсортировать выборку из табличной части по пометке удаления, так, чтобы помеченные были вверху и ВЫБРАТЬ 1, но всё что я не строил или было с ошибкой или не работало. Как правило спокойно сохраняло документ с двумя товарами - у одного есть пометка, у другого нет. З.ы. и да я знаю, что: кртксть - сстр, тлнт. | |
1
- 13.11.2015 - 17:33
| Может проще подпиской? | |
2
- 13.11.2015 - 17:51
|
В первом RLS в самом глубоком запросе выбираются документы, содержащие хотя бы одну строку с НЕ помеченной на удаление номенклатурой. "ГДЕ(НЕ" применённое к этой выборке даст выборку документов, не содержащих ничего кроме строк с помеченной на удаление номенклатурой. Это несколько противоречит постановке "один из товаров" ЗЫ (1) +100 | |
3
- 13.11.2015 - 22:37
|
РеализацияТоваровУслуг ГДЕ НЕ 1 В ( ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ НЕ РеализацияТоваровУслугТовары.Номенклатура.ПометкаУ даления И РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка ) | |
4
- 15.11.2015 - 18:25
| (0) Это нафига ж над системой так издеваться, если подписки есть? | |
5
- 16.11.2015 - 01:24
|
А самое главное, что и пользователь, глядя на сообщение "не достаточно прав", и админ ,глядя в журнал регистрации на запись "ошибка доступа" для события "изменение", очень быстро поймут, что же с системой не так. Отличный способ выстрелить себе в колено. Такого в моей коллекции еще не было. | |
6
- 16.11.2015 - 03:44
| может запись только нового документа | |
7
- 16.11.2015 - 03:47
|
но тогда обходится юзером без проблем: выбрал не помеченную номенклатуру, записал, зашёл, поменял на помеченную, опять записал. всё-таки на этапе подбора номенклатуры надо отсеивать, имхо | |
8
- 16.11.2015 - 12:25
| 3-bma1 > НЕ сохраняет табличную часть в обоих случаях (есть пометка у номенклатуры или нет) | |
9
- 16.11.2015 - 12:30
|
(8) ещё раз: не делай RLS. Помедитируй над (5). Твоя задача - это классическая проверка заполнения с нормальным информативным сообщением пользователю (и отказом от записи, если уж так припёрло). | |
10
- 16.11.2015 - 13:21
| 9-roma n >делаю через события, но просто стало интересно, как же этот чудный RLS запрос строить-то | |
11
- 16.11.2015 - 15:30
| В первом примере из (0) убери НЕ из самого глубоко вложенного запроса | |
12
- 16.11.2015 - 15:33
|
2(8) ГДЕ НЕ РеализацияТоваровУслугТовары.Номенклатура.ПометкаУ даления И РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка ) Читать как ГДЕ РеализацияТоваровУслугТовары.Номенклатура.ПометкаУ даления И РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка ) | |
13
- 16.11.2015 - 15:49
| 12-bma1 >неа, всё равно НЕ хочет в обоих случаях | |
14
- 16.11.2015 - 15:53
| 11-roma n >убрал не хочет записывать в любом случае (есть номенклатура с пометкойуд, нету - отказ) | |
15
- 16.11.2015 - 15:59
| 3-bma1 >мне нравится ход твоих мыслей, но кажется надо упорядочить выборку по значению пометка удаления, чтобы "Истина" была вверху. но как это сделать я не знаю. а конструктор твой запрос не может разобрать. | |
16
- 16.11.2015 - 16:15
|
2(15) не надо никого упорядочивать. надо попытаться получить хоть одну строку, удовлетворяющую условию, что в ней есть номенклатура с пометкой удаления. И если есть хоть одна такая строка - ВЫБРАТЬ ПЕРВЫЕ 1, проверить на вхождение значения 1 в результата этой выборки - 1. Если таких строк нет - в выборке пусто и условие НЕ 1 В ( - срабатывает как НЕ ЛОЖЬ = ИСТИНА. Такой запрос у меня работает на проверку табличной части документа из самописной конфы, где требуется, что если хоть одно значение входит в определенный список - тогда документ не подлежит чтению. | |
17
- 16.11.2015 - 18:33
|
сделал через подписку на событие с сообщением причины всё кошерно как хотели: 1-GariPortman > 5-Reaper >9-roma n > но блин запрос всё равно не отработал | |
| Интернет-форум Краснодарского края и Краснодара |