/// <summary>
        /// Удаление позиции из накладной
        /// </summary>
        public virtual void DeleteRow(ExpenditureWaybillRow row)
        {
            if (IsAccepted)
            {
                throw new Exception(String.Format("Невозможно удалить позицию из накладной со статусом «{0}».", State.GetDisplayName()));
            }

            if (!rows.Contains(row))
            {
                throw new Exception("Позиция накладной не найдена. Возможно, она была удалена.");
            }

            rows.Remove(row);
            row.DeletionDate = DateTime.Now;
        }
        /// <summary>
        /// Добавление позиции в накладную
        /// </summary>
        public virtual void AddRow(ExpenditureWaybillRow row)
        {
            if (IsAccepted)
            {
                throw new Exception(String.Format("Невозможно добавить позицию в накладную со статусом «{0}».", State.GetDisplayName()));
            }

            if (Rows.Any(x => ((ExpenditureWaybillRow)x).ReceiptWaybillRow.Id == row.ReceiptWaybillRow.Id))
            {
                throw new Exception("Позиция накладной по данной партии и товару уже добавлена.");
            }

            rows.Add(row);
            row.ExpenditureWaybill = this;
        }