Имя: Пароль:
1C
 
О перечислении
0 Atashka
 
07.09.07
21:07
Как у перечисления взять значение. То есть, пусть в Элемент содержится значение перечисления, а как взять имя значения?
1 marvak
 
07.09.07
21:28
эх, у меня всегда слабость перед женским полом :)
2 Wladimir_spb
 
07.09.07
21:30
"Документацию сперли?" (С) Salvador Limones
3 marvak
 
07.09.07
21:32
ДОКУМЕНТАЦИЯ РУЛИТ -АДНАЗНАЧА!
4 Wladimir_spb
 
07.09.07
21:36
Потом ведь будет спрашивать, как по имени восстановить ссылку на значение перечисления, что бы в документ подставить... :)
5 Atashka
 
07.09.07
21:38
(4) тогда можешь сразу отвечать на два вопроса. Даже спросить уже нельзя, сразу нападают......
6 Wladimir_spb
 
07.09.07
21:40
Могу, но не хочу :)
7 marvak
 
07.09.07
21:40
(5) пративные.. ;)
8 Atashka
 
07.09.07
21:44
(6) неужели так сложно?
(7) и не говори
9 marvak
 
07.09.07
21:46
(8) ну как, нужна фотка! ;)
10 Wladimir_spb
 
07.09.07
21:47
(8) Подобные вопросы решаются не на форуме, а в конфигураторе с помощью СП.
11 Atashka
 
07.09.07
21:47
(9) нет так нет. как малые дети...
12 Atashka
 
07.09.07
21:48
(10)что такое СП?
13 Wladimir_spb
 
07.09.07
21:49
Синтаксис-Помошник, он же "дядька в шапке".
14 marvak
 
07.09.07
21:53
ПеречислениеМенеджер.<Имя перечисления> (EnumManager.<Имя перечисления>)
15 Atashka
 
07.09.07
22:14
А как зная синоним значения перечисления, получить имя значения перечисления?
16 marvak
 
07.09.07
22:16
(15) атлатчег выручит, посмотри там его свойства
17 Atashka
 
07.09.07
22:22
ну не получается у меня. можно мне четкий код?или я сильно много прошу и об этом не спрашивают на форуме и все такое......................
18 Wladimir_spb
 
07.09.07
22:25
На форуме все подряд спрашивают. Иногда и по резче отвечают...
v8: как групп открыть?
19 Atashka
 
07.09.07
22:32
(18) ну мне значит пока везет. Меня еще открыто не посылали
20 marvak
 
07.09.07
22:32
(18) Володь, извини, я пьян :(
подскажи девушке - как :)
21 Atashka
 
07.09.07
22:34
(20)  +++++++++++++++
22 Wladimir_spb
 
07.09.07
22:39
(20) Сегодня ж тяпница! )))
(15) Зачем тебе имя, получи индекс и сохрани куда нужно. Потом восстанавливать проще будет.
23 marvak
 
07.09.07
22:42
(21) Прекрасная! заходи завтра, и мы тебе фсе объясним! ;)
седня - тяпница! (см 22)
24 Atashka
 
07.09.07
22:42
(22) как получить индекс? только не издевайся. если объяснишь и заработает, то это на сегодня мой последний вопрос
25 Wladimir_spb
 
07.09.07
22:45
(24) Условия ставишь? ))) Может сама разберешься?
26 Wladimir_spb
 
07.09.07
22:45
Найди в СП: "ПеречислениеМенеджер" там все есть. Если не научишься использовать СП, то и форум мало поможет...
27 ShoGUN
 
07.09.07
22:47
(24) СП рулит, честно. Ты не представляешь, как людей здесь напрягает быть заменой документации...
28 Atashka
 
07.09.07
22:48
(26)(21) спасибо, что не сорвались. хорошего вечера
29 СП
 
07.09.07
22:49
ПеречислениеМенеджер.<Имя перечисления> (EnumManager.<Имя перечисления>)
Индекс (IndexOf)
Синтаксис:
Индекс(<Значение перечисления>)
Параметры:
<Значение перечисления> (обязательный)
Тип: ПеречислениеСсылка. Ссылка на значение перечисления, положение которого определяет данный метод. Если переданный параметр не является ссылкой на значение перечисления или значение принадлежит другому перечислению, генерируется исключение.
Возвращаемое значение:
Тип: Число. Индекс указанного элемента в коллекции. Если не найдено, то возвращается -1.
Описание:
Получает индекс перечисления в списке перечислений.
30 Сюзи
 
