private void ConfigureSharedProperty(SharedProperty property, InfoBase infoBase)
        {
            ConfigObject cfo = FileReader.ReadConfigObject(property.FileName.ToString());

            if (infoBase.Properties.TryGetValue(property.FileName, out MetadataProperty propertyInfo))
            {
                property.DbName = propertyInfo.DbName;
            }
            property.Name = cfo.GetString(new int[] { 1, 1, 1, 1, 2 });
            ConfigObject aliasDescriptor = cfo.GetObject(new int[] { 1, 1, 1, 1, 3 });

            if (aliasDescriptor.Values.Count == 3)
            {
                property.Alias = cfo.GetString(new int[] { 1, 1, 1, 1, 3, 2 });
            }
            property.AutomaticUsage = (AutomaticUsage)cfo.GetInt32(new int[] { 1, 6 });

            // 1.1.1.2 - описание типов значений общего реквизита
            ConfigObject propertyTypes = cfo.GetObject(new int[] { 1, 1, 1, 2 });

            property.PropertyType = (DataTypeInfo)TypeInfoConverter.Convert(propertyTypes);

            Configurator.ConfigureDatabaseFields(property);

            // 1.2.1 - количество объектов метаданных, у которых значение использования общего реквизита не равно "Автоматически"
            int count = cfo.GetInt32(new int[] { 1, 2, 1 });

            if (count == 0)
            {
                return;
            }
            int step = 2;

            count *= step;
            int uuidIndex   = 2;
            int usageOffset = 1;

            while (uuidIndex <= count)
            {
                Guid uuid = cfo.GetUuid(new int[] { 1, 2, uuidIndex });
                SharedPropertyUsage usage = (SharedPropertyUsage)cfo.GetInt32(new int[] { 1, 2, uuidIndex + usageOffset, 1 });
                property.UsageSettings.Add(uuid, usage);
                uuidIndex += step;
            }
        }