Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Настройка прав доступа (RLS)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
maxst22
Добрый вечер всем, кто читает мою тему.
Столкнулся с проблемой следующего характера: необходимо ограничить доступ пользователя ко всем документам, которые он не создавал; т.е. если пользователь не автор документа, то он его не видит!
Конфигурация "Управление торговлей для Украины", 2.3.23.1, релиз платформы: 8.3.5.1248, испытания провожу на документе "Заказ покупателя"
В настройках прав (закладка "права") пишу запрос
ВЫБОР
            КОГДА НЕ ЗаказПокупателя.Ответственный = ЗНАЧЕНИЕ(Справочник.Пользователи.Пустаяссылка)
                ТОГДА ЗаказПокупателя.Ответственный = &ТекущийПользователь
            ИНАЧЕ ИСТИНА
        КОНЕЦ


Все отлично отрабатывается, когда документ уже создан. Пользователь "видит" только свои документы в списке, может их проводить, и т.д.
Проблема начинается, когда пользователь создает новый документ: при записи выдает ошибку "Нарушение прав доступа". Реквизит "Ответственный" заполнен 100%. Но... записать не дает sad.gif
Если копировать предыдущий документ, то все работает отлично: изменяем клиента, товарный состав и т.д. и спокойно записываем и проводим документ.
В чем может быть прикол? при копировании предыдущего точно так же заполняется реквизит "Ответственный"... в чем разница?
Можно конечно выкрутиться, сказав что каждый раз создавать новый документ нужно копированием предыдущего + для каждого пользователя под полными правами создать самый первый так сказать "пустой" документ, как шаблон. НО... как-то это некрасиво по-моему.
logist
Цитата(maxst22 @ 25.02.15, 19:24) необходимо зарегистрироваться для просмотра ссылки
В настройках прав (закладка "права") пишу запрос

Для какого права? Чтение, Добавление,... ?
maxst22
Цитата(logist @ 25.02.15, 19:42) необходимо зарегистрироваться для просмотра ссылки
Для какого права? Чтение, Добавление,... ?

Чтение
maxst22
Ответов так и не дождался... пришлось выкрутиться следующим образом: во всех списках документов в форме списка пишу
Процедура ПриОткрытии()
    ЭтаФорма.ДокументСписок.Отбор.Ответственный.ВидСравнения = ВидСравнения.Равно;
    ЭтаФорма.ДокументСписок.Отбор.Ответственный.Значение = ПараметрыСеанса.ТекущийПользователь;
    ЭтаФорма.ДокументСписок.Отбор.Ответственный.Использование = Истина;
    //Запретим пользователю менять отбор
    ЭлементыФормы.Список.НастройкаОтбора.Ответственный.Доступность = Ложь;
Vofka
Сделайте и залейте куда-то какую-то демо базу, которая демонстрирует такое поведение, может кто-то посмотрит. Потому что судя по описанию действий в первом сообщении, ошибок быть не должно и надо смотреть конкретный случай.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.