helpf.pro
Регистрация
 +1 
Распечатать

Как убрать лидирующие нули в номере Документа

Часто при разработке печатных форм или отчетов, нужно номера документов вида 000001 преобразовать в 1 - убрав лидирующие нули. в этой статье я приведу несколько способов, а какой выбрать - решайте сами:

Код 1C v 8.х
 Функция УбратьЛидирующиеНули(НомерДокумента)
    Пока Найти(НомерДокумента, "0") > 0 Цикл
        УбратьЛидирующиеНули(Прав(НомерДокумента, СтрДлина(НомерДокумента)-1));
    КонецЦикла;
    Возврат    НомерДокумента;
КонецФункции
Код 1C v 8.х
 Функция УбратьЛидирующиеНули(НомерДокумента)
    
    Попытка
        НомерДокумента = Формат(Число(НомерДокумента), "ЧГ=");
    Исключение
        НомерДокумента = СтрЗаменить(СокрЛ(СтрЗаменить(СокрП(НомерДокумента), "0", " ")), " ", "0");
        Префикс = "";
        Пока КодСимвола(НомерДокумента) < 48 Или КодСимвола(НомерДокумента) > 57 Цикл
            Префикс = Префикс + Лев(НомерДокумента, 1);
            НомерДокумента = Сред(НомерДокумента, 2);
        КонецЦикла;
        Если Не ПустаяСтрока(Префикс) Тогда
            НомерДокумента = Префикс + УбратьЛидирующиеНули(НомерДокумента);
        КонецЕсли;
    КонецПопытки;
    Возврат НомерДокумента;
    
КонецФункции

В запросе:

Код 1C v 8.х
 ВЫБРАТЬ
    ВЫБОР
    КОГДА Не ПОДСТРОКА(&Номер, 1, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 1, 10)
    КОГДА Не ПОДСТРОКА(&Номер, 2, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 2, 9)
    КОГДА Не ПОДСТРОКА(&Номер, 3, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 3, 8)
    КОГДА Не ПОДСТРОКА(&Номер, 4, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 4, 7)
    КОГДА Не ПОДСТРОКА(&Номер, 5, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 5, 6)
    КОГДА Не ПОДСТРОКА(&Номер, 6, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 6, 5)
    КОГДА Не ПОДСТРОКА(&Номер, 7, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 7, 4)
    КОГДА Не ПОДСТРОКА(&Номер, 8, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 8, 3)
    КОГДА Не ПОДСТРОКА(&Номер, 9, 1) = "0" ТОГДА ПОДСТРОКА(&Номер, 9, 2)
    Иначе ПОДСТРОКА(&Номер, 10, 1)
КОНЕЦ КАК НомерБезНулей

Простые примеры:

Код 1C v 8.х
 Пока Лев(Номер, 1) = "0" Цикл 
    Номер = Прав(Номер, СтрДлина(Номер) - 1);
КонецЦикла;
Код 1C v 8.х
 
Функция УбратьНули(НомерСтрокой) 
    Если Лев(НомерСтрокой, 1) = "0" Тогда
        Возврат УбратьНули(Прав(НомерСтрокой, СтрДлина(НомерСтрокой) - 1)); 
    Иначе
        Возврат НомерСтрокой;
    КонецЕсли;
КонецФункции


ИтоговаяСтрока = УбратьНули(Номер);
Разместил:   Версии: | 8.x | 8.2 УП | 8.3 |  Дата:   Прочитано: 82979
 +1 
Распечатать
Возможно, вас также заинтересует
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей.
Как декодировать (преобразовать) Unicode в 1С 0
При разработке очередного обмена с интернет магазином через API столкнулисть что сайт возвращает ответ в виде: {"ok":"true","description":"u0421u0442u0430u0442u0443u0441 u0437u0430u043au0430u0437u0430 u0438u0437u043cu0435u043du043
Как добавить нули к значению или строке в 1С 0
Функция ДобавитьНули(Значение, НужнаяДлинаЗначения) Значение = СтрЗаменить(Формат(Значение, " ЧГ=" ), " " , " " ); НадоНулей = НужнаяДлинаЗначения - СтрДлина(Значение); ВедущиеНули = Формат(0," ЧЦ=" +НадоНулей+" ;ЧН=; ЧВН=; ЧГ=0" ); Возврат
Как дополнить число лидирующими нулями (000851) ? 18
Необходимо, чтобы из числа 7 получалось 0007, из 851 получалось 000851 и т. д. Для этого можно использовать функцию встроенного языка Формат(). Например: ИсходноеЧисло = 13; Результат = Формат(ИсходноеЧисло, " ЧЦ=5; ЧВН=; ЧГ=0" ); //Результа
Как разделить текстовый файл на несколько файлов определенного размера? 0
Бывает необходимо разделить текстовый файл большого размера на несколько маленьких файлов. Ниже представлены функции при помощи которых можно разделить файл : РазделитьФайл( ИмяФайла , РазмерЧасти , Путь ) Разделяет указанный файл на несколько
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.