Обнаружил наприятный баг в форме SysImportDialog
Если мы пытаемся импортировать файл проекта xpo открытый другой программой (например начали импортировать в аксапту на другой приложение и застыли на сравнении слоев) или сравниваем 2 xpo-файла при помощи сравнения файлов в тотал коммандере или просто WinApi::fileExists(file) выдает false (иногда такое бывает – зависают блокировки на уровне файловой системы NTFS) – то Аксапта после выбора файла в диалоге – не подставляет его в поле ввода имени файла. Причем делает это молча

А если попробовать её обмануть – вбить это значение руками – все равно стирает его и возвращает старое (часто непустое значение! - Опять же молча! Так что в итоге можно по невнимательности импортировать не тот проект).
Будьте внимательны. Особенно при накатах на рабочую.
Чтобы обойти этот глюк – можно дописать в метод
\Forms\SysImportDialog\Methods\updateBox
вывод окна сообщения о том что файл не открывается.
Например так :
X++:
void updateBox(fileName file, boolean updateBox = true)
{
int i;
boolean showMruAllowed;
int selection;
if (WinApi::showMruAllowed())
{
showMruAllowed = true;
while (conFind(lastFiles, file))
{
lastFiles = conDel(lastFiles, conFind(lastFiles, file), 1);
}
if (WinApi::fileExists(file))
{
while (Conlen(lastFiles) >= #tempFiles)
{
lastFiles = conDel(lastFiles, #tempFiles, 1);
}
lastFiles = conIns(lastFiles, 1, file);
}
// pkoz 09.12.2008 -->
else
{
Box::warning(strFMT(
'Не удается открыть файл "%1", возможно указанный путь не существует, либо файл открыт другой программой. Импорт остановлен.',
file),
"Внимание !");
}
// pkoz 09.12.2008 <--
}
else
{
lastFiles = conNull();
lastFiles = conIns(lastFiles, 1, file);
}
if (updatebox)
{
fileName.clear();
if (showMruAllowed)
{
fileName.add('');
if (file)
{
selection = 1;
}
else
{
selection = 0;
}
}
else
{
selection = 0;
}
for (i = showMruAllowed; i <= ConLen(lastFiles); i++)
{
if (ConPeek(lastFiles, i))
{
fileName.add(ConPeek(lastFiles, i));
}
}
fileName.setDropSize(ConLen(lastFiles) + showMruAllowed);
fileName.selection(selection);
}
}
P.S.
Ax 3.0 KR3 SP5