|
Значение перечисления по синониму перечисления? | ☑ | ||
---|---|---|---|---|
0
Blade Runner
08.12.11
✎
12:17
|
Передаю через COM из 7.7 в 8.2 элемент справочника, и тут оказывается, что перечисление у меня одинаковое.
Сложной конструкцией вытащил из СОМ-объекта синоним. Подскажите люди добрые, как теперь значение получить? Книга знаний: Работа с перечислениями книга знаний доведет меня до запроса, но не уверен что так верно раньше такой вопрос задавали, но не нашел ответа, например: v8: Как красиво получить индекс значения перечисления по его синониму? |
|||
1
Галахад
гуру
08.12.11
✎
12:19
|
(0) Непонятно. Зачем нужно значение?
|
|||
2
YF
08.12.11
✎
12:20
|
(0) Перебором
|
|||
3
Живой Ископаемый
08.12.11
✎
12:22
|
какая связь между "и тут оказывается, что перечисление у меня одинаковое. " и "Сложной конструкцией вытащил из СОМ-объекта синоним. " и почему не получить сразу значение?
|
|||
4
Blade Runner
08.12.11
✎
12:22
|
(1) чтобы при записи нового элемента справочника заполнять обязательный реквизит.
такой реквизит заполнен в 7.7, в 8.2 нет. (2) спасибо, а можно универсальную какую-то процедурку, может встречалась? у меня таких перечислений много. |
|||
5
Blade Runner
08.12.11
✎
12:23
|
(3) перечисление=одинаковое.
значение <> одинаковое. так ясно? |
|||
6
YF
08.12.11
✎
12:23
|
(4) Че там писать-то? Зная ИмяПеречисления и "синоним" ...
|
|||
7
Живой Ископаемый
08.12.11
✎
12:25
|
2(5) нет.. вообще ничего не ясно...
но читайте вот это: v8: Как получить имя значения перечисления? v8: Как сравнить два объекта COM? |
|||
8
Blade Runner
08.12.11
✎
12:34
|
(7) почитал. там повсеместно используется параметр ЗначениеПеречисленияВ8
а мне он нужен как результат. давайте с другой стороны! элемент справочника "Виды страхования" имеет реквизит "СтатистическаяГруппа" типа "Перечисление.СтатистическиеГруппы" у меня есть неважно откуда строка "Обязательное медицинское страхование", которую нужно подставить в этот реквизит. визуально я вижу, что эта строка равна синонимому значения "Перечисление.СтатистическиеГруппы.ОбязательнаяМедицина" как получить "Перечисление.СтатистическиеГруппы.ОбязательнаяМедицина" по значению "Обязательное медицинское страхование"?? |
|||
9
Живой Ископаемый
08.12.11
✎
12:36
|
Я не верю что "у меня есть неважно откуда строка "Обязательное медицинское страхование", "... в смысле не верю что это не важно... но если вам стыдно признаться как вы ее получили, тогда ответ в (2)
|
|||
10
Галахад
гуру
08.12.11
✎
12:39
|
Непонятно другое. В разных базах перечисления и их синонимы одинаковые.
|
|||
11
Blade Runner
08.12.11
✎
13:08
|
(9) ну тогда неясно, откуда в которой ветке такая реакция. не ясно и не верю это разное, согласитесь!
Я забрал из конфигурации на 1С 7.7 таким кодом через СОМ-объект ЧтоНашли = v7.Метаданные.Перечисление(ЧтоОбрабатываем.Вид()).Значение(ЧтоОбрабатываем.порядковыйНомер()).Представление(); (10) это особенность предметной области. ты можешь при проектировке назвать перечисление ОбязМедицина, можешь ОбязательнаяМедицина, а можешь и ОМ. но вот синоним должен быть корректным. он пользователю показывается, выводится на печать и пр. а в чем проблема, никогда не видели такого при сопоставлении решений на 7.7 - 8.х? |
|||
12
Живой Ископаемый
08.12.11
✎
13:21
|
2(11) то есть синонимы совпадают, а значения не совпадают... мы с (2) переливаем из пустого в такое же...
|
|||
13
Галахад
гуру
08.12.11
✎
13:24
|
(10) Понятно. Нет никогда не видел.
|
|||
14
Blade Runner
08.12.11
✎
13:55
|
(12) да. теперь мой вопрос. я в нескольких темах видел пользователя Живой Ископаемый, там пользователь не советует, не дает примеров кода, а только говорит типо "нет.. вообще ничего не ясно... ", "переливаем из пустого"и пр.
эта тема, про Перечисления через Метаданные, она какая-то для тебя особенная? (13) наверное у меня просто нелюбовь к "Конвертации данных" при переносе данных всем спасибо за наводящие вопросы, тема закрыта. постараюсь функцию передать в книгу знаний |
|||
15
hhhh
08.12.11
✎
13:59
|
(14) ну если ты смог получить синоним, значит в этом же месте ты мог получить и имя. Вопрос, нафига ты вытаскивал синоним, если мог сразу взять имя?
|
|||
16
Живой Ископаемый
08.12.11
✎
14:01
|
нет, мне просто было не ясно откуда что передается и какие граничные условия... При определенных условиях задача решалась бы.. в (0) условия озвучены не были, или я их не понял сразу.
то есть задачи мне решать интересно, я даже снимаю скринкасты и кладу их вместо ответа... Но только если задача понятна. 2(15) он получает имя из в77 по КОМ, и там имя другое чем у такого же перечисления в в8... |
|||
17
Blade Runner
11.12.11
✎
20:42
|
Вот такой результат, увы не смог найти как вставлять код на форуме :)
Функция НайтиПоСинонимомуЗначениеПеречисления(ИмяПеречисления, ИмяСинонима) РезультФункции = ""; КоличествоЗначенийПеречисления=Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления.Количество(); КолекцияЗначенийПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления; Для каждого ЗначПерем из КолекцияЗначенийПеречисления Цикл Если СокрЛП(СтрЗаменить(ИмяСинонима, " ", "")) = СокрЛП(СтрЗаменить(ЗначПерем.Синоним, " ", "")) Тогда Сообщить(ЗначПерем.Синоним); СсылкаНаПеречисление = Перечисления[ИмяПеречисления][ЗначПерем.Имя]; Возврат СсылкаНаПеречисление; КонецЕсли; КонецЦикла; Возврат РезультФункции; КонецФункции // () |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |