gifts2017

Дата запрета редактирования для каждого пользователя

Опубликовал Александр Соколов (Sn1cker5) в раздел Администрирование - Защита, права, пароли

Данная обработка позволяет вместо общей даты запрета редактирования установить дату запрета редактирования для каждого пользователя.

Для этого нужно:

1. В справочник Пользователи добавить реквизит ДатаЗапрета типа "ДАТА"

2. В глобальном модуле изменить все вхождения строки Константа.ДатаЗапретаРедактирования на глПользователь.ДатаЗапрета

3. Перед каждым вхождение глПользователь.ДатаЗапрета написать глОбновитьПользователя();

4. Добавить в глобальный модуль функцию:

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

 

Скачать файлы

Наименование Файл Версия Размер
DataZapreta 124
.1248338329 28,50Kb
25.09.09
124
.1248338329 28,50Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Александр Рытов (Арчибальд) 23.07.09 15:39
А цель оправдывает средства? В смысле, убытки от ухудшеня сопровождаемости + затраты на переустановку дат для каждого пользователя будут меньше предотвращенных потерь от недисциплинированности пользователей?
2. Юрий Тимофеев (Tatitutu) 23.07.09 15:45
Согласен с (1) в свое время тоже нужно было СРОЧНО сделать такую вещь.
Обощелся малой кровью.
Дополнительный каталог в базе данных с текстовым файлом.
Внешней обработкой туда - пользователь и дата
а при проверке даты запрета ! проверка пользователя в этом файле и сверка даты.
+ не нужно менять структуру справочника
- все равно немножко код нужно править (но если слетит при обновлении- не такая уж и беда - Общая дата запрета как работала так и будет работать)
3. rasswet (rasswet) 29.07.09 12:38
4. Ярослав (kivals) 29.07.09 16:59
(0) ИМХО было бы правильней пункты 2) и 3) инструкции объединить, а в 4) прописать чуть другую функцию:
2+3) в глобальном модуле изменить все вхождения строки Константа.ДатаЗапретаРедактирования на вызов функции глПолучитьДатуЗапретаПользователя()
4) Функция глПолучитьДатуЗапретаПользователя() Экспорт
// установка текущего пользователя
Спр=СоздатьОбъект("Справочник.Пользователи");
Если ПустоеЗначение(ИмяПользователя())=0 Тогда
Если Спр.НайтиПоКоду(ИмяПользователя())=0 Тогда
КонецЕсли;
КонецЕсли;
глПользователь=Спр.ТекущийЭлемент();
Возврат ?(ПустоеЗначение(Спр.ДатаЗапрета)=0,Спр.ДатаЗапрета,Константа.ДатаЗапретаРедактирования);
КонецФункции

А еще нужно при смене значения константы ДатаЗапретаРедактирования (Процедура ПриЗаписиКонстанты()) проверять и предупреждать о пользователях, у которых дата запрета становиться меньше нового значения...
5. Олег Кобяков (kobol) 29.07.09 21:27
6. Евгений Соколов (falcon10) 30.07.09 13:14
По моему опыту, можно использовать данный механизм если мало пользователей..... Что-то похожее внедрили в новые 1С8 УПП/УТП/... Но моему главному бухгалтеру лень каждый раз назначать "ролям" пользователей ограничивающие пределы на редактирования. В итоге был сделан механизм работающий от текущей даты. Смысл= операторы могут редактировать документы в пределе 7-10 последних дней, но если главный бухгалтер закрывает предыдущий месяц за который сделаны отчеты, то пользователям там делать нечего. Исключение - гл.бухгалтер и администраторы. Но и администраторы могут залезть в закрытый период и что-то испортить. Для этого надо выводить информацию "проведено в закрытом периоде" или даже спрашивать "Вы уверены что хотите провести в закрытом периоде". 4 года назад для работы в комплексной 77 я применил простой механизм защиты от перепроведения документов в закрытом периоде. Во все "контролируемые" документы вставил в процедуру "определения видимости обьектов документа" вызов особой функции которая "гасила" доступность кнопки "ОК"(сохранит/провести) в случае попадания в закрытый период. Этот метод не давал перепроводить документы без ведома главного бухгалтера и администратора. Ну а при внедрении другой процедуры в процедуру "проведения" главный бухгалтер документа получал запрос на перепроведение документа в закрытом периоде = "А вы уверены, что хотите...". Так что вариантов реализации.
7. Максим _ (maxon4eg) 08.07.10 17:53
всем привет...никто не подскажет как сделать запрет редактирования всех документов, кроме созданных текущей датой?
8. Дмитрий (Dem0n-85) 16.01.12 06:08
Спасибо, пригодилось данное решение.
9. sada (sada) 16.01.12 07:48
может кто-нибудь подскажет как сделать запрет редактирования всех документов, кроме созданных текущей датой?
Надо сделать запрет, а не получается