示例#1
0
        static CatalogMetadata1C77 GetCatalogMetadata(ICOMObject1C77 com)
        {
            var metadata = new CatalogMetadata1C77();

            metadata.Идентификатор = com.GetProperty <string>("Идентификатор");
            metadata.Комментарий   = com.GetProperty <string>("Комментарий");
            metadata.Синоним       = com.GetProperty <string>("Синоним");

            metadata.КоличествоУровней     = (int)com.GetProperty <double>("КоличествоУровней");
            metadata.ДлинаКода             = (int)com.GetProperty <double>("ДлинаКода");
            metadata.ДлинаНаименования     = (int)com.GetProperty <double>("ДлинаНаименования");
            metadata.СерииКодов            = com.GetProperty <string>("СерииКодов");
            metadata.ТипКода               = com.GetProperty <string>("ТипКода");
            metadata.ОсновноеПредставление = com.GetProperty <string>("ОсновноеПредставление");
            metadata.КонтрольУникальности  = com.GetProperty <double>("КонтрольУникальности") == 1;
            metadata.АвтоНумерация         = com.GetProperty <double>("АвтоНумерация") == 2;
            var owner = com.GetProperty <ICOMObject1C77>("Владелец");

            metadata.Владелец = owner.Method <string>("Представление");
            int count = (int)com.Method <double>("Реквизит");

            var attributes = new List <CatalogAttributeMetadata1C77>();

            for (int i = 0; i < count; i++)
            {
                var metadataAttr = new CatalogAttributeMetadata1C77();
                SetCatalogAttributeMetadata(com.Method <ICOMObject1C77>("Реквизит", i + 1), metadataAttr);
                attributes.Add(metadataAttr);
            }
            metadata.Attributes = attributes;

            return(metadata);
        }
示例#2
0
        static EnumMetadata1C77 GetEnumMetadata(ICOMObject1C77 com)
        {
            var result = new EnumMetadata1C77();

            result.Идентификатор = com.GetProperty <string>("Идентификатор");
            result.Комментарий   = com.GetProperty <string>("Комментарий");
            result.Синоним       = com.GetProperty <string>("Синоним");

            int count  = (int)com.Method <double>("Значение");
            var values = new List <EnumValueMetadata1C77>();

            for (int i = 0; i < count; i++)
            {
                var enumCOM   = com.Method <ICOMObject1C77>("Значение", i + 1);
                var enumValue = new EnumValueMetadata1C77 {
                    ValueId = i + 1
                };
                enumValue.Идентификатор = enumCOM.GetProperty <string>("Идентификатор");
                enumValue.Комментарий   = enumCOM.GetProperty <string>("Комментарий");
                enumValue.Синоним       = enumCOM.Method <string>("Представление"); // F**K 1C
                values.Add(enumValue);
            }
            result.Values = values;
            return(result);
        }
示例#3
0
        static ConstantMetadata1C77 GetConstantMetadata(ICOMObject1C77 com)
        {
            var result = new ConstantMetadata1C77();

            SetAttributeMetadata(com, result);
            result.Периодический = com.GetProperty <double>("Периодический") == 1;
            return(result);
        }
示例#4
0
        static DocumentTableAttributeMetadata1C77 GetDocumentTableAttributeMetadata(ICOMObject1C77 com)
        {
            var metadata = new DocumentTableAttributeMetadata1C77();

            metadata.Идентификатор = com.GetProperty <string>("Идентификатор");
            metadata.Комментарий   = com.GetProperty <string>("Комментарий");
            metadata.Синоним       = com.GetProperty <string>("Синоним");
            SetAttributeMetadata(com, metadata);
            metadata.ИтогПоКолонке = com.GetProperty <double>("ИтогПоКолонке") == 1;
            return(metadata);
        }
示例#5
0
        static void SetAttributeMetadata <T>(ICOMObject1C77 com, T metadata) where T : AttributeMetadata1C77
        {
            metadata.Идентификатор = com.GetProperty <string>("Идентификатор");
            metadata.Комментарий   = com.GetProperty <string>("Комментарий");
            metadata.Синоним       = com.GetProperty <string>("Синоним");

            metadata.Тип             = com.GetProperty <string>("Тип");
            metadata.Вид             = com.GetProperty <string>("Вид");
            metadata.Длина           = com.GetProperty <double>("Длина");
            metadata.НеОтрицательный = com.GetProperty <double>("НеОтрицательный") == 1;
            metadata.азделятьТриады  = com.GetProperty <double>("РазделятьТриады") == 1;
            metadata.Точность        = com.GetProperty <double>("Точность");
        }
