| 
	 | 
| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			Бага при импорте проекта
			 
			
			Обнаружил наприятный баг в форме 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); } } Ax 3.0 KR3 SP5  | 
| 
	
 |