База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как убрать префикс в строке или документе 1С? › Ответ в теме: Как убрать префикс в строке или документе 1С?
Чтобы убрать определённый префикс из строки в 1С, можно сделать так:
1. Если префикс всегда в начале строки и фиксированный, просто проверить и удалить его через функцию НачинаетсяС и Сред:
|
1 2 3 4 5 6 7 |
Функция УбратьПрефикс(Строка, Префикс) Если Строка.НачинаетсяС(Префикс) Тогда Возврат Строка.Сред(Строка.Количество() - Префикс.Количество() + 1); Иначе Возврат Строка; КонецЕсли; КонецФункции |
Пример вызова:
|
1 |
НоваяСтрока = УбратьПрефикс("ABC_12345", "ABC_"); // вернёт "12345" |
2. Если префикс может быть где-то в середине или нужно убрать все вхождения — используйте замену:
|
1 2 3 |
Функция УбратьПрефиксВСезде(Строка, Префикс) Возврат СтрЗаменить(Строка, Префикс, ""); КонецФункции |
3. Если префикс сложный, например с разными вариантами, можно использовать регулярные выражения:
|
1 2 3 4 5 6 7 8 9 10 11 |
Функция УбратьПрефиксРегуляркой(Строка, Префикс) РегЭксп = Новый COMОбъект("VBScript.RegExp"); РегЭксп.Pattern = "^" + Префикс; // префикс в начале строки РегЭксп.IgnoreCase = Истина; РегЭксп.Global = Ложь; Если РегЭксп.Test(Строка) Тогда Возврат РегЭксп.Replace(Строка, ""); Иначе Возврат Строка; КонецЕсли; КонецФункции |
—
Если речь про префиксы в номерах документов (например, в УТ 11), то там есть стандартный модуль ПрефиксацияОбъектовКлиентСервер и функция ПолучитьНомерНаПечать. Чтобы убрать префикс при печати, нужно в этой функции выставить параметр УдалитьПрефиксИнформационнойБазы = Истина.
Пример из типовой конфигурации:
|
1 2 3 4 5 |
Функция ПолучитьНомерНаПечать(НомерОбъекта, УдалитьПрефиксИнформационнойБазы = Ложь, УдалитьПользовательскийПрефикс = Ложь) Экспорт // Добавляем, чтобы префикс не выводился УдалитьПрефиксИнформационнойБазы = Истина; // остальной код... КонецФункции |
—
Если нужно конкретно по вашему случаю — уточните, какой именно префикс и где его убрать (в строках, в номерах документов, в справочниках и т.п.).
Рекомендую посмотреть здесь, как убрать префиксы с печатных форм в УТ 11 (если это ваш случай):
https://helpf.pro/faq8/view/1515.html