Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Изменение доступа пользователей по ролям в 1с

Owl Scoring Ученик (86), на голосовании 4 месяца назад
Запрет на изменение проведенного ДОКУМЕНТА, кроме поля-основания (для возможности привязать ДОКУМЕНТА потом к нужному заказу). Т.е. основные поля документа - сумму ДОКУМЕНТА, дату, кассу или контрагента могут только ограниченные сотрудники.

Если технически это возможно, то запрет на исправление комментариев ко всем ДОКУМЕНТА, которые записаны в систему, неважно проведены они или нет.
Голосование за лучший ответ
Татьяна Просветленный (36384) 5 месяцев назад
Для реализации описанных требований в 1С, потребуется внесение изменений в конфигурацию системы. Это делается с помощью управляемых ролей и специальных механизмов контроля доступа на уровне полей и записей. Вот общий алгоритм выполнения задачи:

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

2. Настройка прав доступа к документам
Для того чтобы разрешить изменение только определенных полей документа, необходимо использовать механизм «Управляемые формы» и подписки на события. Рассмотрим пример на языке 1С (1С:Предприятие 8).

Пример подписки на событие для запрета изменения полей
Перейдите в "Конфигуратор".
В дереве конфигурации выберите "Общие модули" и создайте новый модуль, например, "УправлениеДоступомКДокументам".
В модуле напишите следующий код:
 Процедура ПриОткрытии(Элемент, Отказ, СтандартнаяОбработка) 
Если Не ПраваПользователя() Тогда
Элемент.Поле1.Доступность = Ложь;
Элемент.Поле2.Доступность = Ложь;
Элемент.Поле3.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры

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

Функция ПраваНаИзменениеКомментариев() Экспорт
// Здесь логика проверки прав текущего пользователя
// Например, проверка роли или группы доступа
Возврат Роли.Пользователь в СписокПользователейСРасширеннымиПравами;
КонецФункции
Обновление конфигурации и тестирование
Сохраните изменения и обновите конфигурацию.
Проведите тестирование системы под разными учетными записями, чтобы убедиться, что права доступа настроены корректно и ограничения работают как ожидалось.
Этот подход позволяет гибко управлять правами доступа на уровне полей документов и обеспечивать дополнительный контроль за изменением данных в системе 1С.
Сергей Просветленный (38460) 5 месяцев назад
Если честно, то вопрос непонятен. Идея описана подробна, она реализуема многими способами, в т.ч. и организационными. А вопрос непонятен((((
Похожие вопросы