В данном кратком материале, привожу несколько типовых методов работы со строками, используя функционал библиотеки стандартных подсистем (БСП), которые я использую повсеместно в своей практике.
Данные возможности точно существуют в версии БСП от 3.0. Обзор будет основан на изучении общих модулей именно этой версии. А по-факту - сейчас актуальная БСП - это от версии 3.1.6.
Полезные функции работы со строками с примерами
Указанные функции выполняются как на клиенте, так и на сервере. Условно обозначим их как функция 1 .... функция 14. Всего я выделяю 14 основных и интересных функций. На каждую функцию привожу пример использования и описание типа возвращаемого значения.
Функция 1. РазложитьСтрокуВМассивПодстрок(МояСтрока, Разделитель, ПропускатьПустыеСтроки, СокращатьНепечатаемыеСимволы)
Тип возвращаемого значения: Массив.
Данная функция раскладывает строку в массив (аналог СтрЗаменить с применением Символы.ПС). Пример использования на клиенте:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "Иванов И.И.;г.Новокузнецк;Специалист 1С;01.05.1975";
// Разделитель ";",
Итог = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(МояСтрока,";",Истина,Истина);
Сообщить(Итог[0]); //Иванов И.И.
КонецПроцедуры
Возвращает массив "Итог" с элементами, по разделителю ";" (в данном случае), плюс к этому сокращает непечатаемые символы.
Функция 2. ПодставитьПараметрыВСтроку(ШаблонСтроки,Параметр1, ..... ,Параметр9)
Тип возвращаемого значения: Строка.
Еще одна очень удобная функция, которая позволяет вставить до 9 параметров вашу строку. Работает так:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "Иванов И.И.;%1;Специалист 1С;%2";
Итог = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(МояСтрока,"г.Новокузнецк","01.01.1975");
Сообщить(Итог); //Иванов И.И.;г.Новокузнецк;Специалист 1С;01.01.1975
КонецПроцедуры
Вместо %1 .... %9 - подставляем значения и получаем необходимую строку.
Функция 3. ВставитьПараметрыВСтроку(ШаблонСтроки, Параметры)
Тип возвращаемого значения: Строка.
&НаКлиенте
Процедура Команда1(Команда)
СтруктураПараметров = Новый Структура("Фамилия, Квалификация", "Иванов И.И.", "Специалист 1с");
МояСтрока = "[Фамилия] подтвердил свою квалификацию сертификатом [Квалификация].";
Итог = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(МояСтрока, СтруктураПараметров);
Сообщить(Итог); //Иванов И.И. подтвердил свою квалификацию сертификатом Специалист 1с.
КонецПроцедуры
Параметры заключаем в квадратные скобочки в шаблоне строки "МояСтрока".
Функция 4. ПараметрыИзСтроки(Знач СтрокаПараметров, ";")
Тип возвращаемого значения: Структура.
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "ИНН=4567435676, КПП=554554545, ТЕЛ=5454455, ПОЧТА=mail@mail.ru ";
Итог = СтроковыеФункцииКлиентСервер.ПараметрыИзСтроки(МояСтрока,",");
Сообщить(Итог.ИНН); //4567435676
Сообщить(Итог.КПП); //554554545
Сообщить(Итог.ТЕЛ); //5454455
Сообщить(Итог.ПОЧТА); //mail@mail.ru
КонецПроцедуры
Удобно, но данную функцию я не особо часто использовал. Но, нужно знать про нее. Сэкономит время, если что!
В коде у меня стоит разделитель ",".
Функция 5. РазложитьСтрокуВМассивСлов(Знач Значение, РазделителиСлов = Неопределено)
Тип возвращаемого значения: Массив.
Функция, которая позволит разделить вам строку, используя несколько разделителей одновременно.
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "ИНН=4567435676, КПП=554554545;ТЕЛ=5454455;ПОЧТА=mail@mail.ru ";
Итог = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивСлов(МояСтрока,",;");
Сообщить(Итог[0]); //ИНН=4567435676
Сообщить(Итог[1]); //КПП=554554545
Сообщить(Итог[2]); //ТЕЛ=5454455
Сообщить(Итог[3]); //ПОЧТА=mail@mail.ru
КонецПроцедуры
Я одновременно использую два разделителя - это запятая и точка с запятой.
Функция 6. ТолькоЛатиницаВСтроке(СтрокаПроверки, УчитыватьРазделителиСлов, ДопустимыеСимволы = "")
Тип возвращаемого значения: Булево.
Функция, позволяющая проверить на корректность заполнения какой-нибудь строки. Возможно использовать допустимые символы.
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "Ivanova Marina, Ж";
Итог = СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(МояСтрока, Ложь, "Ж");
Сообщить(Итог); // Да
КонецПроцедуры
В примере будет возврат Истины, поскольку пол, буква "Ж" - добавлен в допустимые символы. Все просто.
Функция 7. СократитьДвойныеКавычки(Знач Значение)
Тип возвращаемого значения: Строка.
Удобная функция, которая удалит двойные кавычки в начале и конце строки.
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = """Привет всем. Данная строка будет выведена без ""двойных"" кавычек""";
Итог = СтроковыеФункцииКлиентСервер.СократитьДвойныеКавычки(МояСтрока);
Сообщить(Итог); //Привет всем. Данная строка будет выведена без "двойных" кавычек
КонецПроцедуры
Функция 8. ЭтоУникальныйИдентификатор(Знач Значение)
Тип возвращаемого значения: Булево.
Проверка, является ли значение уникальным идентификатором. Использует маску-шаблон:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "sfsdf-sdfsd-sfsff";
Итог = СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(МояСтрока);
Сообщить(Итог); //Нет (Ложь)
КонецПроцедуры
Функция 9. ДополнитьСтроку(Значение, ДлинаСтроки, Символ = "0", Режим = "Слева")
Тип возвращаемого значения: Строка.
Добивает строку слева или справа до определенной длины заданными символами. Вот так:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "427380";
Итог = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(МояСтрока, 12, 0, "Слева");
Сообщить(Итог); //000000427380
КонецПроцедуры
Не нужно заморачиваться с типовым функционалом платформы Лев(), Прав().
Функция 10. ПреобразоватьЧислоВРимскуюНотацию(АрабскоеЧисло, ИспользоватьКириллицу = Истина)
Тип возвращаемого значения: Строка.
Функция преобразовывает арабские цифры (обычные) в римские. Используя кириллицу - римское число будет выведено "русскими" буквами:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = 59;
Итог = СтроковыеФункцииКлиентСервер.ПреобразоватьЧислоВРимскуюНотацию(МояСтрока);
Сообщить(Итог); //Л1Х
КонецПроцедуры
Функция 11. ПреобразоватьЧислоВАрабскуюНотацию(РимскоеЧисло, ИспользоватьКириллицу = Истина)
Тип возвращаемого значения: Число.
Обратная процедура преобразования в арабские цифры. Здесь, опять используем кириллицу, римское число перед обработкой заключили в кавычки:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "Л1Х";
Итог = СтроковыеФункцииКлиентСервер.ПреобразоватьЧислоВАрабскуюНотацию(МояСтрока);
Сообщить(Итог); //59
КонецПроцедуры
Функция 12. СтрокаЛатиницей(Знач Значение)
Тип возвращаемого значения: Строка.
Функция, позволяющая перекодировать строку в латиницу, не городя огород:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "Иванов Иван Иванович. Привет всем!";
Итог = СтроковыеФункцииКлиентСервер.СтрокаЛатиницей(МояСтрока);
Сообщить(Итог); //Ivanov Ivan Ivanovich. Privet vsem!
КонецПроцедуры
Функция 13. СтрокаВДату(Знач Значение)
Тип возвращаемого значения: Дата.
Также мега-полезная функция:
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "04.07.2020";
Итог = СтроковыеФункцииКлиентСервер.СтрокаВДату(МояСтрока);
Сообщить(Итог); //04.07.2020 0:00:00 // Тип - Дата
КонецПроцедуры
Функция 14. СтрокаВЧисло(Знач Значение)
Тип возвращаемого значения: Число.
Функция так же капитально избавляет от "головной боли" и придумывания "велосипедов":
&НаКлиенте
Процедура Команда1(Команда)
МояСтрока = "000 1 256 888.55";
Итог = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(МояСтрока);
Сообщить(Итог); //1 256 888,55 // Тип - Число
КонецПроцедуры
Преобразовывает в тип число, даже удаляет "лидирующие нули" и "видит" пробелы.
В статье привел наиболее часто используемые мной функции работы со строками, значительно ускоряющие написание доработок или обработок для конфигурации, основанных на библиотеке стандартных подсистем.
Если вам интересен мой практический подход и информация, которую вы сможете реально использовать, вы можете поддержать автора статей любым желаемым способом. Спасибо за прочтение материала.
Комментарии (5)
vis_inet
16.12.2022 10:12Подобные функции, конечно, полезные, но пока сильно не все используемые на предприятиях конфигурации содержат БСП.
OnlySlon
Мои глаза....