Убрать 0 в строке если он есть и стоит первым

1. 12.10.21 15:58 Сейчас в теме
Как убрать 0 в строке если он есть и стоит первым?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. puzo50 12.10.21 16:04 Сейчас в теме
если лев(строка, 1) = "0" тогда строка = прав(строка, стрдлина(строка)-сколькото) конецесли
3. provadyuga 97 12.10.21 16:04 Сейчас в теме
 Пока Лев(ВашаСтрока, 1) = "0" Цикл 
    ВашаСтрока = Прав(ВашаСтрока, СтрДлина(ВашаСтрока) - 1);
КонецЦикла;
6. antz 12.10.21 16:40 Сейчас в теме
(3) красивше это:

ВашаСтрока = Сред(ВашаСтрока, 2);
4. Оберон 11 12.10.21 16:06 Сейчас в теме
в БП 3.0 есть такой функционал
Пример:
ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДокументОбъект.НомерПервичногоДокумента, Истина, Ложь);


Функция УдалитьЛидирующиеНулиИзНомераОбъекта(Знач НомерОбъекта) Экспорт
	
	ПользовательскийПрефикс = ПользовательскийПрефикс(НомерОбъекта);
	
	Если НомерСодержитСтандартныйПрефикс(НомерОбъекта) Тогда
		
		Если НомерСодержитПятизначныйПрефикс(НомерОбъекта) Тогда
			Префикс = Лев(НомерОбъекта, 5);
			Номер = Сред(НомерОбъекта, 6 + СтрДлина(ПользовательскийПрефикс));
		Иначе
			Префикс = Лев(НомерОбъекта, 3);
			Номер = Сред(НомерОбъекта, 4 + СтрДлина(ПользовательскийПрефикс));
		КонецЕсли;
		
	Иначе
		
		Префикс = "";
		Номер = Сред(НомерОбъекта, 1 + СтрДлина(ПользовательскийПрефикс));
		
	КонецЕсли;
	
	// Удаляем лидирующие нули слева в номере.
	Номер = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(Номер, "0");
	
	Возврат Префикс + ПользовательскийПрефикс + Номер;
КонецФункции
Показать
5. Matveev_VS 135 12.10.21 16:13 Сейчас в теме
Если Лев(<Строка>, 1) = 0 Тогда
    СтрДлина(<Cтрока>)
    Лев(<Cтрока>,СтрДлина(<Cтрока>) - 1)
КонецЕсли
7. pm74 196 12.10.21 20:56 Сейчас в теме
Пока СтрНачинаетсяС(Строка, "0") Цикл
Строка = Сред(Строка,2);
КонецЦикла;
Jogeedae; AnryMc; +2 Ответить
9. AnryMc 811 13.10.21 15:40 Сейчас в теме
(7) Да, век живи - век учись...

Не знал.
10. pm74 196 13.10.21 22:00 Сейчас в теме
(9) синтаксический сахар , просто выглядит более читабельно
при "при наличии отсутствия" регулярок и бедности строковых функций , приходится так извращаться
на питоне например str.lstrip('0') и все
..
но иногда бывают прямо -таки шикарные вещи , взять хотя бы куайн в исполнении ildarovich
С="С="";Л=Лев(С,3);П=Сред(С,3);Сообщить(Л+Л+П+П)";Л=Лев(С,3);П=Сред(С,3);Сообщить(Л+Л+П+П)

или это
8. -AI- 12.10.21 21:30 Сейчас в теме
удаляет все лидирующие символы, в т.ч. префикс
Номер = Сред(Номер,СтрДлина(СтрРазделить(Номер,"123456789")[0])+1);
Jogeedae; rintik; AnryMc; +3 Ответить
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Ведущий разработчик 1С
Москва
зарплата от 250 000 руб.
Полный день

Руководитель проектов 1С
Москва
зарплата от 200 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб.
Полный день