Имя: Пароль:
1C
1С v8
Можно ли проверить, является ли тип значения примитивным типом?
0 DirecTwiX
 
05.04.13
21:17
Можно ли проверить, является ли тип значения примитивным типом?
1 H A D G E H O G s
 
05.04.13
21:19
Примитивных типов - раз и обчелся.
Проверяй, пробуй!
2 DirecTwiX
 
05.04.13
21:20
А как-нибудь по-умней?)
3 Птица
 
05.04.13
21:21
(2) похоже, (1), в лоб, - самое умное, иначе можешь сам себя обхитрить.
4 Поросенок Петр
 
05.04.13
21:21
(2) "По-умней" будет не задавать глупых вопросов.
5 Птица
 
05.04.13
21:22
просто сделай свой функцию, ЭтоПримитивныйТип
6 H A D G E H O G s
 
05.04.13
21:25
xmlтипЗнч(ТвоеЗначение).URIПространстваИмен

Почти наверняка у примитивных типов оно будет заполнено.

Проверяй, пробуй!
7 Лефмихалыч
 
05.04.13
22:21
Если Метаданные.НайтиПоТипу(ТипЗнч(ТвоеЗначение)) Тогда
  // это не примитивный тип
8 Torquader
 
05.04.13
23:20
(7) Ну, если OLE-объект, это примитивный тип, тогда подойдёт.
А так - сделать коллекцию типов, которые мы считаем примитивными и проверить - содержится ли наш тип в этой коллекции.
9 awa15
 
06.04.13
03:36
(2) Так точно умно

Функция ЭтоПримитивныйТип(Значение)
   Возврат Сред(ЗначениеВСтрокуВнутр(Значение), 3, 1) <> "#";
КонецФункции
10 НафНаф
 
06.04.13
06:46
преопределенные перечисления примитивны? отвечай!
11 Мимохожий Однако
 
06.04.13
06:56
В типовых конфигурациях в общих модулях наверняка есть функции проверки на тип и на заполнение определенных типов.
12 YHVVH
 
06.04.13
07:46
а что такое примитивные типы?
13 DirecTwiX
 
06.04.13
08:36
Когда писал, под примитивными понимал Число, Строку, Дату И Булево. Но сейчас понимаю, что нужно нечто другое.
Нужны те типы, которые можно присваивать с помощью =. Т.е. ТЗ, массив, например, сюда не подходят
14 banco
 
06.04.13
08:46
(13) Если Значение = rvalue Тогда
15 Flyd-s
 
06.04.13
08:52
(13), если отбирать те, что присваиваются с помощью равно, то справочники и документы окажутся примитивными типами
16 DirecTwiX
 
06.04.13
09:26
(15)  Поэтому в (13) я сказал, что "нужно нечто другое"
17 kiruha
 
06.04.13
09:33
перем ТаблПримитивныхТипов;
//..
ТаблПримитивныхТипов=Новый ТаблицаЗначений;
ТаблПримитивныхТипов.Колонки.Добавить("Тип");
НовСтр=ТаблПримитивныхТипов.Добавить();
НовСтр.Тип=Тип("Число");
НовСтр=ТаблПримитивныхТипов.Добавить();
НовСтр.Тип=Тип("Дата");
НовСтр=ТаблПримитивныхТипов.Добавить();
НовСтр.Тип=Тип("Булево");
НовСтр=ТаблПримитивныхТипов.Добавить();
НовСтр.Тип=Тип("Строка");
ТаблПримитивныхТипов.Индексы.Добавить("Тип");
//...
//.Вызов
Если ТаблПримитивныхТипов.Найти(ПровереямыйТип)<>Неопределено Тогда // примитивный тип
18 DirecTwiX
 
06.04.13
09:43
(17) И  мне туда вручную все справочникиСсылки,  документОбъекты добавлять?
19 kiruha
 
06.04.13
09:45
(18)Зачем ?
Если Метаданные.НайтиПоТипу(ПроверяемыйТип) Тогда
// это объектный тип
20 kiruha
 
06.04.13
09:47
Разберись что имеешь ввиду под примитивным типом
21 Flyd-s
 
06.04.13
10:04
(18), ссылки - это примитивный тип?!
22 DirecTwiX
 
06.04.13
10:09
(21) ...  пробовал читать (16)?)
23 kiruha
 
06.04.13
10:29
Массив1=Новый Массив;
// через =
Массив2=Массив1;
?
24 Flyd-s
 
06.04.13
12:26
(22), пробовал, там какая-то хрень написана
25 Torquader
 
06.04.13
13:46
А может быть под "примитивным" типом подразумевается тот, который можно передать внутрь любого OLE-объекта ?
Но там тоже есть засада с преобразованием при передаче.
26 PR
 
06.04.13
13:53
Вот ведь.
В (0) вопрос.
В (1) ответ.

А потом 1000 постов рассуждений обо всем, начиная от погоды до Путина :))
27 GANR
 
06.04.13
14:37
да
28 Aleksey
 
06.04.13
14:41
(13) а можно пример того что нельзя присвоить?
29 kiruha
 
06.04.13
15:41
Может он имеет ввиду когда присваивается значение, а не ссылка ?
Хотя я не телепат ....
30 Torquader
 
06.04.13
16:03
(28) Например, если мы берём таблицу значений и выполняем:
НоваяТз=СтараяТЗ;
то у нас две переменных ссылаются на одну и ту же таблицу значений, то есть никакого копирования не происходит.
Если мы что-то поменяем в одной переменной, эти изменения появятся и в другой.
С ссылками тут немного сложнее, так как мы вообще в них ничего поменять не можем - это просто способ доступа к данным объекта.