private void buttonOK_Click(object sender, EventArgs e)
        {
            typeID = docTypeBlock.ID;
            if (typeID == 0)
            {
                docTypeBlock.SelectDialog();
                return;
            }

            string nameStr = "";

            if (typeNameEnable)
            {
                nameStr = textBoxName.Text.Trim();
            }

            if ((!checkBoxName.Checked || nameStr.Length == 0) && typeNameEnable && !(_editorId == Environment.CurEmp.ID && typeID == originalTypeID))
            {
                var dialog = new CheckTypeDialog();
                dialog.SetStartPosition(this, 0, 60);
                if (dialog.ShowDialog() != DialogResult.Yes)
                {
                    checkBoxName.Checked = true;
                    textBoxName.Focus();
                    return;
                }

                nameStr = "";
            }

            DateTime docDate = originalDate;

            if (dateBlock.IsEmpty())
            {
                docDate = default(DateTime);
            }
            else
            {
                if (!dateBlock.Check())
                {
                    MessageBox.Show(
                        dateBlock.Error + "." + System.Environment.NewLine +
                        Environment.StringResources.GetString("DocProperties.buttonOK_Click.Message1") + ".",
                        Environment.StringResources.GetString("InputError"));
                    dateBlock.Focus();
                    return;
                }

                if (dateBlock.Value > DateTime.Now.Date && !(_editorId == Environment.CurEmp.ID && dateBlock.Value == originalDate))
                {
                    var dialog = new CheckDateDialog();
                    dialog.SetStartPosition(this, 0, 60);
                    if (dialog.ShowDialog() != DialogResult.Yes)
                    {
                        dateBlock.Focus();
                        return;
                    }
                }

                docDate = dateBlock.Value;
            }

            string numberStr    = number.Text;
            bool   protectedDoc = checkBoxProtected.Checked;
            string descrStr     = description.Text;

            int personCount = personBlock.Count;

            if (personCount == 0)
            {
                MessageBox.Show(
                    Environment.StringResources.GetString("DocProperties.buttonOK_Click.Message2") +
                    Environment.PersonWord.GetForm(Cases.R, false, false),
                    Environment.StringResources.GetString("InputError"));
                return;
            }

            string personIDs = personBlock.PersonIDs.Aggregate("", (current, t) => current + (((current.Length > 0) ? "," : "") + t));

            byte type = docTypeBlock.SearchType;

            if (sType != -1)
            {
                type = (byte)sType;
            }
            // проверяем, есть ли похожий документ уже
            DataTable dt = Environment.DocData.GetSimilarDocs(typeID, numberStr, docDate, personIDs, DocID, -1);

            if (dt.Rows.Count > 0)
            {
                Dialogs.SimilarDocsDialog dialog = new Dialogs.SimilarDocsDialog(dt, typeID, docTypeBlock.Text, nameStr,
                                                                                 numberStr, docDate, protectedDoc,
                                                                                 personIDs, DocID, descrStr, personCount)
                {
                    SearchType = type
                };
                dialog.DialogEvent += SimilarDocsDialog_DialogEvent;
                ShowSubForm(dialog);
                return;
            }

            CheckAndSave(docDate, nameStr, numberStr, protectedDoc, descrStr, personCount);
        }