Выгрузка адресных данных сотрудника без аббревиатур

1. SpiritASN 16.09.15 17:35 Сейчас в теме
Нужно выгрузить из справочника сотрудники адреса без аббревиатур (т.е. без типов адресов: город, село, деревня, улица, переулок). Нужно вывести только название. Помогите!!!
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. jack19 148 16.09.15 18:52 Сейчас в теме
(1) SpiritASN, Причем тут аббревиатуры? Наверное "сокращения"? Тогда можно использовать функцию глобального модуля глРазложить():
Процедура УбратьСокращение(Стр,Уровень,СпрСокр)
	Список = глРазложить(Стр," ");
	Стр = "";
	Для Сч = 1 По Список.РазмерСписка()-1 Цикл
		Стр =  Стр + ?(Сч=1,""," ") + Список.ПолучитьЗначение(Сч);
	КонецЦикла;
	Сокр = Список.ПолучитьЗначение(Список.РазмерСписка());
	Если СпрСокр.НайтиПоНаименованию(Уровень+Сокр,0,1) = 0 Тогда
		Стр = Стр + " " + Сокр;
	КонецЕсли;
КонецПроцедуры

Процедура Сформировать()
	СпрСокр = СоздатьОбъект("Справочник.SOCRBASE");
	АдресСписком = глРазложить(Сотрудник.АдресПрописка);
	Индекс = АдресСписком.ПолучитьЗначение(2);
	
	Регион = АдресСписком.ПолучитьЗначение(3);
	УбратьСокращение(Регион,"1",СпрСокр);
	
	Район = АдресСписком.ПолучитьЗначение(4);
	УбратьСокращение(Район,"2",СпрСокр);
	
	Город = АдресСписком.ПолучитьЗначение(5);
	УбратьСокращение(Город,"3",СпрСокр);
	
	НасПункт = АдресСписком.ПолучитьЗначение(6);
	УбратьСокращение(НасПункт,"4",СпрСокр);

	Улица = АдресСписком.ПолучитьЗначение(7);
	УбратьСокращение(Улица,"5",СпрСокр);

	Дом = АдресСписком.ПолучитьЗначение(8);
	Корпус = АдресСписком.ПолучитьЗначение(9);
	Квартира = АдресСписком.ПолучитьЗначение(10);
	
	Сообщить(Индекс+","+Регион+","+Район+","+Город+","+НасПункт+","+Улица+","+Дом+","+Корпус+","+Квартира);
КонецПроцедуры
Показать
SpiritASN; +1 Ответить
4. alexdm 16.09.15 21:23 Сейчас в теме
СтрЗаменить Вам в помощь... Ну или типа того, что в (2)
5. SpiritASN 17.09.15 10:13 Сейчас в теме
(2) jack19, Спасибо отлично работает.

Я так понял что этот блок:
Сокр = Список.ПолучитьЗначение(Список.РазмерСписка());
Если СпрСокр.НайтиПоНаименованию(Уровень+Сокр,0,1) = 0 Тогда
Стр = Стр + " " + Сокр;
КонецЕсли;
нужен для случаев, если в названии нет сокращений, чтобы не допустить стирания наименования?

Спасибо, очень помогли вовремя )
6. jack19 148 17.09.15 10:44 Сейчас в теме
3. falcon 16.09.15 18:58 Сейчас в теме
помогаем

предлагаю начать со словаря Даля
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот