Привет сообществу Террасофта.
Не так давно начал познавать новое для меня направление (автоматизация бизнес процессов). Что это такое знаю хорошо.
Перечитал скорее всего весь форум и все блоги на предмет реализации прав доступа, но всё же не до конца понял поэтому прошу гуру данного вопроса помочь.
Принцип реализации я понял исходя из этого -> https://community.terrasoft.ru/developer/advice/sequrity

Вот пример:
Имеем допустим 2 Филиала.

Задача: Пользователи этих филиалов не должны вообще знать про работу друг друга.

Имеем группу пользователей администраторы со всеми доступными правами, и ещё две группы филиалов со своими, и соответственно в каждой подгруппе филиала свои права для менеджеров по продажам и менеджеров по закупкам (это Важно!!).
Ещё нюанс: группе "Все пользователи" отключили все права (по логике это правильно исходя из того, что филиалы друг про друга не знают).

Сам процесс:
Каждый раздел будь то документы, контакты, контрагенты, счета и т.д. делится так же как и в "Правах пользователей" на филиал 1 и филиал 2.

В результате: каждый пользователь видит только то, что дают права его группы + только его отдела (если он входит и в другой отдел, то и те записи доступны). При этом при добавлении новой записи пользователю вылетает окно (Данный элемент не входит в группу 'Название группы'. Добавить его в эту группу?) с кнопками да и нет. Если нажмёт да -> будет видеть этот элемент, иначе не будет.

Собственно сами вопросы:
1. В детале "Группы" к элементу нужно просто автоматом добавлять название группы и всё будет пучком. как это реализовать из террасофт?
2. Сделать доступными динамические подгруппы для каждого филиала в которых не показываются записи другого филиала.

Оба этих момента я думаю многим интересны. А мне очень нужны. Вся работа стоит.

Имеем Terrasoft 3.3.2.145 XRM Distribution

Нравится

24 комментария

"Заболоцкий Илья Анатольевич" написал:2. Сделать доступными динамические подгруппы для каждого филиала в которых не показываются записи другого филиала.

По 2-му вопросу было подобное обсуждение здесь -> http://www.community.terrasoft.ru/forum/topic/1537
Но можно ли это реализовать другими способами??? или ,если на то пошло, поподробнее кто-нибудь может объяснить как это сделать?

P.S. Ещё не знаком с программированием под Terrasoft, хотя веб-программист. Хотелось бы решить стандартными возможностями Terrasoft.

Добрый день!

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

Касательно второго вопроса, если у пользователя нет прав на чтение записи, то никакая динамическая группа их не отобразит.

Игорь, по 2-му вопросу.
Дело в том, что права на группу допустим документов стоят для определённой группы пользователей и администраторов (специально созданная группа).
И получается так, что из любой динамической подгруппы видно записи находящиеся в других группах раздела, которым права присвоены подобным образом для своих пользователей.

На сами записи присвоены права по умолчанию полные для администраторов и пользователя которым создана запись + чтение для текущей группы пользователей (именно для этой группы).

Каждый раздел выглядит так:

А по первому вопросу можете описать как это реализовать, если не сложно?

По сути идея реализации: сделать линукс-подобные права. т.е. с иерархией, чтобы более высокая группа могла видеть что творится в более низкой, а более низкой группе была не доступна информация выше, но видно было, что творится ниже, если это нужно.
Логика по идее в terrasoft такая же, или я неправильно понял?

Илья, в Terrasoft наоборот. Чем "глубже" находится пользователь, тем больше у него прав.

Пример добавления записи в группу:

1. Открываем скрипт scr_Account
2. В конец функции SelfOnDatasetAfterPost добавляем код:

	var AccountGroupDataset = Services.GetSingleItemByUSI('ds_AccountInGroup');
	var AccountID = Dataset.Values('ID');
	var GroupID = '{6BC9D098-6C64-4142-8615-321E56714C2F}'; //ID нужной группы
	AccountGroupDataset.Open();
	AccountGroupDataset.Edit();
	AccountGroupDataset.Values('ID') = Connector.GenGUID();
	AccountGroupDataset.Values('AccountID') = AccountID;
	AccountGroupDataset.Values('GroupID') = GroupID;
	AccountGroupDataset.Post();

3. Сохраняем изменения

http://www.community.terrasoft.ru/system/files/06-07-2012_12-43-48.png

var GroupID - это значение формируется динамически или скажем так: берётся id выделенной группы при добавлении записи?

Сейчас попробовал добавить ваш код.

При добавлении контрагента:

GroupID в моем случае задан строго.
Илья, выгрузите, пожалуйста, Ваш скрипт, посмотрю, в чем проблема.

"Гакало Игорь Александрович" написал:

GroupID в моем случае задан строго.

Илья, выгрузите, пожалуйста, Ваш скрипт, посмотрю, в чем проблема.

Добрый день.

Ваш пример был добавлен в Accounts->General->scr_account без каких либо изменений.

Конфигурация до этого не изменялась.
Скорее всего ругается на GroupID, у нас его скорее всего нет.
Где можно взять id уже существующей в базе группы? это нужно для тестирования.

"Заболоцкий Илья Анатольевич" написал:
Скорее всего ругается на GroupID, у нас его скорее всего нет.

Где можно взять id уже существующей в базе группы? это нужно для тестирования.

Выполните следующий запрос на базе:

select ID, Name from tbl_AccountGroup

Он возвратит ID групп и названия.

Спасибо большое за помощь. Мне очень помогло для понимания структуры самого продукта.
Я решил эти вопросы немного другим способом.

В каждом разделе сделал динамические группы доступные пользователям только определённых групп + добавил в каждом разделе например к папке "все документы" доступ пользователям группы "Все пользователи" только на чтение.

В результате: пользователи нужной группы видят только то, что им показали. Например: Заявки закупку видят только менеджеры по закупкам, а Клиентские заявки - только менеджеры по продажам.

Один нюанс: при входе от администратора динамические группы выдают информацию по всем записям например документы.

Есть: 2 филиала, у каждого свои коммерческие предложения. Добавляю динамическую группу ком.предложения (филиал1) и для второго тоже самое. Добавляем фильтр: ТИП - коммерческое предложение.
И в результате в этой подгруппе видны все коммерческие предложения для 2-х филиалов, а нужно только одного.Уточню: это только из под администратора, у остальноых пользователей всё как нужно.
Может быть знаете как это побороть?

У администратора в любом случае будут права на чтение записей, поэтому он будет видеть все записи.

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

В принципе модель Доступа в Террасофте сделана не плохо, при ваших требованиях к видимости и доступности объектов, Вам надо раздать грамотно Права по умолчанию по Группам Пользователей:
1. Допустим есть объекты, которые доступны всем пользователям на филиале - Контрагенты к примеру, соответственно группам Филиал1 и Филиал2, нужно в правах по-умолчанию таблицы Контрагенты - добавить группу Филиал1 и Филиал2, соответственно с правами ТОЛЬКО ЧТЕНИЕ, и аналогично поступить для общих объектов доступных на чтение/запись объектов всем пользователям филиалов.
2. Добавить индивидуальные группы для пользователей Менеджеры по Закупкам Ф1 и т.д., где уже более глубоко настроить Права по умолчанию, к примеру дать той же Группе пользователей уже ПОЛНЫЙ доступ по-умолчанию к объектам, которые создают пользователи в этой группе.
У меня модель доступа 3-уровневая для пользователей:
Все пользователи - мин. набор прав - контрагенты, библиотека, база знаний на чтение.
Менеджеры - общие права на доступ к Группам Таблиц
Индивидуальные группы для каждого направления, которое обслуживают менеджеры - в общем случае отдельная группа на пользователя, с индивидуальной настройкой прав по-умолчанию, где большая часть объектов доступна для пользователей Группы, это позволяет допустим оперативно добавлять пользователя для видимости объектов и возможности работы с ними(Контрагенты, Контакты, Задачи)(допустим пользователь в отпуске, больничный, уволился)
по поводу автоматической фильтрации объектов по филиалам(вряд ли это нужно самим пользователям филиалов - они и так при правильной настройке Прав по умолчанию видят только объекты своего филиала). Вам надо реализовать автоматическое добавление Группы в каждый раздел в зависимости от принадлежности Сотрудника(пользователя) к тому или иному подразделению, т.к. думаю вряд ли в текущей конфигурации можно добавить Динамическую группу с фильтром по Подразделению Ответственного... можно конечно посмотреть в эту сторону, чтоб доработать раздел фильтрации на более глубокую вложенность фильтра по Ответственному...

