private void button1_Click(object sender, EventArgs e)
        {
            //запишем название льготной категории
            льготнаяКатегорияТекст = this.cmbЛьготнаяКатегория.Text.Trim();

            int iCountЛьготник = Convert.ToInt32(ТаблицаБД.GetTable("select Count(*) from Льготник", ConnectionDB.ConnectionString(), "Льготник").Rows[0][0]);

            if (iCountЛьготник == 0)
            {
                MessageBox.Show("Нет данных по льготнику");
                this.Close();
                return;
            }


            string sCon = ConnectionDB.ConnectionString();

            this.dtEnd.Value = this.dtEnd.Value.AddDays(1);
            //  this.dtStart.Value = this.dtStart.Value.AddDays(-1);


            string endYear = this.dtEnd.Value.Year.ToString();
            //отними 1
            //string endDay = this.dtEnd.Value.Day.ToString();
            string endDay   = Convert.ToString(this.dtEnd.Value.Day);
            string endMonth = this.dtEnd.Value.Month.ToString();

            string strYear = this.dtStart.Value.Year.ToString();
            //прибавим 1
            //string strDay = this.dtStart.Value.Day.ToString();
            string strDay   = Convert.ToString(this.dtStart.Value.Day);
            string strMonth = this.dtStart.Value.Month.ToString();

            string endДата = "#" + endMonth + "/" + endDay + "/" + endYear + "#";
            string strДата = "#" + strMonth + "/" + strDay + "/" + strYear + "#";

            this.dtEnd.Value = this.dtEnd.Value.AddDays(-1);

            //#02/05/2013#

            //======================================Рабочая версия реест выполненных договоров
            //string queryReestr = "SELECT ЛьготнаяКатегория.ЛьготнаяКатегория as 'Льготная категория', Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента,Sum(АктВыполнненныхРабот.Сумма) AS [Сумма], АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания " +
            //         "FROM (ЛьготнаяКатегория INNER JOIN Льготник ON ЛьготнаяКатегория.id_льготнойКатегории = Льготник.id_льготнойКатегории) INNER JOIN (Договор INNER JOIN АктВыполнненныхРабот ON Договор.id_договор = АктВыполнненныхРабот.id_договор) ON Льготник.id_льготник = Договор.id_льготник " +
            //         "WHERE (((ЛьготнаяКатегория.ЛьготнаяКатегория)='" + this.cmbЛьготнаяКатегория.Text + "')AND (Договор.ФлагНаличияАкта = True)) " +
            //         "GROUP BY ЛьготнаяКатегория.ЛьготнаяКатегория, Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания, АктВыполнненныхРабот.ДатаПодписания, Льготник.ДатаВыдачиДокумента " +
            //         "HAVING (((АктВыполнненныхРабот.ДатаПодписания)>= " + strДата + " And (АктВыполнненныхРабот.ДатаПодписания)< " + endДата + "))";


            //======================================Рабочая версия реестра с суммами в договорах==============
            if (this.еестрЗаключенныхДоговоров == true)
            {                                                                                                                                                                                                                                                                                                                                                                                                            //, Льготник.СНИЛС
                queryReestr = "SELECT ЛьготнаяКатегория.ЛьготнаяКатегория AS ['Льготная категория'], Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора,АктВыполнненныхРабот.id_акт, АктВыполнненныхРабот.ДатаПодписания,АктВыполнненныхРабот.НомерПоПеречню, Sum(УслугиПоДоговору.Сумма) AS Сумма " +
                              "FROM (ЛьготнаяКатегория INNER JOIN Льготник ON ЛьготнаяКатегория.id_льготнойКатегории = Льготник.id_льготнойКатегории) INNER JOIN ((Договор INNER JOIN АктВыполнненныхРабот ON Договор.id_договор = АктВыполнненныхРабот.id_договор) INNER JOIN УслугиПоДоговору ON Договор.id_договор = УслугиПоДоговору.id_договор) ON Льготник.id_льготник = Договор.id_льготник " +
                              "WHERE (((ЛьготнаяКатегория.ЛьготнаяКатегория)='" + this.cmbЛьготнаяКатегория.Text + "') AND ((Договор.ФлагНаличияАкта)=True)) " +
                              "GROUP BY ЛьготнаяКатегория.ЛьготнаяКатегория, Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания,АктВыполнненныхРабот.id_акт,АктВыполнненныхРабот.НомерПоПеречню " + //,Льготник.СНИЛС
                              "HAVING (((АктВыполнненныхРабот.ДатаПодписания)>= " + strДата + " And (АктВыполнненныхРабот.ДатаПодписания)< " + endДата + "))";                                                                                                                                                                                                                                       //AND (Договор.ФлагНаличияАкта <> True)
            }

            //Выводим реестр заключённых договоров
            if (this.еестрЗаключенныхДоговоров == false)
            {                                                                                                                                                                                                                                                                       //, Льготник.СНИЛС
                queryReestr = "SELECT ЛьготнаяКатегория.ЛьготнаяКатегория AS ['Льготная категория'], Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, Договор.НомерДоговора, Sum(УслугиПоДоговору.Сумма) AS Сумма " +
                              "FROM (ЛьготнаяКатегория INNER JOIN Льготник ON ЛьготнаяКатегория.id_льготнойКатегории = Льготник.id_льготнойКатегории) INNER JOIN (Договор INNER JOIN УслугиПоДоговору ON Договор.id_договор = УслугиПоДоговору.id_договор) ON Льготник.id_льготник = Договор.id_льготник " +
                              "WHERE (((Договор.ФлагНаличияАкта)=False) and (ЛьготнаяКатегория.ЛьготнаяКатегория)='" + this.cmbЛьготнаяКатегория.Text + "') " +
                              "GROUP BY ЛьготнаяКатегория.ЛьготнаяКатегория, Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, Договор.НомерДоговора " +//, Льготник.СНИЛС
                              "HAVING (([Договор].[ДатаДоговора]>=" + strДата + " And [Договор].[ДатаДоговора]<" + endДата + "));";
            }

            List <еестр> list = new List <еестр>();

            if (this.еестрЗаключенныхДоговоров == true)
            {
                //List<Реестр> list = new List<Реестр>();


                //сформируем данные для рееста
                DataTable dt = ТаблицаБД.GetTable(queryReestr, sCon, "Реестр");

                int iCount = 1;

                decimal sumCount = 0m;

                //заполним list
                foreach (DataRow row in dt.Rows)
                {
                    еестр str = new  еестр();
                    str.Id_акт = Convert.ToInt32(row["id_акт"]);

                    str.НомерПорядковый = iCount.ToString();

                    string фамилия = row["Фамилия"].ToString();

                    //if (фамилия == "Якямсева")
                    //{
                    //    string asdasd = "test";
                    //}
                    string имя      = row["Имя"].ToString();
                    string отчество = row["Отчество"].ToString();

                    str.ФИО = фамилия + " " + имя + " " + отчество;
                    str.НомерДатаДоговора = row["НомерДоговора"].ToString() + " " + Convert.ToDateTime(row["ДатаДоговора"]).ToShortDateString();

                    if (this.еестрЗаключенныхДоговоров == true)
                    {
                        str.НомерДатаАкта = row["НомерАкта"].ToString() + " " + Convert.ToDateTime(row["ДатаПодписания"]).ToShortDateString();
                    }

                    if (row["НомерПоПеречню"].ToString() == "True")
                    {
                        str.ФлагАктРеестр = true;
                    }
                    else
                    {
                        str.ФлагАктРеестр = false;
                    }

                    str.СерияДатаВыдачиДокумента = row["СерияДокумента"].ToString() + " " + row["НомерДокумента"].ToString() + " " + Convert.ToDateTime(row["ДатаВыдачиДокумента"]).ToShortDateString();
                    // str.SNILS = row["СНИЛС"].ToString();
                    str.СтоимсотьУслуги = row["Сумма"].ToString();

                    sumCount = sumCount + Convert.ToDecimal(str.СтоимсотьУслуги);

                    list.Add(str);
                    iCount++;
                }
            }

            if (this.еестрЗаключенныхДоговоров == false)
            {
                //queryReestr = "SELECT ЛьготнаяКатегория.ЛьготнаяКатегория AS ['Льготная категория'], Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, Договор.НомерДоговора, Sum(УслугиПоДоговору.Сумма) AS Сумма " +
                //              "FROM (ЛьготнаяКатегория INNER JOIN Льготник ON ЛьготнаяКатегория.id_льготнойКатегории = Льготник.id_льготнойКатегории) INNER JOIN (Договор INNER JOIN УслугиПоДоговору ON Договор.id_договор = УслугиПоДоговору.id_договор) ON Льготник.id_льготник = Договор.id_льготник " +
                //              "WHERE (((Договор.ФлагНаличияАкта)=False) and (ЛьготнаяКатегория.ЛьготнаяКатегория)='" + this.cmbЛьготнаяКатегория.Text + "')  AND ((Договор.ДатаДоговора) is NULL)" +
                //              "GROUP BY ЛьготнаяКатегория.ЛьготнаяКатегория, Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, Договор.НомерДоговора ";// +
                //              //"HAVING (([Договор].[ДатаДоговора]>=" + strДата + " And [Договор].[ДатаДоговора]<" + endДата + "));"; // Было закоментировано

                //сформируем данные для рееста
                DataTable dt_null = ТаблицаБД.GetTable(queryReestr, sCon, "Реестр");

                //формируем шапку таблицы


                //List<Реестр> list = new List<Реестр>(); // ТЕСТ

                еестр реестр = new  еестр();
                реестр.НомерПорядковый = "№ п.п";

                реестр.ФИО = "Ф.И.О.";
                реестр.НомерДатаДоговора = "№ и дата договора на предоставление услуг";

                реестр.НомерДатаАкта            = "№ и дата акта выполненных работ";
                реестр.СерияДатаВыдачиДокумента = "Серия, № и дата документа о праве на льготу";
                // реестр.SNILS = "СНИЛС";
                реестр.СтоимсотьУслуги = "Стоимость услуги, руб";
                list.Add(реестр);

                //Счётчик
                int     iCount   = 1;
                decimal sumCount = 0m;

                //заполним list
                foreach (DataRow row in dt_null.Rows)
                {
                    еестр str = new  еестр();
                    str.НомерПорядковый = iCount.ToString();

                    string фамилия = row["Фамилия"].ToString();

                    //if (фамилия == "Жирнова")
                    //{
                    //   string asdasd = "test";
                    //}

                    string имя      = row["Имя"].ToString();
                    string отчество = row["Отчество"].ToString();

                    str.ФИО = фамилия + " " + имя + " " + отчество;

                    if (this.еестрЗаключенныхДоговоров == false)
                    {
                        str.НомерДатаДоговора = row["НомерДоговора"].ToString() + " " + Convert.ToDateTime(row["ДатаДоговора"]).ToShortDateString();
                    }
                    else
                    {
                        str.НомерДатаДоговора = row["НомерДоговора"].ToString();
                    }

                    if (this.еестрЗаключенныхДоговоров == true)
                    {
                        str.НомерДатаАкта = row["НомерАкта"].ToString() + " " + Convert.ToDateTime(row["ДатаПодписания"]).ToShortDateString();
                    }

                    str.СерияДатаВыдачиДокумента = row["СерияДокумента"].ToString() + " " + row["НомерДокумента"].ToString() + " " + Convert.ToDateTime(row["ДатаВыдачиДокумента"]).ToShortDateString();
                    // str.SNILS = row["СНИЛС"].ToString();
                    str.СтоимсотьУслуги = row["Сумма"].ToString();

                    sumCount = sumCount + Convert.ToDecimal(str.СтоимсотьУслуги);

                    list.Add(str);
                    iCount++;
                }

                // Подсчитаем строку ИТОГО.
                decimal sumCountPrint = sumCount;

                еестр strCount = new  еестр();
                strCount.ФИО             = "Итого :";
                strCount.СтоимсотьУслуги = Math.Round(sumCount, 2).ToString("c");

                list.Add(strCount);

                //Вставим WORD
                string fNameP = "Реестр " + this.dtStart.Value.ToShortDateString().Replace('.', '_') + " " + this.dtEnd.Value.ToShortDateString().Replace('.', '_');


                try
                {
                    //Скопируем шаблон в папку Документы
                    FileInfo fn = new FileInfo(System.Windows.Forms.Application.StartupPath + @"\Шаблон\Реестр.doc");
                    fn.CopyTo(System.Windows.Forms.Application.StartupPath + @"\Документы\" + fNameP + ".doc", true);
                }
                catch
                {
                    MessageBox.Show("Документ с таки именем уже существует");
                }

                string filName = System.Windows.Forms.Application.StartupPath + @"\Документы\" + fNameP + ".doc";

                //Создаём новый Word.Application
                Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();

                //Загружаем документ
                Microsoft.Office.Interop.Word.Document doc = null;

                object fileName   = filName;
                object falseValue = false;
                object trueValue  = true;
                object missing    = Type.Missing;

                doc = app.Documents.Open(ref fileName, ref missing, ref trueValue,
                                         ref missing, ref missing, ref missing, ref missing, ref missing,
                                         ref missing, ref missing, ref missing, ref missing, ref missing,
                                         ref missing, ref missing, ref missing);

                //зададим левый отступ
                doc.PageSetup.LeftMargin = 40f;


                ////Номер договора
                object wdrepl = WdReplace.wdReplaceAll;
                //object searchtxt = "GreetingLine";
                object searchtxt = "категория";
                object newtxt    = (object)this.cmbЛьготнаяКатегория.Text;
                //object frwd = true;
                object frwd = false;
                doc.Content.Find.Execute(ref searchtxt, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd, ref missing, ref missing, ref newtxt, ref wdrepl, ref missing, ref missing,
                                         ref missing, ref missing);

                //Вставить таблицу
                object bookNaziv = "таблица";
                Range  wrdRng    = doc.Bookmarks.get_Item(ref bookNaziv).Range;

                object behavior     = Microsoft.Office.Interop.Word.WdDefaultTableBehavior.wdWord8TableBehavior;
                object autobehavior = Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitWindow;


                Microsoft.Office.Interop.Word.Table table = doc.Tables.Add(wrdRng, 1, 6, ref behavior, ref autobehavior);
                table.Range.ParagraphFormat.SpaceAfter = 6;
                table.Columns[1].Width = 40;
                table.Columns[2].Width = 140;
                table.Columns[3].Width = 80;
                table.Columns[4].Width = 110;//ширина столбца с номером акта
                table.Columns[5].Width = 70;
                table.Columns[6].Width = 80;
                table.Borders.Enable   = 1; // Рамка - сплошная линия
                table.Range.Font.Name  = "Times New Roman";
                //table.Range.Font.Size = 10;
                table.Range.Font.Size = 8;
                //счётчик строк
                int i = 1;

                //запишем данные в таблицу
                foreach (еестр item in list)
                {
                    table.Cell(i, 1).Range.Text = item.НомерПорядковый;

                    table.Cell(i, 2).Range.Text = item.ФИО;

                    table.Cell(i, 3).Range.Text = item.НомерДатаДоговора;
                    table.Cell(i, 4).Range.Text = item.НомерДатаАкта;
                    table.Cell(i, 5).Range.Text = item.СерияДатаВыдачиДокумента;
                    // table.Cell(i, 6).Range.Text = item.SNILS;
                    table.Cell(i, 6).Range.Text = item.СтоимсотьУслуги;

                    //doc.Words.Count.ToString();
                    Object beforeRow1 = Type.Missing;
                    table.Rows.Add(ref beforeRow1);

                    i++;
                }
                table.Rows[i].Delete();

                //выведим ФИО главврача
                string    глВрач     = "select ФИО_ГлавВрач from ГлавВрач where id_главВрач in (select id_главВрач from Поликлинника)";
                DataTable dtГлавВрач = ТаблицаБД.GetTable(глВрач, sCon, "Поликлинника");
                string    главВрач   = dtГлавВрач.Rows[0][0].ToString();

                //выведим ФИО глав буха
                string    глБух     = "select ФИО_ГлавБух from ГлавБух where id_главБух in (select id_главБух from Поликлинника)";
                DataTable dtГлавБух = ТаблицаБД.GetTable(глБух, sCon, "Поликлинника");
                string    главБух   = dtГлавБух.Rows[0][0].ToString();

                ////Номер договора
                object wdrepl2 = WdReplace.wdReplaceAll;
                //object searchtxt = "GreetingLine";
                object searchtxt2 = "главврач";
                object newtxt2    = (object)главВрач;
                //object frwd = true;
                object frwd2 = false;
                doc.Content.Find.Execute(ref searchtxt2, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd2, ref missing, ref missing, ref newtxt2, ref wdrepl2, ref missing, ref missing,
                                         ref missing, ref missing);


                ////Номер договора
                object wdrepl3 = WdReplace.wdReplaceAll;
                //object searchtxt = "GreetingLine";
                object searchtxt3 = "главбух";
                object newtxt3    = (object)главБух;
                //object frwd = true;
                object frwd3 = false;
                doc.Content.Find.Execute(ref searchtxt3, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd3, ref missing, ref missing, ref newtxt3, ref wdrepl3, ref missing, ref missing,
                                         ref missing, ref missing);

                //Должность на подписи
                string queryДолжность = "select Должность from ГлавВрач where id_главВрач = (select id_главВрач from Поликлинника)";
                string Predsedatel    = ТаблицаБД.GetTable(queryДолжность, ConnectionDB.ConnectionString(), "ФиоШев").Rows[0][0].ToString();

                object wdrepl4 = WdReplace.wdReplaceAll;//39
                //object searchtxt = "GreetingLine";
                object searchtxt4 = "Predsedatel";
                object newtxt4    = (object)Predsedatel;
                //object frwd = true;
                object frwd4 = false;
                doc.Content.Find.Execute(ref searchtxt4, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd4, ref missing, ref missing, ref newtxt4, ref wdrepl4, ref missing, ref missing,
                                         ref missing, ref missing);

                //должность руководителя ТО
                string    quyeryTO   = "select Должность, ФИО_Руководитель from ФиоШев where id_шев in (select id_шев from Комитет)";
                DataTable tabРуковод = ТаблицаБД.GetTable(quyeryTO, ConnectionDB.ConnectionString(), "Руководитель");

                //получим должность
                string должность = tabРуковод.Rows[0]["Должность"].ToString();

                object wdrepl5 = WdReplace.wdReplaceAll;//39
                //object searchtxt = "GreetingLine";
                object searchtxt5 = "должность";
                object newtxt5    = (object)должность;
                //object frwd = true;
                object frwd5 = false;
                doc.Content.Find.Execute(ref searchtxt5, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd5, ref missing, ref missing, ref newtxt5, ref wdrepl5, ref missing, ref missing,
                                         ref missing, ref missing);

                //получим ФИО руководителя ТО
                string руководитель = tabРуковод.Rows[0]["ФИО_Руководитель"].ToString();

                object wdrepl6 = WdReplace.wdReplaceAll;//39
                //object searchtxt = "GreetingLine";
                object searchtxt6 = "руководитель";
                object newtxt6    = (object)руководитель;
                //object frwd = true;
                object frwd6 = false;
                doc.Content.Find.Execute(ref searchtxt6, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd6, ref missing, ref missing, ref newtxt6, ref wdrepl6, ref missing, ref missing,
                                         ref missing, ref missing);

                app.Visible = true;

                //закроем окно
                this.Close();

                //Выгрузить реестр
                //UnloadDate unloadDate = new UnloadDate(strДата, endДата, this.cmbЛьготнаяКатегория.Text);

                if (this.еестрЗаключенныхДоговоров == true)
                {
                    UnloadDate    unloadDate = new UnloadDate(strДата, endДата, льготнаяКатегорияТекст);
                    List <Unload> unload     = unloadDate.Выгрузка();

                    //закроем окно
                    this.Close();

                    //Проверим в файле конфигурации Config.dll разрешена выгрузка реестра в файл или нет
                    using (FileStream fs = File.OpenRead("Config.dll"))
                        using (TextReader read = new StreamReader(fs))
                        {
                            string sConfig = read.ReadLine();
                            if (sConfig == "1")
                            {
                                //Разрешаем выгрузку реестра в файл
                                flagUnLoad = true;
                            }
                            else
                            {
                                //запрещаем выгрузку реестра в файл
                                flagUnLoad = false;
                            }
                        }

                    if (flagUnLoad == true)
                    {
                        //Проверим если список List<Unload> не пустой
                        if (unload.Count != 0)
                        {
                            //получим путь к файлу
                            //SaveFileDialog saveFile = new SaveFileDialg();
                            SaveFileDialog saveFile = new SaveFileDialog();
                            saveFile.DefaultExt = string.Empty;
                            saveFile.Filter     = "All files (*.*)|*.*";

                            //Получим красивое название файла
                            //string arDateStart = strДата.Replace('#', '_');
                            ////string arrDateStart = arDateStart.Replace('/', '_');

                            //string arrDateStart = arDateStart.Replace('/', '.');
                            ////string fileNameBg = arrDateStart;

                            //string arEndДата = "_" + this.dtEnd.Value.ToShortDateString();// .Replace('#', '_');
                            ////string arrEndДата = arEndДата.Replace('/', '_');

                            //string arrEndДата = arEndДата.Replace('/', '.');
                            ////string fileNameEnd = arrEndДата;

                            string arrDateStart = Convert.ToDateTime(this.dtStart.Value).ToShortDateString();
                            string arrEndДата   = Convert.ToDateTime(this.dtEnd.Value).ToShortDateString();

                            saveFile.FileName = arrDateStart + "_" + льготнаяКатегорияТекст + "_" + arrEndДата + ".r";
                            //saveFile.ShowDialog();

                            string fileBinaryName = string.Empty;


                            if (saveFile.ShowDialog() == DialogResult.OK)
                            {
                                fileBinaryName = saveFile.FileName;
                                //saveFile.InitialDirectory = @".\";
                                //WorkingDirectory
                            }
                            else
                            {
                                return;
                            }

                            //сериализуем список
                            FileStream      fs = new FileStream(fileBinaryName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                            BinaryFormatter bf = new BinaryFormatter();

                            //сериализация
                            bf.Serialize(fs, unload);

                            //Освободим в потоке все ресурсы
                            fs.Dispose();
                            fs.Close();

                            //Установим для проги текущую директорию для корректного считывания пути к БД
                            Environment.CurrentDirectory = System.Windows.Forms.Application.StartupPath;
                        }
                    }
                }

                //Конец
            }


            if (this.еестрЗаключенныхДоговоров == true)
            {
                //сформируем word
                string fName = "Реестр " + this.dtStart.Value.ToShortDateString().Replace('.', '_') + " " + this.dtEnd.Value.ToShortDateString().Replace('.', '_');

                //Выведим данные в отдельное окошко
                FormListReestr listR = new FormListReestr();

                //передадим в форму данные полученные от SQL Server
                listR.еестрАктов = list;

                //Передадим начало и конец отчётного периода
                listR.dtStart = this.dtStart.Value;
                listR.dtEnd   = this.dtEnd.Value;

                //передадим льготную категорию
                listR.ЛьготнаяКатегория = this.cmbЛьготнаяКатегория.Text.Trim();

                //передадим флаг о разрешении выгрузки реестров заключённых договоров
                listR.еестрЗаключенныхДоговоров = this.еестрЗаключенныхДоговоров;

                //Отобразим форму выбора актов выполненных работ
                listR.Show();

                //Закроем форму
                this.Close();
            }

            //распечатаем word
            //FileInfo fnDel = new FileInfo(System.Windows.Forms.Application.StartupPath + @"\Документы\Акт4.dot");
            // FileInfo fnDel = new FileInfo(System.Windows.Forms.Application.StartupPath + @"\Документы\"+fileName+".doc");
            //fnDel.Delete();
            //try
            //{
            //    //Скопируем шаблон в папку Документы
            //    FileInfo fn = new FileInfo(System.Windows.Forms.Application.StartupPath + @"\Шаблон\Реестр.doc");
            //    fn.CopyTo(System.Windows.Forms.Application.StartupPath + @"\Документы\" + fName + ".doc", true);
            //}
            //catch
            //{
            //    MessageBox.Show("Документ с таки именем уже существует");
            //}

            //string filName = System.Windows.Forms.Application.StartupPath + @"\Документы\" + fName + ".doc";

            ////Создаём новый Word.Application
            //Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();

            ////Загружаем документ
            //Microsoft.Office.Interop.Word.Document doc = null;

            //object fileName = filName;
            //object falseValue = false;
            //object trueValue = true;
            //object missing = Type.Missing;

            //doc = app.Documents.Open(ref fileName, ref missing, ref trueValue,
            //ref missing, ref missing, ref missing, ref missing, ref missing,
            //ref missing, ref missing, ref missing, ref missing, ref missing,
            //ref missing, ref missing, ref missing);

            ////зададим левый отступ
            //doc.PageSetup.LeftMargin = 40f;


            //////Номер договора
            //object wdrepl = WdReplace.wdReplaceAll;
            ////object searchtxt = "GreetingLine";
            //object searchtxt = "категория";
            //object newtxt = (object)this.cmbЛьготнаяКатегория.Text;
            ////object frwd = true;
            //object frwd = false;
            //doc.Content.Find.Execute(ref searchtxt, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd, ref missing, ref missing, ref newtxt, ref wdrepl, ref missing, ref missing,
            //ref missing, ref missing);

            ////Вставить таблицу
            //object bookNaziv = "таблица";
            //Range wrdRng = doc.Bookmarks.get_Item(ref  bookNaziv).Range;

            //object behavior = Microsoft.Office.Interop.Word.WdDefaultTableBehavior.wdWord8TableBehavior;
            //object autobehavior = Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitWindow;


            //Microsoft.Office.Interop.Word.Table table = doc.Tables.Add(wrdRng, 1, 6, ref behavior, ref autobehavior);
            //table.Range.ParagraphFormat.SpaceAfter = 6;
            //table.Columns[1].Width = 40;
            //table.Columns[2].Width = 140;
            //table.Columns[3].Width = 80;
            //table.Columns[4].Width = 110;//ширина столбца с номером акта
            //table.Columns[5].Width = 70;
            //table.Columns[6].Width = 80;
            //table.Borders.Enable = 1; // Рамка - сплошная линия
            //table.Range.Font.Name = "Times New Roman";
            ////table.Range.Font.Size = 10;
            //table.Range.Font.Size = 8;
            ////счётчик строк
            //int i = 1;

            ////запишем данные в таблицу
            //foreach (Реестр item in list)
            //{
            //    table.Cell(i, 1).Range.Text = item.НомерПорядковый;

            //    table.Cell(i, 2).Range.Text = item.ФИО;

            //    table.Cell(i, 3).Range.Text = item.НомерДатаДоговора;
            //    table.Cell(i, 4).Range.Text = item.НомерДатаАкта;
            //    table.Cell(i, 5).Range.Text = item.СерияДатаВыдачиДокумента;
            //    table.Cell(i, 6).Range.Text = item.СтоимсотьУслуги;

            //    //doc.Words.Count.ToString();
            //    Object beforeRow1 = Type.Missing;
            //    table.Rows.Add(ref beforeRow1);

            //    i++;
            //}
            //table.Rows[i].Delete();

            ////выведим ФИО главврача
            //string глВрач = "select ФИО_ГлавВрач from ГлавВрач where id_главВрач in (select id_главВрач from Поликлинника)";
            //DataTable dtГлавВрач = ТаблицаБД.GetTable(глВрач, sCon, "Поликлинника");
            //string главВрач = dtГлавВрач.Rows[0][0].ToString();

            ////выведим ФИО глав буха
            //string глБух = "select ФИО_ГлавБух from ГлавБух where id_главБух in (select id_главБух from Поликлинника)";
            //DataTable dtГлавБух = ТаблицаБД.GetTable(глБух, sCon, "Поликлинника");
            //string главБух = dtГлавБух.Rows[0][0].ToString();

            //////Номер договора
            //object wdrepl2 = WdReplace.wdReplaceAll;
            ////object searchtxt = "GreetingLine";
            //object searchtxt2 = "главврач";
            //object newtxt2 = (object)главВрач;
            ////object frwd = true;
            //object frwd2 = false;
            //doc.Content.Find.Execute(ref searchtxt2, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd2, ref missing, ref missing, ref newtxt2, ref wdrepl2, ref missing, ref missing,
            //ref missing, ref missing);


            //////Номер договора
            //object wdrepl3 = WdReplace.wdReplaceAll;
            ////object searchtxt = "GreetingLine";
            //object searchtxt3 = "главбух";
            //object newtxt3 = (object)главБух;
            ////object frwd = true;
            //object frwd3 = false;
            //doc.Content.Find.Execute(ref searchtxt3, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd3, ref missing, ref missing, ref newtxt3, ref wdrepl3, ref missing, ref missing,
            //ref missing, ref missing);

            ////Должность на подписи
            //string queryДолжность = "select Должность from ГлавВрач where id_главВрач = (select id_главВрач from Поликлинника)";
            //string Predsedatel = ТаблицаБД.GetTable(queryДолжность, ConnectionDB.ConnectionString(), "ФиоШев").Rows[0][0].ToString();

            //object wdrepl4 = WdReplace.wdReplaceAll;//39
            ////object searchtxt = "GreetingLine";
            //object searchtxt4 = "Predsedatel";
            //object newtxt4 = (object)Predsedatel;
            ////object frwd = true;
            //object frwd4 = false;
            //doc.Content.Find.Execute(ref searchtxt4, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd4, ref missing, ref missing, ref newtxt4, ref wdrepl4, ref missing, ref missing,
            //ref missing, ref missing);

            ////должность руководителя ТО
            //string quyeryTO = "select Должность, ФИО_Руководитель from ФиоШев where id_шев in (select id_шев from Комитет)";
            //DataTable tabРуковод = ТаблицаБД.GetTable(quyeryTO, ConnectionDB.ConnectionString(), "Руководитель");

            ////получим должность
            //string должность = tabРуковод.Rows[0]["Должность"].ToString();

            //object wdrepl5 = WdReplace.wdReplaceAll;//39
            ////object searchtxt = "GreetingLine";
            //object searchtxt5 = "должность";
            //object newtxt5 = (object)должность;
            ////object frwd = true;
            //object frwd5 = false;
            //doc.Content.Find.Execute(ref searchtxt5, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd5, ref missing, ref missing, ref newtxt5, ref wdrepl5, ref missing, ref missing,
            //ref missing, ref missing);

            ////получим ФИО руководителя ТО
            //string руководитель = tabРуковод.Rows[0]["ФИО_Руководитель"].ToString();

            //object wdrepl6 = WdReplace.wdReplaceAll;//39
            ////object searchtxt = "GreetingLine";
            //object searchtxt6 = "руководитель";
            //object newtxt6 = (object)руководитель;
            ////object frwd = true;
            //object frwd6 = false;
            //doc.Content.Find.Execute(ref searchtxt6, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd6, ref missing, ref missing, ref newtxt6, ref wdrepl6, ref missing, ref missing,
            //ref missing, ref missing);

            //app.Visible = true;

            ////закроем окно
            //this.Close();

            ////Выгрузить реестр
            ////UnloadDate unloadDate = new UnloadDate(strДата, endДата, this.cmbЛьготнаяКатегория.Text);

            //if(this.РеестрЗаключенныхДоговоров == true)
            //{
            //UnloadDate unloadDate = new UnloadDate(strДата, endДата, льготнаяКатегорияТекст);
            //List<Unload> unload = unloadDate.Выгрузка();

            ////закроем окно
            //this.Close();

            ////Проверим в файле конфигурации Config.dll разрешена выгрузка реестра в файл или нет
            //using (FileStream fs = File.OpenRead("Config.dll"))
            //using (TextReader read = new StreamReader(fs))
            //{
            //    string sConfig = read.ReadLine();
            //    if (sConfig == "1")
            //    {
            //        //Разрешаем выгрузку реестра в файл
            //        flagUnLoad = true;
            //    }
            //    else
            //    {
            //        //запрещаем выгрузку реестра в файл
            //        flagUnLoad = false;
            //    }
            //}

            //if (flagUnLoad == true)
            //{

            //    //Проверим если список List<Unload> не пустой
            //    if (unload.Count != 0)
            //    {

            //        //получим путь к файлу
            //        //SaveFileDialog saveFile = new SaveFileDialg();
            //        SaveFileDialog saveFile = new SaveFileDialog();
            //        saveFile.DefaultExt = string.Empty;
            //        saveFile.Filter = "All files (*.*)|*.*";

            //        //Получим красивое название файла
            //        //string arDateStart = strДата.Replace('#', '_');
            //        ////string arrDateStart = arDateStart.Replace('/', '_');

            //        //string arrDateStart = arDateStart.Replace('/', '.');
            //        ////string fileNameBg = arrDateStart;

            //        //string arEndДата = "_" + this.dtEnd.Value.ToShortDateString();// .Replace('#', '_');
            //        ////string arrEndДата = arEndДата.Replace('/', '_');

            //        //string arrEndДата = arEndДата.Replace('/', '.');
            //        ////string fileNameEnd = arrEndДата;

            //        string arrDateStart = Convert.ToDateTime(this.dtStart.Value).ToShortDateString();
            //        string arrEndДата = Convert.ToDateTime(this.dtEnd.Value).ToShortDateString();

            //        saveFile.FileName =  arrDateStart + "_" + льготнаяКатегорияТекст + "_" + arrEndДата + ".r";
            //        //saveFile.ShowDialog();

            //        string fileBinaryName = string.Empty;


            //        if (saveFile.ShowDialog() == DialogResult.OK)
            //        {
            //            fileBinaryName = saveFile.FileName;
            //            //saveFile.InitialDirectory = @".\";
            //            //WorkingDirectory
            //        }
            //        else
            //        {
            //            return;
            //        }

            //        //сериализуем список
            //        FileStream fs = new FileStream(fileBinaryName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
            //        BinaryFormatter bf = new BinaryFormatter();

            //        //сериализация
            //        bf.Serialize(fs, unload);

            //        //Освободим в потоке все ресурсы
            //        fs.Dispose();
            //        fs.Close();

            //        //Установим для проги текущую директорию для корректного считывания пути к БД
            //        Environment.CurrentDirectory = System.Windows.Forms.Application.StartupPath;
            //    }
            //}


            //}
        }
        private void btnPrint_Click(object sender, EventArgs e)
        {
            ////формируем шапку таблицы отчёта в word
            //Реестр реестр = new Реестр();
            //реестр.НомерПорядковый = "№ п.п";

            //реестр.ФИО = "Ф.И.О.";
            //реестр.НомерДатаДоговора = "№ и дата договора на предоставление услуг";

            //реестр.НомерДатаАкта = "№ и дата акта выполненных работ";
            //реестр.СерияДатаВыдачиДокумента = "Серия, № и дата документа о праве на льготу";
            //реестр.СтоимсотьУслуги = "Стоимость услуги, руб";
            //list.Add(реестр);

            this.dtEnd = this.dtEnd.AddDays(1);
            //  this.dtStart.Value = this.dtStart.Value.AddDays(-1);

            string endYear = this.dtEnd.Year.ToString();
            //отними 1
            //string endDay = this.dtEnd.Value.Day.ToString();
            string endDay   = Convert.ToString(this.dtEnd.Day);
            string endMonth = this.dtEnd.Month.ToString();

            string strYear = this.dtStart.Year.ToString();
            //прибавим 1
            //string strDay = this.dtStart.Value.Day.ToString();
            string strDay   = Convert.ToString(this.dtStart.Day);
            string strMonth = this.dtStart.Month.ToString();

            string endДата = "#" + endMonth + "/" + endDay + "/" + endYear + "#";
            string strДата = "#" + strMonth + "/" + strDay + "/" + strYear + "#";

            this.dtEnd = this.dtEnd.AddDays(-1);

            //////Пройдёмся по DataGridView и добавим в коллекцию отмеченные акты
            //foreach (DataGridViewRow row in this.dataGridView1.Rows)
            //{
            //    if (Convert.ToBoolean(row.Cells["ФлагАктРеестр"].Value) == true)
            //    {
            //        Реестр реестр1 = new Реестр();
            //        реестр1.НомерПорядковый = row.Cells["НомерПорядковый"].Value.ToString();
            //        реестр1.Id_акт = Convert.ToInt32(row.Cells["Id_акт"].Value);

            //        реестр1.ФИО = row.Cells["ФИО"].Value.ToString();
            //        реестр1.НомерДатаДоговора = row.Cells["НомерДатаДоговора"].Value.ToString();

            //        реестр1.НомерДатаАкта = row.Cells["НомерДатаАкта"].Value.ToString();
            //        реестр1.СерияДатаВыдачиДокумента = row.Cells["СерияДатаВыдачиДокумента"].Value.ToString();
            //        реестр1.СтоимсотьУслуги = row.Cells["СтоимсотьУслуги"].Value.ToString();
            //        list.Add(реестр1);

            //        //sum = Math.Round(Math.Round(sum, 2) + Math.Round(Convert.ToDecimal(row.Cells["СтоимсотьУслуги"].Value), 2), 2);

            //        ////Запишем Update для таблицы АктВыполненныхРаборт
            //        //string queryUpdate = "update АктВыполнненныхРабот set НомерПоПеречню = 'True' where id_акт = " + реестр1.Id_акт + " ";

            //        ////Выполним обновление таблицы АктВыполнненныхРабот
            //        //Query.Execute(queryUpdate.ToString().Trim(), ConnectionDB.ConnectionString());
            //    }
            //}

            //Не буду искать где ошибка сделаем суму пустой
            sum = 0.0m;
            List <еестр> listSum = new List <еестр>();

            //int iCountItem = 0;
            ////Заполним данными список listSum
            //foreach (Реестр р in list)
            //{
            //    if (iCountItem > 0)
            //    {
            //        listSum.Add(р);
            //    }
            //    iCountItem++;
            //}

            // Список для хранения id договоров.
            List <еестрВрачТехЛист> listEsc = new List <еестрВрачТехЛист>();
            string keyGuid    = Guid.NewGuid().ToString().Trim();
            int    iCountItem = 0;

            //Заполним данными список listSum
            foreach (еестр р in list)
            {
                // Пропустим первый пункт так как он содержит наименование название столбцов и не несет информационной нагрузки, а служит только для отображения названия столбцов.
                if (iCountItem > 0)
                {
                    listSum.Add(р);

                    // if (ConfigurationSettings.AppSettings["OnlySatartov"].ToString().Trim() == "1")
                    if (ConfigurationManager.AppSettings["OnlySatartov"].ToString().Trim() == "1")
                    {
                        // Получим id акт.
                        string queryAct = "select id_договор from АктВыполнненныхРабот where id_акт = " + р.Id_акт + " ";

                        int id_договор = Convert.ToInt32(ТаблицаБД.GetTable(queryAct, ConnectionDB.ConnectionString(), "ActIdContract").Rows[0]["id_договор"]);

                        if (chkBoxНомерСФ.Checked == true)
                        {
                            string queryInsertEsc = " insert into ВрачОплата (idДоговор,IGuid,СчётФактура,Дата) values(" + id_договор + ", '" + keyGuid.Trim() + "','" + this.txtНомерСчётФактуры.Text.Trim() + "','" + this.dateTimePicker1.Value + "' ) ";
                            Query.Execute(queryInsertEsc, ConnectionDB.ConnectionString());
                        }
                        else
                        {
                            string queryInsertEsc = " insert into ВрачОплата (idДоговор,IGuid) values(" + id_договор + ", '" + keyGuid.Trim() + "' ) ";
                            Query.Execute(queryInsertEsc, ConnectionDB.ConnectionString());
                        }
                    }
                }
                iCountItem++;
            }

            foreach (еестр р in listSum)
            {
                sum = Math.Round(Math.Round(sum, 2) + Math.Round(decimal.Parse(р.СтоимсотьУслуги), 2), 2);
            }

            //Запишем в данные строкчку итого
            еестр реестр2 = new  еестр();

            реестр2.ФИО             = "Всего по реестру";
            реестр2.СтоимсотьУслуги = sum.ToString("c");
            list.Add(реестр2);

            //сформируем word
            //string fName = "Реестр " + this.dtStart.Value.ToShortDateString().Replace('.', '_') + " " + this.dtEnd.Value.ToShortDateString().Replace('.', '_');
            string fName = "Реестр " + this.dtStart.ToShortDateString().Replace('.', '_').Replace('/', '_') + " " + this.dtEnd.ToShortDateString().Replace('.', '_').Replace('/', '_');

            ////Выполним обновление таблицы АктВыполнненныхРабот
            //Query.Execute(builder.ToString().Trim(), ConnectionDB.ConnectionString());

            if (list.Count > 2)
            {
                try
                {
                    //Скопируем шаблон в папку Документы
                    FileInfo fn = new FileInfo(System.Windows.Forms.Application.StartupPath + @"\Шаблон\Реестр.doc");
                    fn.CopyTo(System.Windows.Forms.Application.StartupPath + @"\Документы\" + fName + ".doc", true);
                }
                catch
                {
                    MessageBox.Show("Документ с таки именем уже существует");
                }

                string filName = System.Windows.Forms.Application.StartupPath + @"\Документы\" + fName + ".doc";

                //Создаём новый Word.Application
                Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();

                //Загружаем документ
                Microsoft.Office.Interop.Word.Document doc = null;

                object fileName   = filName;
                object falseValue = false;
                object trueValue  = true;
                object missing    = Type.Missing;

                doc = app.Documents.Open(ref fileName, ref missing, ref trueValue,
                                         ref missing, ref missing, ref missing, ref missing, ref missing,
                                         ref missing, ref missing, ref missing, ref missing, ref missing,
                                         ref missing, ref missing, ref missing);

                //зададим левый отступ
                doc.PageSetup.LeftMargin = 40f;

                ////Номер договора
                object wdrepl = WdReplace.wdReplaceAll;
                //object searchtxt = "GreetingLine";
                object searchtxt = "категория";
                object newtxt    = (object)this.ЛьготнаяКатегория.Trim();
                //object frwd = true;
                object frwd = false;
                doc.Content.Find.Execute(ref searchtxt, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd, ref missing, ref missing, ref newtxt, ref wdrepl, ref missing, ref missing,
                                         ref missing, ref missing);

                //Вставить таблицу
                object bookNaziv = "таблица";
                Range  wrdRng    = doc.Bookmarks.get_Item(ref bookNaziv).Range;

                object behavior     = Microsoft.Office.Interop.Word.WdDefaultTableBehavior.wdWord8TableBehavior;
                object autobehavior = Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitWindow;

                Microsoft.Office.Interop.Word.Table table = doc.Tables.Add(wrdRng, 1, 6, ref behavior, ref autobehavior);
                table.Range.ParagraphFormat.SpaceAfter = 6;
                table.Columns[1].Width = 40;
                table.Columns[2].Width = 140;
                table.Columns[3].Width = 80;
                table.Columns[4].Width = 110;//ширина столбца с номером акта
                table.Columns[5].Width = 70;
                table.Columns[6].Width = 80;
                table.Borders.Enable   = 1; // Рамка - сплошная линия
                table.Range.Font.Name  = "Times New Roman";
                //table.Range.Font.Size = 10;
                table.Range.Font.Size = 8;
                //счётчик строк
                int i = 1;

                //запишем данные в таблицу
                foreach (еестр item in list)
                {
                    table.Cell(i, 1).Range.Text = item.НомерПорядковый;
                    table.Cell(i, 2).Range.Text = item.ФИО;
                    table.Cell(i, 3).Range.Text = item.НомерДатаДоговора;
                    table.Cell(i, 4).Range.Text = item.НомерДатаАкта;
                    table.Cell(i, 5).Range.Text = item.СерияДатаВыдачиДокумента;
                    table.Cell(i, 6).Range.Text = item.СтоимсотьУслуги;

                    //doc.Words.Count.ToString();
                    Object beforeRow1 = Type.Missing;
                    table.Rows.Add(ref beforeRow1);

                    i++;
                }

                // Ставим порядковый номер, (по порядку), т.к. при снятии галки порядковый номер не меняется
                // (строка в списке удаляется) идет следующий номер по порядку
                int pn = 1;
                for (int j = 2; j < list.Count; j++)
                {
                    table.Cell(j, 1).Range.Text = pn++.ToString();
                }

                table.Rows[i].Delete();

                //выведим ФИО главврача
                string    глВрач     = "select ФИО_ГлавВрач from ГлавВрач where id_главВрач in (select id_главВрач from Поликлинника)";
                DataTable dtГлавВрач = ТаблицаБД.GetTable(глВрач, ConnectionDB.ConnectionString(), "Поликлинника");
                string    главВрач   = dtГлавВрач.Rows[0][0].ToString();

                //выведим ФИО глав буха
                string    глБух     = "select ФИО_ГлавБух from ГлавБух where id_главБух in (select id_главБух from Поликлинника)";
                DataTable dtГлавБух = ТаблицаБД.GetTable(глБух, ConnectionDB.ConnectionString(), "Поликлинника");
                string    главБух   = dtГлавБух.Rows[0][0].ToString();

                ////Номер договора
                object wdrepl2 = WdReplace.wdReplaceAll;
                //object searchtxt = "GreetingLine";
                object searchtxt2 = "главврач";
                object newtxt2    = (object)главВрач;
                //object frwd = true;
                object frwd2 = false;
                doc.Content.Find.Execute(ref searchtxt2, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd2, ref missing, ref missing, ref newtxt2, ref wdrepl2, ref missing, ref missing,
                                         ref missing, ref missing);

                ////Номер договора
                object wdrepl3 = WdReplace.wdReplaceAll;
                //object searchtxt = "GreetingLine";
                object searchtxt3 = "главбух";
                object newtxt3    = (object)главБух;
                //object frwd = true;
                object frwd3 = false;
                doc.Content.Find.Execute(ref searchtxt3, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd3, ref missing, ref missing, ref newtxt3, ref wdrepl3, ref missing, ref missing,
                                         ref missing, ref missing);

                //Должность на подписи
                string queryДолжность = "select Должность from ГлавВрач where id_главВрач = (select id_главВрач from Поликлинника)";
                string Predsedatel    = ТаблицаБД.GetTable(queryДолжность, ConnectionDB.ConnectionString(), "ФиоШев").Rows[0][0].ToString();

                object wdrepl4 = WdReplace.wdReplaceAll;//39
                //object searchtxt = "GreetingLine";
                object searchtxt4 = "Predsedatel";
                object newtxt4    = (object)Predsedatel;
                //object frwd = true;
                object frwd4 = false;
                doc.Content.Find.Execute(ref searchtxt4, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd4, ref missing, ref missing, ref newtxt4, ref wdrepl4, ref missing, ref missing,
                                         ref missing, ref missing);

                //должность руководителя ТО
                string    quyeryTO   = "select Должность, ФИО_Руководитель from ФиоШев where id_шев in (select id_шев from Комитет)";
                DataTable tabРуковод = ТаблицаБД.GetTable(quyeryTO, ConnectionDB.ConnectionString(), "Руководитель");

                //получим должность
                string должность = tabРуковод.Rows[0]["Должность"].ToString();

                object wdrepl5 = WdReplace.wdReplaceAll;//39
                //object searchtxt = "GreetingLine";
                object searchtxt5 = "должность";
                object newtxt5    = (object)должность;
                //object frwd = true;
                object frwd5 = false;
                doc.Content.Find.Execute(ref searchtxt5, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd5, ref missing, ref missing, ref newtxt5, ref wdrepl5, ref missing, ref missing,
                                         ref missing, ref missing);

                //получим ФИО руководителя ТО
                string руководитель = tabРуковод.Rows[0]["ФИО_Руководитель"].ToString();

                object wdrepl6 = WdReplace.wdReplaceAll;//39
                //object searchtxt = "GreetingLine";
                object searchtxt6 = "руководитель";
                object newtxt6    = (object)руководитель;
                //object frwd = true;
                object frwd6 = false;
                doc.Content.Find.Execute(ref searchtxt6, ref missing, ref missing, ref missing, ref missing, ref missing, ref frwd6, ref missing, ref missing, ref newtxt6, ref wdrepl6, ref missing, ref missing,
                                         ref missing, ref missing);

                app.Visible = true;

                //закроем окно
                this.Close();

                //Выгрузить реестр
                //UnloadDate unloadDate = new UnloadDate(strДата, endДата, this.cmbЛьготнаяКатегория.Text);

                //string sTest = "Test";

                if (this.еестрЗаключенныхДоговоров == true)
                {
                    //Уберём из списка 1-ый элемент
                    list.RemoveAt(0);

                    //Узнаем оставшееся количество элементов в списке
                    int countItem = list.Count;

                    //Удалим последний элемент
                    list.RemoveAt(countItem - 1);

                    //Тест контроль
                    List <еестр> iList = list;

                    UnloadDate    unloadDate = new UnloadDate(strДата, endДата, this.ЛьготнаяКатегория, list);
                    List <Unload> unload     = unloadDate.Выгрузка();

                    //закроем окно
                    this.Close();

                    //Проверим в файле конфигурации Config.dll разрешена выгрузка реестра в файл или нет
                    using (FileStream fs = File.OpenRead("Config.dll"))
                        using (TextReader read = new StreamReader(fs))
                        {
                            string sConfig = read.ReadLine();
                            if (sConfig == "1")
                            {
                                //Разрешаем выгрузку реестра в файл
                                flagUnLoad = true;
                            }
                            else
                            {
                                //запрещаем выгрузку реестра в файл
                                flagUnLoad = false;
                            }
                        }

                    if (flagUnLoad == true)
                    {
                        //Проверим если список List<Unload> не пустой
                        if (unload.Count != 0)
                        {
                            //получим путь к файлу
                            //SaveFileDialog saveFile = new SaveFileDialg();
                            SaveFileDialog saveFile = new SaveFileDialog();
                            saveFile.DefaultExt = string.Empty;
                            saveFile.Filter     = "All files (*.*)|*.*";

                            //Получим красивое название файла
                            //string arDateStart = strДата.Replace('#', '_');
                            ////string arrDateStart = arDateStart.Replace('/', '_');

                            //string arrDateStart = arDateStart.Replace('/', '.');
                            ////string fileNameBg = arrDateStart;

                            //string arEndДата = "_" + this.dtEnd.Value.ToShortDateString();// .Replace('#', '_');
                            ////string arrEndДата = arEndДата.Replace('/', '_');

                            //string arrEndДата = arEndДата.Replace('/', '.');
                            ////string fileNameEnd = arrEndДата;

                            string arrDateStart = Convert.ToDateTime(this.dtStart).ToShortDateString().Replace('/', '_');
                            string arrEndДата   = Convert.ToDateTime(this.dtEnd).ToShortDateString().Replace('/', '_');

                            saveFile.FileName = arrDateStart + "_" + this.ЛьготнаяКатегория + "_" + arrEndДата + ".r";
                            //saveFile.ShowDialog();

                            string fileBinaryName = string.Empty;

                            if (saveFile.ShowDialog() == DialogResult.OK)
                            {
                                fileBinaryName = saveFile.FileName;
                                //saveFile.InitialDirectory = @".\";
                                //WorkingDirectory
                            }
                            else
                            {
                                return;
                            }

                            //сериализуем список
                            FileStream      fs = new FileStream(fileBinaryName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                            BinaryFormatter bf = new BinaryFormatter();

                            //сериализация
                            bf.Serialize(fs, unload);

                            //Освободим в потоке все ресурсы
                            fs.Dispose();
                            fs.Close();

                            //Установим для проги текущую директорию для корректного считывания пути к БД
                            Environment.CurrentDirectory = System.Windows.Forms.Application.StartupPath;
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Выберите данные для реестра");
            }

            //Сбросим счётчик порядковых номеров
            numOrdinal = 0;

            //Обнулим все переменные
            list.Clear();

            еестр реестр = new  еестр();

            реестр.НомерПорядковый          = "№ п.п";
            реестр.ФИО                      = "Ф.И.О.";
            реестр.НомерДатаДоговора        = "№ и дата договора на предоставление услуг";
            реестр.НомерДатаАкта            = "№ и дата акта выполненных работ";
            реестр.СерияДатаВыдачиДокумента = "Серия, № и дата документа о праве на льготу";
            реестр.СтоимсотьУслуги          = "Стоимость услуги, руб";
            list.Add(реестр);

            //Переменная хранит сумму выделенных договоров
            sum = 0.0m;
        }