//Установить текущую книгу активной, вызывается при смене книги или при открытии новой public static void ChangeActiveBook() { if (!IsActivated) { return; } try { if (!SysPage.IsInfoTask()) { HideBook(); } else { var wb = Application.ActiveWorkbook; var s = new SysPage(wb).GetValue("Report"); using (CommonBook.StartLog("Смена активной книги", "", s)) { try { if (IsOpening && !ProgrammOpening && !s.IsEmpty()) { try //Чтобы не вылазила загадочная ошибка { if (Books.ContainsKey(s) && Books[s].Workbook.FullName != wb.FullName) { Different.MessageError("Файл отчета с кодом " + s + " уже открыт"); } } catch { } } if (s.IsEmpty()) { ActiveBook = null; } else if (ActiveBook == null || ActiveBook.Code.ToLower() != s.ToLower()) { HideBook(); if (Books.ContainsKey(s)) { ActiveBook = Books[s]; foreach (var f in ActiveBook.Forms.Values) { f.Show(); } } else { ActiveBook = new ReportBook(s, wb); ActiveBook.OpenHistory(General.ReporterDir + @"ReporterHistory\" + s + "History.accdb", General.HistryTemplateFile); Books.Add(s, ActiveBook); ActiveBook.LoadSetup(); } } } catch (Exception ex) { CommonBook.AddError("Ошибка при открытии отчета", ex); throw; } } } } catch (Exception ex) { ex.MessageError("Ошибка при открытии отчета", "Системная ошибка построителя отчетов"); } IsOpening = false; ProgrammOpening = false; }