"Черных Руслан" написал:1. Допустим есть объекты, которые доступны всем пользователям на филиале - Контрагенты к примеру, соответственно группам Филиал1 и Филиал2, нужно в правах по-умолчанию таблицы Контрагенты - добавить группу Филиал1 и Филиал2, соответственно с правами ТОЛЬКО ЧТЕНИЕ, и аналогично поступить для общих объектов доступных на чтение/запись объектов всем пользователям филиалов.
2. Добавить индивидуальные группы для пользователей Менеджеры по Закупкам Ф1 и т.д., где уже более глубоко настроить Права по умолчанию, к примеру дать той же Группе пользователей уже ПОЛНЫЙ доступ по-умолчанию к объектам, которые создают пользователи в этой группе.

Так я и сделал.
Я и пытался найти решение для самих разделов.
Т.е. если я добавляю контрагента в группу "филиал 1" - Terrasoft ругается на то, что запись не добавлена в группу. добавить?
Нужно было сделать только автоматическое добавление группы к новой записи на детале "группы".
А как это реализовать - я не знаю. Может у Вас есть решение?

Добрый день!
Илья, Terrasoft не ругается, а выдает сообщение :) Если вопрос в том, как сообщение отключить с учетом утвердительного ответа, то это легко.

1. Зачем Вам разбивать объекты, которые вводят пользователи на Группы?
2. В моем случае, это разбиение нужно ТОЛЬКО для руководителей, они по кол-венным показателям контрагентов и контактов по филиалам делают определенные выводы. Я вышел из ситуации без доработки кода, в карточках Контагентов и Контактов есть поле "Территория" - Нам это поле в принципе не нужно. Я в справочник Территорий добавил нужные мне Объекты - Филиалы и сделал в свойствах датасета ds_Contact и ds_Account это поле обязательным для заполнения(еще до начала работы в Террасофт), и пользователи заполняя поле Территория в "ручном" режиме указывают Филиал.
Вариант автоматической привязки Статической группы, которые вы добавите в Панель Групп и будете автоматом привязывать дано выше пользователем "Гакало Игорь Александрович", можно добавить анализ в скрипт , к какой группе Пользователей пренадлежит Автор записи и добавлять в эту Группу Организаций(Контрагентов) карточку автоматически.

1. Это нужно для того, чтобы объекты были не видны друг другу.
Допустим даже есть одна организация и имеет несколько отделов : it, отдел розничной продажи светильников, отдел оптовой продажи кирпича, столовая (в которой едят все) и т.д.
Все эти отделы работают по своему. Неужели нельзя разделить видимость между ними созданных записей?

И должна быть эта возможность:

"Черных Руслан" написал:это разбиение нужно ТОЛЬКО для руководителей, они по кол-венным показателям контрагентов и контактов по филиалам делают определенные выводы

а вот это и нужно сделать:

"Черных Руслан" написал:можно добавить анализ в скрипт , к какой группе Пользователей пренадлежит Автор записи и добавлять в эту Группу Организаций(Контрагентов) карточку автоматически

только как? никак не разберусь

"Гакало Игорь Александрович" написал:

Добрый день!

Илья, Terrasoft не ругается, а выдает сообщение :) Если вопрос в том, как сообщение отключить с учетом утвердительного ответа, то это легко.

А как? это было бы решение всех проблем. Как правило пользователи нажмут и нажимают "нет".
Такие вопросы решаются легко, если есть опыт))) Для меня это сложно на данный момент, но очень нужно.

"Заболоцкий Илья Анатольевич" написал:1. Это нужно для того, чтобы объекты были не видны друг другу.

