Как задать права пользователей по складам

1. Garo 22.02.14 13:15 Сейчас в теме
Как создать права доступа пользователей к складам в 1с7.7 ТиС
Есть -- Склад1,Склад2
Пользователи -- A,B,C
Нужно чтобы Пользователь-A -- имел доступ только к складу1
Пользователь-B -- только к складу2
Пользователь-C -- полный доступ ко всем складам
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Rothschild 22.02.14 13:27 Сейчас в теме
(1) Garo, на прошлой работе на ТиС-7.7 была ведрена довольно сложная система доступа к складам.
Были две роли Продавец и Кладовщик.
А также одноименные справочники, где они обязательно регистрировались при предоставлении доступа в 1С.
В этих справочниках определялось кладовщиком каких складов являлся пользователь,
выбранный в специально предназначенном реквизите.
Ну и во всех документах эти настройки проверялись для указанных выше ролей
в критических для доступа местах:
- ПриОткрытии документа;
- ПриЗаписи документа;
- ПриПроведении документа;
- ПриОтменеПроведения документа;
- ПриУдалении документа (пометка и непосредственно);
3. JustLucky 22.02.14 14:26 Сейчас в теме
Да, задачка явно не из тех, что решаются за один день.
4. vcv 89 22.02.14 18:08 Сейчас в теме
(3) Да чего там не один день решать. Предлагаю примерно так:

1. В справочнике пользователей (православней бы в полномочиях, но раз (1) говорит о пользователях, пусть так и будет) реквизиты: РазрешитьИспользованиеВсехСкладов (число), РазрешенныйСклад1 (Справочник.Склады), РазрешенныйСклад2, РазрешенныйСклад3 и так сколько надо.

2. Заводим глобальную функцию
Функция глДоступныйДокумент(Конт) Экспорт
  Если глПользователь.РазрешитьИспользованиеВсехСкладов = 1 Тогда
    Возврат 1;
  ИначеЕсли глЕстьРеквизитШапки("Склад",Конт.Вид()) = 0 Тогда
    Возврат 1;
  ИначеЕсли глПользователь.РазрешенныйСклад1 = Конт.Склад Тогда
    Возврат 1;
  ИначеЕсли глПользователь.РазрешенныйСклад2 = Конт.Склад Тогда
    Возврат 1;
  ...
  Иначе
    Предупреждение("У вас нет доступа к этому документу. 
    |Отсутствуют полномочия на просмотр склада "+Конт.Склад,60);
    Возврат 0;
  КонецЕсли;
КонецФункции
Показать


3. В начало функции глПроверкаРазрешенияРедактирования и всяких ПриУдаленииДокумента вставляем код
Если глДоступныйДокумент(Конт) = 0 Тогда 
   СтатусВозврата(0); Возврат; 
КонецЕсли;


4. Заводим глобальную переменную
Перем глУсловиеПоСкладам Экспорт;

В начало функции глФильтрПоПеременнойЗапроса вставляем код
Если ИмяПеремЗапроса = "Склад" Тогда
  Если глПользователь.РазрешитьИспользованиеВсехСкладов = 0 Тогда
    глУсловиеПоСкладам = СоздатьОбъект("СписокЗначений");
    Если ПустоеЗначение(глПользователь.РазрешенныйСклад1) = 0 Тогда
      глУсловиеПоСкладам.ДобавитьЗначение(глПользователь.РазрешенныйСклад1);
    КонецЕсли;
    ...
    ТекстЗапроса = ТекстЗапроса + "
      |Условие (Склад В глУсловиеПоСкладам);";
  КонецЕсли;
КонецЕсли;
Показать

Если используются МОЛы, и разрешен отчет по партиям, аналогично обработать наложение отбора по переменной "МОЛ".

Справочник складов, пользователей, полномочий, естественно, закрыть от простых пользователей штатными правами в конфигураторе.

Предупреждение: писал навскидку сразу в браузере, так что за работоспособность кода не отвечаю. :)
shuxa; Sanario; +2 Ответить
5. Natali_77 24.02.14 17:53 Сейчас в теме
(4) vcv, что-то похожее сделала и в своей базе. Действительно самый нормальный вариант.
8. rjhonson 08.04.14 11:41 Сейчас в теме
(4) vcv, Дело говорит, действительно самый оптимальный подход. И нечего париться несколько дней/недель
6. Master07 04.03.14 10:46 Сейчас в теме
Отличний вареант решения проблеми...
7. sput74 06.04.14 10:49 Сейчас в теме
И еще не забываем в форму подбора сделать ограничение по складу, если требуется ограничить даже просмотр остатков.
А вообще может быть четыре "уровня доступа".
Полное ограничение - когда пользователь не "подозревает" о существовании других складов (почти невозможно организовать в 7.7).
Ограничение на остатки (склады видны, остатки уже нет)
Ограничение на просмотр документов (остатки видны, документы по складу не открываются)
Ограничение на запись документов (можно смотреть, нельзя проводить)

Ну, и каждый уровень реализуется по-своему
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот