// Возвращает список реквизитов справочника // параметры: СпрВид - вид справочника Функция ПолучитьСписокРеквизитовСправочника(знач СпрВид) СпрВид = ?(ТипЗначенияСтр(СпрВид) = "Строка", СпрВид, СпрВид.Вид()); СпрВид = ?(Найти(СпрВид, ".") = 0, СпрВид, Сред(СпрВид, Найти(СпрВид, ".") + 1)); сзРеквизиты = СоздатьОбъект("СписокЗначений"); сзРеквизиты.ДобавитьЗначение("Код"); сзРеквизиты.ДобавитьЗначение("Наименование"); МД = Метаданные.Справочник(СпрВид); Для сч = 1 По МД.Реквизит() Цикл рек = МД.Реквизит(сч); сзРеквизиты.ДобавитьЗначение(рек.Идентификатор, рек.Представление()); КонецЦикла; Возврат сзРеквизиты; КонецФункции //--------------------------------------------------------- // Возвращает список реквизитов документа // параметры: ДокВид - вид документа или документ // флКакиеРеквизиты: 0 - все // 1 - шапка // 2 - табличная часть Функция ПолучитьСписокРеквизитовДокумента(знач ДокВид, знач флКакиеРеквизиты = 0) ДокВид = ?(ТипЗначенияСтр(ДокВид) = "Строка", ДокВид, ДокВид.Вид()); ДокВид = ?(Найти(ДокВид, ".") = 0, ДокВид, Сред(ДокВид, Найти(ДокВид, ".") + 1)); сзРеквизиты = СоздатьОбъект("СписокЗначений"); ДокМД = Метаданные.Документ(ДокВид); Если ТипЗначенияСтр(флКакиеРеквизиты) = "Строка" Тогда флКакиеРеквизиты = Врег(Лев(флКакиеРеквизиты, 1)); Если флКакиеРеквизиты = "В" Тогда флКакиеРеквизиты = 0; ИначеЕсли флКакиеРеквизиты = "Ш" Тогда флКакиеРеквизиты = 1; Иначе флКакиеРеквизиты = 2; КонецЕсли; КонецЕсли; Если флКакиеРеквизиты < 2 Тогда Для сч = 1 По Метаданные.ОбщийРеквизитДокумента() Цикл рек = Метаданные.ОбщийРеквизитДокумента(сч); сзРеквизиты.ДобавитьЗначение(рек.Идентификатор); КонецЦикла; Для сч = 1 По ДокМД.РеквизитШапки() Цикл рек = ДокМД.РеквизитШапки(сч); сзРеквизиты.ДобавитьЗначение(рек.Идентификатор); КонецЦикла; КонецЕсли; Если флКакиеРеквизиты = 0 Тогда сзРеквизиты.ДобавитьЗначение("");// разделитель реквизитов шапки и табличной части КонецЕсли; Если флКакиеРеквизиты <> 1 Тогда Для сч = 1 По ДокМД.РеквизитТабличнойЧасти() Цикл рек = ДокМД.РеквизитТабличнойЧасти(сч); сзРеквизиты.ДобавитьЗначение(рек.Идентификатор); КонецЦикла; КонецЕсли; Возврат сзРеквизиты; КонецФункции
Получение сведений из метаданных 1С 7.7
16.11.08
Разработка - Универсальные функции
Описание 2х функций для получение списка реквизитов справочника и документа.
Скачать файл
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование | По подписке [?] | Купить один файл | |
---|---|---|---|
-
.1226807722 2,27Kb
138
|