Моят адрес не е къща или улица… Размисли върху адресен класификатор
В рамките на тази статия ще се опитаме да се справим с този странен справочник от гледна точка на програмист. Материалът може да бъде полезен, например, в случаите, когато имате нужда от:
- коригира обработката на зареждането на класификатора в IB;
Директорията "AddressAbbreviations" има два атрибута: ниво (нивото на обекта от регистъра) и абревиатура (съкращението, използвано в регистъра).
Примери за справочни елементи
Непериодичният информационен регистър "AddressClassifier" има 7 измерения и 4 ресурса.
Например, за елемента от 5-то ниво Адигея Респ, Майкоп, sdt. Ера д.п., ул. Дружби:
Ресурсите от тип низ съхраняват стойности на елементи, съответстващи на кода на измерване: име, съкращение, индекс (пощенски), алтернативни имена.
Водещият X се пропуска с еднобитов код (нулата не се записва).
100 000 000 000 000 000 000 000 - Република Адигея
Необходимо ниво за всички дъщерни елементи. Реалната дължина е 1 знак за едноцифрени кодове, 2 за двуцифрени кодове.
Замесени са кодове 1-89 + 99 - Байконур
*Y - родителски цифри
100 300 000 000 000 000 000 000 - – Адигея Респ., Красногвардейски район
Произволни кодове от 000 до 999.
000 до 061 са активирани.
Да не се бърка с района на града.
100 000 100 000 000 000 000 000 Република Адигея, Майкоп (не се отнася за никоя област)
Не се използва за федералните градове Москва, Санкт Петербург. Но се използва за градове, административно подчинение в състава им, например. Зеленоград
100 000 100 300 000 000 000 000 - Република Адигея, Майкоп, селище Гавердовски
(селото е подчинено на града)
Използва се за обозначаване на всеки от нас. селища (вкл. селища от градски тип), некато градове.
Активно се използват съкращения: np / smt и др.
100 000 100 000 020 000 000 000 - Република Адигея, ул. Майкоп Абрикосовая.
Използва се за обозначаване на улици, алеи и др.
За градове с федерално значение, ако кодът на града (подчинен) / нас. точка не е посочена, отнася се за самия град, иначе за нас. параграф.
100 000 100 000 210 001 000 000 - Република Адигея, Майкоп ул. Верещагин.
*H - нечетни номера на къщи
** запис на формата H (20-998) говори за всички четни къщи, започвайки от 20-ти и „не обещава“ присъствието на номер на къща 998.
*** Номера на сгради/сгради, букви и т.н. също могат да бъдат криптирани.
Регистърът не съдържа конкретни номера на къщи. Използва се само за избиране на групи от къщи с различни пощи. индекси в рамките на улицата. Ако индексът е еднакъв за цялата улица, това детайлизиране не се прилага.
Пълният код е уникален в целия класификатор.
Регистърът предоставя набор от ресурси:
Име - името на географски обект или група от номера на къщи
Съкращение - използва се за съкратено (понякога пълно) обозначаване на типове обекти, а не за съкращения на имена. Дешифрирането се извършва чрез намиране на съвпадение в директорията "Адресни съкращения"
Пощенски код - пощенски код, съответстващ на географски обект. Може да се случи на различни нива на йерархията, но най-точното ще бъде на по-ниското ниво. Например Санкт Петербург 190000, Сестрорецк (град, подчинен на Санкт Петербург) 197706 и къщите по улица Мосина могат да имат два индекса 197706 и 197704
7 800 000 000 006 890 000 000 000
7 800 000 000 006 900 000 000 000
700 900 000 100 020 000 000 000
ул. Калинина, ул. Балкарская, ж.к.
За елементкласификатор 1 000 001 000 0021 0001 000000 Република Адигея, Майкоп ул. Верещагин. H(1-127),H(2-140)
- Да определим дължината на кода - 24 знака. Под регионалния код се разпределя 1 знак. Намираме региона с код 1. Пълният код е 100000000000000000000000 - Република Адигея
- Следващите 3 цифри са регионалния код. Тук 000 не е приложимо.
- Следващите 3 цифри са кода на града. Тук 001. Намираме елемента с код 1000001. Пълният код е 100000100000000000000000 - Майкоп.
- Следващите 3 цифри са населено място. Тук 000 не е приложимо.
- Следващите 4 цифри са кода на улицата. Тук е 0021. Намираме елемента с код 10000010000021. Пълният код е 100000100000210000000000 - ул. Верещагин.
- Последната от използваните цифри е условният код на къщата. Той е обозначен като 0001. Пълният код е 100000100000210001000000. Той има индекс 385002, за разлика от 100000100000210002000000, за къщи на улицата. Верешчагин с индекс 385008.
За манипулации с данни от класификатора е удобно да се използват експортни процедури и функции на общия модул "Управление на информация за контакти". Ето някои от тях.
Функция GetFullName(ItemCodeValue, StartDetailLevel = 1, EndDetailLevel = 6)
Ямало-Ненецки автономен окръг, град Ноябрьск, ул. Советская, 90A,94,96A,98A,107 СГРАДА
Процедура GetBy AddressElementCodeItsComponents(AddressElementCode, Region, District, City, Locality, Street, House)
- Декомпозира записа в регистъра на класификатора (елемент с кода AddressElementCode) на компоненти. Резултатите ще бъдат предадени на аргументните променливи Регион, Област, Град, Селище, Улица, Къща
GetIndex(стойност за име на регион, стойност за име на район, стойност за име на град, стойност за име на местност, стойност за име на улица,Value House Number, Value Housing Number)
- определя индекса за прехвърляния район, област, град, населено място, улица, къща и сграда.
Във формата на списъка със записи на информационния регистър, Класификатор на адреси, се показва пълният код, разделен на триади. Не забравяйте, че такова разделение не съответства на разгрупирането на кодовите цифри по компоненти!
При подготовката на статията са използвани описания на обекти от типични конфигурации за 1C:Enterprise 8.2.