По теме из базы знаний
- 1С УНФ: настройка прав пользователей и ограничений
- Подсистема прав доступа к объектам с гибкими отборами (расширение)
- Доступ на уровне записей в типовых конфигурациях. Настройка доступа пользователей с разделением по подразделениям/складам – практический пример
- Как разработать мобильное приложение для ТСД и запустить его на 50 фабриках
- Работа с требованиями при автоматизации процессов планирования. Как не получить «лоскутное одеяло» и при этом удержать границы проекта
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Garo, на прошлой работе на ТиС-7.7 была ведрена довольно сложная система доступа к складам.
Были две роли Продавец и Кладовщик.
А также одноименные справочники, где они обязательно регистрировались при предоставлении доступа в 1С.
В этих справочниках определялось кладовщиком каких складов являлся пользователь,
выбранный в специально предназначенном реквизите.
Ну и во всех документах эти настройки проверялись для указанных выше ролей
в критических для доступа местах:
- ПриОткрытии документа;
- ПриЗаписи документа;
- ПриПроведении документа;
- ПриОтменеПроведения документа;
- ПриУдалении документа (пометка и непосредственно);
Были две роли Продавец и Кладовщик.
А также одноименные справочники, где они обязательно регистрировались при предоставлении доступа в 1С.
В этих справочниках определялось кладовщиком каких складов являлся пользователь,
выбранный в специально предназначенном реквизите.
Ну и во всех документах эти настройки проверялись для указанных выше ролей
в критических для доступа местах:
- ПриОткрытии документа;
- ПриЗаписи документа;
- ПриПроведении документа;
- ПриОтменеПроведения документа;
- ПриУдалении документа (пометка и непосредственно);
(3) Да чего там не один день решать. Предлагаю примерно так:
1. В справочнике пользователей (православней бы в полномочиях, но раз (1) говорит о пользователях, пусть так и будет) реквизиты: РазрешитьИспользованиеВсехСкладов (число), РазрешенныйСклад1 (Справочник.Склады), РазрешенныйСклад2, РазрешенныйСклад3 и так сколько надо.
2. Заводим глобальную функцию
3. В начало функции глПроверкаРазрешенияРедактирования и всяких ПриУдаленииДокумента вставляем код
4. Заводим глобальную переменную
В начало функции глФильтрПоПеременнойЗапроса вставляем код
Если используются МОЛы, и разрешен отчет по партиям, аналогично обработать наложение отбора по переменной "МОЛ".
Справочник складов, пользователей, полномочий, естественно, закрыть от простых пользователей штатными правами в конфигураторе.
Предупреждение: писал навскидку сразу в браузере, так что за работоспособность кода не отвечаю. :)
1. В справочнике пользователей (православней бы в полномочиях, но раз (1) говорит о пользователях, пусть так и будет) реквизиты: РазрешитьИспользованиеВсехСкладов (число), РазрешенныйСклад1 (Справочник.Склады), РазрешенныйСклад2, РазрешенныйСклад3 и так сколько надо.
2. Заводим глобальную функцию
Функция глДоступныйДокумент(Конт) Экспорт
Если глПользователь.РазрешитьИспользованиеВсехСкладов = 1 Тогда
Возврат 1;
ИначеЕсли глЕстьРеквизитШапки("Склад",Конт.Вид()) = 0 Тогда
Возврат 1;
ИначеЕсли глПользователь.РазрешенныйСклад1 = Конт.Склад Тогда
Возврат 1;
ИначеЕсли глПользователь.РазрешенныйСклад2 = Конт.Склад Тогда
Возврат 1;
...
Иначе
Предупреждение("У вас нет доступа к этому документу.
|Отсутствуют полномочия на просмотр склада "+Конт.Склад,60);
Возврат 0;
КонецЕсли;
КонецФункции
Показать3. В начало функции глПроверкаРазрешенияРедактирования и всяких ПриУдаленииДокумента вставляем код
Если глДоступныйДокумент(Конт) = 0 Тогда
СтатусВозврата(0); Возврат;
КонецЕсли;
4. Заводим глобальную переменную
Перем глУсловиеПоСкладам Экспорт;
В начало функции глФильтрПоПеременнойЗапроса вставляем код
Если ИмяПеремЗапроса = "Склад" Тогда
Если глПользователь.РазрешитьИспользованиеВсехСкладов = 0 Тогда
глУсловиеПоСкладам = СоздатьОбъект("СписокЗначений");
Если ПустоеЗначение(глПользователь.РазрешенныйСклад1) = 0 Тогда
глУсловиеПоСкладам.ДобавитьЗначение(глПользователь.РазрешенныйСклад1);
КонецЕсли;
...
ТекстЗапроса = ТекстЗапроса + "
|Условие (Склад В глУсловиеПоСкладам);";
КонецЕсли;
КонецЕсли;
ПоказатьЕсли используются МОЛы, и разрешен отчет по партиям, аналогично обработать наложение отбора по переменной "МОЛ".
Справочник складов, пользователей, полномочий, естественно, закрыть от простых пользователей штатными правами в конфигураторе.
Предупреждение: писал навскидку сразу в браузере, так что за работоспособность кода не отвечаю. :)
И еще не забываем в форму подбора сделать ограничение по складу, если требуется ограничить даже просмотр остатков.
А вообще может быть четыре "уровня доступа".
Полное ограничение - когда пользователь не "подозревает" о существовании других складов (почти невозможно организовать в 7.7).
Ограничение на остатки (склады видны, остатки уже нет)
Ограничение на просмотр документов (остатки видны, документы по складу не открываются)
Ограничение на запись документов (можно смотреть, нельзя проводить)
Ну, и каждый уровень реализуется по-своему
А вообще может быть четыре "уровня доступа".
Полное ограничение - когда пользователь не "подозревает" о существовании других складов (почти невозможно организовать в 7.7).
Ограничение на остатки (склады видны, остатки уже нет)
Ограничение на просмотр документов (остатки видны, документы по складу не открываются)
Ограничение на запись документов (можно смотреть, нельзя проводить)
Ну, и каждый уровень реализуется по-своему
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот