"+titlePre+esc(e.t)+"";
+ h+="Ответственный: "+esc(nl2c(e.r))+"
";
+ h+="Филиал: "+brs[e.b]+" | Срок: "+e.due;
+ if(e.done&&e.done!=="\u2014")h+=" | Исполнено: "+e.done;
+ h+="
";
+ h+="Статус: ";
+ var sk=["warn","late","done"];
+ for(var si=0;si"+stn[sk[si]]+""
+ }
+ h+="
";
+ if(e.h&&e.h.length){
+ h+="История: ";
+ for(var hi=0;hi"+esc(e.h[hi])+""}
+ h+=" "
+ }
+ h+="AI-анализ: "+esc(e.ai||"\u2014")+"
";
+ h+="Отчётность:
";
+ h+="";
+ h+="Количество: ";
+ var now=new Date();
+ var curMonth=now.getMonth();
+ h+="Месяц: ";
+ var mnames=["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"];
+ for(var mi=0;mi<12;mi++){
+ h+=""+mnames[mi]+" "
+ }
+ h+="
";
+ h+="
";
+ h+="Файлы: ";
+ if(cu&&cu.bg===0){
+ for(var bi=0;bi"+esc(brs[bi])+":
";
+ for(var fi=0;fi"+esc(f.n)+" ("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+") Скачать Удалить "
+ }
+ }catch(ex){}
+ }
+ }
+ }else{
+ var bk=fk+"_b"+(cu?cu.bg:0);
+ var fd=localStorage.getItem(bk);
+ if(fd){
+ try{
+ var fa=JSON.parse(fd);
+ for(var fi=0;fi"+esc(f.n)+" ("+(f.s?Math.round(f.s/1024)+"KB":"")+", "+esc(f.u||"")+" "+esc(f.d||"")+") Скачать Удалить "
+ }
+ }catch(ex){}
+ }
+ }
+ h+="
";
+ h+="";
+ if(subIdx===undefined&&e.sub&&e.sub.length>0){
+ h+="Подпункты: ";
+ var ss=localStorage.getItem("ss_"+e.id);
+ for(var si=0;si "+esc(e.sub[si].l)+") "+esc(e.sub[si].t)+"
"
+ }
+ h+=""
+ }
+ h+="Сохранить ";
+ h+="Отмена
";
+ h+="";
+ showModal(h)
+}
+
+function showModal(html){
+ var mb=document.getElementById("modal_body");
+ var m=document.getElementById("modal");
+ if(!mb||!m)return;
+ mb.innerHTML=html;
+ m.style.display="flex"
+}
+function closeModal(){
+ document.getElementById("modal").style.display="none"
+}
+
+function saveEvModal(id){
+ var sel=document.getElementById("evs_"+id);
+ var inq=document.getElementById("evq_"+id);
+ var inn=document.getElementById("evn_"+id);
+ for(var i=0;i3145728){alert("\u0424\u0430\u0439\u043B \u0431\u043E\u043B\u044C\u0448\u0435 3MB");return}
+ var fr=new FileReader();
+ var subKey=curSub!==null?"_s"+curSub:"";
+ var brKey="_b"+(cu?cu.bg:0);
+ fr.onload=function(){
+ var key="sf_"+id+subKey+brKey;
+ var arr=[];
+ var ex=localStorage.getItem(key);
+ if(ex){try{arr=JSON.parse(ex)}catch(e){}}
+ var d=new Date();
+ arr.push({n:f.name,s:f.size,d:d.getDate()+"."+String(d.getMonth()+1).padStart(2,"0")+"."+d.getFullYear(),u:cu?cu.n:"",data:fr.result});
+ try{localStorage.setItem(key,JSON.stringify(arr))}catch(e){alert("\u041E\u0448\u0438\u0431\u043A\u0430 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F")}
+ openEv(id,curSub!==null?curSub:undefined)
+ };
+ fr.readAsDataURL(f)
+}
+function dlFile(id,idx){
+ var key="sf_"+id+(curSub!==null?"_s"+curSub:"")+"_b"+(cu?cu.bg:0);
+ var ex=localStorage.getItem(key);
+ if(!ex)return;
+ try{
+ var arr=JSON.parse(ex);
+ var f=arr[idx];
+ if(!f||!f.data)return;
+ var a=document.createElement("a");
+ a.href=f.data;
+ a.download=f.n;
+ document.body.appendChild(a);
+ a.click();
+ document.body.removeChild(a)
+ }catch(e){}
+}
+function delFile(id,idx){
+ if(!confirm("\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B?"))return;
+ var key="sf_"+id+(curSub!==null?"_s"+curSub:"")+"_b"+(cu?cu.bg:0);
+ var ex=localStorage.getItem(key);
+ if(!ex)return;
+ try{
+ var arr=JSON.parse(ex);
+ arr.splice(idx,1);
+ if(arr.length){localStorage.setItem(key,JSON.stringify(arr))}
+ else{localStorage.removeItem(key)}
+ openEv(id,curSub!==null?curSub:undefined)
+ }catch(e){}
+}
+
+function saveBackup(){
+ saveEv();
+ var blob=new Blob([JSON.stringify(evs,null,2)],{type:"application/json"});
+ var a=document.createElement("a");
+ a.href=URL.createObjectURL(blob);
+ a.download="backup_"+new Date().toISOString().slice(0,10)+".json";
+ a.click()
+}
+function loadBackup(inp){
+ if(!inp.files||!inp.files[0])return;
+ var fr=new FileReader();
+ fr.onload=function(){
+ try{
+ var d=JSON.parse(fr.result);
+ if(!d||!d.length){alert("\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442");return}
+ var out=[];
+ for(var i=0;i\u0412\u0441\u0435\u0433\u043E \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u0439
"+total+"
";
+ html+="\u0418\u0441\u043F\u043E\u043B\u043D\u0435\u043D\u043E
"+done+"
"+Math.round(done/total*100)+"%
";
+ html+="\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E
"+late+"
";
+ html+="";
+ document.getElementById("an_stats").innerHTML=html;
+
+ var problem=[];
+ for(var i=0;i"+pt[i].id+" "+esc(pt[i].t)+" "+brs[pt[i].b]+" "+stn[pt[i].s]+" "+(pt[i].dr<=0?"\u041F\u0440\u043E\u0441\u0440\u043E\u0447\u0435\u043D\u043E":pt[i].dr+" \u0434\u043D.")+" "
+ }
+ ph+="";
+ document.getElementById("an_top").innerHTML=ph
+ }else{
+ document.getElementById("an_top").innerHTML="\u041F\u0440\u043E\u0431\u043B\u0435\u043C \u043D\u0435\u0442
"
+ }
+}
+
+function getFilteredEvs(){
+ var period=document.getElementById("rp_period").value;
+ var statusF=document.getElementById("rp_status").value;
+ var year=parseInt(document.getElementById("rp_year").value,10)||2026;
+ var month=parseInt(document.getElementById("rp_month").value,10)||0;
+ var months=[];
+ if(period==="month"){months=[month]}
+ else if(period==="q1"){months=[0,1,2]}
+ else if(period==="q2"){months=[3,4,5]}
+ else if(period==="q3"){months=[6,7,8]}
+ else if(period==="q4"){months=[9,10,11]}
+ else if(period==="h1"){months=[0,1,2,3,4,5]}
+ else if(period==="h2"){months=[6,7,8,9,10,11]}
+ else if(period==="year"){months=[0,1,2,3,4,5,6,7,8,9,10,11]}
+ var r=[];
+ for(var i=0;iПлан производственной безопасности QAZAQtelecom HSE за "+month+"."+year+"
N Мероприятие Срок Статус Кол-во Примечание / Файлы ";
+ for(var i=0;i=0?"_s"+si:"";
+ for(var bk=0;bk"+esc(f.n)+" ("+Math.round((f.s||0)/1024)+" KB"+", "+esc(f.u||"")+")"
+ }}catch(ex){}
+ }
+ }
+ if(fhtml)fhtml=""+fhtml+"
";
+ hh+=""+e.id+" "+esc(e.t)+" "+e.due+" "+stn[e.s]+" "+(e.q||"")+" "+notes+fhtml+" "
+ }
+ hh+="
Отчёт сформирован: "+new Date().toLocaleDateString("ru-RU")+"