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));
Иначе
Возврат НомерСтрокой;
КонецЕсли;
КонецФункции
ИтоговаяСтрока = УбратьНули(Номер);

1С убрать лидирующие нули

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *