Имя: Пароль:
1C
 
ГУИД значения перечисления
0 rowvg
 
15.06.23
14:18
Мне нужно определить ГУИД значения перечисления. Я сделал так

ВнутреннееЗначение = ЗначениеВСтрокуВнутр(Источник.ВидДокумента);
ГУИД_ВидДокумента = Сред(ВнутреннееЗначение, СтрДлина(ВнутреннееЗначение) - 32, 32);

Выглядит не очень красиво. Может есть какие - то другие способы?
1 Галахад
 
15.06.23
14:21
XMLСтрока не подойдет?
2 TormozIT
 
15.06.23
14:46
(0) Нет.
(1) Нет.
3 Garykom
 
15.06.23
14:52
(0) Нахрена?
Что с ним делать потом?
4 НЕА123
 
15.06.23
15:54
5 azernot
 
15.06.23
15:59
А я предлагаю получать так:

ГУИД_ВидДокумента = Новый УникальныйИдентификатор;

А что? Есть возражения? Всё равно же ничего с ним не сделаешь...

А лучше использовать ИмяПеречисления +"."+ИмяЗначенияПеречисления

ИмяПеречисления = Источник.ВидДокумента.Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(Источник.ВидДокумента);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
6 RomanYS
 
15.06.23
16:02
(5) если конфу в файлы(xml) разобрать, то там будут гуиды метаданных. Но вопросы (3) всё равно остаются
7 Lama12
 
15.06.23
16:50
(0) как пример.
ВЫБРАТЬ
    УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ABCКлассификация.Ссылка) КАК Поле1
ИЗ
    Перечисление.ABCКлассификация КАК ABCКлассификация
8 rowvg
 
16.06.23
14:27
(3) Для обмена между разными информационными базами, ГУИД я использую как первичный ключ для поиска значения в другой базе.
9 TormozIT
 
16.06.23
16:38
(7) Ого! Не знал что так можно.
10 Garykom
 
16.06.23
16:41
(9) Причем разрабы платформы сделали полную хрень
Нахрена было делать функцию УНИКАЛЬНЫЙИДЕНТИФИКАТОР()
Когда надо было просто добавить получение УИДа как обычного реквизита объекта?

ВЫБРАТЬ
    ABCКлассификация.УИД КАК Поле1
ИЗ
    Перечисление.ABCКлассификация КАК ABCКлассификация
11 Garykom
 
16.06.23
16:42
(10)+ И получился бы удобный стандарт
Ссылка, Код, Наименование, УИД
12 Garykom
 
16.06.23
16:44
(11)+ А кто в конфу добавил свой реквизит "УИД" - ССЗБ
13 lubitelxml
 
16.06.23
16:48
(10) +100500 - реально надоело в постобработку запроса делать ради УИДа, а то, что в (7) - это конечно круто, но появилось только в 22 платформе, так что пока страдаем
14 TormozIT
 
16.06.23
17:05
(10) Затраты на добавление свойства таблицы намного больше чем на добавление функции в язык. Свойство сразу в сотне мест вылезать начнет и валить кучу неожиданных ошибок.
15 RomanYS
 
16.06.23
17:09
(14) да и логика понятна: физически в таблицах есть УИД, а в объектной модели решили использовать его суррогат "Ссылка". Показывать в объектной модели ещё УИД только для чтения - только путать, поэтому его сделали суррогатом от ссылки.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший