/// <summary>
        /// Запись выписки в базу - общий метод
        /// </summary>
        /// <param name="ordderingProcessor"></param>
        private void WriteOrdering(OrderingProcessor ordderingProcessor)
        {
            ordderingProcessor.OpenExcelDoc();
            ordderingProcessor.getOrderingInformation();
            ordderingProcessor.CloseExcelDoc();

            DbWorker dbWorker = new DbWorker(connection);
            dbWorker.OpenDB();

            int idDiscipline = 0;
            if (ordderingProcessor.Characteristic.Specialization.CodeSpecialization == "")
                idDiscipline = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.Код FROM (Специальность INNER JOIN " +
                    "(Специализация INNER JOIN УчебныйПлан ON Специализация.IDСпециализации = УчебныйПлан.КодСпециализации) ON " +
                    "Специальность.IDСпециальности = УчебныйПлан.КодСпециальности) INNER JOIN (ОбщОбрПрограмма INNER JOIN " +
                    "(НазвДисципл INNER JOIN Дисциплины ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON " +
                    "УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП " +
                    "WHERE (((НазвДисципл.НазванДисципл)= '" + ordderingProcessor.Characteristic.Discipline + "') AND " +
                    "((Специализация.НазвСпециализации)= '" + ordderingProcessor.Characteristic.Specialization.NameSpecialization + "') " +
                    "AND ((Специальность.КодСпециальности)= '" + ordderingProcessor.Characteristic.Specialty.CodeSpecialty + "') " +
                    "AND ((Специальность.НазвСпециальности)='" + ordderingProcessor.Characteristic.Specialty.NameSpecialty + "') " +
                    "AND ((Специализация.КодСпециализации) Is Null))", dbWorker.DbCon));
            else
                idDiscipline = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.Код FROM (Специальность INNER JOIN " +
                "(Специализация INNER JOIN УчебныйПлан ON Специализация.IDСпециализации = УчебныйПлан.КодСпециализации) ON " +
                "Специальность.IDСпециальности = УчебныйПлан.КодСпециальности) INNER JOIN (ОбщОбрПрограмма INNER JOIN " +
                "(НазвДисципл INNER JOIN Дисциплины ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON " +
                "УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП " +
                "WHERE (((НазвДисципл.НазванДисципл)= '" + ordderingProcessor.Characteristic.Discipline + "') AND " +
                "((Специализация.НазвСпециализации)= '" + ordderingProcessor.Characteristic.Specialization.NameSpecialization + "') " +
                "AND ((Специальность.КодСпециальности)= '" + ordderingProcessor.Characteristic.Specialty.CodeSpecialty + "') " +
                "AND ((Специальность.НазвСпециальности)='" + ordderingProcessor.Characteristic.Specialty.NameSpecialty + "') " +
                "AND ((Специализация.КодСпециализации)= '" + ordderingProcessor.Characteristic.Specialization.CodeSpecialization + "'))", dbWorker.DbCon));


            if (idDiscipline == 0)
            {
                MessageBox.Show("В базе данных не содержится учебный план, соответствующий дисциплине, специальности и специализации из импортируемого Вами темплана.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dbWorker.CloseDB();
                return;
            }
            //У ВЫПИСКИ ГОДА НЕТ?
            int plIzDisPoVidZan = dbWorker.WriteThematicPlanDb(idDiscipline, 0);
            dbWorker.WriteLessonsDb(ordderingProcessor.ListLessons, plIzDisPoVidZan);

            dbWorker.CloseDB();
        }
        /// <summary>
        /// Добавить выписку и записать в базу данных
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            if (checkedListBoxCathedra.SelectedIndex < 0) return;
            int i = checkedListBoxCathedra.SelectedIndex;
            if (checkedListBoxCathedra.GetItemChecked(i))
            {
                MessageBox.Show("Вероятно Вы выбрали дисциплину по которой уже добавлена выписка. Если хотите перезаписать информацию, уберите галочку напротив дисциплины", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            string fileName = FileWorker.OpenExcelFile();
            string numberlist = string.Empty;
            if (fileName != null)
            {
                FormDialogInputNumberList testDialog = new FormDialogInputNumberList();

                // Show testDialog as a modal dialog and determine if DialogResult = OK.
                if (testDialog.ShowDialog(this) == DialogResult.OK)
                {
                    // Read the contents of testDialog's TextBox.
                    numberlist = testDialog.listName;
                }
                else
                {
                    MessageBox.Show("Вы не ввели название листа. Повторите попытку", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);               
                    return;
                }
                testDialog.Dispose();

                string discipline = checkedListBoxCathedra.Items[i].ToString().Replace(" - ", "").Trim();
                Characteristic characteristic = new Characteristic(i, fileName, numberlist, discipline, new Specialty(textBoxCodeSpecialty.Text, textBoxSpecialty.Text), new Specialization(textBoxCodeSpecialization.Text, textBoxSpecialization.Text));
                OrderingProcessor ordderingProcessor = new OrderingProcessor(characteristic);
                WriteOrdering(ordderingProcessor);
                checkedListBoxCathedra.SetItemChecked(i, true);
            }


        }
 /// <summary>
 /// Запись выписки полученной из сверки в базу
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void buttonWriteOrderingDb_Click(object sender, EventArgs e)
 {
     if (checkedListBoxCathedra.SelectedIndex < 0) return;
     if (!checkedListBoxCathedra.GetItemChecked(checkedListBoxCathedra.SelectedIndex))
         return;
     OrderingProcessor ordderingProcessor = new OrderingProcessor(verificator.GetCharacteristicAtIndex(checkedListBoxCathedra.SelectedIndex));
     WriteOrdering(ordderingProcessor);
 }