gifts2017

Функция очистки наименования справочника

Опубликовал Андрей C (an77) в раздел Программирование - Практика программирования

Данная функция была создана для проверки корректности названий вносимых справочников (как превентивная мера защиты справочника от бардака и дублирования). Может использоваться в для большинства справочников.
Ранее функция представлялась как функция очистки наименований справочника "Контрагенты".


Вызывается перед записью элемента (все равно, нового или существующего). В нее передается наименование элемента, возвращается наименование очищенное.

 

Спасибо за советы Tatitutu, _Xelon_. 

 


Функция ОчиститьНаименованиеСправочника (Наименование) Экспорт
 ИмяЧ = Наименование;
 
 НекорректнаяСтрока = Новый Массив;
 
 //=========Некорректные символы для всех справочников ======================
 НекорректнаяСтрока.Добавить("!"); // !
 НекорректнаяСтрока.Добавить(Символ(34)); // "
 НекорректнаяСтрока.Добавить("№"); // #
 НекорректнаяСтрока.Добавить("$"); // $
 НекорректнаяСтрока.Добавить("%"); // %
 НекорректнаяСтрока.Добавить("&"); // &
 НекорректнаяСтрока.Добавить("'"); // '
 НекорректнаяСтрока.Добавить("("); // (
 НекорректнаяСтрока.Добавить(")"); // )
 НекорректнаяСтрока.Добавить(Символ(42)); // *
 НекорректнаяСтрока.Добавить("+"); // +
 НекорректнаяСтрока.Добавить(","); // ,
 НекорректнаяСтрока.Добавить("-"); // -
  НекорректнаяСтрока.Добавить("."); // .
  НекорректнаяСтрока.Добавить("/"); // /
 НекорректнаяСтрока.Добавить(":"); //
  НекорректнаяСтрока.Добавить(";"); //
 НекорректнаяСтрока.Добавить("  НекорректнаяСтрока.Добавить(">"); //
  НекорректнаяСтрока.Добавить("="); //
  НекорректнаяСтрока.Добавить("?"); //
 НекорректнаяСтрока.Добавить("@"); //
 НекорректнаяСтрока.Добавить("`"); //
 НекорректнаяСтрока.Добавить("\"); //
 НекорректнаяСтрока.Добавить("["); //
 НекорректнаяСтрока.Добавить("]"); //
 НекорректнаяСтрока.Добавить("#"); //
 //=========Общие некорректные символы========================================.

 //=========Некорректные символы для контрагентов ============================
 НекорректнаяСтрока.Добавить("ООО");
 НекорректнаяСтрока.Добавить("ТОВ ");
 НекорректнаяСтрока.Добавить("ОАО");
 НекорректнаяСтрока.Добавить("ВАТ ");
 НекорректнаяСтрока.Добавить("ЗАО");
 НекорректнаяСтрока.Добавить("ЗАТ ");
 НекорректнаяСтрока.Добавить("ЧП");
 НекорректнаяСтрока.Добавить("ГП");
 НекорректнаяСтрока.Добавить("ГОАО");
 НекорректнаяСтрока.Добавить("ДВАТ");
 НекорректнаяСтрока.Добавить("ШАХТА");
 НекорректнаяСтрока.Добавить("КП ");
  //=========Некорректные символы для контрагентов =============================.

 
 //убираем лишние пробелы=====================================================
 ИмяЧ = СокрЛП(ИмяЧ);
 Пока Найти(ИмяЧ, " ") > 0 Цикл
  ИмяЧ = СтрЗаменить(ИмяЧ, " ", " ");
 КонецЦикла;
  //============================================================================
 
 Для СчетчикИмя = 1 По СтрДлина(ИмяЧ) Цикл
  Для Каждого Элемент из НекорректнаяСтрока Цикл
  ДлинаНекорректнаяСтрока = СтрДлина(Элемент);
  Если Врег(Лев(ИмяЧ,ДлинаНекорректнаяСтрока)) = Элемент Тогда
  ИмяЧ = Сред(ИмяЧ, (ДлинаНекорректнаяСтрока+1),(СтрДлина(ИмяЧ)-ДлинаНекорректнаяСтрока));
  ИмяЧ = СокрЛП(ИмяЧ);
  ДлинаИмени = СтрДлина(ИмяЧ);
  КонецЕсли;
  КонецЦикла;
 КонецЦикла;
 
 Возврат ИмяЧ;
 
КонецФункции

 


Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1247673066 2,71Kb
09.12.14
105
.1247673066 2,71Kb 105 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Юрий Тимофеев (Tatitutu) 15.07.09 22:57
Автор ! Посмотри описание своей разработки....Ну как впечатлило ?
Все кто зашел на страницу, "понимают", что Вы работаете на 8-ке давно и плодотворно (потому что "это" ДЛЯ ЛЮБОЙ КОНФИГУРАЦИИ)

А минус я Вам ставлю за код:

ЕрундаВначале = Новый Массив;
//ИМХО уважай других программистов. кто будет читать твой код
2. Ronin_from_Hell (ProkopyukIN) 16.07.09 02:29
да. код конечно жесткий.
3. Андрей C (an77) 16.07.09 20:06
(1) Минус так минус :(
Код "ЕрундаВначале": на момент написания функции это было самое мягкое слово для обозначения перлов бухгалтеров в справочнике! Написал, полегчало!
4. Юрий Тимофеев (Tatitutu) 16.07.09 20:28
5. Андрей C (an77) 16.07.09 21:24
(4) Варианты "ЛишнееВНачале", "ЛевоеВНачале", "НенужноеВНачале", "Шелуха", "ПроверяемыеСимволыНазванияКонтрагентаВНачалеКоторыеНужноУбр­ать", "ПСНКВнКНУ", "КВН", "Л", "Е", "Ё"?
6. Юрий Тимофеев (Tatitutu) 16.07.09 21:29
Сам придумай - ты же автор )))
7. Юрий Тимофеев (Tatitutu) 16.07.09 21:29
и прочитай (1) пост построчно...еще раз
8. Александр Глотов (_Xelon_) 20.07.09 11:23
1. Зачем использовать метод "Вставить" для Массива, если на самом деле смысла в позиции элемента массива нету. Метод "Добавить" тут подходит больше.
2. Когда происходит вырезание из наименования "Ерунды в начале", то не учитывается, что имя может начинаться с пробела. Также не учитывается дублирование "ерунды" (например: две запятые в начале).
3. Не понятно применения двух одинаковых кусков кода по вырезанию из наименования "ерунды". Если это действительно необходимо сделать несколько раз, то можно применить цикл.
4. Цикл по очистке наименования от множественных пробелов почему-то выполняется именно 35 раз. Не больше и не меньше. Даже если этих множественных пробелов в наименовании уже нет. Правильней использовать цикл "Пока Найти(ИмяЧ, " ") > 0 Цикл".
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа