Раздача прав после импорта данных

Всем добрый день!
Столкнулись с такой проблемой: При импорте данных в карточку контактов, права по умолчанию про ставились только для человека, кто делал импорт. В поле "Ответственный" стоит ФИО другого человека, вариант отрывать карточку, заново вручную вводить ответственного, сохранять и использовать после сохранения GiveRightsToRecordOwner(Dataset); очень долгая работа, учитывай что контактов бывает уж очень много.

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

Нравится

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

если конфигурация 3.4.1, то можно раздавать права одновременно на несколько (много) выделенных записей
если нет - придется написать скрипт
можно попробовать воспользоваться этим (только осторожно :cool:) http://www.community.terrasoft.ru/blogs/9611

Здравствуйте, Николай.

Для раздачи прав доступа ответственным на импортированные контакты, можете воспользоваться следующим скриптом:

insert into tbl_ContactRight (RecordID, AdminUnitID, CanRead, CanWrite, CanDelete, CanChangeAccess)
select c.ID, au.ID, 1, 1, 0, 0 -- 1 - разрешение, 0 - запрет
from tbl_Contact c inner join tbl_AdminUnit au on c.OwnerID = au.UserContactID
where c.CreatedOn > '2013-12-06 14:05' -- Дата и время импорта контактов

тогда уж

INSERT INTO tbl_ContactRight (RecordID, AdminUnitID, CanRead, CanWrite, CanDelete, CanChangeAccess)
SELECT c.ID, au.ID, 1, 1, 0, 0 -- 1 - разрешение, 0 - запрет
FROM tbl_Contact c INNER JOIN tbl_AdminUnit au ON c.OwnerID = au.UserContactID
WHERE c.CreatedOn > '2013-12-06 14:05' -- Дата и время импорта контактов
 
-- чтобы права там, где они есть, не продублировались
and not exists (select ID from tbl_ContactRight as CR where CR.RecordID = c.ID and CR.AdminUnitID = (select ID from tbl_AdminUnit where UserContactID = c.OwnerID))

Тоже верно. Спасибо, Дмитрий.

Всем большое спасибо за ответы!!)

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