//Физическое удаление строки
        private void DeleteRecord()
        {
            List <v_Payment> checkedPayments = dgvPayment.GetCheckedRecords <v_Payment>();

            if (checkedPayments.Count > 0)
            {
                if (MessageBox.Show("Ви впевнені, що бажаєте видалити обрані рядки?", "Видалення", MessageBoxButtons.YesNo)
                    == DialogResult.Yes)
                {
                    Coffee.Init("Видалення...");
                    foreach (v_Payment payment in checkedPayments)
                    {
                        string error;
                        if (!_repoPayment.DeletePayment(payment.Payment_Id, out error))
                        {
                            MessageBox.Show("Помилка видалення рядка.\nТехнічна інформація: " + error, "Помилка");
                            break;
                        }
                    }
                    Coffee.Term();
                    RefreshTablePayment(_typeId, _datBeg, _datEnd);
                }
            }
            else
            {
                if (dgvPayment.CurrentRow == null)
                {
                    return;
                }
                if (MessageBox.Show("Ви впевнені, що бажаєте видалити обраний рядок?", "Видалення", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }
                v_Payment payment = dgvPayment.CurrentRow.DataBoundItem as v_Payment;
                if (payment == null)
                {
                    MessageBox.Show("Не знайдений рядок для видалення", "Помилка");
                    return;
                }
                string error;
                if (!_repoPayment.DeletePayment(payment.Payment_Id, out error))
                {
                    MessageBox.Show("Помилка видалення рядка.\nТехнічна інформація: " + error, "Помилка");
                    return;
                }
                RefreshTablePayment(_typeId, _datBeg, _datEnd);
            }
        }