07.09.07
22:50
По-моему у Радченко есть такой пример, посмотри в "Практическое пособие разработчика"
31 Wladimir_spb
 
07.09.07
22:53
(30) Привет!
32 marvak
 
07.09.07
22:55
(30) блин, люблю женщин :)
счас постараюсь все решить
33 Atashka
 
07.09.07
22:55
говорит, что Переменная не определена (Индекс)
34 Сюзи
 
07.09.07
22:56
(31)Привет:)
35 Wladimir_spb
 
07.09.07
22:57
(32) Ей ничего решать не надо. Она Радченко читала(!). И уверен, что умеет пользоваться синтаксис-помошником)
36 Wladimir_spb
 
07.09.07
22:58
(33) Он прав! Потому что это не переменная, а метод.
37 Сюзи
 
07.09.07
22:58
(35)Еще раз спасибо за поддержку!
38 ShoGUN
 
07.09.07
22:59
(33) Жжош! Это метод! :) В коде выглядит как:
ПеречислениеМенеджер.ИмяПеречисления.Индекс(СсылкаНаЗначениеПеречисления);
39 Wladimir_spb
 
07.09.07
23:00
(38) Нельзя так сразу. Разрушаешь интригу!
40 ShoGUN
 
07.09.07
23:03
(39) Не вели казнить, великий гусударь!
41 Wladimir_spb
 
07.09.07
23:06
(40) Ничего, думаю, сейчас последует возмущенное заявление о том, что переменная "ПеречислениеМенеджер" не обнаружена :)
42 Atashka
 
07.09.07
23:08
(41)не последует. Я просто не поняла!!!!!!!!!!!!!!
43 Wladimir_spb
 
07.09.07
23:10
ПеречисленияМенеджер (EnumsManager)
Элементы коллекции:
ПеречислениеМенеджер
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются менеджеры перечислений.
Возможно обращение к менеджеру перечисления посредством оператора [...]. В качестве аргумента передается имя перечисления, как оно задано в конфигурации.

Свойства:
<Имя перечисления>

Методы:
ТипВсеСсылки (AllRefsType)

Описание:
Предназначен для управления перечислениями и предоставляет доступ к значениям типа ПеречислениеМенеджер. Доступ к объекту осуществляется через свойство глобального контекста Перечисления.
Возможен обмен с сервером.
Пример:
ВидКонтрагента = Перечисления.ВидыКонтрагентов.Организация;
См. также:
Глобальный контекст, свойство Перечисления
44 Сюзи
 
07.09.07
23:10
Попробуй так
ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
45 ShoGUN
 
07.09.07
23:12
(42)
hochoolaski Брюнетка, у тебя ник такой чтобы на твои фразы не задавали вопрос "Ты блондинка?"
Брюнетка НЕТ БРЮНЕТКА
hochoolaski ясно
(с) Bash.org.ru
46 Wladimir_spb
 
07.09.07
23:13
(44) Это даже слишком много)
47 Wladimir_spb
 
07.09.07
23:14
+(46)"Во многом знании - много печали" (с) (приписывают Лао Цзы)
48 ShoGUN
 
07.09.07
23:19
(47) В Священном Писании, в книге Екклесиаста они звучат немного иначе («во многой мудрости много печали; и кто умножает познания, умножает скорбь» [Еккл.1, 18])
49 Atashka
 
07.09.07
23:22
(44) Ошибка при вызове метода контекста (Индекс): Несоответствие типов (параметр номер "1")
50 Wladimir_spb
 
07.09.07
23:22
(48) Видимо, он был тайным даосом :)
51 Wladimir_spb
 
07.09.07
23:23
(49) Опять ты! Дай нормально пообщаться!)))
А что ты передаешь в качестве параметра?
52 Atashka
 
07.09.07
23:26
(51)
Использую код,который Сюзи дала.
ИмяПеречисления = ЗначениеПеречисления.Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ЗначениеПеречисления);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
53 Сюзи
 