Для того, чтоб Объекты(Контакты, Контрагенты и т.д.), были НЕ ВИДНЫ пользователям разных групп, нужно настроить Доступ по-умолчанию.
Постараюсь объяснить модель доступа в Террасофте:
1. Доступ можно настраивать для двух субъектов - Пользователя и Группы пользователей.
2. Доступ регламентируется на Объекты - Группы таблиц, это как правило разделы, где настраиваются права на Чтение/Создание/Редактирование/Удаление объекта.
3. По- умолчанию, к объектам, которые создал Пользователь ДОСТУП(даже на чтение) имеет ТОЛЬКО Пользователь-владелец(автор) и Администратор системы. Для того чтоб раздать доступ по-умолчанию другим пользователям или группам пользователей есть специальный раздел Права доступа по-умолчанию, где задается соответствие между Пользователем(Группой пользователей)- автором - это панель слева в окне Администрирование; Объектом(Группой таблиц) -основной раздел и Остальными пользователями - это Деталь Досуп по умолчанию раздела Администрирования, куда добавляются Пользователи и Группы, которые будут иметь доступ к Объектам, которые создал Пользователь(Группа пользователей)-Автор(ы).
Соответственно видимость объектов элементарно настраивается с помощью Доступа по-умолчанию. Если при создании Объекта в любом Разделе Террасофта в детали- Доступ у Вас группа Все пользователи имеет Доступ на чтение или другие уровни доступа к Объекту, то значит так у Вас настроено в разделе Доступ по-умолчанию. Установите курсор на Группу все пользователи и пройдитесь по всем Объектам системы, и удалите из детали Доступ по умолчанию группу Все пользователи, там где это не нужно.

Всё это я сделал. С разделом администрирование подружился. Возможно я неправильно понял Ваш ответ.
Все записи видны только нужным пользователям, но: нужно решить только один вопрос, видеть всю картину с "филиалами" должны только администраторы и руководители, для этого и был вопрос:

"Заболоцкий Илья Анатольевич" написал:1. В детале "Группы" к элементу нужно просто автоматом добавлять название группы и всё будет пучком. как это реализовать из террасофт?

Игорь сказал что это не сложно:

"Гакало Игорь Александрович" написал:Илья, Terrasoft не ругается, а выдает сообщение :) Если вопрос в том, как сообщение отключить с учетом утвердительного ответа, то это легко.

а как?

Цель:
1. просмотр от администратора информации отдельно взятого "филиала".
2. удобство работы для пользователей
3. масштабируемость (за счёт добавления филиалов и покупки новых лицензий)

"Заболоцкий Илья Анатольевич" написал:

а как?


Решил таким образом для контрагентов:

В скрипте scr_AccountsWorkspace изменил следующую функцию:

function dlAccountsOnDatasetRefreshRecord(Dataset, KeyValue, 
		AddNewRecordOnPage) {
	if (AddNewRecordOnPage) {
//////////////////////////////////////////////////////////////////////////
		AddItemInGroup(BaseWorkspace.GroupsDataset, 'ds_AccountInGroup', 
			KeyValue, 'AccountID', true); 
////////////////////////////////////////////////////////////////////////
	}
	RefreshDetails();
}

Если необходимо это сделать для всех разделов, то можно изменить функцию AddItemInGroup скрипта scr_DB, закомментировав строки

	if (!SilentAdd) { 
	        if (System.MessageDialog(FormatStr(AddItemInGroupAsk, GroupName), mdtWarning, 
			mdbYes + mdbNo, 0) != wmrYes) {
		        return;
	        }
	}

"Гакало Игорь Александрович" написал: if (!SilentAdd) {
if (System.MessageDialog(FormatStr(AddItemInGroupAsk, GroupName), mdtWarning,
mdbYes + mdbNo, 0) != wmrYes) {
return;
}
}

Для всех разделов только это закомментировать нужно? Не могу найти такую часть в скрипте.

Для версии 3.3.2 эти строки имеют следующий вид (в этой же функции AddItemInGroup)

	if (System.MessageDialog(FormatStr(AddItemInGroupAsk, GroupName), mdtWarning, 
			mdbYes + mdbNo, 0) != wmrYes) {
		return;
	}

Закоментировал эти строки:

