Имя: Пароль:
1C
 
Странный методом СтрДлина
, ,
0 kamila0713
 
16.09.19
11:56
1. Баян 100% (2)
2. Ты не прав, метод работает по-другому 0% (0)
Всего мнений: 2

Метод СтрДлина(<ВходнойПараметр>) оказывается работает со всеми типами. Преобразовывает значение Входного Параметра в строку и возвращает длину.
Интересно
1 ДенисЧ
 
16.09.19
11:58
Это называется "неявное преобразование типов".
Поскольку СтрДлина ожидает строку - так параметр и преобразовывается в строку. Точнее, получается его представление

Баян
2 Сияющий в темноте
 
16.09.19
12:01
предстваление ужн получается,когда вызывается преобразование в строку.
3 unregistered
 
16.09.19
12:02
+ (1) Причем неявное преобразование типов много где в 1С работает.
Например, посмотри значения переменных:
А = 0.5 + 1;
Б = "0.5" + 1;
В = 0.5 + "1";
4 kamila0713
 
16.09.19
12:04
(3) Как раз о таком преобразовании, конечно, знаю. Но прям в методе. первый раз встретил. Обычно ругался
5 kamila0713
 
16.09.19
12:04
(1) (2) (3) Все спасибо
6 Масянька
 
16.09.19
12:04
Вы меня извините, но вот и пример...
7 Вафель
 
16.09.19
12:07
А например что СокрЛП(Парам) в строку преобразует для тебя тоже удивительная новость?
8 Вафель
 
16.09.19
12:08
но лучше конечно неявняым пользоваться поминимуму
9 Консультант Баранов
 
16.09.19
12:08
(0) Тоже стало открытием, что вместо СокрЛП(Строка(Х)) можно просто СокрЛП(Х).

Но ИМХО, так только хуже. Где-то опишешься, а потом ошибки вылавливать приходится.
10 Fragster
 
гуру
16.09.19
12:09
11 sikuda
 
16.09.19
12:34
(10) "2"+"2"-1?

Баян
12 Вафель
 
16.09.19
12:35
(11) в 1с другие правила неявного преобразования
13 Вафель
 
16.09.19
12:35
(11) В js это будет число 21
14 Serg_1960
 
16.09.19
12:37
Неявное преобразование может сыграть дурную шутку из-за настроек по умолчанию. Например длина числа 1234 = 5 :)
15 vova1122
 
16.09.19
12:43
(11) Интересно. 1с сообщает что "2"+"2"-1="21"
а   "2"+"2"+1="221"
16 vova1122
 
16.09.19
12:49
+(15) вернее в первом варианте будет число а во втором строка
17 Кац
 
16.09.19
12:50
(6) пример чего?
18 Aleksey
 
16.09.19
13:04
К сожалению не везде
В 7-ке число("Строка") вернет 0
В 8-ке число("Строка") вернет ошибку
19 Aleksey
 
16.09.19
13:06
(15) потому что + это не только сложение, но и конкатенация
20 Aleksey
 
16.09.19
13:08
(14) это где?
в 7-ке
СтрДлина(1234) = 4
21 ДенисЧ
 
16.09.19
13:11
(20) В 8ке при настройках по умолчанию
22 palsergeich
 
16.09.19
13:39
(15) + перегружен на тип строка
А - нет
23 Rovan
 
гуру
16.09.19
13:50
"Преобразовывает значение Входного Параметра в строку и возвращает длину."
Не для всех... иногда преобразовывает к типу - например "Динамический список".