Skoncujte s nepřehlednými a nekonečnými úložišti a vsaďte na digitální archiv

2. 9. 2024

Sdílet

Digitální archiv
Autor: Software602
Digitální archiv
Stalo se to asi každému, kdo podniká – stoprocentně víte, že informace, kterou potřebujete obratem dodat úřadům nebo klientovi, je obsažena v některém starším dokumentu. Dokonce znáte jeho název i klíčové slovo, podle něhož jej v úložišti vyhledat. Přesto se to nedaří a vás napadne, že je čas na konsolidaci.

Řešením pro vás může být digitální archiv, díky kterému rychle vyhledáte každý podklad, zajistíte plynulý chod firmy, a navíc vyhovíte celé řadě nároků, které podnikatelům ukládá v oblasti archivace zákon.

Papír versus nuly a jedničky

V každém podnikání přijde čas, kdy dokumenty svým množstvím přesáhnou schopnost se v nich přirozeně orientovat a tvrdě popřou známé rčení, že „… inteligent zvládne chaos“. V případě, že pracujete s množstvím papírových dokumentů, je digitalizace cestou, jak zajistit přehled a dohledatelnost jednotlivých dokumentů a jejich dostupnost včetně řízení práv přístupu. Zároveň je i příležitostí, jak ušetřit skladové prostory a také zachovat čitelnost listin, které degradují, pokud je nemáte uloženy v prostorách s řízeným prostředím. Zvláště u dokumentů, jež musíte archivovat několik let, počínaje evidenčními listy zaměstnanců (tři roky) přes účetní doklady (pět let) až po mzdové listy (45 let), může být nečitelnost, poškození, nebo dokonce zničení značným problémem. Převodem do digitální podoby vám právě tato starost o fyzickou existenci dokumentů zcela odpadne. A nemáte-li momentálně kapacitu (personální nebo finanční) převést do digitální podoby „minulost“ vaší společnosti, můžete přechod k bezpapírovému archivu zahájit s dokumenty aktuálními. Již toto rozhodnutí vám do budoucna přinese úsporu prostoru i financí.  

Dokument archivovaný versus zálohovaný

I malá firma má dnes svoje místo, kam centrálně ukládá elektronické dokumenty. Častou chybou je ovšem domněnka, že jde o dostatečné řešení i v případě například daňové kontroly. „Musíme si uvědomit, že záloha dokumentů není totéž, co archivace dokumentů, tak jak ji požaduje dnešní legislativa. Elektronický dokument musí splňovat řadu kritérií. Jedním z nich je třeba jeho neměnnost či původnost. I když lze archivování dokumentů zajistit na běžných cloudových úložištích, jejich funkcionalita v tomto ohledu není nativní. Tu nabízí digitální archiv, který je navíc schopen automaticky zajišťovat platnost a ověřitelnost elektronických podpisů po celou dobu archivace dokumentu,“ říká Martin Vondrouš, business development manager společnosti Software602, která se dlouhodobě zaměřuje na digitalizaci procesů a dokumentů ve firmách i státní správě. Stojí například za více než 13 miliony digitálně podepsaných dokumentů v roce 2023.

Základním požadavkem na elektronický dokument (originální nebo papírový, konvertovaný do elektronické podoby), který archivujeme, je zachování jeho čitelnosti, věrohodnosti původu a neporušitelnosti obsahu. To znamená, že dokument musí být opatřen elektronickým podpisem nebo pečetí s elektronickým časovým razítkem. Tyto zabezpečovací prvky pak prokazatelně garantují původnost dokumentu, čas jeho vzniku, legální rámec a zajistí také jeho integritu. Tím to ovšem nekončí, protože technická platnost časového razítka je pět let. Je tedy vhodné se o dokument starat v rámci dlouhodobé archivace a zajistit jeho dlouhodobou platnost a ověřitelnost.

Cyber25

Archiv versus úložiště

Digitální archiv oproti běžným úložištím nabízí nástroje, které automaticky zajistí, že uložený dokument splní náležitosti požadované zákonem s ohledem na dlouhodobou archivaci. Například nástroje Sofa a Formflow od Software602 pracují s tzv. aktivní péčí. Při uložení do archivu dokument opatří všemi legislativními náležitostmi a následně hlídají platnost el. podpisů či pečetí včetně obnovy časového razítka, skartační lhůty apod. V elektronickém archivu od Software602 je navíc možné fulltextově vyhledávat podle klíčových slov, doby vzniku, podpisovatele, data podpisu a řady dalších metadat. „Náš elektronický archiv neslouží pouze pro dlouhodobou archivaci, funguje i jako centrální úložiště, na které lze navázat další nástroje, jako jsou elektronický podpis vybraných souborů, kompletní HR agenda a podobně,“ doplňuje Martin Vondrouš.

Digitální archiv představuje možnost, jak uchovat všechny dokumenty na jednom místě a postupně jeho funkcionalitu využít pro další firemní procesy. Jedním z nich je třeba oběh interních dokumentů. V digitálním archivu si můžete snadno ověřit, zda všichni zaměstnanci přečetli důležitá bezpečnostní nařízení. Každý z nich pak může seznámení s obsahem dokumentu potvrdit i digitálním podpisem.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »