Не могу зайти в систему. 

После авторизации всплывает сообщение "Профиль пользователя является временным профилем". Подскажите, пожалуйста, как это исправить?

Изображение удалено.

Нравится

2 комментария

Добрый день!

 

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

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

Для решения проблемы с приложением Creatio, если профиль пользователя Windows, под которым запускается пул, временный, необходимо или исправить это (сделать так, чтобы профиль перестал быть временным), или создать нового пользователя Windows, под которым и запустить пул.

 

Обратите внимание, что возникновение проблемы с временным профилем пользователя Windows может быть и на Windows 10.

 

Здесь описаны способы, которые могут помочь исправить проблему https://okeygeek.ru/vkhod-s-vremennym-profilem-windows-10-8-7/ 

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

Спасибо за информацию. Но мне помогло удаление лицензий

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

Доброго времени суток.
Подскажите как правильно подменить профиль в разделе? Замещал ф-ии getActiveViewSettingsProfileKey
и getProfileKey. Нужный профиль подгружает, но записи не отображаются. В настройках колонок отображаются нужные, и только после сохранения появляется список записей.

Нравится

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

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

Опишите, пожалуйста, задачу, которую Вы пытаетесь решить?

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

Олег, добрый день!

Попробуйте при инициализации Вашего раздела получить значение нужного профиля по коду из базы и установить полученное значение в атрибут "Profile" модели раздела. Далее при инициализации колонок реестра (метод initQueryColumns схемы GridUtilitiesV2) вызывается метод getProfileColumns, который должен получить из данного атрибута корректный набор колонок.

Обратите внимание, что перед установкой значения в атрибут "Profile" его необходимо декодировать в объект с помощью Terrasoft.decode.

"Лабьяк Олег Игоревич" написал:

Олег, добрый день!

Попробуйте при инициализации Вашего раздела получить значение нужного профиля по коду из базы и установить полученное значение в атрибут "Profile" модели раздела...


Я использую getActiveViewSettingsProfileKey и getProfileKey, которые возвращают нужный мне ключ, и в Profile попадает нужный мне профиль. Метод getProfileColumns возвращает нужные колонки.
Проблема в columnBindings. Это "Объект, описывающий связи колонок реестра со свойствами или методами модели". И там хранятся связи изначальных колонок. Метод getRow() ("Метод получения данных модели через механизм привязки") пытается получить колонки из columnBindings по названиям колонок из профиля, который я подгружаю. Естественно они не совпадают.
Проблему частично решает метод reloadGridColumnsConfig, если вызвать его в getActiveViewGridSettingsProfile. И тогда в columnBindings попадают нужные связи. Но если зайти в настройки колонок и, не сохраняя их, нажать отмену - раздел не грузится, а в columnBindings снова попадают старые связи.

Олег, свойство columnBindings формируется по конфигурации колонок вью-модели схемы раздела, которая генерируется только один раз в момент инициализации. Поэтому для получения актуальных связей придётся перегенерировать вью-модель. Другого решения я, к сожалению, не нашёл:

init: function() {
	if (/* условие, по которому необходимо подменять профиль */) {
		this.viewModel = null;
	}
	this.callParent(arguments);
}

Таким способом решить проблему у меня не вышло. Но благодаря Вам я пошел в нужном направлении (по цепочке генерации вью-модели). В итоге вышел на getProfileKey() в SectionModuleV2, что проблему решило. Спасибо огромное!

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

Добрый день.
Задача: Есть следующий Workspace, в нем есть фильтры
1
которые применяются к Dataset'у самого раздела.
Как можно значения данных фильтров и признак их включения сохранить в профиле пользователя?

P.S Стандартную функциональность FilterBuilder'a и сохранения в динамические группы в данной задаче применить нельзя.

Конфигурация Terrasoft 3.3.2.157
Бинарные файлы Terrasoft 3.3.2.268

Нравится

1 комментарий

В профиль можно сохранить информацию следующим образом:

	var XMLStorage = GetNewXMLStorage();
	var Node;
 
	XMLStorage.Clear();
	XMLStorage.InitRootNode('PeriodTree');
	Node = XMLStorage.RootNode;
	var ExpandList = GroupsWindow.Attributes('ExpandList');
	Node.SetAttributeAsStr('Filter1Value', edtFilter1.Value,'');
        Node.SetAttributeAsStr('Filter1Enabled', edtFilter1.IsEnabled,'');
	var	Key = Connector.CurrentUser.ContactID + '__MyKey'; 
	var USI =WorkspaceDataset.USI;
	Services.SaveItemProfileStorage(USI, Key, XMLStorage);

а загрузить следующим образом

        var Node;
 
	grdData.CollapseAll();
	var Key = Connector.CurrentUser.ContactID + '__MyKey';          
	var USI = WorkspaceDataset.USI;
 
 
	var XMLStorage = Services.GetItemProfileStorage(USI, Key);
	if (!XMLStorage) {
		return;
	}
	XMLStorage.InitRootNode('PeriodTree');
	Node = XMLStorage.RootNode;
	edtFilter1.IsEnabled = Node.GetAttributeAsStr('Filter1Enabled', '');
        edtFilter1.Value = Node.GetAttributeAsStr('Filter1Value', '');
 

Подробнее информацию по функциям работы с объектом XMLStorage можно посмотреть в SDK

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

Для того, чтобы очистить профиль пользователю, необходимо:

1.Зайти в систему под пользователем:

2.Перейдите в Конфигурация на вкладку «Действия» и в блоке «Профиль» кликнуть на «Очистить все»:

3.В окне подтверждения очистки нажать «Да»:

Появится сообщение об успешной очистке:

Нравится

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

Добрый день! Подскажите пожалуйста как произвести копирование профиля, хранящегося не локально, а в базе данных?

Нравится

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

Я уточню вопрос - как однажды настроенный профиль раздать (скопировать) всем остальным пользователям?

Добрый день.

Спасибо за Ваш вопрос.

Для того, чтобы произвести копирование профиля, который хранится в базе данных, для всех пользователей Вам необходимо:

1) Выгрузить профиль из базы данных в локальную директорию.
2) Скопировать директорию с выгруженым профилем на все компьютеры, на которые необходимо копировать профиль. Директорию Profile следует поместить по пути C:\Documents and Settings\[имя пользователя ОС]\Application Data\Terrasoft CRM\[версия приложения.
3) Далее необходимо загрузить профиль в базу данных для каждого пользователя.

Будем рады ответить на все Ваши дополнительные вопросы.

Terrasoft Support Team

А из базы в базу не получится? В каких таблицах хранится профиль? Можно ведь наверное скопировать записи этой таблицы с заменой ID пользователя?

Добрый день.

Спасибо за Ваш вопрос.

Копировать профиль можно и непосредственно в базе данных путем копирования строк таблицы tbl_ProfileData.
Вам необходимо сгенерировать новый ID с помощью команды select newid() и присвоить его новой строке таблицы. Значение в колонке UserID необходимо скопировать из соответствующей строки таблицы tbl_AdminUnit.

Будем рады ответить на все Ваши дополнительные вопросы.

Terrasoft Support Team

Вот пример скрипта по копированию профиля :)

INSERT INTO tbl_ProfileData
SELECT     NEWID() AS ID, 'ID полязователя из AdminUnit кому копируем' AS UserID, ServiceID, XMLData, [Key]
FROM         tbl_ProfileData AS tbl_ProfileData_1
WHERE     (UserID = 'ID полязователя из AdminUnit с кого копируем')
Показать все комментарии