Каталог решений - Возможности работы со строками при помощи БСП, которые должен знать каждый программист

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

В наличии

Переходим на следующий уровень работы со строками, уходим от типовых возможностей платформы. Узнаем, как применить функционал БСП конфигурации.

Категория:

Описание

Давайте перейдем уже на новый уровень работы со строками и уйдем от типовых скудных возможностей платформы.

В данном кратком обзоре, я приведу несколько мега-удобных "полезняшек" и "ускоряшек" работы со строками, используя функционал библиотеки стандартных подсистем (БСП), которые я использую повсеместно в своей практике. В обзоре приведу не все функции и возможности, а только самые полезные с моей точки зрения.

Пора все-таки отказываться от использования только типовых функций платформы.

 

Определение версии БСП

Первым шагом определим, включена ли библиотека стандартных подсистем в вашу конфигурацию, а так же ее версию.

Для этого напишем такой небольшой код во внешней обработке:

// Создаем кнопочку "Команда 1" на УФ

&НаКлиенте
Процедура Команда1(Команда)
    ПоказатьВерсиюБСП();
КонецПроцедуры

&НаСервере
Процедура ПоказатьВерсиюБСП()

 МояСтрока = "Версия библиотеки: %1";
 Сообщить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(МояСтрока,СтандартныеПодсистемыСервер.ВерсияБиблиотеки()));

КонецПроцедуры

В мою конфигурацию включена версия БСП 3.0.3.130. Могу использовать функционал работы со строками этой полезной библиотеки.

 

Полезные функции работы со строками с примерами

Указанные функции выполняются как на клиенте, так и на сервере. Условно обозначим их как функция 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(Команда)

МояСтрока = """Привет всем. Данная строка будет выведена без ""двойных"" кавычек""";
Итог = СтроковыеФункцииКлиентСервер.СократитьДвойныеКавычки(МояСтрока);
Сообщить(Итог); //Привет всем. Данная строка будет выведена без "двойных" кавычек

КонецПроцедуры

Функция такая

Функция СократитьДвойныеКавычки(Знач Значение) Экспорт
	
	Пока СтрНачинаетсяС(Значение, """") Цикл
		Значение = Сред(Значение, 2); 
	КонецЦикла; 
	
	Пока СтрЗаканчиваетсяНа(Значение, """") Цикл
		Значение = Лев(Значение, СтрДлина(Значение) - 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 // Тип - Число

КонецПроцедуры

Преобразовывает в тип число, даже удаляет "лидирующие нули" и "видит" пробелы.

 

В статье привел наиболее часто используемые мной функции работы со строками, значительно ускоряющие написание доработок или обработок для конфигурации, основанных на библиотеке стандартных подсистем.

Я привел описание 14 удобных функций библиотеки стандартных подсистем работы со строками, использование которых значительно ускорит процесс разработки, вот они:

 

1. РазложитьСтрокуВМассивПодстрок(МояСтрока, Разделитель, ПропускатьПустыеСтроки, СокращатьНепечатаемыеСимволы)

2. ПодставитьПараметрыВСтроку(ШаблонСтроки,Параметр1, …..  ,Параметр9)

3. ВставитьПараметрыВСтроку(ШаблонСтроки, Параметры)

4. ПараметрыИзСтроки(СтрокаПараметров, Разделитель)

5. РазложитьСтрокуВМассивСлов(Значение, РазделителиСлов)

6. ТолькоЛатиницаВСтроке(СтрокаПроверки, УчитыватьРазделителиСлов, ДопустимыеСимволы = "")

7. СократитьДвойныеКавычки(Значение)

8. ЭтоУникальныйИдентификатор(Значение)

9. ДополнитьСтроку(Значение, ДлинаСтроки, Символ = "0", Режим = "Слева")

10. ПреобразоватьЧислоВРимскуюНотацию(АрабскоеЧисло, ИспользоватьКириллицу = Истина)

11. ПреобразоватьЧислоВАрабскуюНотацию(РимскоеЧисло, ИспользоватьКириллицу = Истина)

12. СтрокаЛатиницей(Значение)

13. СтрокаВДату(Значение)

14. СтрокаВЧисло(Значение)

 

Конечно, в БСП есть еще несколько функций для удобства работы со строками, но они в основном максимально-приближены к типовым функциям платформы.

Данный небольшой обзор 14 функций написан, используя версию БСП 3.0.3.130. Версия платформы 1С Предприятия 8.3.16.1063. Спасибо за внимание!

 

П.С. Старайтесь использовать БСП, не изобретайте велосипеды! Все уже придумано за вас!

Так же прошу ознакомиться с моей статьей Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0

 

has been added to your cart:
Оформление заказа