Разграничение прав доступа по полям #338916


#0 by Andrey1957
Тема уже обсуждалась (см. ), и вроде как выяснилось, что средствами RLS разграничить права на полный доступ по полям нельзя. Необходимость же такого разграничения продиктована жизненными потребностями. Повторю свой пример, изложенный по выше приведенной ссылке. Возьмем, к примеру, оформление командировок. Сам документ на поездку   работника в командировку оформляет и заводит в машину секретарь (делопроизводитель) того подразделения, в котором работает сотрудник. А регистрирует командировку, проставляя в документе номер и дату приказа, а также - номер командировочного удостоверения - канцелярия. Вот и возникает необходимость дать двум ролям право на чтение всех полей таблицы, но с разграничением прав на редактирование: одной роли разрешить нужно редактировать одни поля, а другой - другие. По-хорошему должна быть еще третья роль - бухгалтерия, которая закрывала бы командировки после сдачи авансовых отчетов, заполняя в документе соответствующие реквизиты и не имея возможностей менять остальные. Если использовать возможности RLS "в лоб", то задачу решить не удается. А что если попытаться зайти в обход? Появилась такая мысль: "А что если разнести реквизиты документа по разным объектам?". Ну например, что если часть реквизитов, к которым нужно разграничить ПОЛНЫЙ доступ, вынести, например, в регистр сведений? Применительно к приведенному мною примеру, "номер приказа", "дату приказа", "номер команд. удостоверения" вынести в регистр сведений, который условно назовем "регистрация командировок". Тогда, дав канцелярии полный доступ, а основному пользователю - право только на чтение к записям этого регистра (и, зеркально меняя права ролей к документу-регистратору), мы решаем поставленную задачу. Попробовал было применить на практике эту мысль. Сделал изменения в конфигурации, а вот добиться реализации своей идеи никак не могу. Подобная структура данных реализована в справочниках (тот же справочник "Валюты", в котором курс и кратность вынесены в регистр сведений), но при реализации подобного механизма в документе, обновления записи регистра сведений не происходит. Может потому, что при работе с документом регистр пишется только при проведении документа? Может у кого есть опыт разнесения реквизитов записи ДОКУМЕНТА по разным объектам и их совместной обработке? Поделитесь, плз. или подскажите где это можно посмотреть.
#1 by ТелепатБот
#2 by asady
конфа? релиз?
#3 by Andrey1957
Отвечаю на Ваш вопрос: Конфа - 1С:Управление строительной организацией, редакция 1.2 (1.2.14.3).
#4 by vladnet
А что там может быть сложного. В форме при открытии заполняешь соответствующие реквизиты, при записи их записываешь в регистр сведений.
#5 by asady
смотри внимательно новую реализацию RLS в типовой УТ 10.3 там по новому реализованы ограничения по полям и на чтение и на запись.
#6 by Andrey1957
Так у меня все сделано прям по твоему совету. Вот процедуры в модуле формы. Вроде все правильно написано, но... не работает.
#7 by Andrey1957
Скачал и установил УТ 10.3. Не вижу пока ничего нового. Подскажи, пожалуйста, в каком ДОКУМЕНТЕ УТ 10.3 реализовано по-новому право роли на запись поля.
#8 by asady
смотри сами роли и RLS к ним
#9 by Paris
а нельзя сделать несколько доков, которые последовательно на основании пердыдущего будут вводиться?
#10 by Andrey1957
Половину ролей просмотрел, ничего нужного мне не увидел. Да есть ли там вообще, отдельное право у роли на запись поля документа? Если есть, то подскажи, не томи душу. Ограничение прав на Чтение отдельных полей, да есть. Но речь-то не о нем идет, а о праве на редактирование отдельного поля. Можно-то, можно. Только как потом работать эта конструкция будет? Вводить документ и потом искать документы, которые введены на его основе или тот, на основание которого он был введен? Не прорисовывается картинка. С регистром все понятно: вводишь документ и автоматом получаешь доступ к записи регистра сведений, связанной с этим документом по измерению. Вот только обработку регистра в форме документа надо отладить.
#11 by Гений 1С
Я не пойму одного - а нафига РЛС, если в данном случае проверка на уровне модуля работает на УРА!
#12 by Гений 1С
Мысль идиотская - выносить в РС, но все же, если нужно. Код в модуле формы не правильный. Почему регистр сведений сделан подчиненным регистратору, что за маразм? Измерение: Документ Ресурс: Реквизит При открыии получаешь значение по ссылки. При записи:
#13 by Andrey1957
Да для того, чтоб по максимому обновления использовать. Ведь в тех же командировках, вынеся реквизиты канцелярии в регистр сведений, мы добиваемся возможности использования обновлений. В противном случае, после каждого обновления придется "переобновлять" модули и формы документов. Удовольствие - ниже среднего, и трудоемкое очень. Когда конфигурация самописная или сделана из типовой (и от типовой ничего не осталось), так леший с ним - права расписали в коде и забот не знаем (так в семерке мы и делали), но сейчас мы внедряем такую монстру как УСО (управление строительной организацией), которая сама по себе еще сырая и постоянно доводится до ума. И после каждого обновления "переобновлять" код - нет ни сил, ни времени. Сергей, будь сдержанней в эмоциях. Похоже, что тебе маразм также не чужд. Попробовал я последовать твоему совету и получил пшик: Движение=РегистрыСведений.ИмяРек.СоздатьЗапись; получил сообщение об ошибке "Поле не найдено", когда же, посчитав ИмяРек очевидной опиской, переписал на Движение=РегистрыСведений.ИмяРегистра.СоздатьЗапись; получил сообщение об ошибке "Метод не найден". Ну и зачем маразмом делиться? Нельзя ли выдать что-нибудь пусть не гениальное, но правильное? Или хотя бы проверить самому то, что предлагаешь?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С