Универсальные процедуры и функции (метаданные) » История » Версия 2
Версия 1 (Всеволод Дорофеев, 04.06.2017 06:43) → Версия 2/3 (Всеволод Дорофеев, 04.06.2017 06:45)
h1. Универсальные процедуры и функции (метаданные)
h3. Возвращает полное имя объекта метаданных по переданному значению ссылки
<pre>
// Возвращает полное имя объекта метаданных по переданному значению ссылки
// Например,
// "Справочник.Номенклатура";
// "Документ.ПриходнаяНакладная"
//
// Параметры:
// Ссылка - ЛюбаяСсылка - значение ссылки, для которого необходимо получить имя таблицы ИБ
//
// Возвращаемое значение:
// Строка - полное имя объекта метаданных для указанного значения ссылки
//
Функция ИмяТаблицыПоСсылке(Ссылка) Экспорт
Возврат Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).ПолноеИмя();
КонецФункции
</pre>
h3. Получение реквизитов объектов (справочников и документов)
Получения реквизитов документа:
<pre>
Для Каждого Реквизит Из Документ.Метаданные().Реквизиты Цикл
НоваяСтрока = РеквизитыДокумента.Добавить();
НоваяСтрока.Реквизит = Реквизит.Имя;
НоваяСтрока.Значение = Документ[Реквизит.Имя];
КонецЦикла;
</pre>
РеквизитыДокумента - таблица значений с двумя полями "Реквизит" и "Значение".
Получение табличных частей документа и их реквизитов:
<pre>
Для Каждого ТабличнаяЧасть Из Документ.Метаданные().ТабличныеЧасти Цикл
Сообщить(ТабличнаяЧасть);
Для Каждого РеквизитТЧ Из ТабличнаяЧасть.Реквизиты Цикл
Сообщить(" - " + РеквизитТЧ);
КонецЦикла
КонецЦикла;
</pre>
h3. Возвращает полное имя объекта метаданных по переданному значению ссылки
<pre>
// Возвращает полное имя объекта метаданных по переданному значению ссылки
// Например,
// "Справочник.Номенклатура";
// "Документ.ПриходнаяНакладная"
//
// Параметры:
// Ссылка - ЛюбаяСсылка - значение ссылки, для которого необходимо получить имя таблицы ИБ
//
// Возвращаемое значение:
// Строка - полное имя объекта метаданных для указанного значения ссылки
//
Функция ИмяТаблицыПоСсылке(Ссылка) Экспорт
Возврат Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).ПолноеИмя();
КонецФункции
</pre>
h3. Получение реквизитов объектов (справочников и документов)
Получения реквизитов документа:
<pre>
Для Каждого Реквизит Из Документ.Метаданные().Реквизиты Цикл
НоваяСтрока = РеквизитыДокумента.Добавить();
НоваяСтрока.Реквизит = Реквизит.Имя;
НоваяСтрока.Значение = Документ[Реквизит.Имя];
КонецЦикла;
</pre>
РеквизитыДокумента - таблица значений с двумя полями "Реквизит" и "Значение".
Получение табличных частей документа и их реквизитов:
<pre>
Для Каждого ТабличнаяЧасть Из Документ.Метаданные().ТабличныеЧасти Цикл
Сообщить(ТабличнаяЧасть);
Для Каждого РеквизитТЧ Из ТабличнаяЧасть.Реквизиты Цикл
Сообщить(" - " + РеквизитТЧ);
КонецЦикла
КонецЦикла;
</pre>