ОБСУЖДЕНИЕ

Выбрать метаданные

3 ответов 5,2 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Привет всем!
Подскажите, пожалуйста, как можно извлечь данные из 1с 7.7 и 8.1:

Справочник1
____Реквизит1____Свойства
____Реквизит2____Свойства
Справочник2
____Реквизит1____Свойства
____Реквизит2____Свойства
.....
Документ1
____Реквизит1____Свойства
____Реквизит2____Свойства
Документ2
____Реквизит1____Свойства
____Реквизит2____Свойства
.....
 
// для 7.7
//RefList -список, содержащий все справочники конфигурации
//AttrList -список, содержащий все реквизиты выбранного справочника
for i = 1 to MetaData.Reference() do
RefKind = MetaData.Reference(i).Identifier;
RefList.AddValue(MetaData.Reference(i).Present());
enddo;
//N - выбранный справочник
for i = 1 to MetaData.Reference(N).Attribute() do
Ref = MetaData.Reference(N).Attribute(i);
AttrList.AddValue(MetaData.Reference(N).Attribute(i).Identifier);
enddo;

//DocList -список, содержащий все документы конфигурации
//DocAttrList -список, содержащий все реквизиты выбранного документа
//DocIndex- выбранный документ
for i = 1 to MetaData.Document() do
Doc = MetaData.Document(i);
DocList.AddValue(Doc.Identifier);
enddo;

//Заполнение списка общих реквизитов документа
for N = 1 to MetaData.CommonDocAttribute() do
DocAttrList.AddValue(N+1,MetaData.CommonDocAttribute(N).Identifier);
enddo;
CommonAttrN = MetaData.CommonDocAttribute();
//Заполнение списка реквизитов шапки документа
for i = 1 to MetaData.Document(DocIndex).HeadAttribute() do
DocAttrList.AddValue(i+CommonAttrN,MetaData.Document(DocIndex).HeadAttribute(i).
Identifier);
enddo;
AttrN = MetaData.HeadAttribute();
//Заполнение списка реквизитов таблицы документа
for i = 1 to MetaData.Document(DocIndex).TableAttribute() do
DocAttrList.AddValue(i+CommonAttrN+AttrN,MetaData.Document(DocIndex).TableAttrib
ute(i).Identifier);
enddo;
//Ну и свойства реквизитов можно вытащить по аналогии
 
большое спасибо!

// для 7.7
//RefList -список, содержащий все справочники конфигурации
//AttrList -список, содержащий все реквизиты выбранного справочника
for i = 1 to MetaData.Reference() do
RefKind = MetaData.Reference(i).Identifier;
RefList.AddValue(MetaData.Reference(i).Present());
enddo;
//N - выбранный справочник
for i = 1 to MetaData.Reference(N).Attribute() do
Ref = MetaData.Reference(N).Attribute(i);
AttrList.AddValue(MetaData.Reference(N).Attribute(i).Identifier);
enddo;

//DocList -список, содержащий все документы конфигурации
//DocAttrList -список, содержащий все реквизиты выбранного документа
//DocIndex- выбранный документ
for i = 1 to MetaData.Document() do
Doc = MetaData.Document(i);
DocList.AddValue(Doc.Identifier);
enddo;

//Заполнение списка общих реквизитов документа
for N = 1 to MetaData.CommonDocAttribute() do
DocAttrList.AddValue(N+1,MetaData.CommonDocAttribute(N).Identifier);
enddo;
CommonAttrN = MetaData.CommonDocAttribute();
//Заполнение списка реквизитов шапки документа
for i = 1 to MetaData.Document(DocIndex).HeadAttribute() do
DocAttrList.AddValue(i+CommonAttrN,MetaData.Document(DocIndex).HeadAttribute(i).
Identifier);
enddo;
AttrN = MetaData.HeadAttribute();
//Заполнение списка реквизитов таблицы документа
for i = 1 to MetaData.Document(DocIndex).TableAttribute() do
DocAttrList.AddValue(i+CommonAttrN+AttrN,MetaData.Document(DocIndex).TableAttrib
ute(i).Identifier);
enddo;
//Ну и свойства реквизитов можно вытащить по аналогии
 
Есть СП по метаданным, в т.ч. выкладывался на этом форуме.