gifts2017

Запрет редактирования/пометки на удаление/отмены проведения задним числом для каждого пользователя.

Опубликовал Павел Мишечкин (Gangar) в раздел Администрирование - Защита, права, пароли

Запрет редактирования/пометки на удаление/отмены проведения задним числом для каждого пользователя.
В Справочнике Пользователи надо добавить Реквизит "ЗапрРед" (число) и добавить его в форму. Теперь вы можете назначать для каждого пользователя свои сроки работы задним числом.
 
//в Глобальном Модуле.

Перем Запрет;
...
Функция глПроверкаПроведенияЗаднимЧислом (Конт) Экспорт
        //проверка на пользователя - проведение задним числом 
    Запрет=Число(глПользователь.ЗапрРед);
    Если ИмяПользователя()<>"Администратор" Тогда 
              //устанавливаем пользователя, которому можно всё. 
        Если (ТекущаяДата () - Конт.ДатаДок) > Запрет  Тогда 
            Возврат 1;
        КонецЕсли;
    КонецЕсли;                             
    // конец проверки на проведение задним числом 
КонецФункции

Процедура ПриУдаленииДокумента(УдаляемыйДок, Режим)
    Если Режим = 1 Тогда
        // запрет на непосредственное удаление 
        Возврат;
    КонецЕсли;  
    Если ИмяПользователя()<>"Администратор" Тогда
        Если (ТекущаяДата() - УдаляемыйДок.ДатаДок) > Запрет Тогда
            СтатусВозврата(0);
            Предупреждение("Запрещено удалять документы (операции),"+РазделительСтрок+"введенные по "+Формат((ТекущаяДата() - Запрет),"ДДДММММГГГГ")+" !");
            Возврат;
        КонецЕсли;        
    КонецЕсли;
КонецПроцедуры


Процедура ПриОтменеПроведенияДокумента(Док)
    Если ИмяПользователя()<>"Администратор" Тогда
        Если (ТекущаяДата() - УдаляемыйДок.ДатаДок) > Запрет Тогда
            СтатусВозврата(0);
            Предупреждение("Запрещено удалять проведение документов (операций),"+РазделительСтрок+"введенных по "+Формат((ТекущаяДата() - Запрет),"ДДДММММГГГГ")+" !");
            Возврат;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

См. также

Подписаться Добавить вознаграждение
Комментарии
1. sournk (sournk) 29.08.12 13:14
'Если ИмяПользователя()<>"Администратор" Тогда' - это ужас!
2. Иваныч Иванов (Иваныч) 09.11.12 21:18
Я делал устанавливал запрет редактирования документов:( Текущая дата - 1 день.), всем пользователям на торговых точках поставил минимальные полномочия и исключил возможность нагадить в чужом документе "ОтчетККМ", т.н. "защита от глупости". Завтра постараюсь выложить куски кода с описанием, может кому и сгодится.
3. Иваныч Иванов (Иваныч) 22.11.12 10:20
Извиняюсь за задержку ответа.
В глобальном модуле дописана строка:
Константа.ДатаЗапретаРедактирования=ТекущаяДата()-1;

еще добавление:
Функция глПроверкаРазрешенияРедактирования(Конт) Экспорт

Конт.ПриЗаписиПерепроводить(1);
Если (Конт.Автор<>глПользователь)и(НазваниеНабораПрав()<>"Администратор") Тогда
Конт.Форма.ТолькоПросмотр(1);
Предупреждение("Вы не создавали этот документ, но можете просмотреть его!",4);
Возврат 0;
КонецЕсли;
это для того, чтобы пользователи (продавцы) на своих распределёнках не могли внести какие-либо изменения в чужой документ (например, ОтчетККМ)