Скрипты
Разработка

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

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

Нравится

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 введите проверку значения переменной. Если оно будет равно нулю - блокируйте кнопку ОК.

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