Как удалить префикс и лидирующие нули?

Подскажите универсальный способ как убрать из номера документа префикс и лидирующие нули.

5

Ответы

Лучший ответ buketoff
#1, 20 февраля 2020 15:42

Процедура ОбработатьНомерДокумента()

       НомерБезПрефикса = Объект.ВходящийНомер; 
       Пока Найти(НомерБезПрефикса,"0") <> 1 Цикл
               НомерБезПрефикса = Сред(НомерБезПрефикса,2); //удаляет лидирующие ненули
       КонецЦикла;

       НомерБезНулей = НомерБезПрефикса;
       Пока Найти(НомерБезНулей,"0") = 1 Цикл
                НомерБезНулей = Сред(НомерБезНулей,2); //удаляет лидирующие нули
       КонецЦикла;
       Объект.ОбработанныйНомер = НомерБезНулей;

КонецПроцедуры


Валерий Дяченко
#2, 21 февраля 2020 13:34

Не сработает, если номер забил все 0, например ПФ-12345678


Bezeus
#3, 21 февраля 2020 13:46

Сработает, если префикс определять по символу "-", а не "0"


Валерий Дяченко
#4, 21 февраля 2020 15:01

Тогда уж так наверное:

Пока Найти("0123456789", Лев(НомерБезПрефикса, 1)) = 0 Цикл
		НомерБезПрефикса = Сред(НомерБезПрефикса, 2); //удаляет лидирующие ненули
	КонецЦикла;
	НомерБезНулей = НомерБезПрефикса;
	Пока Найти(НомерБезНулей, "0") = 1 Цикл
		НомерБезНулей = Сред(НомерБезНулей,2); //удаляет лидирующие нули
	КонецЦикла;


FastCode
#5, 07 мая 2020 08:14

Автор: ildarovich

Первый вариант:

Функция ЧислоСправа(Стр, К = 0)
   Возврат ?(Цел(КодСимвола(Прав("!" + Стр, К + 1)) / 5 - 10.5), Формат(Число("0" + Прав(Стр, К)), "ЧГ="), ЧислоСправа(Стр, К + 1))
КонецФункции

Второй вариант:

Функция ЧислоСправа1(Номер)
   Возврат Формат(Число("0" + Сред(Номер, СтрДлина(СокрП(
   СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Номер
   , "0", " "), "1", " "), "2", " "), "3", " "), "4", " "), "5", " "), "6", " "), "7", " "), "8", " "), "9", " "))) + 1)), "ЧГ=")
КонецФункции


См. также

Удалить префикс объекта и лидирующие нули (ЗУП 3)

Удалить префикс, лидирующие нули

Номер без префикса и лидирующих нулей

УдалитьЛидирующиеНулиИзНомераОбъекта (БСП)

Убрать префикс и лидирующие нули

НомерНаПечать (БСП)

Получает номер документа для вывода на печать; из номера удаляются префиксы и лидирующие нули

Сократить лидирующие нули

УдалитьПрефиксыИзНомераОбъекта (БСП)

Модератору