Как убрать лидирующие нули в номере Документа Часто при разработке печатных форм или отчетов, нужно номера документов вида 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 ) ) ;
Иначе
Возврат НомерСтрокой;
КонецЕсли ;
КонецФункции
ИтоговаяСтрока = УбратьНули( Номер) ;
Опубликовано на сайте: https://HelpF.pro Прямая ссылка: https://HelpF.pro/faq/view/1701.html