Открытие задачи на просмотр

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

Нравится

6 комментариев
        var Attributes = GetEditDataAttributes(Self, BaseGridArea);
        var wndTask = Services.GetSingleItemByUSI('wnd_TaskEdit');
        ShowEditWindowEx('wnd_TaskEdit', Attributes);

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

В базовом функционале данная функция не реализована. По умолчанию у нас открываются карточка на редактирования и любой пользователь может редактировать запись.
Если Вы хотите добавить новую кнопку "Открыть на редактирование" - сообщите нам пожалуйста. Также, предаставьте, пожалуйста, описание всей функцуии, которая выполняет блокировку записи на изменение.

Я хочу добавить "Открыть с запретом редактирования"

function ProcessBaseDBEditOnPrepare(Window, BaseDBEdit){
	var Datalink = Window.ComponentsByName('dlData');
	InitializeDBEdit(Datalink, BaseDBEdit, Window);
	if (BaseDBEdit.RecordID == GUID_NULL) {
		AppendRecord(BaseDBEdit, Window);
	} else {
		EditRecord(BaseDBEdit, Window);
	}
	SetOwnerDSDefaults(BaseDBEdit.Dataset);  
	var btnOK = Window.ComponentsByName('btnOK');
	EnableOKButtonByRights(btnOK, BaseDBEdit);
 
	var EditEnabled = lockrecord(Datalink.Dataset.Values('ID'));
	if  (EditEnabled){
		Window.Attributes('IsLocked') = true;
	} else {
		ShowInformationDialog('Карточка редактируется другим пользователем.\nКарточка будет открыта в режиме просмотра.\n');
		btnOK.IsEnabled = false;
		Window.Attributes('IsLocked') = false;
	};
 
	SetOwnerWNDDefaults(Window); 
	SetOwnerWNDCode(Window); 
	Window.Attributes('WindowWasPrepared') = true;
}

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

Могу Вам предложить реализовать требуемую задачу следующим образом:
Добавить кнопку "Открыть для чтения". После нажатия на эту кнопку функция написанная Вами не должна отрабатывать (Вам необходимо прописать это в настройке кнопки). В этом случае карточка откроется стандартным образом. А в открытой карточке сделать неактивной кнопку "Ок" что бы пользователь не мог сохранить изменения.
Если же пользователь будет открывать методом используемым по умолчанию у Вас в компании то карточка будет открываться на изменения.

wndTask.СomponentsByName('btnOK').IsEnabled = false; 

не прокатывает

Сделайте следующим образом.
Обьявите глобальную переменную в скрипте scr_TasksGridArea. При нажатии на кнопку "Открыть для чтения" присвойте ей значение нуля. На событие wnd_TaskEditOnPrepare для скрипта scr_TaskEdit введите проверку значения переменной. Если оно будет равно нулю - блокируйте кнопку ОК.

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