/// <summary>
        /// Получение наименования из атрибута с установкой значения "Есть сталь"
        /// </summary>
        public static void GetSpecificationItemNameFromAttr(mpProductInt.Specification.SpecificationItem specificationItem, string attrValue)
        {
            var hasSteel = false;

            if (attrValue.Contains("$") & attrValue.Contains("?"))
            {
                var splitStr = attrValue.Split('$');
                if (splitStr.Length == 4)
                {
                    try
                    {
                        specificationItem.HasSteel       = true;
                        specificationItem.IsVisibleSteel = true;
                        specificationItem.BeforeName     = splitStr[0];
                        specificationItem.TopName        = splitStr[1];
                        specificationItem.AfterName      = splitStr[3];
                        specificationItem.SteelDoc       = splitStr[2].Split('?')[0];
                        specificationItem.SteelType      = splitStr[2].Split('?')[1];
                        hasSteel = true;
                    }
                    catch
                    {
                        hasSteel = false;
                    }
                }
            }

            if (!hasSteel)
            {
                specificationItem.HasSteel       = false;
                specificationItem.IsVisibleSteel = false;
                specificationItem.SteelType      = string.Empty;
                specificationItem.SteelDoc       = string.Empty;
                specificationItem.BeforeName     = attrValue;
                specificationItem.AfterName      = string.Empty;
                specificationItem.TopName        = string.Empty;
            }
        }
        /// <summary>
        /// Получение "Продукта" из атрибутов блока
        /// </summary>
        /// <param name="tr">Transaction</param>
        /// <param name="objectId">Block id</param>
        public static mpProductInt.Specification.SpecificationItem GetProductFromBlockByAttributes(Transaction tr, ObjectId objectId)
        {
            var blk = tr.GetObject(objectId, OpenMode.ForRead) as BlockReference;

            if (blk != null)
            {
                // Если это блок
                if (blk.AttributeCollection.Count > 0)
                {
                    var mpPosition    = string.Empty;
                    var mpDesignation = string.Empty;
                    var mpName        = string.Empty;
                    var mpMass        = string.Empty;
                    var mpNote        = string.Empty;
                    foreach (ObjectId id in blk.AttributeCollection)
                    {
                        var attr = tr.GetObject(id, OpenMode.ForRead) as AttributeReference;
                        if (attr != null)
                        {
                            if (attr.Tag.ToLower().Equals("mp:позиция") ||
                                attr.Tag.ToLower().Equals("mp:position"))
                            {
                                mpPosition = attr.TextString;
                            }
                            if (attr.Tag.ToLower().Equals("mp:обозначение") ||
                                attr.Tag.ToLower().Equals("mp:designation"))
                            {
                                mpDesignation = attr.TextString;
                            }
                            if (attr.Tag.ToLower().Equals("mp:наименование") ||
                                attr.Tag.ToLower().Equals("mp:name"))
                            {
                                mpName = attr.TextString;
                            }
                            if (attr.Tag.ToLower().Equals("mp:масса") ||
                                attr.Tag.ToLower().Equals("mp:mass"))
                            {
                                mpMass = attr.TextString;
                            }
                            if (attr.Tag.ToLower().Equals("mp:примечание") ||
                                attr.Tag.ToLower().Equals("mp:note"))
                            {
                                mpNote = attr.TextString;
                            }
                        }
                    }

                    double?mass = double.TryParse(mpMass, out var d) ? d : 0;

                    var specificationItem = new mpProductInt.Specification.SpecificationItem(
                        string.Empty,
                        string.Empty,
                        string.Empty,
                        string.Empty,
                        string.Empty,
                        mass);

                    GetSpecificationItemNameFromAttr(specificationItem, mpName);
                    specificationItem.Designation = mpDesignation;
                    specificationItem.Position    = mpPosition;
                    specificationItem.Note        = mpNote;

                    return(specificationItem);
                }
            }

            return(null);
        }