07.09.07
23:28
У тебя что в ЗначениеПеречисления?
54 Atashka
 
07.09.07
23:30
(53) Синоним значения перечисления
55 Сюзи
 
07.09.07
23:32
(54)Напиши твой код полностью
56 Wladimir_spb
 
07.09.07
23:34
(54) Передавай ЗНАЧЕНИЕ реквизита твоего документа
57 Atashka
 
07.09.07
23:39
Текст = Новый ТекстовыйДокумент;
Для Каждого Реквизит из МетаданныеДокумента.Реквизиты Цикл
ИмяРеквизита = Реквизит.Имя;
Если Найти(ТипЗнч(ДокОбъект[ИмяРеквизита]),"Перечисление") Тогда
ИмяяПеречисления = ДокОбъект[ИмяРеквизита].Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ТабСтрока[ИмяРеквизита]);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
Текст.ДобавитьСтроку(ИмяЗначенияПеречисления);  
КонецЕсли;
58 Wladimir_spb
 
07.09.07
23:42
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ТабСтрока[ИмяРеквизита]);

ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ДокОбъект[ИмяРеквизита]);
59 Atashka
 
07.09.07
23:43
Текст = Новый ТекстовыйДокумент;
Для Каждого Реквизит из МетаданныеДокумента.Реквизиты Цикл
ИмяРеквизита = Реквизит.Имя;
Если Найти(ТипЗнч(ДокОбъект[ИмяРеквизита]),"Перечисление") Тогда
ИмяПеречисления = ДокОбъект[ИмяРеквизита].Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ДокОбъект[ИмяРеквизита]);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
Текст.ДобавитьСтроку(ИмяЗначенияПеречисления);  
КонецЕсли;
Первый раз немного не то скопировала....
60 Atashka
 
07.09.07
23:44
(58) ну не такая же я дура?????????????????
61 Atashka
 
07.09.07
23:45
(58) еще и эту строку не заметил
ИмяяПеречисления = ДокОбъект[ИмяРеквизита].Метаданные().Имя;
62 Wladimir_spb
 
07.09.07
23:48
(60) Не знаю... не уверен, поэтому про "ИмяяПеречисления" в (58) писать не стал.
(59) У тебя реквизит заполнен?
63 Atashka
 
07.09.07
23:51
Да. Заполнен. ИмяПеречисления точно определяется. Проверяла, скидывая его в файл
64 Atashka
 
07.09.07
23:52
да и ДокОбъект[ИмяРеквизита] тоже определяется тем, что надо. Что не так???
65 Wladimir_spb
 
07.09.07
23:55
Что в этот момент в ДокОбъект[ИмяРеквизита]?
66 Atashka
 
07.09.07
23:58
значение реквизита документа в нем находится
67 Wladimir_spb
 
08.09.07
00:01
Какое?
Сообщить(ДокОбъект[ИмяРеквизита]);
68 Atashka
 
08.09.07
00:01
а данные в реквизите - есть ссылкаперечисления
69 zbv
 
08.09.07
00:05
у-лю на Вас нет...

:-)))
70 marvak
 
08.09.07
00:07
блинн когда то я был профи по перечислениям :)
тока пяаный я счас :)
71 marvak
 
08.09.07
00:08
кароче -отлатчег рулит в восьмерке
там все сразу видно ;)
72 Wladimir_spb
 
08.09.07
00:09
(71) Отладчик может и рулит, но ты полчаса будешь объяснять как им пользоваться.
Хотя можешь попробовать))) Пьяным море по колено?
73 Atashka
 
08.09.07
00:09
(67)
А - класс
74 zbv
 
08.09.07
00:16
(73) Mercedes-?
75 marvak
 
08.09.07
00:22
можно так
элементыформы.реквизит1["Имя"]
76 Wladimir_spb
 
08.09.07
00:22
Тогда все правильно. Ты на одном документе попробуй и посмотри на каком точно реквизите выскакивает ошибка
77 Wladimir_spb
 
08.09.07
00:23
(75) Еще формы здесь не хватало))) В конец девушку замучить решил?
78 marvak
 
08.09.07
00:24
эхх, скорпы - на, на, на, на, на нау!
а потом - динамит!
79 marvak
 
