![]() |
![]() |
![]() |
|
Как получить описание типа по значению? | ☑ | ||
---|---|---|---|---|
0
Галахад
гуру
23.01.13
✎
11:34
|
Задача:
Добавить в таблицу значений колонку с типом колонки другой таблицы значений. :-) Написал вот такой код. Нерабочий. ТипКолонки = ТипЗнч(тз1[0][ИмяКолонки]); тз2.Колонки.Добавить(ИмяКолонки, ТипКолонки); Какой будет рабочим? |
|||
1
acsent
23.01.13
✎
11:35
|
Тип <> ОписаниеТипа
|
|||
2
Галахад
гуру
23.01.13
✎
11:36
|
(1) Спасибо Кэп. А как описание получить.
Можно не из типа, а из значения. |
|||
3
samozvanec
23.01.13
✎
11:37
|
СП читать не предлагать?
|
|||
4
mzelensky
23.01.13
✎
11:38
|
СП:
ОписаниеТипов (TypeDescription) На основании объекта ОписаниеТипов Синтаксис: Новый ОписаниеТипов(<ИсходноеОписаниеТипов>, <ДобавляемыеТипы>, <ВычитаемыеТипы>, <КвалификаторыЧисла>, <КвалификаторыСтроки>, <КвалификаторыДаты>, <КвалификаторыДвоичныхДанных>) Параметры: <ИсходноеОписаниеТипов> (необязательный) Тип: ОписаниеТипов. Исходное описание типов, на основании которого будет строиться новое. <ДобавляемыеТипы> (необязательный) Тип: Массив; Строка. Массив значений типа Тип, состоящий из типов, которые будут использованы в объекте, или строка содержащая имена типов разделенных запятыми. <ВычитаемыеТипы> (необязательный) Тип: Массив; Строка. Массив значений типа Тип (или строка, содержащая имена типов, разделенных запятыми), состоящий из типов, которые будут исключены из исходного описания, указанного в первом параметре. <КвалификаторыЧисла> (необязательный) Тип: КвалификаторыЧисла. Квалификаторы числа, описывающие допустимые значения числового типа. <КвалификаторыСтроки> (необязательный) Тип: КвалификаторыСтроки. Квалификаторы строки, описывающие допустимые значения строкового типа. <КвалификаторыДаты> (необязательный) Тип: КвалификаторыДаты. Квалификаторы даты, описывающие допустимые значения типа Дата. <КвалификаторыДвоичныхДанных> (необязательный) Тип: КвалификаторыДвоичныхДанных. Квалификаторы двоичных данных. Описание: Создает описание типов на основании другого описания типов, путем добавления одних и исключения других типов. Если новый квалификатор не указан, будут оставлены квалификаторы исходного описания типов. Пример: // расширим описание ДопустимыеТипы новыми типами Массив = Новый Массив; Массив.Добавить(Тип("СправочникСсылка.Методы")); Массив.Добавить(Тип("Число")); Знак = ДопустимыйЗнак.Неотрицательный; КвЧисла = Новый КвалификаторыЧисла(10, 2, Знак); ДопустимыеТипы = Новый ОписаниеТипов(ДопустимыеТипы, Массив, , КвЧисла); |
|||
5
НафНаф
23.01.13
✎
11:39
|
(4) это не тот конструктор, ему другой нужен
|
|||
6
samozvanec
23.01.13
✎
11:39
|
(4) на основании типов надо
|
|||
7
samozvanec
23.01.13
✎
11:40
|
+(6) тоже самое, только массив с типами первым параметром. это для тех, у кого нет СП
|
|||
8
mzelensky
23.01.13
✎
11:43
|
(5) почему? подходит! ток вместо
Тип("СправочникСсылка.Методы") нужно ТипЗнч(тз1[0][ИмяКолонки]) и вроде все. Вот кусок из рабочего кода: МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Строка")); МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты")); Тип=Новый ОписаниеТипов(МассивТипов); ТЗ.Колонки.Добавить(ИмяКолонкиТЗ, Новый ОписаниеТипов("Строка") ); |
|||
9
Галахад
гуру
23.01.13
✎
11:45
|
ТипКолонки = ТипЗнч(тз1[0][ИмяКолонки]);
Массив = Новый Массив; Массив.Добавить(ТипКолонки); Описание = Новый ОписаниеТипов(, Массив, , ); Ошибка при вызове конструктора (ОписаниеТипов): Несоответствие типов (параметр номер '2') Описание = Новый ОписаниеТипов(, Массив, , ); Что я делаю не так? |
|||
10
mzelensky
23.01.13
✎
11:45
|
Ой, не то вставил
вместо ТЗ.Колонки.Добавить(ИмяКолонкиТЗ, Новый ОписаниеТипов("Строка") ); надо ТабЗагрузки.Колонки.Добавить(ИмяКолонкиТЗ,Тип ); |
|||
11
viktor_vv
23.01.13
✎
11:45
|
(8) Че так сложно-то
ТЗ.Колонки.Добавить(ИмяКолонкиТЗ, Новый ОписаниеТипов(тз1.Колонки[ИмяКолонки].ТипЗначения) ) |
|||
12
acsent
23.01.13
✎
11:46
|
(11) можно даже проще
ТЗ.Колонки.Добавить(ИмяКолонкиТЗ, тз1.Колонки[ИмяКолонки].ТипЗначения) |
|||
13
mzelensky
23.01.13
✎
11:47
|
(11) у меня там просто составные типы и много условий. Поэтому для мня так проще :)
|
|||
14
samozvanec
23.01.13
✎
11:47
|
попытка телепатии: копировать колонки не предлагать?
|
|||
15
Nzn
23.01.13
✎
11:48
|
(9) ТипЗнч возвращает Тип
|
|||
16
viktor_vv
23.01.13
✎
11:49
|
(12) Точно. Если не надо модифицировать исходное описание типов, то таки да.
(13) Я так понял тебе один в один надо описание типов из исходной ТЗ. |
|||
17
samozvanec
23.01.13
✎
11:49
|
(9) массив первым параметром
|
|||
18
х86
23.01.13
✎
11:50
|
(0)ну чо мудрить???
ня Таб1 = Новый ТаблицаЗначений;
|
|||
19
viktor_vv
23.01.13
✎
11:50
|
(16) Попутал (13) с ТС'ом.
|
|||
20
samozvanec
23.01.13
✎
11:51
|
ТС, ответь на (14), пытаюсь развивать навыки
|
|||
21
Галахад
гуру
23.01.13
✎
11:55
|
(11) Спасибо. Я знал, что все просто. :-)
(17) Да, спасибо, заработало. (14) Вопроса не понял. Как можно скопировать колонку? |
|||
22
samozvanec
23.01.13
✎
12:00
|
(21) ПустаяТЗСНужнымиКолонками = ТвояТЗ.СкопироватьКолонки("СписокИменНужныхКолонокЧерезЗапятую");
|
|||
23
х86
23.01.13
✎
12:01
|
(22)+ 100500
проще бывает скопировать ТЗ и очистить её |
|||
24
Галахад
гуру
23.01.13
✎
12:01
|
(22) А, понял. Но, тз2 не пустая таблица.
|
|||
25
samozvanec
23.01.13
✎
12:02
|
(24) ну вот, без левелапа остался(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |