Имя: Пароль:
1C
1С v8
Помогите с запросом
0 dik2004
 
28.08.13
23:50
Привет, форумчане.
Что-то я туплю.

Есть документ Установка цен номенклатуры.
В нем есть ТЧ "Типы цен"

Есть Справочник Пользователи. В нем есть ТЧ "Запрещенные типы цен"

Надо, чтобы пользователь не видел документы Установка цен номенклатуры, в которых есть хотя бы один тип цен из тех, которые ему запрещено видеть.

Пишу запрос в ограничении доступа к данным документа Установка цен номенклатуры:

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

Соответственно, если в документе есть только запрещенные типы цен, то все нормально. Но если есть хоть один разрешенный, то ограничение не срабатывает (что вполне логично).

И вот я сижу и туплю - не пойму как написать, чтобы проверялось не вхождение всего списка в другой список, а вхождение хотя бы одного элемента.

Помогите.
1 dik2004
 
29.08.13
00:43
Судя по всему все уже спят :(((

Ладно, утро вечера мудренее...
2 H A D G E H O G s
 
29.08.13
00:55
Документ ИЗ Документ.Документ КАК Документ
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.ЗапрещенныеТипыЦен КАК ПользователиЗапрещенныеТипыЦен
    ПО Документ.ТипыЦен.ТипЦен = ПользователиЗапрещенныеТипыЦен.ТипЦен
ГДЕ ПользователиЗапрещенныеТипыЦен.Ссылка ЕСТЬ NULL
4 H A D G E H O G s
 
29.08.13
01:05
УстановкаЦенНоменклатуры ИЗ Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.ЗапрещенныеТипыЦен КАК ПользователиЗапрещенныеТипыЦен
    ПО (УстановкаЦенНоменклатуры.ТипыЦен.ТипЦен = ПользователиЗапрещенныеТипыЦен.ТипЦен
            И ПользователиЗапрещенныеТипыЦен.Ссылка = &ТекущийПользователь)
ГДЕ ПользователиЗапрещенныеТипыЦен.Ссылка ЕСТЬ NULL
5 dik2004
 
02.09.13
14:41
Подниму тему.
HADGEHOG - спасибо за подсказку.

Правда все равно нифига не работает :(

Вот такое ограничение

ТекущаяТаблица
ИЗ
    #ТекущаяТаблица КАК ТекущаяТаблица
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.ЗапрещенныеТипыЦен КАК ПользователиЗапрещенныеТипыЦен
        ПО (ТекущаяТаблица.ТипыЦен.ТипЦен = ПользователиЗапрещенныеТипыЦен.ТипЦен
                И ПользователиЗапрещенныеТипыЦен.Ссылка = &ТекущийПользователь)
ГДЕ
    ПользователиЗапрещенныеТипыЦен.ТипЦен ЕСТЬ NULL    

В консоли отчетов отрабатывает нормально. Но прописанное в ограничении доступа данных на чтение для Установки цен номенклатуры не запрещает доступ к документу с двумя типами цен, один из которых запрещен.

В общем, что-то не фурычит там, а как это отладить непонятно :(
6 Enders
 
02.09.13
15:40
А не проще ли выбрать документы с запрещёнными типами и им ставить ограничение на редактирование/Просмотр
Тогда в последнем запросе надо Не есть NULL.
Если не подходит. То
1. Получаешь запрещённые документы(как описано выше)
2. Где Ссылка не в 1
7 dik2004
 
02.09.13
15:50
Попробую.
Потом напишу, вдруг и правда через такие грабли заработает
8 dik2004
 
09.09.13
16:45
Не стал городить.

заказчик попросил просто добавить дату, до которой чтение старых документов будет запрещено. А новые будет делать с одним типом цен

В общем, костыли прикручены )))
AdBlock убивает бесплатный контент. 1Сергей