Проверка существования реквизита у объекта метаданных
Написал Валецкий Станислав   
При написании универсальных процедур или функций (например проверка заполнения реквизитов перед проведением, или непосредственно проведение документов) возникает проблема, связанная с существованием или несуществованием некоторых реквизитов у объекта (например у документа продажи есть реквизит склад, а у документа перемещение - склад отправитель и склад получатель). Определить существование реквизита можно через метаданные, для этого понадобится вид объекта и имя реквизита.

Для справочников код будет следующий:

 
Реквизит = Метаданные.Справочник("ТМЦ").Реквизит("Артикул").Выбран(); 
Если Реквизит = 1 Тогда
   Сообщить("У справочника есть такой реквизит");
Иначе
   Сообщить("У справочника нет такого реквизита");
Конецесли;

Для документов код будет следующий:

 
Реквизит = Метаданные.Документ("РасходнаяНакладная").РеквизитШапки("Склад").Выбран(); 
Если Реквизит = 1 Тогда
   Сообщить("У документа есть такой реквизит");
Иначе
   Сообщить("У документа нет такого реквизита");
Конецесли;

Для табличной части документов код будет следующий:

 
Реквизит = Метаданные.Документ("РасходнаяНакладная").РеквизитТабличнойЧасти("Склад").Выбран(); 
Если Реквизит = 1 Тогда
   Сообщить("У табличной части документа есть такой реквизит");
Иначе
   Сообщить("У табличной части документа нет такого реквизита");
Конецесли;