Электронный архив

Автор Meldok, 31.05.16, 19:36:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Meldok

Здравствуйте, был бы рад помощи с возникшим вопросом.
Имеются 2 цеха - цех1 и цех2.
Технологи обоих цехов хранят техпроцессы в электронном архиве. Нужно сделать так, чтобы технологи цеха 2 видели только свои техпроцессы в электронном архиве, а технологи цеха1 чтобы видели все техпроцессы. Пробовали в утс настраивать метод canvisible, но он работает только в самом утс, но не в электронном архиве.
Пробовали настраивать нужную нам выборку в утс в методе execsql, все работает отлично, даже в электронном архиве, но возникает проблема, когда технологи цеха2  видят только свои техпроцессы, открывают поиск и находят все техпроцессы, которые захотят.
Подскажите как можно решить данную проблему.

tur

Вроде можно создать два разных архива в УТС и паралельно создать две разных группы технологов и разграничить права на архивы.
Но это нужно всё проверять на практике.

VIO

У нас это  сделали так, создали через сеть на сервере папки которые могут видеть все, но только их, к остальным папкам доступа нет.
Другие группы пользователей могут видеть все папки на сервере.
Как это они сделали, извините, не подскажу.

tur

Цитата: VIO от 01.06.16, 09:19:50
У нас это  сделали так, создали через сеть на сервере папки которые могут видеть все, но только их, к остальным папкам доступа нет.
Другие группы пользователей могут видеть все папки на сервере.
Как это они сделали, извините, не подскажу.

Если папки на сервере то можно, а электронный архив хранится в базе УТС, там немного другие правила.
+ Благодарностей: 1

Meldok

Хранить техпроцессы в папках очень не удобно((
На счет создания двух электронных архивов, не могли бы вы написать чуть подробнее?
В теории можно попробовать написать свою версию электронного архива, но это работы на месяц, если не больше и не факт что не упремся в какую нибудь проблему, которую не сможем решить, да и не сильно охота если честно(

Meldok

Кстати, пробовали еще решить вопрос через методы объекта.
Пробовали очищать коллекции документов у техпроцессов через CurObject.Documents.DeleteCollection, но не очищает коллекцию, а удаляет все документы, включая техпроцессы из базы данных.
Может быть есть какой то способ открепления документов от техпроцессы, не удаляя их из базы данных?
Или как то открепить файлы от объекта, не удаляя их CurObject.Documents.FirstDocument.Files.DeleteFiles

tur

Цитата: Meldok от 02.06.16, 16:34:49
Хранить техпроцессы в папках очень не удобно((
На счет создания двух электронных архивов, не могли бы вы написать чуть подробнее?
В теории можно попробовать написать свою версию электронного архива, но это работы на месяц, если не больше и не факт что не упремся в какую нибудь проблему, которую не сможем решить, да и не сильно охота если честно(

1. Создать группу пользователей, например технолог_2, дать им такие же права на все справочники УТС, данные Вертикаль (в конфигураторе), как и группы Технолог
2. Создать Электронный архив_2 (аналогично как на скриншоте) в модуле администрирования УТС. Дать к нему доступ только группе Технолог_2
3. Заставить это всё заработать.

P.S. Это всё в теории, у себя проверять эту методику не буду. Нужно проверять как подхватит модуль электронного архива этот новый архив и т.д. и т.п.

Meldok

Понятно,спасибо за помощь) Попробуем тогда в dll-ках поискать функцию, которая позволит переключить электронный архив на другой справочник.

Meldok

Если кому интересно нашли следующий способ настройки отображения разных списков техпроцессов в электронном архиве для различных групп пользователей, без использования папок и нескольких электронных архивов. Список техпроцессов, выпадающий на вкладке "Все тп" настраиваем как уже писалось выше, в утс, в методе TextSql. Просто прописываем в существующий запрос "where тп удовлетворяет условию отображения для пользователей".
Чтобы пользователи не могли найти закрытые для них техпроцессы через поиск, надо зайти на сервер SQL и в хранимых процедурах базы Вертикали найти процедуру обработки поискового запроса (названия не помню, третья или четвертая сверху процедура). В конце процедуры просто прописать
если textsql является запросом к электронному архиву, то textsql=textsql+" and (условие отображения тп для пользователей)"

tur

Т.е. вы прописываете каждого пользователя индивидуально?

bull

А в чём проблема, что видят? Если не могут зайти при этом. А это настраивается через группы. При появлении нового пользователя просто его причисляют к нужной группе и все дела. Как это делается "по кнопкам", не знаю, не моя работа. Но суть ясна.

Было на одном предприятии. Так заводили и индивидуальные папки, чтобы заходить могли все, а править только автор. То, что можно скопировать/сохранить как, неважно. Главное, чтобы папка не менялась.

tur

Цитата: bull от 17.06.16, 09:29:54
А в чём проблема, что видят? Если не могут зайти при этом. А это настраивается через группы. При появлении нового пользователя просто его причисляют к нужной группе и все дела. Как это делается "по кнопкам", не знаю, не моя работа. Но суть ясна.
.............

Не так там всё просто.

Meldok

Для каждого пользователя не прописываем. В хранимой процедуре через функцию SUSERNAME получаем имя текущего пользователя, потом в таблице LogonUsers находим этого пользователя и определяем, к какому цеху он принадлежит. Ну а потом уже в запрос пишем условие выборки техпроцессов в зависимости их цеха и от цеха текущего пользователя.

tur

Цитата: Meldok от 18.06.16, 13:58:33
Для каждого пользователя не прописываем. В хранимой процедуре через функцию SUSERNAME получаем имя текущего пользователя, потом в таблице LogonUsers находим этого пользователя и определяем, к какому цеху он принадлежит. Ну а потом уже в запрос пишем условие выборки техпроцессов в зависимости их цеха и от цеха текущего пользователя.
Вы разбили пользователей по группам (по разным цехам) в УТС?

Meldok

Да, что то вроде того
+ Благодарностей: 1

tur

Цитата: Meldok от 22.06.16, 15:31:05
Да, что то вроде того
Понятно, спасибо!