Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:29

Ограничение редактирование чужих документов

Автор ls600, 30 янв 2013, 14:55

0 Пользователей и 1 гость просматривают эту тему.

ls600

Приветствую программисты 1С, подскажите такую вещь.  Пользователь 1 создает документ, получается он ответственный,  пользователь 2 может зайти в  документ пользователя 1 и изменить его. Ниже представлен код то что Пользователь 2  заходит в документ пользователя 1  и изменить не может.


Пишу код :



Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)


Если (НЕ ЭтоНовый()) И (Ответственный <> ИмяПользователя()) Тогда Сообщить("Вам запрещено редактировать данный документ");
КонецЕсли;


КонецПроцедуры


Вроде бы все нормально, редактирование запрещено. А как сделать так если у Пользователя 3 есть полный права то он смог бы редактировать и изменять документы пользователей.




Yura063

ну пропиши что если у пользователя Роль администратор то давать изменять!
Если РольДоступна("ПолныеПрава") Тогда
Отказ = Ложь;
КонецЕсли;
Помогли, отблагодари!

ls600


если я правильно понял вас то получится так
Если (НЕ ЭтоНовый()) И (Ответственный <> ИмяПользователя()) Тогда Сообщить("Вам запрещено редактировать данный документ");
   ИначеЕсли РольДоступна("ПолныеПрава") Тогда Отказ=Ложь;   
   КонецЕсли;
прописал, ни че не изменилось.

Msoul


Если НЕ ( ЭтоНовый() ИЛИ Ответственный = ИмяПользователя() ИЛИ РольДоступна("ПолныеПрава") ) 
Тогда
    Сообщить("Вам запрещено редактировать данный документ");
    Отказ=ИСТИНА;   
КонецЕсли;


mixqn


Если (НЕ ЭтоНовый()) И (Ответственный <> ИмяПользователя() И НЕ РольДоступна("ПолныеПрава")) Тогда
Сообщить("Вам запрещено редактировать данный документ");
Отказ=Истина;
КонецЕсли;

Dethmontt

А что случилось с Тэгом перевода строки в коде?


Добавлено: 30 янв 2013, 21:10


Гугл хром
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

mixqn

Dethmontt, что-то поломалось... неизвестно, что. надеюсь, получится починить в ближайшее время.

ls600

 
Цитата: mixqn от 30 янв 2013, 21:00

Если (НЕ ЭтоНовый()) И (Ответственный <> ИмяПользователя() И НЕ РольДоступна("ПолныеПрава")) Тогда
Сообщить("Вам запрещено редактировать данный документ");
Отказ=Истина;
КонецЕсли;


парни такое дело получается, под другим пользователем открываю документ и выскакивает ошибка

{Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента.Форма(37)}: Ошибка при вызове метода контекста (Записать)
   ЭтотОбъект.Записать();         
по причине:
Не удалось записать "Поступление товаров и услуг 000000064 от 14.01.2013 16:04:06"!

ругается на эту процедуру  которая находится "Форма Документа" модуль формы.

Процедура ЗаполнитьТекстПроСчетФактуру() Экспорт

   ЭлементыФормы.ГиперссылкаСчетФактура.Заголовок = ПолучитьТекстСчетаФактуры(
                                                    НайтиПодчиненныйДокумент(Ссылка, "СчетФактураПолученный"));
                СчетФактураПолученная=  НайтиПодчиненныйДокумент(Ссылка, "СчетФактураПолученный");
   ЭтотОбъект.Записать();         

КонецПроцедуры // ЗаполнитьТекстПроСчетФактуру()





mixqn

ну оно логично, что ругается на эту строку - тут же попытка записи, а права записи мы пользователю не оставили.
а что за конфигурация? странно, что в форме что-то записывается.

ls600

Конфигурация старенькая, СнабжениеИСклад, редакция 1.0 (2.1.2.1.2).

и как решить данную проблему ?!


Добавлено: 31 янв 2013, 09:55


а если такой вариант в форме документа написать

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если Не ЭтоНовый() И  Не Ссылка.Ответственный = ПараметрыСеанса.ТекущийПользователь тогда
ЭтаФорма.ТолькоПросмотр = Истина;
КонецЕсли;
Конецпроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск