Бухгалтерия 3.0 - Документ - Перемещение товаров не сколько складов.
Надо ограничить доступ к документу по пользователю(ответственный в документе), т.е. тот кто создал документ может редактировать и пере проводить, другие только просматривать, но пользователь ПетровАС и ИвановИИ имеют полный доступ к документам?
Полагаю надо добавить ПриОткрытии формы документа процедуру определения пользователя и установить права, но как?
(2) (10) - не пользовался подписками... Спасибо, вопрос решен!
- пока оставлю в Документ - МодельОбъекта
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если (Ответственный <> ПараметрыСеанса.ТекущийПользователь) И НЕ ЭтоНовый() И (НЕ РольДоступна("ПолныеПрава")) Тогда
Сообщить("У вас нет прав редактировать этот Документ.Ответственный: "+Ссылка.Ответственный);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
1. Добавить в Общие - Общие модули - с наименованием, к примеру "Свое_ПередЗаписьюДокумента"
вставить код:
Процедура ПередЗаписью(Объект, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если РежимЗаписи = РежимЗаписиДокумента.Проведение и Объект.ЭтотОбъект.Проведен тогда
Отказ = Истина;
Сообщить("Нельзя перепровести проведенный ранее документ!");
КонецЕсли;
Если (Объект.Ответственный <> ПараметрыСеанса.ТекущийПользователь) И НЕ Объект.ЭтоНовый() И (НЕ РольДоступна("ПолныеПрава")) Тогда
Сообщить("У вас нет прав редактировать этот Документ.Ответственный: "+Объект.Ссылка.Ответственный);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Показать
2. Добавить в Общие - Подписка на событие - с наименованием, к примеру "Свое_ПередЗаписьюДокумента" выбрать:
- Источник - Составной тип - выбрать нужные Документы для защиты
- Событие - ПередЗаписью
- Обработчик - "Свое_ПередЗаписьюДокумента"
0. Создаем роль пустую , называем "ЗапретНаРедактированиеСправочника"
1. В общем модуле было создан объект: ЗапретНаРедактированиеСправочника (рис1) с кодом:
Процедура ЗапретНаРедактированиеСправочникаПриЗаписи(Источник, Отказ) Экспорт
Отказ = РольДоступна("ЗапретНаРедактированиеСправочника");
Если РольДоступна("ЗапретНаРедактированиеСправочника") Тогда
Сообщить ("У вас нет прав, обратитесь к руководителю отдела!");
КонецЕсли;
КонецПроцедуры
2. В подписках на события создаем объект "ЗапретНаРедактированиеСправочника" свойствах в:
- "Источниках" указываем объекты справочника которые будут запрещены для редактирования и добавления,
- Событие - ПриЗаписи
- Обработчик - выбираем свой
3.Добавляем пользователю ЧЕРЕЗ КОНФИГуРАТОР роль "ЗапретНаРедактированиеСправочника"
4.Радуемся жизни :)
(2) а про какой механизм БСП идет речь? То что автор говорит это не роли, это отдельный кастомный механизм настроек документа, в БСП такого не видел. В УПП делал через доп свойства.
вообще же должны быть типовые механизмы, БСП же как никак
- не вижу к сожалению...
- проблема в том, что с документом работают разные пользователи с разных складов одной организации.
Есть отбор по пользователю или складу, но нет защиты документа созданного этим пользователем.
(2) (10) - не пользовался подписками... Спасибо, вопрос решен!
- пока оставлю в Документ - МодельОбъекта
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если (Ответственный <> ПараметрыСеанса.ТекущийПользователь) И НЕ ЭтоНовый() И (НЕ РольДоступна("ПолныеПрава")) Тогда
Сообщить("У вас нет прав редактировать этот Документ.Ответственный: "+Ссылка.Ответственный);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
(3) RLS например, хотя слишком тяжелый механизм. В БП 2,0 было "доступ к документам других пользователей", открыть можно, редактировать нельзя, некоторым пользователям по галочке можно было и редактировать. БП 3 для РФ не знаю.
(6) На Форме элемента справочника пользователи, нет ссылки "Права доступа к документам других пользователей" ? По идее стандартный механизм, чужие документы открыть можно, редактировать нельзя. Если конечно полных прав везде не стоит.
(2) -почти решение, остается добавить ПетровАС и ИвановИИ имеют полный доступ к документам
вставил в ФормуДокумента - работает...
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если РежимЗаписи = РежимЗаписиДокумента.Проведение и ЭтотОбъект.Проведен тогда
Отказ = Истина;
Сообщить("Нельзя перепровести проведенный ранее документ!");
КонецЕсли;
Если НЕ ПараметрыСеанса.ТекущийПользователь = Ответственный Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
1. Добавить в Общие - Общие модули - с наименованием, к примеру "Свое_ПередЗаписьюДокумента"
вставить код:
Процедура ПередЗаписью(Объект, Отказ, РежимЗаписи, РежимПроведения) Экспорт
Если РежимЗаписи = РежимЗаписиДокумента.Проведение и Объект.ЭтотОбъект.Проведен тогда
Отказ = Истина;
Сообщить("Нельзя перепровести проведенный ранее документ!");
КонецЕсли;
Если (Объект.Ответственный <> ПараметрыСеанса.ТекущийПользователь) И НЕ Объект.ЭтоНовый() И (НЕ РольДоступна("ПолныеПрава")) Тогда
Сообщить("У вас нет прав редактировать этот Документ.Ответственный: "+Объект.Ссылка.Ответственный);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Показать
2. Добавить в Общие - Подписка на событие - с наименованием, к примеру "Свое_ПередЗаписьюДокумента" выбрать:
- Источник - Составной тип - выбрать нужные Документы для защиты
- Событие - ПередЗаписью
- Обработчик - "Свое_ПередЗаписьюДокумента"
0. Создаем роль пустую , называем "ЗапретНаРедактированиеСправочника"
1. В общем модуле было создан объект: ЗапретНаРедактированиеСправочника (рис1) с кодом:
Процедура ЗапретНаРедактированиеСправочникаПриЗаписи(Источник, Отказ) Экспорт
Отказ = РольДоступна("ЗапретНаРедактированиеСправочника");
Если РольДоступна("ЗапретНаРедактированиеСправочника") Тогда
Сообщить ("У вас нет прав, обратитесь к руководителю отдела!");
КонецЕсли;
КонецПроцедуры
2. В подписках на события создаем объект "ЗапретНаРедактированиеСправочника" свойствах в:
- "Источниках" указываем объекты справочника которые будут запрещены для редактирования и добавления,
- Событие - ПриЗаписи
- Обработчик - выбираем свой
3.Добавляем пользователю ЧЕРЕЗ КОНФИГуРАТОР роль "ЗапретНаРедактированиеСправочника"
4.Радуемся жизни :)
2.5. Первый запуск необходимо провести с параметром "ЗапуститьОбновлениеИнформационнойБазы". В конфигураторе Сервис - Параметры - Запуск 1С:Предприятия - Основные - Параметры запуска добавить ЗапуститьОбновлениеИнформационнойБазы - Ок - Сохранить и запустить в режиме отладки (в дальнейшем параметр надо убрать)