"Гакало Игорь Александрович" написал:

Для версии 3.3.2 эти строки имеют следующий вид (в этой же функции AddItemInGroup)

        if (System.MessageDialog(FormatStr(AddItemInGroupAsk, GroupName), mdtWarning,

                        mdbYes + mdbNo, 0) != wmrYes) {

                return;

        }

И всё заработало так, как мне было нужно. Спасибо большое
Вопрос закрыт

Показать все комментарии

Проблема такая. Есть новый сервис (табличка, запрос, датасет и т.д.)
В запросе колонки с вручную написанным sql-запросом. Под админом всё в порядке, а пользователи не видят. Читал, что нужно через view делать, но всё равно не работает.

Запрос (из TSAdmin)

SELECT TOP 40
        [tbl_Stat].[ID] AS [ID],
        [tbl_Stat].[CreatedOn] AS [CreatedOn],
        [tbl_Stat].[CreatedByID] AS [CreatedByID],
        [CreatedBy].[Name] AS [CreatedByName],
        [tbl_Stat].[ModifiedOn] AS [ModifiedOn],
        [tbl_Stat].[ModifiedByID] AS [ModifiedByID],
        [ModifiedBy].[Name] AS [ModifiedByName],
        [tbl_Stat].[Name] AS [Name],
        [tbl_Stat].[Description] AS [Description],
        [tbl_Stat].[TypeID] AS [TypeID],
        [Type].[Name] AS [TypeName],
        [tbl_Stat].[OwnerID] AS [OwnerID],
       
             (SELECT Sum(Amount) AS [Amount2]
        FROM [dbo].[vw_Invoice] AS [tbl_In]
        WHERE([tbl_In].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_In].[InvoiceDate] >= :StartDate AND
                [tbl_In].[InvoiceDate] :FinishDate))
                 AS [CustomSQLColumn1],
                (      SELECT
                           sum(PaymentAmount) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Invoice] AS [tbl_In]
        WHERE([tbl_In].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_In].[PaymentDate] >= :StartDate AND
                [tbl_In].[PaymentDate] :FinishDate)) AS [CustomSQLColumn2],
                     (SELECT
                          sum(PaymentAmount2) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Invoice] AS [tbl_In]
        WHERE([tbl_In].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_In].[PaymentDate2] >= :StartDate AND
                [tbl_In].[PaymentDate2] :FinishDate)) AS [CustomSQLColumn3],
                      (SELECT
                                 Count (*) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Invoice] AS [tbl_In]
        WHERE([tbl_In].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_In].[InvoiceDate] >= :StartDate AND
                [tbl_In].[InvoiceDate] :FinishDate)) AS [CustomSQLColumn4],
                                (SELECT
                                    Sum (Zakaz) AS [CustomSQLColumn1]
        FROM
                [dbo].[vw_Document] AS [tbl_Doc]
        WHERE([tbl_Doc].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_Doc].[Date] >= :StartDate AND
                [tbl_Doc].[Date] :FinishDate)) AS [CustomSQLColumn5],
                          (SELECT
                                   Sum(PublicationsAmount) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Document] AS [tbl_Doc]
        WHERE([tbl_Doc].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_Doc].[Date] >= :StartDate AND
                [tbl_Doc].[Date] :FinishDate))  AS [CustomSQLColumn6],
                                (SELECT
                 Count (*) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Task] AS [tbl_Ta]
        WHERE([tbl_Ta].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_Ta].[DueDate] :FinishDate AND
                [tbl_Ta].[StatusID] > :StatusID1 AND
                [tbl_Ta].[StatusID] > :StatusID2)) AS [CustomSQLColumn7],
                       (SELECT
                Count(*) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Account] AS [tbl_Acc]
        WHERE([tbl_Acc].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_Acc].[CreatedOn] >= :StartDate AND
                [tbl_Acc].[CreatedOn] :FinishDate)) AS [CustomSQLColumn8],
                        (SELECT
                               Count (*) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Task] AS [tbl_Ta]
        WHERE([tbl_Ta].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_Ta].[CreatedOn] >= :StartDate AND
                [tbl_Ta].[CreatedOn] :FinishDate)) AS [CustomSQLColumn9],
                        (SELECT
                           count(*) AS [CustomSQLColumn]
        FROM
                [dbo].[vw_Account] AS [tbl_Acc]
        WHERE([tbl_Acc].[OwnerID] = [tbl_Stat].[ID] AND
                [tbl_Acc].[CreatedOn] :FinishDate)) AS [CustomSQLColumn10]