08.09.07
00:26
вернее так элементыформы.реквизит1["значение"]
80 marvak
 
08.09.07
00:28
то есть  имя в 75, а значение в 79 :)
81 Wladimir_spb
 
08.09.07
00:28
(79) )))
82 marvak
 
08.09.07
00:29
(81) эхх, маладой ты исо ;)
83 marvak
 
08.09.07
00:30
(81) я ж счас по отлатчегу сматрю ;)
84 Wladimir_spb
 
08.09.07
00:32
(83) Заранее скажу, что (75) и (79) не сработают. Даже с учетом (80).
)))
85 marvak
 
08.09.07
00:32
кароч, дэушка видимо сама не знает чего хочет :)
86 Wladimir_spb
 
08.09.07
00:34
Девушка уже спит, наверное)
87 marvak
 
08.09.07
00:35
(84) тады вопрос - "Элемент" в (0) это что?
88 marvak
 
08.09.07
00:37
а в питере счас исчо тока вечер :)
я вообще то в питере родился
на васильевском острове
бывшая больница вайсмана - у меня даже медаль есть :)
89 Wladimir_spb
 
08.09.07
00:40
Медаль за рождение? )
В Питере сейчас 0:40 - совпадает со временем форума.
90 marvak
 
08.09.07
00:42
(89) Именно! за рождение
там на одной стороне Ленин, на другой - Медный всадник и моя фаилия
а,счас таких в Питере не дают?
91 marvak
 
08.09.07
00:43
мальчикам давали синюю, девочкам - розовую
92 Wladimir_spb
 
08.09.07
00:45
Мне не давали. Видимо ничего особенно героического в моем рождении не было. Да и Ленин сейчас как-то не в моде.
93 marvak
 
08.09.07
00:48
что сказать...
батя в питере учился в аспирантуре и меня там заделал :)
а тебе просто повезло :)
94 Atashka
 
08.09.07
07:31
Текст = Новый ТекстовыйДокумент;
Для Каждого Реквизит из МетаданныеДокумента.Реквизиты Цикл
ИмяРеквизита = Реквизит.Имя;
Если Найти(ТипЗнч(ДокОбъект[ИмяРеквизита]),"Перечисление") Тогда
ИмяПеречисления = ДокОбъект[ИмяРеквизита].Метаданные().Имя;
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ДокОбъект[ИмяРеквизита]);
ИмяЗначенияПеречисления = Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[ИндексЗначенияПеречисления].Имя;
Текст.ДобавитьСтроку(ИмяЗначенияПеречисления);  
КонецЕсли;
Когда первый раз заходит в цикл, то все делается нормально, а на втором разу выдает такую вот ошибку
Ошибка при вызове метода контекста (Индекс): Несоответствие типов (параметр номер "1")
ИндексЗначенияПеречисления = Перечисления[ИмяПеречисления].Индекс(ДокОбъект[ИмяРеквизита]);
по причине:
Несоответствие типов (параметр номер "1")
Хотя данные абсолютно идентичны.
95 Wladimir_spb
 
08.09.07
08:39
Бодрое утро!
Смотри, что продставляется на втором круге.
Сообщить("Имя:" + ИмяРеквизита + " Значение:" + ДокОбъект[ИмяРеквизита]);
96 Atashka
 
08.09.07
09:47
Имя:ABCКлассификация Значение:A - класс
Имя:ABCКлассификацияСтарая Значение:
97 Сюзи
 
08.09.07
09:53
Привет всем!
98 Atashka
 
08.09.07
09:56
(97) Привет. (95) ПР.
99 Сюзи
 
08.09.07
10:01
Уверена что реквизит ABCКлассификацияСтарая заполнен?
100 Atashka
 
08.09.07
10:05
(99) Не, я поняла, он не заполнен. В нем ничего нет.
101 Сюзи
 
08.09.07
10:11
Все?, уже проблем нет?
102 Atashka
 
08.09.07
10:17
(101) Да, пока с этой частью вроде разобралась. Спасибо тебе большое, очень помогла
103 Сюзи
 
08.09.07
10:19
Удачи:)
104 Wladimir_spb
 
08.09.07
15:21
Замечу, что реквизиты типа ПеречислениеСсылка тоже можно проверять на пустое значение.