示例#6
0
        static CommonDocummentAttributeMetadata1C77 GetCommonDocummentAttributeMetadata(ICOMObject1C77 com)
        {
            var metadata = new CommonDocummentAttributeMetadata1C77();

            metadata.Идентификатор = com.GetProperty <string>("Идентификатор");
            metadata.Комментарий   = com.GetProperty <string>("Комментарий");
            metadata.Синоним       = com.GetProperty <string>("Синоним");

            SetAttributeMetadata(com, metadata);
            metadata.Сортировка = com.GetProperty <double>("Сортировка") == 1;
            return(metadata);
        }
示例#7
0
 static void SetCatalogAttributeMetadata(ICOMObject1C77 com, CatalogAttributeMetadata1C77 metadata)
 {
     SetAttributeMetadata(com, metadata);
     metadata.Сортировка    = com.GetProperty <double>("Сортировка") == 1;
     metadata.Периодический = com.GetProperty <double>("Периодический") == 1;
 }
示例#8
0
        static DocummentMetadata1C77 GetDocumentMetadata(ICOMObject1C77 com)
        {
            var result = new DocummentMetadata1C77();

            result.Идентификатор = com.GetProperty <string>("Идентификатор");
            result.Комментарий   = com.GetProperty <string>("Комментарий");
            result.Синоним       = com.GetProperty <string>("Синоним");

            result.АвтоНумерация        = com.GetProperty <double>("АвтоНумерация") == 2;
            result.АвтоНумерацияСтрок   = com.GetProperty <double>("АвтоНумерацияСтрок") == 1;
            result.АвтоРегистрация      = com.GetProperty <double>("АвтоРегистрация") == 1;
            result.АвтоудалениеДвижений = com.GetProperty <double>("АвтоудалениеДвижений") == 1;
            result.БухгалтерскийУчет    = com.GetProperty <double>("БухгалтерскийУчет") == 1;
            //var ownerDocumemt = com.GetProperty<ICOMObject1C77>("ВводимыеНаОснованииДокументы");
            //var sb = new List<string>();
            //int count = (int)ownerDocumemt.Method<double>("Реквизит");
            //for (int i = 0;i < count; i++)
            //{
            //   sb.Add(com.Method<ICOMObject1C77>("Реквизит", i + 1).Method<string>("Представление"));
            //}
            //result.ВводимыеНаОснованииДокументы = sb.ToArray();



            result.ДлинаНомера          = com.GetProperty <double>("ДлинаНомера");
            result.ДополнительныеКодыИБ = com.GetProperty <string>("ДополнительныеКодыИБ");
            //result.Журнал = com.GetProperty<string>("Журнал");
            result.КонтрольУникальности = com.GetProperty <double>("КонтрольУникальности") == 1;
            //result.Нумератор = com.GetProperty<string>("Нумератор");
            result.ОбластьРаспространения      = com.GetProperty <string>("ОбластьРаспространения");
            result.ОперативныйУчет             = com.GetProperty <double>("ОперативныйУчет") == 1;
            result.ОснованиеДляЛюбогоДокумента = com.GetProperty <double>("ОснованиеДляЛюбогоДокумента") == 1;
            result.ПериодичностьНомера         = com.GetProperty <string>("ПериодичностьНомера");
            result.азрешитьПроведение          = com.GetProperty <double>("РазрешитьПроведение") == 1;
            result.асчет = com.GetProperty <double>("Расчет") == 1;
            result.едактированиеОпераций = com.GetProperty <double>("РедактированиеОпераций") == 1;
            result.СоздаватьОперацию     = com.GetProperty <string>("СоздаватьОперацию");
            result.ТипНомера             = com.GetProperty <string>("ТипНомера");
            result.еквизитШапки          = new Dictionary <string, AttributeMetadata1C77>();
            int count = (int)com.Method <double>("РеквизитШапки");

            for (int i = 0; i < count; i++)
            {
                var rCOM     = com.Method <ICOMObject1C77>("РеквизитШапки", i + 1);
                var metadata = new AttributeMetadata1C77();
                metadata.Идентификатор = com.GetProperty <string>("Идентификатор");
                metadata.Комментарий   = com.GetProperty <string>("Комментарий");
                metadata.Синоним       = com.GetProperty <string>("Синоним");

                SetAttributeMetadata(rCOM, metadata);
                result.еквизитШапки.Add(metadata.Идентификатор.ToLower(), metadata);
            }

            result.еквизитТабличнойЧасти = new Dictionary <string, DocumentTableAttributeMetadata1C77>();
            count = (int)com.Method <double>("РеквизитТабличнойЧасти");
            for (int i = 0; i < count; i++)
            {
                var metadata = GetDocumentTableAttributeMetadata(com.Method <ICOMObject1C77>("РеквизитТабличнойЧасти", i + 1));
                result.еквизитТабличнойЧасти.Add(metadata.Идентификатор.ToLower(), metadata);
            }


            return(result);
        }