Подскажите универсальный способ как убрать из номера документа префикс и лидирующие нули.
Процедура ОбработатьНомерДокумента()
НомерБезПрефикса = Объект.ВходящийНомер;
Пока Найти(НомерБезПрефикса,"0") <> 1 Цикл
НомерБезПрефикса = Сред(НомерБезПрефикса,2); //удаляет лидирующие ненули
КонецЦикла;
НомерБезНулей = НомерБезПрефикса;
Пока Найти(НомерБезНулей,"0") = 1 Цикл
НомерБезНулей = Сред(НомерБезНулей,2); //удаляет лидирующие нули
КонецЦикла;
Объект.ОбработанныйНомер = НомерБезНулей;
КонецПроцедуры
Не сработает, если номер забил все 0, например ПФ-12345678
Сработает, если префикс определять по символу "-", а не "0"
Тогда уж так наверное:
Пока Найти("0123456789", Лев(НомерБезПрефикса, 1)) = 0 Цикл
НомерБезПрефикса = Сред(НомерБезПрефикса, 2); //удаляет лидирующие ненули
КонецЦикла;
НомерБезНулей = НомерБезПрефикса;
Пока Найти(НомерБезНулей, "0") = 1 Цикл
НомерБезНулей = Сред(НомерБезНулей,2); //удаляет лидирующие нули
КонецЦикла;
Автор: ildarovich
Первый вариант:
Функция ЧислоСправа(Стр, К = 0)
Возврат ?(Цел(КодСимвола(Прав("!" + Стр, К + 1)) / 5 - 10.5), Формат(Число("0" + Прав(Стр, К)), "ЧГ="), ЧислоСправа(Стр, К + 1))
КонецФункции
Второй вариант:
Функция ЧислоСправа1(Номер)
Возврат Формат(Число("0" + Сред(Номер, СтрДлина(СокрП(
СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Номер
, "0", " "), "1", " "), "2", " "), "3", " "), "4", " "), "5", " "), "6", " "), "7", " "), "8", " "), "9", " "))) + 1)), "ЧГ=")
КонецФункции