Имя: Пароль:
1C
 
Как программно определить ИМЯ переданного типа.
0 SeiOkami
 
11.09.14
15:54
Понятно, что можно сделать так: Метаданные.НайтиПоТипу(ТипЗначения).Имя, однако, не сработает если тип будет, например, СписокЗначений. А мне необходимо получить строковое представление имени типа для последующего выполнения в Новый("ИмяТипа"). Если же при отсутствии типа в метаданных просто приводить его к строке, то я получу не имя типа, а его представление "Список значений".
1 viraboy
 
11.09.14
15:59
Привет, тип, тебя как зовут?
ТипЗнч(), не?
2 SeiOkami
 
11.09.14
16:01
(1), не
ТипЗнч(Тип("СписокЗначений")) вернет "Тип"
3 sf
 
11.09.14
16:02
(0) ты, видимо, какой-то изврат задумал. но если очень нужно, пробуй сделать сначала ОписаниеТипов, а оттуда через Типы() все что нужно

и вообще вроде Новый(типЗначения)
4 Зойч
 
11.09.14
16:03
Новый (Тип) разве не работает?
5 SeiOkami
 
11.09.14
16:05
(3), оттуда через Типы() я получу тип, а мне нужно его имя
(4), мне нужно получить именно строковое представление имени
6 SeiOkami
 
11.09.14
16:20
уп
7 SeiOkami
 
11.09.14
16:24
На крайний случай можно так, но всё же это не есть цивильно

МетаданныеТипа = Метаданные.НайтиПоТипу(МойТип);
        Если МетаданныеТипа <> Неопределено Тогда
            ТипСтрокой = МетаданныеТипа.Имя;
        Иначе            
            ТипСтрокой = СтрЗаменить(Строка(МойТип), " ", "");
        КонецЕсли;
8 Jaap Vduul
 
11.09.14
16:31
(7)Неверный подход.
У типов 1цэ имя и строковое представление не всегда похожи.
9 Зойч
 
11.09.14
16:33
Зачем тебе это?
10 SeiOkami
 
11.09.14
16:39
(8), Например?
11 SeiOkami
 
11.09.14
16:39
(9), генерирую код на 1С в режиме предприятия
12 Зойч
 
11.09.14
16:40
Вот тебе заняться нечем )))
13 Ненавижу 1С
 
гуру
11.09.14
16:41
(11) Зачем?
14 Jaap Vduul
 
11.09.14
16:42
(10)
Тип("ОбъединениеНедопустимыхПодстановкиXS")
15 Ненавижу 1С
 
гуру
11.09.14
16:43
(10) посмотри в табло на выражение Строка(Тип("СписокЗначений"))
16 SeiOkami
 
11.09.14
16:44
(14), действительно... Просто не знаю пока как иначе
(15), и? "Список значений"
17 Ненавижу 1С
 
гуру
11.09.14
16:45
(16) это не имя типа))
18 SeiOkami
 
11.09.14
16:46
(17), ну я как бы и об этом) Читай (0)
19 Jaap Vduul
 
11.09.14
16:48
(16)
>>Просто не знаю пока как иначе
А никак.
Только если составить таблицу всех имеющихся типов и при каждом обновлении платформы её проверять на предмет изменений.
20 Зойч
 
11.09.14
16:48
(19) у автора инструментов разаработчика чтото типо такого уже есть
21 SeiOkami
 
11.09.14
16:49
(19), то есть типового метода всё же нет, да?
22 Jaap Vduul
 
11.09.14
16:50
(21)>>всё же нет, да?
Нет, да.
23 SeiOkami
 
11.09.14
16:52
(22), грусть-доска. Спасибо за помощь!
24 Rebelx
 
11.09.14
16:56
(0) ТипЗначенияXML
или что-то вроде
25 SeiOkami
 
11.09.14
16:57
(24), XMLТип()
пробовал, но ничего не возвращает
26 Fragster
 
гуру
11.09.14
17:05
Синтаксис (вариант 2):
    Новый(<Тип>[, <ПараметрыКонструктра>])

Параметры:
    Тип
    Имя типа или значение типа Тип

    ПараметрыКонструктора
    Массив параметров конструктора

Описание:
Оператор позволяет создать значение указанного типа. Допустим только для тех типов, для которых разрешено создание с помощью данного оператора (подробнее см. описание объектов языка).
Для прикладных объектов необходимо использовать функциональную форму оператора Новый (вариант 2), так как при проверке модулей в конфигураторе не определены типы для прикладных объектов.
27 Fragster
 
гуру
11.09.14
17:06
Имя типа или значение типа Тип
28 Fragster
 
гуру
11.09.14
17:06
значение типа Тип
29 SeiOkami
 
12.09.14
08:00
(26), (27), (28), офигенная привычка не читать (0) =)
30 Fragster
 
гуру
12.09.14
10:35
(29) я прочитал в (0) вот что: "для последующего выполнения в Новый("ИмяТипа")."
Ошибка? Это не ошибка, это системная функция.