Имя: Пароль:
1C
1С v8
8.1 СокрЛП - баг поймал или что я делаю не верно?
0 Demon4ik
 
23.10.12
16:20
Добрый день, уважаемые.
Есть у меня функция куда я передаю "Код" для его переработки. Первым делом надо отрубить пробелы. Пишу:

// Сокращаем пробелы
СокрЛПКод = СокрЛП(Код);
Если СокрЛПКод <> Код Тогда
   Код = СокрЛПКод; //*
   ДобавитьСтрокуИнфо(Код+":Сократил пробелы");
КонецЕсли;

Спотыкается на некоторых кодах вида "Н013050101500_1          "
В отладчике после присваивания следующая картина:
СокрЛПКод    "Н013050101500_1"    Строка
Код    "Н013050101500_1          "    Строка

Что за хрень? Как обойти?

* Изначально было:
Код = СокрЛП(Код);
1 GLazNik
 
23.10.12
16:22
(0) а если проверять длину строки?
2 mikecool
 
23.10.12
16:23
(0) куда падает, после того как споткнется?
3 Kreont
 
23.10.12
16:24
"СокрЛПКод" - есть на форме?
4 Demon4ik
 
23.10.12
16:25
(1) Длина строки тоже не меняется после присваивания
5 Demon4ik
 
23.10.12
16:26
(3) СокрЛПКод - это извращение. Изначально было Код = СокрЛП(Код)
6 Wobland
 
23.10.12
16:26
(4) скрин в студию
7 Apokalipsec
 
23.10.12
16:27
(5) когда был такой вариант - не обрезал?
8 Wobland
 
23.10.12
16:29
или внезапно в коде нпп взялись.. сокрлп с ними бороться умеет?
9 Kreont
 
23.10.12
16:29
(5) "Код" есть на форме?
10 acsent
 
23.10.12
16:29
Код всегда фикс длины
11 Demon4ik
 
23.10.12
16:32
(7) Вариант с выносом переменной (СокрЛПКод) и (Код = СокрЛП(Код)) дают идентичные результаты.
12 Demon4ik
 
23.10.12
16:32
(9) На форме нет ни "код" ни "сокрлпкод"
13 Demon4ik
 
23.10.12
16:33
Не отрабатывает выборочно. Зависимости тоже не увидел...
14 Fragster
 
гуру
23.10.12
16:34
Код - типизированная переменная контекста с фиксированной длиной
15 Fragster
 
гуру
23.10.12
16:34
например Код справочника или переменная формы
16 KindLion
 
23.10.12
16:42
Вот этот код смущает:

Если СокрЛПКод <> Код

Я бы вообще втупую, без условий, писал сразу Код = СокрЛП(Код).
Ну если уж хочется с условием ,то перепиши его так:

Если СтрДлина(СокрЛПКод) <> СтрДлина(Код)
17 Demon4ik
 
23.10.12
16:46
(16) В тупую тоже не катит. А условие нужно для лога.
18 Demon4ik
 
23.10.12
16:57
Разобрался. Передавал не ту переменную
было:
НормализоватьКодНоменклатуры(Строка.КодНоменклатуры)
изменил:
НормализоватьКодНоменклатуры(""+Строка.КодНоменклатуры)

Спасибо всем!
19 Fragster
 
гуру
23.10.12
17:10
НормализоватьКодНоменклатуры(Знач Код)
20 Fragster
 
гуру
23.10.12
17:10
в строку с определением
21 Demon4ik
 
24.10.12
08:21
(19) Благодарю!
22 Fragster
 
гуру
24.10.12
08:47
(21) 8 лет, а то, что параметры в методы передаются по ссылке - не знаешь...
23 mikecool
 
24.10.12
08:49
(22) следующий баг он поймает с передачей по значению ТЗ, например )))
24 0xFFFFFF
 
24.10.12
08:51
(18) А зачем юзать переменные "Строка"? - это че работает?
25 mikecool
 
24.10.12
08:52
(24) в смысле, зачем юзать? по оле например только примитивные типы передаются...
26 Fragster
 
гуру
24.10.12
08:52
(24) у автора там Для каждого Строка Из Таблица Цикл...
27 Demon4ik
 
24.10.12
11:11
(22) Знал бы все, сюда не обратился. Чтож поделать, Антон, не все ведущие программисты.