Как видно с указанного Вами сайта данная проблема не является проблемой приложения, а общая для ОС win2008.
Для переключения между окнами используйте комбинацию клавиш Alt+Tab или Alt+Esc/
Также в процессе удаленного доступа было выявлено, что при обычном подключении через RDP проблема не воспроизводится. Ваш вопрос передан в отдел разработки для рассмотрения ситуации и тестирования.
Ранее подобная проблема встречалась с отображением кнопок разделов в главном окне Terrasoft. Решалась проблема путем принудительного отображения:
"Тесты показали, что проблема воспроизводится исключительно при работе Terrasoft в качестве опубликованного приложения.
В данном случае можно применить небольшое обходное решение. Через приложение TSAdmin нужно в сервисе scr_Main найти строчку:
WorkspaceActionMenuItem.IsChecked = true;
и перед ней поставить:
WorkspaceActionMenuItem.IsChecked = false;
Вот как это будет выглядеть (Жирним выделено строку, которую нужно добавить):
…
var WorkspaceActionMenuItem = WorkspaceItemValue.Value;
if ((!Assigned(GroupActionMenuItem)) ||
(!Assigned(WorkspaceActionMenuItem))) {
throw FormatStr("Модуль%1 не найден", WorkspaceUSI);
} WorkspaceActionMenuItem.IsChecked = false;
WorkspaceActionMenuItem.IsChecked = true;
var WorkspaceWindow = GetWorkspaceByUSI(WorkspaceUSI);
if ((!Assigned(wndWorkspace.Window)) ||
(!wndWorkspace.Window.Equal(WorkspaceWindow))) {
wndWorkspace.Window = WorkspaceWindow;
if (WorkspaceUSI == 'wnd_DashboardView') {
…
Это поможет принудительно перерисовать активный выбранный раздел.
Комментарии
Как видно с указанного Вами сайта данная проблема не является проблемой приложения, а общая для ОС win2008.
Для переключения между окнами используйте комбинацию клавиш Alt+Tab или Alt+Esc/
Также в процессе удаленного доступа было выявлено, что при обычном подключении через RDP проблема не воспроизводится. Ваш вопрос передан в отдел разработки для рассмотрения ситуации и тестирования.
Ранее подобная проблема встречалась с отображением кнопок разделов в главном окне Terrasoft. Решалась проблема путем принудительного отображения:
"Тесты показали, что проблема воспроизводится исключительно при работе Terrasoft в качестве опубликованного приложения.
В данном случае можно применить небольшое обходное решение. Через приложение TSAdmin нужно в сервисе scr_Main найти строчку:
WorkspaceActionMenuItem.IsChecked = true;
и перед ней поставить:
WorkspaceActionMenuItem.IsChecked = false;
Вот как это будет выглядеть (Жирним выделено строку, которую нужно добавить):
…
var WorkspaceActionMenuItem = WorkspaceItemValue.Value;
if ((!Assigned(GroupActionMenuItem)) ||
(!Assigned(WorkspaceActionMenuItem))) {
throw FormatStr("Модуль%1 не найден", WorkspaceUSI);
}
WorkspaceActionMenuItem.IsChecked = false;
WorkspaceActionMenuItem.IsChecked = true;
var WorkspaceWindow = GetWorkspaceByUSI(WorkspaceUSI);
if ((!Assigned(wndWorkspace.Window)) ||
(!wndWorkspace.Window.Equal(WorkspaceWindow))) {
wndWorkspace.Window = WorkspaceWindow;
if (WorkspaceUSI == 'wnd_DashboardView') {
…
Это поможет принудительно перерисовать активный выбранный раздел.
"
Что касается отображение окон - попробуйте модифицировать Вашу конфигурацию следующим образом:
Попробуйте дописать в scr_WindowUtils:
function ShowEditWindowEx(EditWindowUSI, Attributes, DefaultValues, UseCache,
ShowAfterPrepare) {
var ShowModal = Assigned(Attributes) && Boolean(Attributes('ShowModal'));
if ((!Services.AlwaysGetLastItemVersion) &&
(IsUndefined(UseCache) || UseCache)) {
if (Assigned(Attributes)) {
var RecordID = Attributes('RecordID');
if (IsUndefined(RecordID) || RecordID == GUID_NULL) {
RecordID = EmptyStr;
}
} else {
var RecordID = EmptyStr;
}
var EditWindow = WinCache_Get(EditWindowUSI, RecordID);
if (!Assigned(EditWindow)) {
return;
}
} else {
var EditWindow = Services.GetNewItemByUSI(EditWindowUSI);
}
SetAttributesByDictionary(EditWindow, Attributes);
SetAttribute(EditWindow, 'DefaultValues', DefaultValues);
if (!ShowAfterPrepare) {
EditWindow.Show();
}
System.BeginProcessing();
System.ProcessMessages();
EditWindow.Prepare();
System.EndProcessing();
if (!!ShowAfterPrepare) {
if (ShowModal) {
return EditWindow.ShowModal();
} else {
EditWindow.Show();
}
}
EditWindow.BringToFront();
System.ProcessMessages();
return EditWindow;
}