Как получить метаданные документа? МетаданныеДокумента = ДокументСсылка.Метаданные(); Очистка всех ТЧ документа ТабличныеЧасти = ОбъектДокументСПустойТЧ.Метаданные().ТабличныеЧасти; Для Каждого ТабличнаяЧасть из ТабличныеЧасти Цикл ОбъектДокументСПустойТЧ[ТабличнаяЧасть.Имя].Очистить(); КонецЦикла; Формирование структуры шапки документа СтруктураШапкиДокумента = Ноовый Структура; Для каждого Реквизит из МетаданныеДокумента.Реквизиты Цикл СтруктураШапкиДокумента.Вставить(Реквизит.Имя, ДокументОбъект[Реквизит.Имя]); КонецЦикла; Формирование структуры табличной части документа СтруктураТабличнойЧастиДокумента = Новый Структура; Для Каждого Реквизит из Документ.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты Цикл
СтруктураТабличнойЧастиДокумента.Вставить(Реквизит.Имя, Реквизит.Имя);
КонецЦикла;
Список видов документа СписокВидовДокументов = Новый СписокЗначений;
Для Каждого ДокументКонфигурации из Метаданные.Документы Цикл СписокВидовДокументов.Добавить(ДокументКонфигурации.Имя); КонецЦикла;
ЭлементыФормы.ПодборДанных.Колонки.ВидДокумента.ЭлементУправления.СписокВыбора = СписокВидовДокументов;
Имеется ли в шапке документа заданный реквизит
Функция ЕстьРеквизитДокумента(ИмяРеквизита, МетаданныеДокумента) Экспорт Возврат НЕ (МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецФункции // ЕстьРеквизитДокумента()
МетаданныеДокумента = ДокументСсылка.Метаданные(); Если ОбщегоНазначения.ЕстьРеквизитДокумента("ФизЛицо", МетаданныеДокумента) Тогда ... КонецЕсли Есть ли реквизит табличной части документа? Функция ЕстьРеквизитТабЧастиДокумента(ИмяРеквизита, МетаданныеДокумента, ИмяТабЧасти) Экспорт ТабЧасть = МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти); Если ТабЧасть = Неопределено Тогда // Нет такой таб. части в документе Возврат Ложь; Иначе Возврат НЕ (ТабЧасть.Реквизиты.Найти(ИмяРеквизита) = Неопределено); КонецЕсли; КонецФункции // ЕстьРеквизитТабЧастиДокумента() Есть ли табличная часть документа? Функция ЕстьТабЧастьДокумента(ИмяТабЧасти, МетаданныеДокумента) Экспорт
Если МетаданныеДокумента.ТабличныеЧасти.Найти(ИмяТабЧасти) = Неопределено Тогда
Возврат Ложь; Иначе
Возврат Истина;
КонецЕсли; КонецФункции // ЕстьТабЧастьДокумента()
|