// Возвращает список реквизитов справочника
// параметры: СпрВид - вид справочника
Функция ПолучитьСписокРеквизитовСправочника(знач СпрВид)
СпрВид = ?(ТипЗначенияСтр(СпрВид) = "Строка", СпрВид, СпрВид.Вид());
СпрВид = ?(Найти(СпрВид, ".") = 0, СпрВид, Сред(СпрВид, Найти(СпрВид, ".") + 1));
сзРеквизиты = СоздатьОбъект("СписокЗначений");
сзРеквизиты.ДобавитьЗначение("Код");
сзРеквизиты.ДобавитьЗначение("Наименование");
МД = Метаданные.Справочник(СпрВид);
Для сч = 1 По МД.Реквизит() Цикл
рек = МД.Реквизит(сч);
сзРеквизиты.ДобавитьЗначение(рек.Идентификатор, рек.Представление());
КонецЦикла;
Возврат сзРеквизиты;
КонецФункции
//---------------------------------------------------------
// Возвращает список реквизитов документа
// параметры: ДокВид - вид документа или документ
// флКакиеРеквизиты: 0 - все
// 1 - шапка
// 2 - табличная часть
Функция ПолучитьСписокРеквизитовДокумента(знач ДокВид, знач флКакиеРеквизиты = 0)
ДокВид = ?(ТипЗначенияСтр(ДокВид) = "Строка", ДокВид, ДокВид.Вид());
ДокВид = ?(Найти(ДокВид, ".") = 0, ДокВид, Сред(ДокВид, Найти(ДокВид, ".") + 1));
сзРеквизиты = СоздатьОбъект("СписокЗначений");
ДокМД = Метаданные.Документ(ДокВид);
Если ТипЗначенияСтр(флКакиеРеквизиты) = "Строка" Тогда
флКакиеРеквизиты = Врег(Лев(флКакиеРеквизиты, 1));
Если флКакиеРеквизиты = "В" Тогда
флКакиеРеквизиты = 0;
ИначеЕсли флКакиеРеквизиты = "Ш" Тогда
флКакиеРеквизиты = 1;
Иначе
флКакиеРеквизиты = 2;
КонецЕсли;
КонецЕсли;
Если флКакиеРеквизиты < 2 Тогда
Для сч = 1 По Метаданные.ОбщийРеквизитДокумента() Цикл
рек = Метаданные.ОбщийРеквизитДокумента(сч);
сзРеквизиты.ДобавитьЗначение(рек.Идентификатор);
КонецЦикла;
Для сч = 1 По ДокМД.РеквизитШапки() Цикл
рек = ДокМД.РеквизитШапки(сч);
сзРеквизиты.ДобавитьЗначение(рек.Идентификатор);
КонецЦикла;
КонецЕсли;
Если флКакиеРеквизиты = 0 Тогда
сзРеквизиты.ДобавитьЗначение("");// разделитель реквизитов шапки и табличной части
КонецЕсли;
Если флКакиеРеквизиты <> 1 Тогда
Для сч = 1 По ДокМД.РеквизитТабличнойЧасти() Цикл
рек = ДокМД.РеквизитТабличнойЧасти(сч);
сзРеквизиты.ДобавитьЗначение(рек.Идентификатор);
КонецЦикла;
КонецЕсли;
Возврат сзРеквизиты;
КонецФункции
Вступайте в нашу телеграмм-группу Инфостарт