Добрый день.
Возник такой вопрос. Если задачу открывает один человек, то когда другой человек ее открывает выскакивает надпись, задача уже открыта на редактирование вы будете работать в режиме просмотра.
Не подскажете, можно ли открыть задачу сразу в режиме просмотра, чтобы если кто то хочет ее редактировать не должен был ждать пока выйдут с просмотра.
Нравится
[javascript]
var Attributes = GetEditDataAttributes(Self, BaseGridArea);
var wndTask = Services.GetSingleItemByUSI('wnd_TaskEdit');
ShowEditWindowEx('wnd_TaskEdit', Attributes);
[/javascript]
Открыл окно на редактирование. Какой параметр необходимо указать, для того, чтобы только просматривать можно было. Необходимо запретить редактирование.
В базовом функционале данная функция не реализована. По умолчанию у нас открываются карточка на редактирования и любой пользователь может редактировать запись.
Если Вы хотите добавить новую кнопку "Открыть на редактирование" - сообщите нам пожалуйста. Также, предаставьте, пожалуйста, описание всей функцуии, которая выполняет блокировку записи на изменение.
Я хочу добавить "Открыть с запретом редактирования"
[javascript]
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;
}
[/javascript]
есть такая функция, но она работает следующим образом, если кто то уже открыл карточку на редактирование, то второй откроет на просмотр. но я хочу сделать кнопку, чтобы сразу открывать только на просмотр.
если надо код какого то скрипта выложу
Могу Вам предложить реализовать требуемую задачу следующим образом:
Добавить кнопку "Открыть для чтения". После нажатия на эту кнопку функция написанная Вами не должна отрабатывать (Вам необходимо прописать это в настройке кнопки). В этом случае карточка откроется стандартным образом. А в открытой карточке сделать неактивной кнопку "Ок" что бы пользователь не мог сохранить изменения.
Если же пользователь будет открывать методом используемым по умолчанию у Вас в компании то карточка будет открываться на изменения.
[javascript]
wndTask.СomponentsByName('btnOK').IsEnabled = false;
[/javascript]
не прокатывает
Сделайте следующим образом.
Обьявите глобальную переменную в скрипте scr_TasksGridArea. При нажатии на кнопку "Открыть для чтения" присвойте ей значение нуля. На событие wnd_TaskEditOnPrepare для скрипта scr_TaskEdit введите проверку значения переменной. Если оно будет равно нулю - блокируйте кнопку ОК.