1С: Получить название и код региона по почтовому индексу
Может пригодится кому, если у кого как у меня не получается воспользоваться стандартным функционалом БСП:
1 |
АдресныйКлассификаторСлужебный.ОпределитьРегионПоИндексу |
Лично у меня например конфигурация ругается в 211 строчке, что «Регион.Сокращение» нет такого параметра:
Посему навелосипедил свой вариант:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
&НаСервере Функция ПолучитьРегионПоИндексу(индекс) экспорт Регионы=Новый Массив(); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",01,"Республика Адыгея (Адыгея)","385")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",02,"Республика Башкортостан","450-453")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",03,"Республика Бурятия","670-671")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",04,"Республика Алтай","649")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",05,"Республика Дагестан","367-368")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",06,"Республика Ингушетия","386")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",07,"Кабардино-Балкарская Республика","360-367")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",08,"Республика Калмыкия","358-359")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",09,"Карачаево-Черкесская Республика","369")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",10,"Республика Карелия","185-186")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",11,"Республика Коми","167-169")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",12,"Республика Марий Эл","424-425")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",13,"Республика Мордовия","430-431")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",14,"Республика Саха (Якутия)","677-678")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",15,"Республика Северная Осетия - Алания","362-363")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",16,"Республика Татарстан (Татарстан)","420-423")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",17,"Республика Тыва","667-668")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",18,"Удмуртская Республика","426-427")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",19,"Республика Хакасия","655")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",20,"Чеченская Республика","364-366")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",21,"Чувашская республика - Чувашия","428-429")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",22,"Алтайский край","656-659")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",23,"Краснодарский край","350-354")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",24,"Красноярский край","660-663,647-648")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",25,"Приморский край","690-692")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",26,"Ставропольский край","355-357")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",27,"Хабаровский край","680-682")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",28,"Амурская область","675-676")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",29,"Архангельская область","163-165")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",30,"Астраханская область","414-416")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",31,"Белгородская область","308-309")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",32,"Брянская область","241-243")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",33,"Владимирская область","600-602")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",34,"Волгоградская область","400-404")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",35,"Вологодская область","160-162")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",36,"Воронежская область","394-397")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",37,"Ивановская область","153-155")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",38,"Иркутская область","664-668,669")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",39,"Калининградская область","236-238")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",40,"Калужская область","248-249")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",41,"Камчатский край","683-684,688")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",42,"Кемеровская область - Кузбасс","650-654")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",43,"Кировская область","610-613")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",44,"Костромская область","156-157")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",45,"Курганская область","640-641")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",46,"Курская область","305-307")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",47,"Ленинградская область","187-188")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",48,"Липецкая область","398-399")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",49,"Магаданская область","685-686")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",50,"Московская область","140-144")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",51,"Мурманская область","183-184")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",52,"Нижегородская область","603-607")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",53,"Новгородская область","173-175")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",54,"Новосибирская область","630-633")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",55,"Омская область","644-646")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",56,"Оренбургская область","460-462")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",57,"Орловская область","302-303")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",58,"Пензенская область","440-442")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",59,"Пермский край","614-619")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",60,"Псковская область","180-182")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",61,"Ростовская область","344-347")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",62,"Рязанская область","390-391")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",63,"Самарская область","443-446")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",64,"Саратовская область","410-413")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",65,"Сахалинская область","693-694")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",66,"Свердловская область","620-624")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",67,"Смоленская область","214-216")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",68,"Тамбовская область","392-393")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",69,"Тверская область","170-172")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",70,"Томская область","634-636")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",71,"Тульская область","300-301")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",72,"Тюменская область","625-627")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",73,"Ульяновская область","432-433")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",74,"Челябинская область","454-457")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",75,"Забайкальский край","672-674,687")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",76,"Ярославская область","150-152")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",77,"Город Москва","101-135")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",78,"Город Санкт-Петербург","190-199")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",79,"Еврейская автономная область","679")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",83,"Ненецкий автономный округ","166")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",86,"Ханты-Мансийский автономный округ - Югра","628")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",87,"Чукотский автономный округ","689")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",89,"Ямало-Ненецкий автономный округ","629")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",90,"Запорожская область","")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",91,"Республика Крым","295-298")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",92,"Город Севастополь","299")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",93,"Донецкая Народная Республика","")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",94,"Луганская Народная Республика","")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",95,"Херсонская область","")); Регионы.Добавить(Новый Структура("Код,Наименование,Диапазоны",99,"Город Байконур","468")); ПервыйТриЦифрыИндекса = Число(Лев(Индекс, 3)); для каждого стр из Регионы цикл диапазон=СтрРазделить(стр.Диапазоны,"-"); если диапазон.Количество()=1 тогда дначало=Число(диапазон[0]); дконец=Число(диапазон[0]); иначе дначало=Число(диапазон[0]); дконец=Число(диапазон[1]); конецесли; если ПервыйТриЦифрыИндекса>=дначало и ПервыйТриЦифрыИндекса<=дконец тогда возврат стр; конецесли; конеццикла; возврат неопределено; КонецФункции |
Тупо, в лоб. Но ничего умнее быстро не придумал