Найти нужную запись в таблице SysLastValue и скопировать найденную запись в новую запись, изменив при этом значение поля userId на код нужного юзера.
Скорее всего, это можно сделать только программно, т.к. в поле value содержится контейнер.
Вот пример, который копирует ВСЕ настройки от одного пользователя другому.
PHP код:
static void main(Args _args)
{
SysLastValue sysLastValue;
SysLastValue newSysLastValue;
UserId origUser;
UserId destUser;
dialog dialog = new Dialog("Копирование настроек пользователей");
DialogField f_origUser,f_destUser;
;
f_origUser = dialog.addField(typeid(userId), "Имя пользователя, от которого копировать настройки:");
f_destUser = dialog.addField(typeid(userId), "Имя пользователя, которому копировать настройки:");
if (dialog.run())
{
origUser = f_origUser.value();
destUser = f_destUser.value();
delete_from sysLastValue where sysLastValue.userId == destUser;
ttsbegin;
while select sysLastValue where sysLastValue.userId == origUser &&
!sysLastValue.isKernel
{
newSysLastValue.clear();
newSysLastValue.userId = destUser;
newSysLastValue.recordType = sysLastValue.recordType;
newSysLastValue.elementName = sysLastValue.elementName;
newSysLastValue.designName = sysLastValue.designName;
newSysLastValue.company = sysLastValue.company;
newSysLastValue.value = sysLastValue.value;
newSysLastValue.insert();
}
ttscommit;
info("Настройки скопированы.");
}
}
Для копирования настроек фильтра нужно модифицировать этот код:
1) определить к какому объекту (форме или отчету) относится фильтр
2) узнать имя этого объекта
3) и модифицировать код так:
PHP код:
delete_from sysLastValue where sysLastValue.userId == destUser &&
sysLastValue.RecordType == <Тип объекта> &&
sysLastValue.ElementName == <Имя объекта>
;
ttsbegin;
while select sysLastValue where sysLastValue.userId == origUser &&
!sysLastValue.isKernel &&
sysLastValue.RecordType == <Тип объекта> &&
sysLastValue.ElementName == <Имя объекта>