Получение нормального представления Юрлица
Добавлено: Пн авг 08, 2011 8:00 pm
Часто требуется автоматически преобразовать наименование Юрлица к стандартному шаблону, например ООО "МояКомпания" в МояКомпания, ООО
- Код: Выделить всё
//
Функция ПолучитьНормальноеПредставлениеЮрФизЛица(Наименование) Экспорт
НовоеНаименование = "";
НаименованиеОбработанное = СокрЛП(Наименование);
ПереченьРазделителей = "., """;
//Разбиваем наименование на части
КоличествоЧастей = ПолучитьКоличествоЧастей (НаименованиеОбработанное, "., """);
АббревиатураВидаЮрФизЛица = "";
АббревиатураНайдена = Ложь;
МассивСлов = Новый Массив;
ПорядковыйНомерЧастей = 0;
Для н = 1 По КоличествоЧастей Цикл
ТекущаяЧасть = ПолучитьЧасть (НаименованиеОбработанное, "., """, н);
Если ЗначениеЗаполнено(ТекущаяЧасть) Тогда
ПорядковыйНомерЧастей = ПорядковыйНомерЧастей + 1;
Если СловоявляетсяАббревиатуройВидаЮрФизЛица(ТекущаяЧасть) И
(ПорядковыйНомерЧастей = 1 ИЛИ н = КоличествоЧастей) И Не АббревиатураНайдена Тогда
АббревиатураВидаЮрФизЛица = ВРег(ТекущаяЧасть);
АббревиатураНайдена = Истина;
Иначе
МассивСлов.Добавить(ТекущаяЧасть);
КонецЕсли;
Конецесли;
КонецЦикла;
Если МассивСлов.Количество() > 0 Тогда
НовоеНаименование = ПолучитьСтрокуИзМассива(МассивСлов);
Если АббревиатураНайдена Тогда
НовоеНаименование = НовоеНаименование + ", " + АббревиатураВидаЮрФизЛица;
КонецЕсли;
КонецЕсли;
Возврат НовоеНаименование;
КонецФункции
//
Функция СловоявляетсяАббревиатуройВидаЮрФизЛица(Слово) Экспорт
СловоОбработанное = СокрЛП(НРег(Слово));
Если СловоОбработанное = "ооо" ИЛИ
СловоОбработанное = "ип" ИЛИ
СловоОбработанное = "чп" ИЛИ
СловоОбработанное = "оао" ИЛИ
СловоОбработанное = "зао" ИЛИ
СловоОбработанное = "фгу" ИЛИ
СловоОбработанное = "гуз" ИЛИ
СловоОбработанное = "ноу" ИЛИ
СловоОбработанное = "нп" ИЛИ
СловоОбработанное = "фгуп" ИЛИ
СловоОбработанное = "фкп" ИЛИ
СловоОбработанное = "муз" Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
//
Функция ПолучитьСтрокуИзМассива(Массив, Разделитель = " ") Экспорт
СтрокаРезультат = "";
ПорядковыйНомерЭлемента = 0;
Для каждого Элемент Из Массив Цикл
ПорядковыйНомерЭлемента = ПорядковыйНомерЭлемента + 1;
Если ПорядковыйНомерЭлемента = 1 Тогда
СтрокаРезультат = Строка(Элемент);
Иначе
СтрокаРезультат = СтрокаРезультат + Разделитель + Строка(Элемент);
КонецЕсли;
КонецЦикла;
Возврат СтрокаРезультат;
КонецФункции