Имя: Пароль:
1C
1С v8
ОписаниеТипов - получить из строки можно?
0 Масянька
 
19.08.19
13:47
День добрый!
Такой код:
    ОбъектМетаданных = СписокОбъектовМетаданных.НайтиПоЗначению(Список).Представление;
    СтрокаДанных = "ДокументСсылка." + Строка(ОбъектМетаданных) + """";
    СтрокаДанных = """" + Строка(СтрокаДанных);
    Элементы.СамОбъект.ОграничениеТипа = Новый ОписаниеТипов(СтрокаДанных);

выдает:
Ошибка при вызове конструктора (ОписаниеТипов)
        Элементы.СамОбъект.ОграничениеТипа = Новый ОписаниеТипов(СтрокаДанных);
по причине:
Недопустимое значение параметра (параметр номер '1') ("ДокументСсылка.ОперацияБух")
Почему?
Спасибо.
1 Cyberhawk
 
19.08.19
13:48
ОписаниеТипов (TypeDescription)
На основании типов и квалификаторов
Синтаксис:
Новый ОписаниеТипов(<Типы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>)
Параметры:
<Типы> (обязательный)
Тип: Массив, Строка.
Массив значений типа Тип, состоящий из типов, которые будут использованы в объекте, или строка, содержащая имена типов, разделенных запятыми.
<КвалификаторыЧисла> (необязательный)
Тип: КвалификаторыЧисла.
Квалификаторы числа, описывающие допустимые значения числового типа. Если параметр не указан, то числа хранить нельзя.
<КвалификаторыСтроки> (необязательный)
Тип: КвалификаторыСтроки.
Квалификаторы строки, описывающие допустимые значения строкового типа. Если параметр не указан, то используется неограниченная длина строки.
<КвалификаторыДаты> (необязательный)
Тип: КвалификаторыДаты.
Квалификаторы даты, описывающие допустимые значения типа Дата. Если параметр не указан, то используются обе части даты (дата + время).
<КвалификаторыДвоичныхДанных> (необязательный)
Тип: КвалификаторыДвоичныхДанных.
Квалификаторы двоичных данных.
Описание:
Создает описание типов на основании заданных типов и квалификаторов для типов Число, Строка, Дата.
Пример:
// составной тип из строки и ссылки на справочник Номенклатуры.

МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("СправочникСсылка.Номенклатура"));
МассивТипов.Добавить(Тип("Строка"));
ПараметрыСтроки = Новый КвалификаторыСтроки(20);

ДопустимыеТипы = Новый ОписаниеТипов(МассивТипов, , ПараметрыСтроки);
     Методическая информация
2 Масянька
 
19.08.19
13:50
(1) И чё? Я это читала.
Мне набодно - из строки. Имя документа - строка. Строка.
3 PuhUfa
 
19.08.19
13:51
(0) "ДокументСсылка.ОперацияБух" - а у тебя действительно есть такой документ?
4 ДенисЧ
 
19.08.19
13:51
Элементы.СамОбъект.ОграничениеТипа = Новый ОписаниеТипов(Тип(СтрокаДанных));

Так попробуй...
5 Cyberhawk
 
19.08.19
13:53
(2) Точняк. У меня из строки работает.
6 Cyberhawk
 
19.08.19
13:53
Доложи о двух результатах в отладчике: с этим же и с каким-нибудь другим типом-ссылкой
7 Cyberhawk
 
19.08.19
13:54
В табло вот такое у меня работает: Новый ОписаниеТипов("ДокументСсылка.АвансовыйОтчет")
8 Cyberhawk
 
19.08.19
13:54
Пади у тебя там "ДокументСсылка." просто
9 Масянька
 
19.08.19
13:58
В порядке поступления:
(3)     Элементы.СамОбъект.ОграничениеТипа = Новый ОписаниеТипов(СтрокаДанных);  - вместо СтрокадАнных - "ДокументСсылка.ОперацияБух" - все работает.
(4) Тип не определен ("ДокументСсылка.АвансовыйОтчет")
        Элементы.СамОбъект.ОграничениеТипа = Новый ОписаниеТипов(Тип(СтрокаДанных));
10 PuhUfa
 
19.08.19
14:00
(9) """" - лишние?
11 Масянька
 
19.08.19
14:01
12 НЕА123
 
19.08.19
14:04
(0) кавычки нужны?
13 Cyberhawk
 
19.08.19
14:04
СтрокаДанных = """" + Строка(СтрокаДанных)
14 Масянька
 
19.08.19
14:05
(10) В натуре...
Спасибо!!!!
2 + 2 = 3.9999999999999999999999999999999...