FROM
        [dbo].[tbl_Stat] AS [tbl_Stat]
LEFT OUTER JOIN
        [dbo].[tbl_Contact] AS [CreatedBy] ON [CreatedBy].[ID] = [tbl_Stat].[CreatedByID]
LEFT OUTER JOIN
        [dbo].[tbl_Contact] AS [ModifiedBy] ON [ModifiedBy].[ID] = [tbl_Stat].[ModifiedByID]
LEFT OUTER JOIN
        [dbo].[tbl_StatType] AS [Type] ON [Type].[ID] = [tbl_Stat].[TypeID]

Помогите!

Нравится

12 комментариев

У вас достаточно простые SQL-подзапросы, их можно реализовать, используя вместо "Колонка с текстом SQL" - "Колонка подзапроса". При этом ядро Террасофт при необходимости само заменит таблицы в подзапросах на представления.

Млин, у меня и было в подзапросах изначально, однако пользователи не видели результат.
потом прочитал про view, сделал пользовательские запросы, так как view там нельзя было выбрать... Потом пришлось все "as [tbl_Account]" менять на однозначные [tbl_Acc]..

Ничего не понимаю..

Говоря простые, я имел ввиду отсутствие сложных условий, из-за которых было бы невозможно реализовать задачу с помощью колонки-подзапроса. Но это не означает, что можно за 5 минут построить этот запрос, или какой-либо другой.
Оценка же всей задачи вообще не имеет прямой зависимости от сложности запроса, есть и другие сервисы, которые нужно реализовывать, плюс бизнес-логика. Так что оценка, скорее всего, была вполне адекватна.

Павел, можете чуть конкретнее, что значит "не видят"?
У пользователей есть доступ на записи счетов, документов и задач?

Да и полностью согласен, что эти запросы нужно реализовывать как SubSelect колонки, там за Вас все система правильно напишет и соберет запрос.

Павел, проверьте права доступа на записи, которые Вы выбираете в подзапросах. Пользователи вообще видят в разделе те записи, которые попадают в подзапросы? Под администратором всё в порядке, поскольку для него не проверяются права.

[upd] Опоздал :).

"Валерий Андрусик" написал:Говоря простые, я имел ввиду отсутствие сложных условий, из-за которых было бы невозможно реализовать задачу с помощью колонки-подзапроса. Но это не означает, что можно за 5 минут построить этот запрос, или какой-либо другой.
Оценка же всей задачи вообще не имеет прямой зависимости от сложности запроса, есть и другие сервисы, которые нужно реализовывать, плюс бизнес-логика. Так что оценка, скорее всего, была вполне адекватна.

Согласен в принципе)

У пользователей есть права на всё везде, в администрировании в TS все галочки стоят.

Не видят – это значит, что GridArea отрисовывается, фильтр тоже, названия столбцов, но самих строк нету

По поводу subselect – я изначально так и сделал, всё через них, но пользователи (не админы)их также не видели. вот попробовал через customSQLColumnс view – тоже самое.

Где собака зарыта?

"Шитиков Павел Владимирович" написал:У пользователей есть права на всё везде, в администрировании в TS все галочки стоят.

Павел, имелся в виду доступ на конкретные записи раздела. То есть, могут ли пользователи видеть в реестре раздела те записи, которые отбираются в созданном Вами запросе? Доступ на конкретную запись раздела регулируется на детали "Доступ" этого раздела.

Понял. Добавил нужную группу в доступ

После этого под пользователями видно только первую строчку и то только после обновления..

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

Чтобы иметь представление о концепции прав доступа в системе Terrasoft, прочитайте соответствующий раздел в Руководстве администратора.

Спасибо за помощь

Мануал обязательно полистаю

Показать все комментарии