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); }
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); }
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); }