Имя: Пароль:
1C
 
Инициализировать конструктор по описанию типов
0 DirecTwiX
 
27.01.15
23:58
Есть описание типов. Нужно получить значение этого типа. Например
"Булево" - Ложь
"Дата" - ПустаяДата
"Число" - 0

Есть идеи?
1 PR
 
28.01.15
00:00
(0) Новый (New)
Синтаксис (вариант 1):
    Новый <Идентификатор типа>[(<Парам1>, <Парам2>, …)]

Параметры:
    Идентификатор типа
    Указывается идентификатор типа, значение которого создается.
    <Парам1>, <Парам2>, …
    После идентификатора типа в скобках могут указываться параметры, если они определены в конструкторах для данного типа. Допустимое количество параметров и их назначение указывается в описании конструкторов объекта.

Синтаксис (вариант 2):
    Новый(<Тип>[, <ПараметрыКонструктра>])

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

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

Описание:
Оператор позволяет создать значение указанного типа. Допустим только для тех типов, для которых разрешено создание с помощью данного оператора (подробнее см. описание объектов языка).
Для прикладных объектов необходимо использовать функциональную форму оператора Новый (вариант 2), так как при проверке модулей в конфигураторе не определены типы для прикладных объектов.
Если в качестве второго параметра указано значение, отличное от массива, то параметр полностью игнорируется.

Пример1:

СписокСохранения = Новый Структура;
ХранилищеДанных = Новый ХранилищеЗначения(СписокСохранения);


Пример2:

ТипЗначения = Тип("КвалификаторыСтроки");
Параметры = Новый Массив(2);
Параметры[0] = 20;
Параметры[1] = ДопустимаяДлина.Переменная;
КвСтр = Новый(ТипЗначения, Параметры);

Не?
2 DirecTwiX
 
28.01.15
00:00
ПривестиЗначение()
Спасибо СП :)
3 DirecTwiX
 
28.01.15
00:02
(1) Попробовал..
Новый(ЭлЗн.Значение.Тип)    {(1)}: С помощью встроенной функции Новый (New) не могут создаваться значения примитивных типов (Дата)
4 PR
 
28.01.15
00:10
(3) А, вон че.
Так там просто тупо перебрать все примитивные типы и все.
Если ТипЗнч(Знч) = ...