Имя: Пароль:
1C
1С v8
Лидирующие нули
0 Novicadmin
 
05.08.14
13:54
ЗначениеРеквизита = "0095563";

ЧислоПЛУ = СокрЛП(Строка(Число(ЗначениеРеквизита)));

//ЧислоПЛУ = "95 563"

PLU = СтрЗаменить(ЧислоПЛУ," ","");

// в результате всё равно 95 563

Почему так?

я понимаю что можно написать функцию которая будет резать 0 в начале, но разве как то без неё не обойтись?
1 ale-sarin
 
05.08.14
13:56
Формат(95563, "ЧГ=")
2 ale-sarin
 
05.08.14
13:56
короче
PLU = Формат(ЧислоПЛУ,"ЧГ=");
3 Ymryn
 
05.08.14
13:57
(0) или скопируй из табло именно тот пробел (он неразрывный), что в числе, ибо они разные с тем, что ты в заменить используешь, ну или код найди неразрывного пробела.
4 KnightAlone
 
05.08.14
13:57
(0) тебе чего сделать то надо? убрать пробел в 95 563? СДелай СтрЗаменить(ЧислоПЛУ,Символы.НПП,"");
5 Novicadmin
 
05.08.14
13:58
спасибо большое, задача убрать впереди строки все 0
6 ale-sarin
 
05.08.14
14:00
(5) А дальше? Это должно стать строкой? Или числом?
7 lxndr
 
05.08.14
14:01
(6) в весы грузит наверное. Там текст
8 ale-sarin
 
05.08.14
14:02
(7) ))) Я тоже так подозреваю.
9 Novicadmin
 
05.08.14
14:05
угу весы )))
10 Novicadmin
 
05.08.14
14:05
текст )
11 Jaap Vduul
 
05.08.14
14:17
СтрЗаменить(СокрЛ(СтрЗаменить("0095563", "0", " ")), " ", "0")
12 Крошка Ру
 
05.08.14
14:18
(11) Так он все нули уберет, не только лидирующие
13 Крошка Ру
 
05.08.14
14:20
(10) Открой для себя СП и функцию Формат(). Обрати особое внимание на параметр ЧВН.
14 FIXXXL
 
05.08.14
14:21
из типовой, печать номера документа:

        // удаление ведущих нулей
        Пока Лев(Номер, 1)="0" Цикл
            Номер = Сред(Номер, 2);
        КонецЦикла;
15 Jaap Vduul
 
05.08.14
14:23
(12)
Только лидирующие.
16 Timon1405
 
05.08.14
14:23
Учите матчасть(БСП)
Функция УдалитьЛидирующиеНули(Знач Код)
    
    Пока СтрДлина(Код) > 0 Цикл
        
        Если Лев(Код, 1) <> "0" Тогда
            Прервать;
        КонецЕсли;
        
        Код = Прав(Код, СтрДлина(Код) - 1);
        
    КонецЦикла;
    
    Возврат ?(ПустаяСтрока(Код), "0", Код);
КонецФункции

Функция ЧисловойКодОбъекта(Знач Код)
    
    Результат = "";
    
    Пока СтрДлина(Код) > 0 Цикл
        
        Символ = Прав(Код, 1);
        
        Если Найти("0123456789", Символ) > 0 Тогда
            Результат = Символ + Результат;
        Иначе
            Прервать;
        КонецЕсли;
        
        Код = Лев(Код, СтрДлина(Код) - 1);
        
    КонецЦикла;
    
    Возврат ?(ПустаяСтрока(Результат), 0, Число(Результат));
КонецФункции
17 Jaap Vduul
 
05.08.14
14:24
(16)Жесть.
18 Эмбеддер
 
05.08.14
14:26
(16) это правильное решение. переводить строку в число, чтобы снова перевести в строку - это коряво
19 Крошка Ру
 
05.08.14
14:26
(15) А, ну вообще-то, да, сработает. Если только изначально в строке пробелов не будет.
20 Jaap Vduul
 
05.08.14
14:30
(18)
Зачем в число переводить?