Стрзаменить() – как грамотно использовать?

Появилась на днях проблема: перестали выгружаться в клиент-банк выписки из-за ошибки недопустимых символов в назначении платежа. Пользователи каким то образом стали вставлять специальные символы “«“, “»“, “ϒ” (спец. символы в данном примере взяты из головы). С полным набором символов Юникода можете ознакомиться на следующем сайте.

СтрЗаменить() - заменяем специальные символы.
СтрЗаменить() – заменяем специальные символы.

Любой программист 1с способен быстро решить данную проблему использую функцию глобального контекста СтрЗаменить():

 СтрЗаменить() - описание функции.
СтрЗаменить() – описание функции.

Казалось бы проблема решена и все довольно! Но что-то мне все равно не нравилось в данном решение: получается чем больше специальных символов придется заменять, тем больше будет строчек кода, что меня не совсем устраивало.

Я решил посмотреть решения в типовых конфигурациях – ведь по-хорошему все уже написано до нас и порой очень грамотно. И верно, я нашел отличное решение в виде одной функции ‘ЗаменитьОдниСимволыДругими’, которое полностью меня устроило. В итоге вместо множества строчек кода мы вызываем всего лишь одну функцию и радуемся:

Все работает как и надо! Данную функцию можно немного модифицировать и сделать более универсальной:

 СтрЗаменить() - в модифицированном варианте.
СтрЗаменить() – в модифицированном варианте.

Ну и как верно замечено в комментариях – можно еще интереснее выкрутиться через ‘соответствие’:

Вот так использую типовую функцию СтрЗаменить() мы можем писать более читаемые и удобные алгоритмы!

0

3 комментария

  1. карабас барабас

    Вариант с двумя массивами плохой в плане кода, еще и требует проверки на количество элементов.

    Для таких ситуаций правильнее использовать объект Соответствие, элементы которого и перебирать в цикле.

    0
    1. Admin (Автор записи)

      Знаю, есть такой вариант: но на 100 процентов не уверен примет ли ключ соответствия любой спец. символ! А так да, тоже хороший вариант!

      0
      1. Admin (Автор записи)

        Все верно, так тоже работает!

        0

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *