REGON

REGON (akronim od Rejestr Gospodarki Narodowej) - Krajowy Rejestr Urzędowy Podmiotów Gospodarki Narodowej, rejestr statystyczny prowadzony przez Prezesa Głównego Urzędu Statystycznego. Pod pojęciem REGONu rozumiany jest także Numer REGON, czyli dziewięciocyfrowy numer statystyczny podmiotu gospodarczego w powyższym rejestrze.

Spis treści

[edytuj] Budowa numeru REGON

[edytuj] 9-cyfrowy REGON

Początkowo, REGON był 7-cyfrowy, a numery były nadawane centralnie. Później (ok. 1985-90 r.) rozszerzono REGON na 9 cyfr, gdzie regonom "starym" (7-cyfrowym) po prostu dołożono na początku 2 zera, a nowe zaczęto tworzyć wg klucza: 2 cyfry wyróżnika województwa + 6 cyfr "nru seryjnego" + 1 cyfra kontrolna. Województw było 49 i miały nadane kolejne numery nieparzyste – od 01 (warszawskie) do 97 (zielonogórskie).

[edytuj] Suma kontrolna

Dziewiąta cyfra jest cyfrą kontrolną obliczaną następująco:

Wagi: 8 9 2 3 4 5 6 7

Pierwsze osiem cyfr REGON: 1 2 3 4 5 6 7 8

Wynik: 1*8 + 2*9 + 3*2 + 4*3 + 5*4 + 6*5 + 7*6 + 8*7 = 192

Cyfra kontrolna: 192 mod 11 = 5

Cały REGON: 123456785

W przypadku, gdy mod zwraca 10 za cyfrÄ™ kontrolnÄ… przyjmuje siÄ™ 0.

[edytuj] 14-cyfrowy REGON

Jednostkom organizacyjnym, które mają swoje siedziby w różnych województwach nadaje się REGON 14-cyfrowy (identyfikator jednostki lokalnej). Dziewięć pierwszych cyfr takiego numeru pokrywa się z REGONem jednostki macierzystej. Cyfra kontrolna numeru obliczana jest tym samym sposobem, ale wagi są inne. Ponieważ jeden ze współczynników wagowych wynosi zero to weryfikacja "długiego" REGONu wymaga weryfikacji 9 cyfr z wagami jak dla 9-cyfrowego numeru, a następnie weryfikacji długiego REGONu z innymi wagami.

[edytuj] Suma kontrolna

W przypadku REGONów 14-cyfrowych cyfrę kontrolną oblicza się następująco:

Wagi: 2 4 8 5 0 9 7 3 6 1 2 4 8

Pierwsze trzynaście cyfr REGON: 1 2 3 4 5 6 7 8 5 1 2 3 4

Wynik: 1*2 + 2*4 + 3*8 + 4*5 + 5*0 + 6*9 + 7*7 + 8*3 + 5*6 + 1*1 + 2*2 + 3*4 + 4*8 = 260

Cyfra kontrolna: 260 mod 11 = 7

Cały REGON: 12345678512347

[edytuj] Implementacja algorytmu w języku Python

def check_REGON(regon):
    weights = ( 
        (8, 9, 2, 3, 4, 5, 6, 7, -1),
        (2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8, -1),
        (8, 9, 2, 3, 4, 5, 6, 7, -1, 0, 0, 0, 0, 0), 
    )   
    weights = [table for table in weights if len(table) == len(number)]
 
    regon = [int(n) for n in regon]
 
    for table in weights:
        checksum = sum(n * w for n, w in zip(regon, table)])
        if checksum % 11 % 10 != 0:
            return False
 
    return bool(weights)

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne


porównanie wielkości planet Tenis Live Rolety Śląsk Stemple budowlane bank kredyty mieszkaniowe zakłady bukmacherskie phpbb3 themes Teksty piosenek F1 doradztwo dla hoteli Trance Olsztyn Złomowanie Gadu Gadu manieczki ekwador kick koparki Bułgaria wczasy Karaoke tani kredyt hipoteczny COOLsurf