В данном кратком материале, привожу несколько типовых методов работы со строками, используя функционал библиотеки стандартных подсистем (БСП), которые я использую повсеместно в своей практике.
Данные возможности точно существуют в версии БСП от 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 // Тип - Число КонецПроцедуры
Преобразовывает в тип число, даже удаляет "лидирующие нули" и "видит" пробелы.
В статье привел наиболее часто используемые мной функции работы со строками, значительно ускоряющие написание доработок или обработок для конфигурации, основанных на библиотеке стандартных подсистем.
Если вам интересен мой практический подход и информация, которую вы сможете реально использовать, вы можете поддержать автора статей любым желаемым способом. Спасибо за прочтение материала.
