Aplikacija ali datoteka za Excel?
Letos je začel veljati novi plačni sistem v javnem sektorju, ki je povzročil obilico dela. Približno 200 tisoč javnim uslužbencem je bilo treba izračunati nove plače. Da ne bi stotine kadrovskih služb tavalo v temi in izumljalo tople vode, je ministrstvo za javno upravo pripravilo posebno »aplikacijo«. Pogledali smo pod pokrov in – zavzdihnili.
Ena največjih slovenskih administrativnih živali je sistem javnega sektorja, v katerem je plačni del še posebej pomemben in kompleksen. Do konca lanskega leta ga je urejal Zakon o sistemu plač v javnem sektorju (ZSPJS), januarja pa je začel veljati Zakon o skupnih temeljih sistema plač v javnem sektorju (ZSTSPJS). Ta nima le daljšega imena in dvakrat več členov, temveč prinaša tudi novo plačno lestvico, novo razporeditev delovnih mest v plačne razrede in, to je bil eden izmed glavnih ciljev, višje plače. Sprememb je seveda še cel kup, a za ta prispevek niso bistvene.
Kot se za računalniško revijo spodobi, se bomo posvetili problemu prevedbe plač iz starega sistema v novega, ki so ga morali vsi proračunski porabniki izvesti že lani. Večini to ni uspelo, ker ministrstvo za javno upravo (MJU) ni pravočasno ponudilo aplikacije za ta postopek. Skrajni rok je bil do izplačila januarskih plač, ki se zgodi enkrat v februarju, ponekod že 5. v mesecu, drugod pa 10. ali 15.
Kaj je treba storiti
Verjetno gre že iz uvoda v ta prispevek slutiti, da aplikacija MJU ni ravno zgled prijaznosti do uporabnika niti programerskih veščin. A za razumevanje se moramo vendarle prebiti skozi nekaj birokratskih pojasnil. Potrpimo skupaj.
Hrbtenico plačnega sistema tvori plačna lestvica, ki jo je po starem ZSPJS sestavljalo 65 razredov. Prvi razred je bil določen pri 475,66 evra, vsak naslednji pa je štiri odstotke višji, vse do 6.087,86 evra za najvišje politike (1,0465-krat več torej). Vsako delovno mesto ima določen izhodiščni plačni razred in razpon. Novozaposleni se običajno uvrstijo v izhodiščni plačni razred, nato pa z leti in dosežki napredujejo v višje razrede vse do končnega razreda za svoje delovno mesto, ki je vsaj 10 razredov višje. V praksi je scenarijev veliko, saj nekatera delovna mesta poznajo nazive, druga ne, napredovanja so horizontalna (višji plačni razred ob istem nazivu), vertikalna (pridobitev novega naziva in s tem višjega plačnega razreda), obstajajo še premestitve ipd. A osnovna logika je enotna – osnovno plačo določa plačni razred, ki je odvisen od delovnega mesta, naziva in števila napredovanj zaposlenega – zato se tudi sistem imenuje enotni plačni sistem.
Ministrstvo za javno upravo si kot aplikacijo predstavlja Excelov dokument.
To pomeni, da osnovna plača ne more biti poljubna. Kot primer poglejmo delovno mesto mladega raziskovalca, na katerem so zaposleni doktorski študenti na fakultetah, denimo na računalništvu in informatiki. Po ZSPJS je bil mladi raziskovalec uvrščen v 36. razred, kar je prineslo 1.877,01 evra osnovne plače. Naslednja stopnička je bil 37. razred s 1.952,05 evra, kamor je lahko napredoval po treh letih. Takšna stopničastost velja za vsa delovna mesta, so pa dejanske plače potem seveda še precej bolj razdrobljene, ker se k osnovi prištevajo dodatki (na primer za delovno dobo, posebne pogoje dela, delovno uspešnost), nadure, dežurstva ipd., odvisno od delovnega mesta.
Nova plačna lestvica ima 67 razredov, ki se začnejo pri 1.253,90 evra oziroma minimalni plači za 1. razred (v stari je bilo kar 25 razredov pod minimalno plačo) in so razmaknjeni za tri odstotke. Rezultat je pričakovan. Vrednosti razredov – stopnice oziroma predalčki – so v obeh lestvicah drugačne.
V pogajanjih o novem ZSTSPJS pa so se poleg tega dogovorili, da se delovna mesta na novo ovrednotijo, čemur pravijo odprava nesorazmerij. Po stari lestvici so na dan 31. 12. 2024 delovnim mestom dodali nekaj plačnih razredov, odvisno od preteklih sprememb in pogajalske uspešnosti, nato pa so te vrednosti prevedli v novo lestvico v plačni razred, ki je sorazmerno blizu stari vrednosti, nikakor pa ne niže.
V praksi
Poglejmo, kaj se je zgodilo mlademu raziskovalcu v praksi. Na pogajanjih so se dogovorili, da odprava nesorazmerij prinese štiri stare razrede, torej bi bil v 40. razredu (36 + 4), ki mu po ZSPJS ustreza plača 2.195,84 evra. Za nekatera delovna mesta obstaja še dodatna korekcija, ki lahko predstavlja dodatni dvig plačnega razreda ali njegovo znižanje. Zdaj je treba končni stari razred preračunati v novo lestvico. V ZSTSPJS je priloga 4, ki vsebuje preglednico, v kateri novi razred se prevede kateri stari razred. Vidimo, da se 40. razred prevede v novi 22. razred, ki je vreden 2.332,62 evra. To bo nova osnovna bruto plača mladih raziskovalcev.
Že tako zapleteno situacijo, kjer so število razredov za odpravo nesorazmerij in korekcije za vsako delovno mesto različni, rahlo otežijo še napredovanja. Številni javni uslužbenci so že napredovali in niso uvrščeni v izhodiščne razrede, temveč v višje. To pomeni, da bo njihov stari razred za prevedbo višji, torej tudi prevedeni.
Excelovi dokumenti v obliki xslx so odprti standard, ki ga je moč urejati. In seveda odkleniti.
Še večji zaplet pa prinaša prehodna določba, da je dvig plač postopen. Denarja ni neomejeno, zato je prehod raztegnjen do leta 2028. Plače se bodo spremenile v največ šestih obrokih, zadnji bo 1. januarja 2028. Ti obroki ne bodo enakomerni, temveč se izračunajo precej zapleteno. Najprej se izračuna razlika med staro in novo plačo, nato pa obroki znašajo vsaj 12, 12, 12, 15, 15 odstotkov in na koncu preostanek. Besedica vsaj se nanaša na dejstvo, da morajo biti obroki veliki vsaj 100, 100, 70, 50, 100 evrov (četudi presegajo navedeni odstotek) in na koncu preostanek. Želja zakonodajalca je, da se nižje plače uskladijo hitreje (prej kot v šestih obrokih), višje pa kasneje.
In zdaj je treba to ponoviti za približno pet tisoč različnih delovnih mest, ki obstajajo v javnem sektorju. Iz tehničnega opisa bi ustrezen algoritem znal sprogramirati vsak povprečen programer, a javni sektor je zelo raznolik.
Aplikacija?
Javni sektor sestavljajo tako majhne občine kot ogromni mastodonti, denimo univerzitetna klinična centra z več tisoč zaposlenimi. Ponekod je prgišče ljudi zaposlenih na enoznačnih delovnih mestih, drugod imajo ljudje kompleksne pogodbe z delnimi in dopolnilnimi zaposlitvami, na različnih delovnih mestih, včasih celo z različnimi napredovanji.
Zakon optimistično zahteva, da se akti za uvrščanje javnih uslužbencev v nove plačne razrede izdajo oziroma sklenejo najpozneje 30 dni pred začetkom uporabe zakona, torej najpozneje 30. novembra 2024. Tega se ni držalo niti ministrstvo, ki je šele v drugi polovici decembra na svoji spletni strani objavilo »aplikacijo«. Kaj je to?
V novem zakonu tiči 103. člen, ki pompozno napoveduje: Za izvedbo prevedbe in določitve postopne pridobitve pravice do plače v prehodnem obdobju v skladu s tem zakonom proračunski uporabniki obvezno uporabljajo aplikacijo, ki jo pripravi ministrstvo, pristojno za sistem plač v javnem sektorju, in jo objavi na svoji spletni strani. Kadrovske službe v javnem sektorju so zato nestrpno pričakovale omenjeno »aplikacijo«, ki bi jim olajšala delo. Na spletnih straneh MJU se je pojavila šele 20. decembra, ko so se v državi že začenjali novoletni dopusti.
Številni podatki so javni
Poučna stran je Portal plač JS (www.pportal.gov.si/), kjer si lahko ogledamo izplačila po proračunskih porabnikih, delovnih mestih, vire sredstev, različna letna in mesečna poročila. Na njej najdemo tudi uporabne podstrani, denimo katalog vseh delovnih mest z razponi razredov (FDMN), šifrante, registre itd.
SLIKA fdmn.png Na Portalu plač JS najdemo katalog vseh delovnih mest v javnem sektorju.
Fragmentiranost javnega sektorja si je mestoma težko predstavljati, a kot ilustracijo povejmo, da ima praktično vsak proračunski porabnik svojo kadrovsko in računovodsko službo. Na ravni države so sicer posamezne baze, kamor se poročajo številni podatki, ter nekaj skupnih sistemov, denimo zloglasni MFERAC, a do poenotenja je še daleč. Vsi različni porabniki so morali nato prevesti plače vseh svojih zaposlenih, podatke pa so imeli v zelo različnih sistemih. In za to so imeli kvečjemu mesec dni časa (strogo po črki zakona pa niti toliko).
Excel!
Kaj je torej aplikacija? Ministrstvo za javno upravo si kot aplikacijo predstavlja Excelov dokument. Pravzaprav več Excelovih dokumentov. Sprva so se na internetu pojavili trije dokumenti z opisi »Aplikacija – vnos prek šifre delovnega mesta«, »Aplikacija – vnos prek spustnega seznama« in »Rešitev za obdelavo večjega števila vhodnih podatkov«. V vseh primerih je šlo za datoteke XLSX. Ogledate si jih lahko na strani www.gov.si/zbirke/projekti-in-programi/prenova-placnega-sistema-v-javnem-sektorju/. Kasneje so dobile še sorodnike, denimo »Aplikacija za delovna mesta plačne skupine A in B« (ker je za politike in direktorje plačni sistem nekoliko drugačen) in »Aplikacija za spremembe plačnega razreda ali delovnega mesta – vnos prek spustnega seznama« (ker se nekatera delovna mesta ukinejo, nekatera pa na novo ustvarijo).
Oglejmo si torej prvo »aplikacijo«. Gre za Excelov dokument, v katerega vpišemo šifro delovnega mesta, naziv in plačni razred javnega uslužbenca (spomnimo se, ta je odvisen od že doseženih napredovanj). Mimogrede, naziv imajo samo nekatera delovna mesta – npr. visokošolski učitelj je lahko docent, izredni profesor ali redni profesor, medtem ko je asistent z doktoratom mesto brez naziva. Aplikacija je pri tem nedosledna, saj je treba za nekatera delovna mesta, ki nimajo nazivov, vnesti 0, za druga pa 1. Ob napačnem vnosu rezultata ne vrne.
V dobrih 52 tisoč vrsticah so navedena čisto vsa delovna mesta v javnem sektorju (teh je dobrih pet tisoč), z vsemi mogočimi napredovanji (na večini delovnih mest je moč napredovati desetkrat). In to je vse.
Ko te tri podatke vnesemo v celice R2, R3 in R4 (!), se v celicah niže izpiše cel kup podatkov, vključno z odpravo nesorazmerij, novo plačo, višino obrokov za postopni prehod itd. Če se kje zatipkamo, denimo vnesemo nemogoči razred za delovno mesto, se ne izpišejo nobeni podatki.
»Aplikacija« za prevedbo delovnih mest, ki jo je pripravilo MJU.
Takšna rešitev je že na prvi pogled popolnoma neuporabna v večjih sistemih. Predstavljajte si, da morate stokrat vpisati šifro delovnega mesta, naziv in razred uslužbenca! Ali pa tisočkrat. Potem pa vse rezultate skopirati v vzorec aneksa, ki je na spletni strani objavljen kot Wordov dokument.
K sreči so bili na MJU dovolj daljnovidni, da so objavili tudi »rešitev za obdelavo večjega števila vhodnih podatkov«. Gre za nekoliko drugačno Excelovo datoteko, v kateri na enem listu (z imenom vhod) podatke za več zaposlenih vpišemo vsakega v svojo vrstico (šifro, naziv, razred), na listu z imenom izhod pa se izpišejo isti podatki kot v prejšnjem Excelovem dokumentu, le da v vsaki vrstici za svojega zaposlenega. Obstaja tudi tretji list Sheet1, o katerem več v nadaljevanju. Če torej iz kadrovskega sistema, kakršnegakoli že ima organizacija, izvozimo seznam zaposlenih v primerni obliki in ga skopiramo v ta dokument, bomo dobili tabelarični izpis prevedbe.
Kako bo to ogromno tabelo s podatki za vse uslužbence organizacija pretvorila v posamezne anekse (kot Wordov dokument), ministrstvo ni razložilo. Tu se morajo kadrovske službe znajti same, denimo s Pythonom ali kakšnim makrojem, ali poklicati zunanjega izvajalca, čigar kadrovski sistem uporabljajo.
V drobovju
Excelovi dokumenti, ki jih je objavilo MJU, so sila nenavadni. »Paketna rešitev« je velika 10 MB in ne vsebuje nobenega makroja ali drugih skriptnih jezikov. Večina celic je zaklenjenih, tretji list z imenom Sheet1 pa je na prvi pogled prazen. A zanimivo, stolpci do AG so skriti, vsebuje pa 52.261 (!) vrstic.
Zato smo seveda pokukali vanj. Excelovi dokumenti v obliki xslx so odprti standard, ki ga je moč urejati. Vsak dokument xlsx je v resnici arhiv, ki ga zna odpreti tudi program 7-Zip. Če ga odpremo, bomo zagledali tri mape (docProps, xl in _rels). Zanimiva je mapa xl, ki ima tudi podmapo worksheet. V njej najdemo tri datoteke: sheet1.xml, sheet2.xml in sheet3.xml. To so besedilne datoteke, ki jih zna odpreti Notepad++. Z njo lahko pregledamo vso vsebino ali pa preprosto odstranimo zaščito.
Datoteke XLSX so arhiv, ki ga lahko odpremo.
Čisto na koncu datoteke bomo namreč našli zapis . Če ga pobrišemo in nato datoteko nazaj »zazipamo« v arhiv xlsx, bo dokument odklenjen. Enako ponovimo za vse liste.
Zaščiten dokument xlsx lahko odklenemo tako, da izbrišemo oznako za zaščito.
MJU je na enak način »zaščitil« vse »aplikacije«, ki smo jih seveda odklenili in si jih pobliže pogledali. Izkaže se, da v njih ni nobenega algoritma ali inteligentnega preračuna, temveč gre za ekvivalent telefonskega imenika. V dobrih 52 tisoč vrsticah so navedena čisto vsa delovna mesta v javnem sektorju (teh je dobrih pet tisoč), z vsemi mogočimi napredovanji (na večini delovnih mest je moč napredovati desetkrat). In to je vse.
V »aplikaciji« je v resnici ogromen seznam 52.260 kombinacij delovnih mest in napredovanj.
Za vsako kombinacijo delovnega mesta in plačnega razreda (doseženega z napredovanjem) so navedene vse potrebne informacije: šifra, opis, stari razred, novi razred, odprava nesorazmerij, korekcije, stara plača, nova plača, vse tranše dvigovanja itd. Na listu izhod pa je v 9.999 vrsticah (več javnih uslužbencev torej nima noben proračunski porabnik) funkcija, ki prebere vnos iz istoležne vrstice na listu Vhod ter nato za ustrezno šifro poišče prilegajočo se vrstico na listu Sheet1. Z drugimi besedami, gre za preprosto funkcijo VLOOKUP, ki se sprehodi skozi imenik delovnih mest in napredovanj. Na analogni način so zgrajene tudi »druge aplikacije« – Excelovi dokumenti –, ki takisto vsebujejo imenik vseh mogočih kombinacij in VLOOKUP.
Ministrstvu moramo verjeti, da je izračun narejen pravilno. Aplikacija, ki je sicer »zaklenjena«, nima nobenih kontrol, saj ne uporablja nobenega algoritma. Če je kjerkoli v 50 tisoč vrsticah surovih podatkov napaka, bo napaka tudi v izračunu. Predvidevati je, da na MJU tega niso počeli na roke, temveč so uporabili kakšno funkcijo, ko so izračunali vseh 50 tisoč vrstic, a tega ne moremo vedeti.
Neverjetno je, da ministrstvo z imenom »aplikacija« imenuje Excelov dokument, v katerega je treba ročno skopirati podatke, nato pa iz njih ustvariti anekse in podatke prenesti v kadrovske sisteme, ne da bi predlagalo še postopek za ta del.
Načelno si lahko tudi vsak zaposleni sorazmerno preprosto izračuna svojo novo plačo. Pogledati mora v panožno kolektivno pogodbo, koliko razredov je dobil zaradi odprave nesorazmerij, nato pa v prilogo 4 ZSTSPJS, kam se prevedejo. Izračun šestih tranš lahko opravi s kalkulatorjem.
Problem ni VLOOKUP
Seveda se lahko nasmihamo ob bizarnih »rešitvah« MJU, a to ni srž problema. Navsezadnje opravijo svoje delo, dasiravno ne elegantno in uporabniku naložijo nekaj (ali pa veliko) dodatnega dela. Problemi tičijo drugje.
Več sogovornikov nam je potrdilo, da z različnih ministrstev, pod okrilje katerih spada posamezni proračunski porabnik, ne morejo dobiti nobenega pisnega odgovora. Po pisnih vprašanjih jih uradniki z ministrstva pokličejo in razložijo, kako se izvaja prevedba, a pisnih sledi ne želijo pustiti.
Naj povzamemo:
Neodgovorno je, da je zakon predpisal izdajo aneksov do konca novembra, ministrstvo pa je šele konec decembra objavilo aplikacijo, ki jo je treba v ta namen obvezno uporabiti.
Neokusno je, da so številna zasebna podjetja organizirala plačljive seminarje o uvajanju novega plačnega sistema, na katerih so predavali zaposleni na ministrstvu.
Neverjetno je, da ministrstvo z imenom »aplikacija« imenuje Excelov dokument, v katerega je treba ročno skopirati podatke, nato pa iz njih ustvariti anekse in podatke prenesti v kadrovske sisteme, ne da bi predlagalo še postopek za ta del.
Nedopustno je, da ministrstvo javno in pregledno ne objavi zbira z vsemi preračuni, da bi jih lahko notranji ali zunanji izvajalci ustrezno implementirali v velikih sistemih, temveč ga skriva v zaklenjenem Excelovem dokumentu.
In neizračunljivo je, koliko ur se bo po nepotrebnem porabilo za pretipkavanje številk iz enega dokumenta v drugega, iz prvega zbira v drugega.