Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Получить ссылки на значения перечислений

Получить ссылки на значения перечислений
Я
   bolero
 
18.10.19 - 13:17
Есть функция ПолучитьСтруктуруХраненияБазыДанных() - дает соответствия имен и номеров таблиц.

Но есть перечисления, значения которых закатаны в конфигурацию примерно вот так (УТ, Enums/ХозяйственныеОперации):
<EnumValue uuid="f786c0b6-6aa3-461f-b4ea-6960515f917b">
        <Properties>
                <Name>АвансовыйОтчет</Name>
                <Synonym>
                        <v8:item>
                                <v8:lang>ru</v8:lang>
                                <v8:content>Авансовый отчет</v8:content>
                        </v8:item>
                </Synonym>
                <Comment/>
        </Properties>
</EnumValue>
<EnumValue uuid="e17a2118-5315-42ad-bfb7-1c01edf4b364">
        <Properties>
                <Name>АмортизацияВнеоборотныхАктивов</Name>
....


Есть ли какая-то функция встроенного языка, которая позволит вытащить значения перечислений и их UUID?

Разобрать XML-то можно, но тогда нет гарантии, что мы разобрали XML именно от той конфигурации, которая в данный момент активна.
 
 
   тарам пам пам
 
1 - 18.10.19 - 14:30
Сообщить(ЗначениеВСтрокуВнутр(Перечисления.ХозяйственныеОперации.АвансовыйОтчет))

выдает вот такую строку:
{"#",ae0f3889-6e23-4a7a-bf5d-cd197ab78fb7,1523:b4ea6960515f917b461f6aa3f786c0b6}


Вторая часть - это похоже и есть идентификатор объекта метаданных (формат только немного другоой). 1с правда использовать ЗначениеВСтрокуВнутр не рекомендует и формат полученной строки не документирован нигде.
   tty12
 
2 - 18.10.19 - 14:34
(0) Попробуй XMLСтрока(Ссылка)
   RomanYS
 
3 - 18.10.19 - 14:37
(0) А зачем вам ID перечислений? Вы напрямую с БД хотите работать?
   RomanYS
 
4 - 18.10.19 - 14:38
(2) Нет
XMLСтрока(Перечисления.СтавкиНДС.БезНДС) = "БезНДС"
   bolero
 
5 - 18.10.19 - 14:57
(3) именно. Я обычно делаю типа CASE WHEN THEN WHEN THEN ELSE 'хз' END, и оно в общем-то было терпимо, пока я не напоролся на ХозяйственныеОперации, в котором 400+ значений

(1) супер, это 100% то, что нужно, осталось перечисление как-то перечислить
   RomanYS
 
6 - 18.10.19 - 15:10
(5) А просто заджойнить с таблицей перечисления и взять "<Name>АвансовыйОтчет" нельзя?
   Жан Пердежон
 
7 - 18.10.19 - 15:12
(6) в таблице только гуид
   RomanYS
 
8 - 18.10.19 - 15:20
(7) Да уж, засада. "Порядок" правда есть, он вроде доступен с обоих сторон. Но наглядности никакой и рисков накосячить сильно прибавляется.
   FIXXXL
 
9 - 18.10.19 - 15:45
(4) и обратно
Перечисления.СтавкиНДС["БезНДС"]
   bolero
 
10 - 18.10.19 - 15:45
буду парсить xml конфигурации и вывод в таблицу

это редко меняющиеся данные, хотя бы можно надеяться, что могут добавляться новые значения, а у старых guid изменяться не будет
   FIXXXL
 
11 - 18.10.19 - 15:46
(9) т.е. Имя для каждого набора элементов перечисления и есть типа "Ссылка"
   RomanYS
 
12 - 18.10.19 - 15:56
(11) Со стороны языка 1С это таки выглядит, а в БД всё-таки хранятся УИДы
   FIXXXL
 
13 - 18.10.19 - 16:18
(12) конечно
просто всегда удавалось обходиться именем элемента во всяких интеграциях...
   RomanYS
 
14 - 18.10.19 - 16:36
(13) "всегда удавалось" потому что всегда средствами 1С это делаешь, а ТС похоже решил пойти другим путем - напрямую в БД.
   FIXXXL
 
15 - 18.10.19 - 16:39
(14) не буду гадать, но по-любому - удачи! :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.