Программирование в 1С: Метаданные...
2366
1
Vovidez
experienced
Вопрос такой: Как в конкретном документе получить список полей этого документа через объект "Метаданные"?
Например, если я хочу получить список документов, определенных в данной конфигурации, то просто пишу цикл:
Для Счетчик = 1 По Метаданные.Документ() Цикл
Идент = Метаданные.Документ(Счетчик).Идентификатор;
Предст = Метаданные.Документ(Счетчик).Представление();
СписокЗнач.ДобавитьЗначение(Идент, Предст);
КонецЦикла;
И в СпискеЗначений имею весь список документов, так вот хотелось бы сделать то же самое, но только уже в конкретном документе вывести весь список полей (Номер, Дата, Цена, и т.д.)... Можно, конечно, и явно обращаться, но подразумевается, что не известно какая конфигурация и какой документ выберет пользователь...
Помогите советом или подскажите на что нужно обратить внимание....
Например, если я хочу получить список документов, определенных в данной конфигурации, то просто пишу цикл:
Для Счетчик = 1 По Метаданные.Документ() Цикл
Идент = Метаданные.Документ(Счетчик).Идентификатор;
Предст = Метаданные.Документ(Счетчик).Представление();
СписокЗнач.ДобавитьЗначение(Идент, Предст);
КонецЦикла;
И в СпискеЗначений имею весь список документов, так вот хотелось бы сделать то же самое, но только уже в конкретном документе вывести весь список полей (Номер, Дата, Цена, и т.д.)... Можно, конечно, и явно обращаться, но подразумевается, что не известно какая конфигурация и какой документ выберет пользователь...
Помогите советом или подскажите на что нужно обратить внимание....
Dimano o Mano
activist
Я напримел сделал это так...
МетаДокумент=Метаданные.Документ(Док.Вид());
........
Для Номер=1 по Метаданные.ОбщийРеквизитДокумента() Цикл
МетаРеквизит=Метаданные.ОбщийРеквизитДокумента(Номер);
Значение=Док.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
.....
КонецЦикла;
Для Номер=1 по МетаДокумент.РеквизитШапки() Цикл
МетаРеквизит=МетаДокумент.РеквизитШапки(Номер);
Значение=Док.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
.....
КонецЦикла;
Пока Док.ПолучитьСтроку()=1 Цикл
Для Номер=1 по МетаДокумент.РеквизитТабличнойЧасти() Цикл
МетаРеквизит=МетаДокумент.РеквизитТабличнойЧасти(Номер);
Значение=Док.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
КонецЦикла;
КонецЦикла;
МетаДокумент=Метаданные.Документ(Док.Вид());
........
Для Номер=1 по Метаданные.ОбщийРеквизитДокумента() Цикл
МетаРеквизит=Метаданные.ОбщийРеквизитДокумента(Номер);
Значение=Док.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
.....
КонецЦикла;
Для Номер=1 по МетаДокумент.РеквизитШапки() Цикл
МетаРеквизит=МетаДокумент.РеквизитШапки(Номер);
Значение=Док.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
.....
КонецЦикла;
Пока Док.ПолучитьСтроку()=1 Цикл
Для Номер=1 по МетаДокумент.РеквизитТабличнойЧасти() Цикл
МетаРеквизит=МетаДокумент.РеквизитТабличнойЧасти(Номер);
Значение=Док.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
КонецЦикла;
КонецЦикла;