Версия для печати темы (https://pro1c.org.ua/index.php?s=a80180a08841167d227c1d088d00dc49&showtopic=61509)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Ограничение доступа с пользователей к складам

Автор: RedCat77 11.09.20, 10:42

Платформа: 1С:Предприятие 8.3
Конфигурация: "Управление торговым предприятием для Украины", редакция 1.2. (1.2.56.2)

Суть вопроса: необходимо ограничить пользователя в возможности работы только по ему разрешенным складам (кому-то один, кому-то несколько, кому-то все доступны). Это должно распространяться на справочники, документы и отчеты.
Возможно нужна какая-то матрица доступа.
Вариант с RLS наверное не подойдет (сильно понизит производительность, база большая).
Кто сталкивался с такими вопросами или видел подобное? Есть ли подходящие решения?
Принимаются все предложения и рекомендации.
Заранее благодарю за понимание.

Автор: sava1 11.09.20, 11:29

Цитата(RedCat77 @ 11.09.20, 11:42) *
Вариант с RLS наверное не подойдет (сильно понизит производительность, база большая).


Вы хотя бы пробовали ?

Автор: andrew76 12.09.20, 14:19

RedCat77 @ Вчера, 13:42 * ,

Цитата(RedCat77 @ 11.09.20, 13:42) *
необходимо ограничить пользователя в возможности работы только по ему разрешенным складам (кому-то один, кому-то несколько, кому-то все доступны). Это должно распространяться на справочники, документы и отчеты.


А сколько пользователей в БД ? Сколько справочников , документов и отчетов ?

Автор: MATEVI 12.09.20, 21:18

RedCat77 @ Вчера, 11:42 * ,

Цитата(RedCat77 @ 11.09.20, 11:42) *
Вариант с RLS наверное не подойдет (сильно понизит производительность, база большая).


Вы на пентиум1 базу держите? На номальном и настроенном сервере, даже не заметят...

Автор: andrew76 13.09.20, 9:41

...тишина в эфире- cловно все застыло в этом странном мире (с)

Цитата(RedCat77 @ 11.09.20, 13:42) *
Суть вопроса: необходимо ограничить пользователя в возможности работы только по ему разрешенным складам (кому-то один, кому-то несколько, кому-то все доступны). Это должно распространяться на справочники

Цитата(RedCat77 @ 11.09.20, 13:42) *
Возможно нужна какая-то матрица доступа

Цитата(RedCat77 @ 11.09.20, 13:42) *
Кто сталкивался с такими вопросами или видел подобное? Есть ли подходящие решения?


Занимался подобным делом в этом году.Ограничивал доступ пользователям к отдельным цехам(отделам).
Реализовано это было без RLS.В справочнике цехов открыл новый реквизит-ссылка Справочник Пользователей.
Каждому цеху сопоставил в справочнике имя пользователя.При открытии формы списка справочника
запросом проверял ,есть ли у текущего пользователя доступ к просмотру определенного цеха.
Если у пользователя был доступ к цеху-он включался в значение отбора на форме списка справочника.
Далее включался отбор по списку и открывалась форма списка справочника с включенным отбором разрешенных
цехов.Конфигурация была самописная , с нуля.

Автор: sava1 13.09.20, 11:25

Цитата(andrew76 @ 13.09.20, 10:41) *
Реализовано это было без RLS.В справочнике цехов открыл новый реквизит-ссылка Справочник Пользователей.


а теперь прикиньте объем работ для

Цитата(RedCat77 @ 11.09.20, 11:42) *
Это должно распространяться на справочники, документы и отчеты.


Автор: andrew76 13.09.20, 13:06

Цитата(sava1 @ 13.09.20, 14:25) *
а теперь прикиньте объем работ для


Не могу прикинуть пока,Автор ветки не сообщил ,сколько у него документов и отчетов в конфигурации.
И просил он вариант без использования RLS.

Автор: RedCat77 14.09.20, 9:27

Цитата(MATEVI @ 12.09.20, 22:18) *
Вы на пентиум1 базу держите? На номальном и настроенном сервере, даже не заметят...

База на мощном сервере под SQL.
Цитата из одной статьи:
"Также как всегда обратим внимание — включение RLS замедляет работу программы 1С (более долго проводятся документы, открываются справочники), поэтому всегда нужно осознанно принимать решение, действительно ли нужна данная настройка. Степень «замедления» индивидуальна для каждой базы клиента, для кого-то может измеряться в миллисекундах, а для кого-то и в нескольких секундах."

Цитата(andrew76 @ 12.09.20, 15:19) *
А сколько пользователей в БД ? Сколько справочников , документов и отчетов ?


Цитата(andrew76 @ 13.09.20, 14:06) *
Не могу прикинуть пока,Автор ветки не сообщил ,сколько у него документов и отчетов в конфигурации.
И просил он вариант без использования RLS.

Пользователей более 20. База - полноценное УТП с движением товаров (комплекс приходов, комплекс расходов, складские перемещения и пр, торговля), производство (свой комплект документов), ЗИК.


Цитата(andrew76 @ 13.09.20, 10:41) *
Каждому цеху сопоставил в справочнике имя пользователя.При открытии формы списка справочника

Судя по приведенному описанию,речь идет только о списке справочника. А как работа с документами (создание, открытие), как работа с отчетами (особенно с бухгалтерскими ОСВ)?

Автор: sava1 14.09.20, 9:30

УПП - 100+ Гб, более 100 юзеров - РЛС по подразделениям, складам, номенклатуре, ценам - нормально работает

+ Вам все равно придется везде накладывать ограничения - только с гемором

Автор: andrew76 14.09.20, 14:48

Цитата(RedCat77 @ 11.09.20, 13:42) *
Суть вопроса: необходимо ограничить пользователя в возможности работы только по ему разрешенным складам (кому-то один, кому-то несколько, кому-то все доступны)

Цитата(RedCat77 @ 14.09.20, 12:27) *
А как работа с документами (создание, открытие), как работа с отчетами (особенно с бухгалтерскими ОСВ)?


Не совсем понял,бухгалтер тоже будет работать с определенными складами ? Или внутри документа
при выборе склада накладывать ограничение ?

Автор: RedCat77 14.09.20, 15:17

Цитата(andrew76 @ 14.09.20, 15:48) *
Не совсем понял,бухгалтер тоже будет работать с определенными складами ? Или внутри документа
при выборе склада накладывать ограничение ?

В базе ведется многофирменный учет. В приведенной выше цитате уже сказано об уровнях видимости складов, т.о. и на выбор склада должно распространяться ограничение. Бухгалтер - такой же пользователь.

Автор: andrew76 14.09.20, 16:09

RedCat77 @ Сегодня, 18:17 * ,

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

Автор: MATEVI 14.09.20, 18:53

Цитата(RedCat77 @ 14.09.20, 10:27) *
Цитата из одной статьи:

Пишут, то много чего.

Реализовывать через отбор, можно, если нужно открыть 2 или 3 вида документа, пару отчетов, а все остальное просто закрыть. А когда задача обстоит ограничить доступ, сохранив функционал типовой конфигурации, то Вы устанете все переписывать. Собственно я тут поддерживаю sava1.

Автор: andrew76 15.09.20, 8:34

Цитата(MATEVI @ 14.09.20, 21:53) *
Пишут, то много чего.

Цитата(RedCat77 @ 11.09.20, 13:42) *
Суть вопроса: необходимо ограничить пользователя в возможности работы только по ему разрешенным складам (кому-то один, кому-то несколько, кому-то все доступны)


Судя по названию темы ("Ограничение доступа с пользователей к складам"),Автора
интересовал только ограниченный доступ к складам.А если на всю конфу,то надо использовать RLS,
Или ролями манипулировать.

Автор: Gazulo 15.09.20, 10:35


Делал через регистр сведений, Пользователь / Склад. В нужных документах , в форме списка, где есть склад( в основном приход , возврат, реализация, списание, оприходование)проверял на доступность складов даному пользователю. По отчетах, так как все стандартные отчеты строяться на универсальном отчете, то в универсальном отчете дописал проверку на склады при формировании отчета. Клиентам так подошло.

Автор: andrew76 15.09.20, 16:44

Похоже и в моем случае.Только у меня вместо регистра работал справочник.Связка Пользователь/Цех.
Пользователи тоже не жаловались.

Автор: MATEVI 16.09.20, 11:42

А как бух. отчеты на СКД и проводки закрыты?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua