//TODO: Обновить структуру данными по таблице
        private bool updateParametersFromForm()
        {
            GostTool reportTool = AdditionalToolParameters.gostReportToolsArray[selectedToolIndex];

            for (int i = 0; i < dgvReportToolParameters.Rows.Count - 1; i++)
            {
                // пользователь добавил новый параметр
                if (reportTool.parameters.Count() - 1 < i)
                {
                    ToolParameter reportUserToolParam = new ToolParameter();
                    reportUserToolParam.Capture = dgvReportToolParameters.Rows[i].Cells[0].Value.ToString();
                    reportUserToolParam.Value   = dgvReportToolParameters.Rows[i].Cells[1].Value.ToString();
                    reportTool.parameters.AddParameter(reportUserToolParam);

                    continue;
                }

                object objCapture = dgvReportToolParameters.Rows[i].Cells[0].Value;
                object objValue   = dgvReportToolParameters.Rows[i].Cells[1].Value;

                if (objValue == null || objCapture == null)
                {
                    MessageBox.Show("Некоторые параметры инструмента не заданы.\nВведите новое значение.", "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(false);
                }

                ToolParameter oldToolParam = reportTool.parameters.getParameter(i);
                oldToolParam.Capture = objCapture.ToString();
                oldToolParam.Value   = objValue.ToString();
            }
            return(true);
        }
        // Добавить инструмент в список для отчета
        private bool addReportTool(Tool newReportTool, bool loadUserParams)
        {
            bool result = true;

            if (newReportTool == null)
            {
                return(false);
            }

            Connect.logger.Info(String.Format("Инициализация главного окна. Добавление инструмента : {0}", newReportTool.ToolID));

            GostTool gostReportTool = new GostTool(AdditionalToolParameters.getGostTool((int)newReportTool.ToolStyle));

            //gostReportTool = AdditionalToolParameters.getGostTool( (int) newReportTool.ToolStyle);
            if (gostReportTool == null)
            {
                return(false);
            }

            // Сохраняем ID инструмента
            gostReportTool.toolDocumentID = newReportTool.ToolID;
            // Сохраняем Capture
            Technology toolTech = (Technology)newReportTool;

            gostReportTool.toolType = toolTech.Name;

            // Записать значения параметров из инструмента
            Connect.logger.Info("Загрузка значений параметров");
            if (!gostReportTool.addParametersValue(newReportTool, loadUserParams))
            {
                result = false;
            }

            // Добавить инструмент для отчета в массив
            Connect.logger.Info("Добавление инструмента в список для отчета");
            AdditionalToolParameters.gostReportToolsArray.Add(gostReportTool);

            return(result);
        }
        // Добавить параметры в форму
        private void fillFormReportToolParameters(int index)
        {
            if (AdditionalToolParameters.gostReportToolsArray.Count == 0)
            {
                return;
            }

            GostTool reportTool = AdditionalToolParameters.gostReportToolsArray[index];

            Connect.logger.Info(String.Format("Заполнение параметров инструмента: {0}", reportTool.toolDocumentID));

            for (int j = 0; j < reportTool.parameters.Count(); j++)
            {
                //DataGridViewRow reportParameter = new DataGridViewRow();
                string strCapture = reportTool.parameters.getParameter(j).Capture;
                string strValue   = reportTool.parameters.getParameter(j).Value;

                if (dgvReportToolParameters != null)
                {
                    dgvReportToolParameters.Rows.Add(strCapture, strValue);
                }
            }
        }