Программирование в 1СПонедельник, 06.05.2024, 02:13

| RSS
Главная | Каталог статей
Меню сайта

Категории раздела
Основы [36]
Общие вопросы по 1С 7.7 [88]
1С: Бухгалтерия 7.7 [7]
1С: Торговля 7.7 [4]
1С:Зарплата и кадры 7.7 [1]
1С 7.7: Проблемы и решения [33]
УРБД [3]
Управление Распределенными Базами Данных
OLE [2]
Механизм обмена данными между базами 1С через OLE
SQL [1]
Сервер терминалов [1]
Интеграция с внешними приложениями [3]
FAQ по 1С v.7.7 [7]
FAQ по 1С v.7.7

Поиск

Поиск по сайту

Главная » Статьи » 1С v.7.7 » Общие вопросы по 1С 7.7

Установка запрета редактирования в 1С
Установка запрета редактирования в 1С
 
    Во многих конфигурациях для этого используется константа «Дата запрета редактирования». Затем в глобальном модуле прописывается процедура наподобие этой:

Процедура глПроверкаРазрешенияРедактирования(Конт) Экспорт
Если Конт.Выбран() = 1 Тогда
   Если (Конт.ДатаДок <= Константа.ДатаЗапретаРедактирования) и (Конт.Форма.ТолькоПросмотр() = 0) Тогда 
      Конт.Форма.ТолькоПросмотр(1); 
      Предупреждение(“Разрешен только просмотр документа!”, 4); 
   КонецЕсли;
КонецЕсли;
КонецПроцедуры

    А в предопределенных процедурах ПриОткрытии() в модулях формы всех документов конфигурации нужно вставить вызов процедуры:

глПроверкаРазрешенияРедактирования(Контекст);
Если Форма.ТолькоПросмотр() = 1 Тогда
// здесь нужно написать код, делающий недоступными кнопки
// примерно так: Форма.КнопкаОК.Доступность(0);

КонецЕсли;

    Существуют и более изощренные способы на запрет редактирования объектов метаданных. Один из них заключается в следующем:
1) в глобальном модуле описывается:
Перем глПользователь Экспорт;
для хранения ссылки на элемент справочника «Пользователи» для текущего пользователя;
2) в конфигурации заводится справочник «Пользователи», если он еще не заведен; прописывается автоматическая регистрация новых пользователей в этом справочнике при первом входе в 1С Предприятие, а заодно и заполнение глобальной переменной глПользователь – это делается в предопределенной процедуре ПриНачалеРаботыСистемы() глобального модуля:

Спр = СоздатьОбъект(“Справочник.Пользователи”);
Если Спр.НайтиПоКоду(ИмяПользователя(), 0)=1 Тогда 
   глПользователь=Спр.ТекущийЭлемент();
Иначе 
   Спр.Новый(); 
   Спр.Код = ИмяПользователя(); 
   Спр.Наименование = ПолноеИмяПользователя(); 
   Спр.Записать(); 
   глПользователь=Спр.ТекущийЭлемент(); 
   Предупреждение(“Пользователь внесен в справочник пользователей! В новых документах будет фиксироваться автор!”);
КонецЕсли;
3) в справочник «Пользователи» добавляется реквизит «ДатаЗапретаРедактирования», а процедура глПроверкаРазрешенияРедактирования(Конт) из глобального модуля изменяется таким образом, чтобы сравнение шло не с константой, а с реквизитом справочника «Пользователи»:

Если (Конт.ДатаДок <= глПользователь.ДатаЗапретаРедактирования) и (Конт.Форма.ТолькоПросмотр() = 0) Тогда

    Таким образом реализуется возможность запрета редактирования документов глубже разных дат для разных пользователей. Еще можно создать справочник «ПраваПользователей», подчиненный справочнику «Пользователи», и использовать его для задания всяких изощренных вариантов прав на объекты метаданных конфигурации.
Категория: Общие вопросы по 1С 7.7 | Добавил: Spacer (19.08.2008)
Просмотров: 12621 | Теги: пользователи, Права
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Copyright 1C:Programmer © 2024
    Бесплатный конструктор сайтов - uCoz