Путь к удалению числовых префиксов в номерах документа 1C!

Привет, друзья! Сегодня я хочу обсудить одну тему, которая не раз заставляла меня содрогаться в многогранном мире программирования — это удаление префиксов из строк. Знаете, когда у вас есть строка, а в ней лишнего, как у некоторых людей на ужине? Так вот, наш герой — это функция ОбработатьНомерДокумента, которая справляется с этой задачей, как настоящий задумчивый мастер.

Удаление префиксов

Итак, представьте себе: вам нужно передать номер документа на внешний веб-сервис, а он как надо, с лишними префиксами, которые даже ваша бабушка не помнит, где взяла. При этом встроенные процедуры отказываются с этим справляться, как с универсальной таблеткой от головы, которая на самом деле оказывается сахарной. Ха! Вот здесь и приходит на помощь наш код.


    Функция ОбработатьНомерДокумента(ВхНомер)
        Номер = ВхНомер ;   
        НовыйНомер = "";
        СтрДлина=СтрДлина(Номер);
        
        Для Ном = 0 По СтрДлина-1 Цикл
            тКод      = КодСимвола(Номер, СтрДлина - Ном);
            ЭтоЧисло = тКод > 47 И тКод < 58; //цифры от 0 до 9
            
            Если ЭтоЧисло Тогда 
                НовыйНомер = Сред(Номер,СтрДлина - Ном,1) + НовыйНомер; 
            Иначе
                Прервать;
            КонецЕсли;
        КонецЦикла;

        Возврат СтрЗаменить(Формат(Число(НовыйНомер),"ЧРГ='-'"),"-","");
    КонецФункции
    

Как работает этот магический код? Начнем с простого: берём входящий номер документа и, как строгое судейское жюри, отслеживаем каждый символ. Мы идем справа налево, проверяем, является ли символ числом (я имею в виду, не колкие выражения о жизни, а именно цифры!). Когда мы находим первый нечисловой символ, тут-то и наступает момент истины — прерываем цикл и у нас осталась только «чистая» часть номера!

В конце мы используем СтрЗаменить, чтобы убрать ведущие нули и разделители разрядов (да, эти «-» совершенно не к месту!). И вот, в итоге, мы получаем просто номер документа, который без проблем можно передать на веб-сервис. Потому что, согласитесь, сквозь дебри лишнего, мы ищем лишь то, что нужно!

Так что, ребята, если у вас есть строки, полные лишних префиксов и ненужных символов, протестируйте эту функцию. Надеюсь, она избавит вас от лишних головных болей и сделает вашу жизнь чуточку проще! Удачи вам и программирование!

Оставьте комментарий

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.