Запрет редактирования ответственного в контрагенте с сохранением его записи.

Добрый день!

Подскажите, в подробном описание, как и куда вставить скрипт из этой темы: https://community.terrasoft.ru/forum/topic/6990 из сообщения #6 Alimova Anna.

Требуется закрытие поля ответственный контрагента от редактирования для пользователей, но при этом что бы сохранялся и было видно ответственного создавшего контрагента?

Далее то же самое требуется в карточке контакта, думаю это будет по аналогии с контрагентом?

Нравится

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

Здравствуйте, Игорь!

в скрипте карточки есть обработчик события OnPrepare. Для карточки Контрагент это функция function wnd_AccountEditOnPrepare(Window) в скрипте scr_AccountEdit

В конец данной функции требуется вставить вызов процедуры IsOwnerAvailable();

onprepare

А саму процедуру можно дописать в конец скрипта.

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

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

Возможно, поэтому у Вас не получается произвести тестирование.

Обратил внимание на скрин-шот функции приведенной вами, она отличается от нашей, на всякий случай ниже пример функции, которая работает у нас:

function wnd_AccountEditOnPrepare(Window) {
    //IsOwnerAvailable();
	Initialize();
   	wnd_BaseDBEditOnPrepare(Window);
/* PRODUCT XRM */
   	InitializeNowBalance(Window);
   	InitializePostponementPayment(Window);
/* ENDPRODUCT XRM */
   	InitAccountInfo();
   	IsOwnerAvailable();
/* PRODUCT XRM */
   	UpdateAccountBasicCurrencyCaptions();
/* ENDPRODUCT XRM */
}

тестирую под пользователем.

тестирую работу под обычным пользователем,
на самом деле в админке закрыто поле основного контакта, это может являться причиной неработоспособности скрипта?

да и про админов, мне так и нужно, что бы только админы могли редактировать это поле.

я извиняюсь, ответить смогу уже только завтра, из-за разницы во времени мой рабочий день уже давно закончился)))

Добрый день!

Скрипт до сих пор не работает, кто поможет?

Здравствуйте, Игорь!

Скрипт работает следующим образом:

делает недоступным для редактирования поле Ответственный в карточке.

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

Опишите, пожалуйста, какие у Вас уровни доступа на данный момент, и какая задача стоит перед Вами.

"Березин Игорь Викторович" написал:
Проблема не решена, видимо в процедуре необходимо изменить данные под себя?

Что конкретно не работает? Поле остается доступным для редактирования? Или является недоступным всегда, и ответственный не подставляется?

Здравствуйте Анна!

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

В данный момент, после вставки процедуры и ее вызова, ни каких изменений в системе не происходит.

Мне требуется закрыть, для всех пользователей кроме администраторов и системных администраторов, от редактирования поле "ответственный" в контрагентах и контактах, но при этом что бы "ответстенный" отображался и проставлялся при создании новых карточек.

Анна ну как там дела с нашим скриптом?

Игорь,

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

edtOwner.IsEnabled = Connector.CurrentUser.IsAdmin; 

вместо вызова функции IsOwnerAvailable();

Анна огромное вам спасибо!
Все заработало, решение оказалось проще чем я мог предположить.
Вы очень помогли еще раз благодарю.
Это мое первое обращение к вам, систему тех. поддержки понял, за ответ на почту отдельное спасибо, буду продолжать осваивать вашу систему и задавать вопросы.

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