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

Различные полезные вещи для программистов 1С

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

Сообщение julyp » Вс авг 07, 2011 11:00 pm

Код: Выделить всё
//
Функция    ПолучитьНомерНаПечать (Знач Номер) Экспорт
   
   Номер = СокрЛП(Номер);
   
   ДлинаНомера = СтрДлина(Номер);

   НомерНаПечать = "";
   Нули = "";
   
   Для н = 0 По ДлинаНомера - 1 Цикл
      ТекущийСимвол = Сред(Номер, ДлинаНомера - н, 1);
      
      Если ТолькоЦифрыВСтроке(ТекущийСимвол) Тогда
         Если ТекущийСимвол = "0" Тогда
            ЗафиксированНоль = Истина;
         Иначе
            ЗафиксированНоль = Ложь;
         КонецЕсли;
      Иначе
         Прервать;      
      КонецЕсли;
      
      Если НЕ ЗафиксированНоль Тогда
         НомерНаПечать = ТекущийСимвол + Нули + НомерНаПечать;
         Нули = "";
      Иначе
         Нули = Нули + "0"
      КонецЕсли;
      
   КонецЦикла;
   
   Возврат НомерНаПечать;
КонецФункции
julyp
Администратор
 
Сообщения: 127
Зарегистрирован: Вт май 25, 2010 6:55 am

Re: Получение номера на печать без лидирующих нулей и префикса

Сообщение julyp » Вс авг 07, 2011 11:01 pm

Также привожу используемую функцию ТолькоЦифрыВСтроке


Код: Выделить всё
// (Знач СтрокаПроверки, УчитыватьЛидирующиеНули = Истина, УчитыватьПробелы = Истина) Функция проверяет наличие в строке только цифр
//
// Параметры
//  СтрокаПроверки - Строка для проверки только цифр
//
// Возвращаемое значение:
//   Булево
//
Функция    ТолькоЦифрыВСтроке (Знач СтрокаПроверки, УчитыватьЛидирующиеНули = Истина, УчитыватьПробелы = Истина) Экспорт
   
   Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
      Возврат Ложь;
   КонецЕсли;
   
   Если НЕ ЗначениеЗаполнено(СтрокаПроверки) Тогда
      Возврат Истина;
   КонецЕсли;
   
   Если НЕ УчитыватьПробелы Тогда
      СтрокаПроверки = СтрЗаменить(СтрокаПроверки, " ", "");
   КонецЕсли;
   
   Если НЕ УчитыватьЛидирующиеНули Тогда
      НомерПервойЦифры = 0;
      Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
         НомерПервойЦифры = НомерПервойЦифры + 1;
         КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
         Если КодСимвола <> 48 Тогда
            Прервать;
         КонецЕсли;
      КонецЦикла;
      СтрокаПроверки = Сред(СтрокаПроверки, НомерПервойЦифры);
   КонецЕсли;
   
   Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
      КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
      Если НЕ (КодСимвола >= 48 И КодСимвола <= 57) Тогда
         Возврат Ложь;
      КонецЕсли;
   КонецЦикла;

   Возврат Истина;
   
КонецФункции
julyp
Администратор
 
Сообщения: 127
Зарегистрирован: Вт май 25, 2010 6:55 am


Вернуться в Полезные вещи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron