Initial commit: AgroTO marketing landing (static, Nginx in Docker)

This commit is contained in:
admin
2026-04-30 10:55:57 +03:00
commit fda77e04a0
16 changed files with 5574 additions and 0 deletions
+584
View File
@@ -0,0 +1,584 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Документация — АгроТО</title>
<meta name="description" content="Полная техническая документация платформы АгроТО: установка, модули, роли, интеграции, API.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<style>
:root {
--g50:#f2f8f4;--g100:#dff0e6;--g200:#b8ddc6;--g300:#82c49d;--g400:#4a9e64;
--g500:#2d8049;--g600:#246639;--g700:#1e5a33;--g800:#174829;--g900:#0f2f1b;
--ink:#111917;--ink2:#2d3b34;--ink3:#6b7f74;
--white:#ffffff;--bg:#f7f9f7;--bg2:#f0f4f1;--sand:#dde5de;
--r1:8px;--r2:12px;--r3:16px;
--sh1:0 1px 4px rgba(0,0,0,.06);--sh2:0 4px 16px rgba(0,0,0,.08);
--t:.18s ease;
--sidebar:260px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;color:var(--ink);background:var(--white);line-height:1.6}
a{color:var(--g600);text-decoration:none}
a:hover{color:var(--g800)}
/* NAV */
nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
border-bottom:1px solid var(--sand);padding:0 max(24px,calc((100vw - 1160px)/2));
display:flex;align-items:center;justify-content:space-between;height:60px}
.nav-logo{display:flex;align-items:center;gap:8px;font-family:'Onest',sans-serif;font-weight:600;font-size:1rem;color:var(--ink)}
.nav-mark{width:28px;height:28px;border-radius:7px;background:var(--g700);display:flex;align-items:center;justify-content:center}
.nav-links-right{display:flex;align-items:center;gap:16px}
.nav-links-right a{font-size:0.85rem;color:var(--ink2)}
.btn-sm{padding:7px 16px;border-radius:var(--r1);font-size:0.82rem;font-weight:600;background:var(--g700);color:white;transition:var(--t)}
.btn-sm:hover{background:var(--g900);color:white}
.doc-badge{display:inline-flex;align-items:center;gap:5px;background:var(--g50);border:1px solid var(--g200);
color:var(--g700);font-size:0.72rem;font-weight:600;padding:3px 10px;border-radius:99px}
/* LAYOUT */
.doc-layout{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:calc(100vh - 60px);max-width:1200px;margin:0 auto;padding:0 24px}
/* SIDEBAR */
.doc-sidebar{border-right:1px solid var(--sand);padding:32px 0 64px;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}
.doc-sidebar::-webkit-scrollbar{width:4px}
.doc-sidebar::-webkit-scrollbar-thumb{background:var(--sand);border-radius:2px}
.sidebar-section{margin-bottom:28px}
.sidebar-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--ink3);padding:0 24px;margin-bottom:8px;display:block}
.sidebar-link{display:block;padding:6px 24px;font-size:0.85rem;color:var(--ink2);border-left:2px solid transparent;transition:var(--t)}
.sidebar-link:hover{color:var(--g700);background:var(--g50)}
.sidebar-link.active{color:var(--g700);border-left-color:var(--g500);background:var(--g50);font-weight:500}
/* CONTENT */
.doc-content{padding:48px 48px 96px;max-width:780px}
.doc-content h1{font-family:'Onest',sans-serif;font-size:2rem;font-weight:700;color:var(--ink);margin-bottom:12px}
.doc-content h2{font-family:'Onest',sans-serif;font-size:1.3rem;font-weight:600;color:var(--ink);margin:48px 0 16px;padding-top:48px;border-top:1px solid var(--sand)}
.doc-content h2:first-of-type{margin-top:32px;padding-top:0;border-top:none}
.doc-content h3{font-size:1rem;font-weight:600;color:var(--ink);margin:28px 0 10px}
.doc-content p{font-size:0.92rem;color:var(--ink2);line-height:1.75;margin-bottom:14px}
.doc-content ul,.doc-content ol{padding-left:20px;margin-bottom:14px}
.doc-content li{font-size:0.92rem;color:var(--ink2);line-height:1.75;margin-bottom:4px}
.doc-lead{font-size:1rem;color:var(--ink3);margin-bottom:32px;line-height:1.7}
.doc-divider{height:1px;background:var(--sand);margin:40px 0}
/* CALLOUTS */
.callout{border-radius:var(--r2);padding:16px 20px;margin:20px 0;font-size:0.88rem;line-height:1.65}
.callout-info{background:var(--g50);border-left:3px solid var(--g400);color:var(--ink2)}
.callout-warn{background:#fffbf0;border-left:3px solid #f0a500;color:#5a4200}
.callout strong{font-weight:600}
/* BADGES / ROLES */
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.role-card{background:var(--bg2);border:1px solid var(--sand);border-radius:var(--r2);padding:16px 18px}
.role-card h4{font-size:0.88rem;font-weight:600;color:var(--ink);margin-bottom:6px}
.role-card p{font-size:0.82rem;color:var(--ink3);line-height:1.55;margin:0}
.tag{display:inline-block;background:var(--g100);color:var(--g800);font-size:0.72rem;font-weight:600;
padding:2px 8px;border-radius:4px;margin-right:4px;margin-bottom:4px}
.tag-orange{background:#fff0e0;color:#b85000}
.tag-blue{background:#e8f0fe;color:#1a56a0}
/* STEPS */
.steps{counter-reset:step;display:flex;flex-direction:column;gap:16px;margin:20px 0}
.step{display:flex;gap:16px;align-items:flex-start}
.step-num{counter-increment:step;min-width:28px;height:28px;border-radius:50%;background:var(--g700);
color:white;font-size:0.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.step-num::before{content:counter(step)}
.step-body h4{font-size:0.9rem;font-weight:600;color:var(--ink);margin-bottom:4px}
.step-body p{font-size:0.85rem;color:var(--ink3);margin:0;line-height:1.55}
/* TABLE */
.doc-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:0.85rem}
.doc-table th{text-align:left;font-weight:600;color:var(--ink);padding:10px 14px;background:var(--bg2);border:1px solid var(--sand)}
.doc-table td{padding:10px 14px;border:1px solid var(--sand);color:var(--ink2);vertical-align:top}
.doc-table tr:nth-child(even) td{background:var(--bg)}
/* MODULE CARDS */
.module-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}
.module-card{border:1px solid var(--sand);border-radius:var(--r2);padding:16px 18px;background:var(--white)}
.module-card .mc-ico{width:32px;height:32px;border-radius:8px;background:var(--g50);display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.module-card .mc-ico svg{width:16px;height:16px;stroke:var(--g600)}
.module-card h4{font-size:0.88rem;font-weight:600;color:var(--ink);margin-bottom:4px}
.module-card p{font-size:0.8rem;color:var(--ink3);line-height:1.5;margin:0}
/* FOOTER */
footer{border-top:1px solid var(--sand);padding:24px max(24px,calc((100vw - 1160px)/2));
display:flex;justify-content:space-between;align-items:center}
footer p{font-size:0.8rem;color:var(--ink3)}
footer a{font-size:0.8rem;color:var(--g500)}
@media(max-width:860px){
.doc-layout{grid-template-columns:1fr}
.doc-sidebar{display:none}
.doc-content{padding:32px 0 64px}
.role-grid,.module-grid{grid-template-columns:1fr}
}
footer{background:var(--bg);border-top:1px solid var(--sand);padding:60px max(24px,calc((100vw - 1160px)/2)) 40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-logo{display:flex;align-items:center;gap:9px;margin-bottom:16px}
.footer-logo-mark{width:30px;height:30px;border-radius:7px;background:var(--g700);display:flex;align-items:center;justify-content:center}
.footer-logo-mark svg{width:14px;height:14px}
.footer-logo-name{font-family:'Onest',sans-serif;font-weight:600;font-size:1.05rem;color:var(--ink)}
.footer-tagline{font-size:0.85rem;color:var(--ink3);line-height:1.65;max-width:260px;margin-bottom:20px}
.footer-contact{font-size:0.82rem;color:var(--ink3)}
.footer-contact a{color:var(--g500)}
.footer-col h4{font-family:'Onest',sans-serif;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink3);margin-bottom:16px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-col ul a{font-size:0.88rem;color:var(--ink2);transition:color 0.22s ease}
.footer-col ul a:hover{color:var(--g700)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--sand);padding-top:24px}
.footer-bottom p{font-size:0.8rem;color:var(--ink3)}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.footer-bottom{flex-direction:column;gap:8px;text-align:center}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}
:root{--g900:#173626;--g700:#1e5c3a;--g500:#2d7d53;--g400:#3d9966;--g300:#5db37d;--g50:#eef8f2;--bg:#faf9f6;--ink:#151515;--ink2:#404040;--ink3:#767676;--sand:#e6e0d5;--t:.22s ease}
.cta-section{background:var(--g900);text-align:center;padding:96px max(24px,calc((100vw - 1160px)/2));position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 80% at 50% 50%,rgba(45,125,83,0.25) 0%,transparent 70%)}
.cta-inner{position:relative;z-index:1}
.cta-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:0.78rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:white;margin-bottom:20px}
.cta-eyebrow::before{content:'';width:18px;height:2px;background:var(--g400);border-radius:2px}
.cta-section h2{font-size:clamp(2rem,4vw,3.2rem);font-weight:600;color:white;margin-bottom:16px;letter-spacing:-0.02em;line-height:1.15}
.cta-section h2 em{font-style:italic;color:var(--g300)}
.cta-sub{font-size:1.05rem;color:rgba(255,255,255,0.6);margin-bottom:40px}
.cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;border-radius:10px;font-family:inherit;font-size:0.9rem;font-weight:500;cursor:pointer;border:none;transition:all var(--t);white-space:nowrap;text-decoration:none}
.btn-xl{padding:14px 32px;font-size:1rem;font-weight:600;border-radius:12px}
.btn-cta-white{background:white;color:var(--g900)}
.btn-cta-white:hover{background:var(--g50);transform:translateY(-1px);box-shadow:0 6px 24px rgba(0,0,0,.2)}
.btn-cta-ghost{background:transparent;color:rgba(255,255,255,0.75);border:1.5px solid rgba(255,255,255,0.2)}
.btn-cta-ghost:hover{background:rgba(255,255,255,0.08);color:white;border-color:rgba(255,255,255,0.35)}
.cta-note{font-size:0.82rem;color:rgba(255,255,255,0.4)}
.cta-note a{color:rgba(255,255,255,0.6);border-bottom:1px dashed rgba(255,255,255,0.25)}
.cta-note a:hover{color:white}
footer{background:var(--bg);border-top:1px solid var(--sand);padding:60px max(24px,calc((100vw - 1160px)/2)) 40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-logo{display:flex;align-items:center;gap:9px;margin-bottom:16px}
.footer-logo-mark{width:30px;height:30px;border-radius:7px;background:var(--g700);display:flex;align-items:center;justify-content:center}
.footer-logo-mark svg{width:14px;height:14px}
.footer-logo-name{font-family:inherit;font-weight:600;font-size:1.05rem;color:var(--ink)}
.footer-tagline{font-size:0.85rem;color:var(--ink3);line-height:1.65;max-width:260px;margin-bottom:20px}
.footer-contact{font-size:0.82rem;color:var(--ink3)}
.footer-contact a{color:var(--g500)}
.footer-col h4{font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--ink3);margin-bottom:16px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;padding:0}
.footer-col ul a{font-size:0.88rem;color:var(--ink2);transition:color var(--t);text-decoration:none}
.footer-col ul a:hover{color:var(--g700)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--sand);padding-top:24px}
.footer-bottom p{font-size:0.8rem;color:var(--ink3)}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}.cta-section{padding:72px 24px}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:8px;text-align:center}}
</style>
</head>
<body>
<nav>
<a href="/" class="nav-logo">
<div class="nav-mark">
<svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
</div>
АгроТО
</a>
<span class="doc-badge">
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14,2 14,8 20,8"/></svg>
Документация
</span>
<div class="nav-links-right">
<a href="/kb.html">База знаний</a>
<a href="https://app.agroto.ru" class="btn-sm">Войти в систему</a>
</div>
</nav>
<div class="doc-layout">
<!-- SIDEBAR -->
<aside class="doc-sidebar">
<div class="sidebar-section">
<span class="sidebar-label">Начало работы</span>
<a class="sidebar-link active" href="#intro">Что такое АгроТО</a>
<a class="sidebar-link" href="#quickstart">Быстрый старт</a>
<a class="sidebar-link" href="#roles">Роли и права</a>
</div>
<div class="sidebar-section">
<span class="sidebar-label">Модули</span>
<a class="sidebar-link" href="#equipment">Оборудование</a>
<a class="sidebar-link" href="#maintenance">Плановое ТО</a>
<a class="sidebar-link" href="#emergencies">Аварийные заявки</a>
<a class="sidebar-link" href="#inventory">Склад</a>
<a class="sidebar-link" href="#personnel">Персонал</a>
<a class="sidebar-link" href="#analytics">Аналитика и отчёты</a>
</div>
<div class="sidebar-section">
<span class="sidebar-label">Настройки</span>
<a class="sidebar-link" href="#import">Импорт данных</a>
<a class="sidebar-link" href="#mobile">Мобильное приложение</a>
<a class="sidebar-link" href="#notifications">Уведомления</a>
</div>
<div class="sidebar-section">
<span class="sidebar-label">Энтерпрайз</span>
<a class="sidebar-link" href="#enterprise">Офлайн-сервер</a>
<a class="sidebar-link" href="#ai">ИИ-ассистент</a>
<a class="sidebar-link" href="#1c">Интеграция с 1С</a>
</div>
</aside>
<!-- MAIN CONTENT -->
<main class="doc-content">
<h1>Документация АгроТО</h1>
<p class="doc-lead">Полное руководство по работе с платформой для управления техническим обслуживанием сельскохозяйственной техники и оборудования.</p>
<!-- INTRO -->
<h2 id="intro">Что такое АгроТО</h2>
<p>АгроТО — это CMMS (Computerized Maintenance Management System) — система управления техническим обслуживанием, разработанная специально для агропромышленных предприятий России.</p>
<p>Платформа объединяет в одном месте весь цикл обслуживания техники: от планового ТО по расписанию до аварийных заявок и учёта запчастей на складе.</p>
<div class="module-grid">
<div class="module-card">
<div class="mc-ico"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg></div>
<h4>Веб + PWA</h4>
<p>Работает в браузере и устанавливается как приложение на iOS и Android</p>
</div>
<div class="module-card">
<div class="mc-ico"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg></div>
<h4>Безопасность</h4>
<p>Данные на серверах в России, HTTPS, разграничение прав по ролям</p>
</div>
<div class="module-card">
<div class="mc-ico"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg></div>
<h4>Мультитенантность</h4>
<p>Полная изоляция данных между предприятиями, поддержка нескольких подразделений</p>
</div>
<div class="module-card">
<div class="mc-ico"><svg fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg></div>
<h4>Аналитика</h4>
<p>Дашборд, PDF-отчёты, статистика по задачам, оборудованию, складу</p>
</div>
</div>
<!-- QUICKSTART -->
<h2 id="quickstart">Быстрый старт</h2>
<p>После оформления заявки вы получите доступ к системе. Рекомендуемая последовательность настройки:</p>
<div class="steps">
<div class="step">
<div class="step-num"></div>
<div class="step-body">
<h4>Создайте предприятие и добавьте подразделения</h4>
<p>Настройки → Организация. Укажите название, часовой пояс, подразделения (фермы, участки, цеха).</p>
</div>
</div>
<div class="step">
<div class="step-num"></div>
<div class="step-body">
<h4>Добавьте сотрудников и назначьте роли</h4>
<p>Раздел «Персонал». Создайте учётные записи для механиков, инженеров и руководителя. Каждый получит свой уровень доступа.</p>
</div>
</div>
<div class="step">
<div class="step-num"></div>
<div class="step-body">
<h4>Внесите оборудование</h4>
<p>Раздел «Оборудование». Добавьте технику вручную или импортируйте из Excel. Укажите инвентарные номера, модели, год выпуска, ответственных.</p>
</div>
</div>
<div class="step">
<div class="step-num"></div>
<div class="step-body">
<h4>Настройте расписания ТО</h4>
<p>Для каждой единицы техники создайте планы обслуживания: вид работ, периодичность (дни, моточасы, км), ответственный исполнитель.</p>
</div>
</div>
<div class="step">
<div class="step-num"></div>
<div class="step-body">
<h4>Заполните склад запчастей</h4>
<p>Раздел «Склад». Внесите запчасти с артикулами, минимальными остатками и ценами. Система будет предупреждать об исчерпании запасов.</p>
</div>
</div>
</div>
<div class="callout callout-info">
<strong>Среднее время запуска</strong> — 5 рабочих дней. За каждым новым клиентом закрепляется персональный менеджер, который помогает с настройкой и обучением команды.
</div>
<!-- ROLES -->
<h2 id="roles">Роли и права доступа</h2>
<p>Система использует ролевую модель доступа. Каждый пользователь имеет ровно одну роль в рамках организации.</p>
<div class="role-grid">
<div class="role-card">
<h4>Администратор <span class="tag">admin</span></h4>
<p>Полный доступ: настройки организации, управление пользователями, все модули, удаление данных, PDF-отчёты.</p>
</div>
<div class="role-card">
<h4>Инженер <span class="tag tag-blue">engineer</span></h4>
<p>Создание и редактирование расписаний ТО, оборудования, задач. Управление складом. Просмотр аналитики.</p>
</div>
<div class="role-card">
<h4>Механик <span class="tag tag-orange">mechanic</span></h4>
<p>Выполнение назначенных задач ТО, создание аварийных заявок, отметка работ, добавление комментариев и фото.</p>
</div>
<div class="role-card">
<h4>Наблюдатель <span class="tag">viewer</span></h4>
<p>Только просмотр: оборудование, задачи, склад, аналитика. Не может создавать или изменять данные.</p>
</div>
</div>
<!-- EQUIPMENT -->
<h2 id="equipment">Модуль «Оборудование»</h2>
<p>Центральный справочник всей техники и оборудования предприятия. Поддерживает любые виды: тракторы, комбайны, грузовики, прицепы, сеялки, опрыскиватели, насосные станции, генераторы и прочее.</p>
<h3>Карточка оборудования</h3>
<p>Каждая единица содержит:</p>
<ul>
<li>Наименование, инвентарный номер, заводской серийный номер</li>
<li>Категория, марка, модель, год выпуска</li>
<li>Подразделение и ответственный сотрудник</li>
<li>Фотографии и документы</li>
<li>История всех работ и ремонтов</li>
<li>Журнал наработки (моточасы / километраж)</li>
<li>Связанные запчасти со склада</li>
</ul>
<h3>Статусы оборудования</h3>
<table class="doc-table">
<thead><tr><th>Статус</th><th>Описание</th></tr></thead>
<tbody>
<tr><td><span class="tag" style="background:#e8f8ee;color:#1a6e3a">Активно</span></td><td>Техника в работе, задачи ТО создаются по расписанию</td></tr>
<tr><td><span class="tag tag-orange">В ремонте</span></td><td>Техника на ремонте, временно выведена из эксплуатации</td></tr>
<tr><td><span class="tag" style="background:#fce8e8;color:#a01010">Неисправно</span></td><td>Авария, требует немедленного вмешательства</td></tr>
<tr><td><span class="tag">Списано</span></td><td>Выведено из эксплуатации, история сохраняется</td></tr>
</tbody>
</table>
<!-- MAINTENANCE -->
<h2 id="maintenance">Плановое ТО</h2>
<p>Модуль автоматически создаёт задачи технического обслуживания по заданным расписаниям. Поддерживаются несколько типов периодичности.</p>
<h3>Типы расписаний</h3>
<ul>
<li><strong>Календарное</strong> — каждые N дней, в конкретные даты или дни недели</li>
<li><strong>По наработке</strong> — каждые N моточасов или км пробега</li>
<li><strong>Сезонное</strong> — предсезонная подготовка (весна/осень), зимнее хранение</li>
<li><strong>Разовое</strong> — одноразовая задача с конкретной датой</li>
</ul>
<h3>Жизненный цикл задачи</h3>
<p>Новая → Назначена → В работе → Выполнена / Отменена. Каждый переход фиксируется с временной меткой и исполнителем. К выполненным задачам прикрепляются фото и комментарии.</p>
<div class="callout callout-warn">
<strong>Важно:</strong> задачи с истёкшим сроком автоматически переходят в статус «Просрочено» и выделяются в дашборде. Руководитель получает уведомление.
</div>
<!-- EMERGENCIES -->
<h2 id="emergencies">Аварийные заявки</h2>
<p>Любой сотрудник может создать аварийную заявку прямо с телефона — без доступа к компьютеру. Заявка немедленно появляется у ответственного инженера.</p>
<p>В системе два типа задач: <strong>обычные задачи</strong> (плановое ТО, регламентные работы) и <strong>аварийные заявки</strong>. Аварийная заявка — это всегда критическая ситуация, требующая немедленной реакции. Никаких подуровней нет — если произошла авария, она аварийная.</p>
<!-- INVENTORY -->
<h2 id="inventory">Склад запчастей</h2>
<p>Учёт всего склада запасных частей и расходных материалов с контролем минимальных остатков и историей движения.</p>
<ul>
<li>Каталог позиций с артикулами, ценами, единицами измерения</li>
<li>Привязка запчастей к конкретным единицам оборудования</li>
<li>Автоматическое списание при выполнении задачи ТО</li>
<li>Уведомление при достижении минимального остатка</li>
<li>История прихода и расхода по каждой позиции</li>
<li>Оценка стоимости склада</li>
</ul>
<!-- PERSONNEL -->
<h2 id="personnel">Персонал</h2>
<p>Справочник сотрудников предприятия. Здесь создаются учётные записи, назначаются роли, указываются специализации и подразделения.</p>
<p>К каждому сотруднику привязывается история выполненных работ, что позволяет оценивать нагрузку и производительность механиков.</p>
<!-- ANALYTICS -->
<h2 id="analytics">Аналитика и отчёты</h2>
<p>Дашборд предоставляет оперативную картину состояния парка техники и хода обслуживания.</p>
<h3>Ключевые показатели на дашборде</h3>
<ul>
<li>Количество задач: открытые / просроченные / выполненные за период</li>
<li>Коэффициент готовности парка (% исправной техники)</li>
<li>Аварийные заявки: открытые, среднее время закрытия</li>
<li>Остатки склада: позиции ниже минимума</li>
<li>Загрузка механиков по подразделениям</li>
</ul>
<h3>PDF-отчёты</h3>
<p>Доступны на тарифах Профессиональный и Энтерпрайз. Форматы: сводный отчёт по ТО за период, карточка оборудования с историей работ, отчёт по складу, акт выполненных работ.</p>
<!-- IMPORT -->
<h2 id="import">Импорт данных из Excel</h2>
<p>Для начала работы не нужно вносить данные вручную — поддерживается импорт из Excel-таблиц.</p>
<h3>Что можно импортировать</h3>
<ul>
<li>Справочник оборудования (наименование, инвентарный номер, модель, подразделение)</li>
<li>Расписания ТО (вид работ, периодичность, ответственный)</li>
<li>Каталог склада (артикулы, наименования, количество, цены)</li>
<li>Список сотрудников</li>
</ul>
<div class="callout callout-info">
Если ваш формат данных нестандартный, менеджер поможет с подготовкой шаблона и загрузкой в рамках онбординга.
</div>
<!-- MOBILE -->
<h2 id="mobile">Мобильное приложение</h2>
<p>АгроТО — прогрессивное веб-приложение (PWA). Оно устанавливается на смартфон через браузер без App Store и Google Play.</p>
<h3>Установка на Android</h3>
<div class="steps">
<div class="step"><div class="step-num"></div><div class="step-body"><h4>Откройте сайт app.agroto.ru в Chrome</h4><p>Войдите в свою учётную запись.</p></div></div>
<div class="step"><div class="step-num"></div><div class="step-body"><h4>Нажмите «Добавить на главный экран»</h4><p>Появится баннер внизу экрана или через меню браузера (⋮ → Установить приложение).</p></div></div>
<div class="step"><div class="step-num"></div><div class="step-body"><h4>Подтвердите установку</h4><p>Значок АгроТО появится на рабочем столе. Приложение запускается без браузерной строки.</p></div></div>
</div>
<h3>Установка на iOS (iPhone / iPad)</h3>
<div class="steps">
<div class="step"><div class="step-num"></div><div class="step-body"><h4>Откройте сайт в Safari</h4><p>Только Safari поддерживает установку PWA на iOS.</p></div></div>
<div class="step"><div class="step-num"></div><div class="step-body"><h4>Нажмите кнопку «Поделиться» (□↑)</h4><p>В нижней панели браузера.</p></div></div>
<div class="step"><div class="step-num"></div><div class="step-body"><h4>Выберите «На экран Домой»</h4><p>Прокрутите список вниз и нажмите «Добавить».</p></div></div>
</div>
<p>Приложение кэширует данные локально и работает при нестабильном интернете. Действия, выполненные офлайн, синхронизируются при появлении связи.</p>
<!-- NOTIFICATIONS -->
<h2 id="notifications">Уведомления</h2>
<p>Система отправляет push-уведомления прямо на телефон при:</p>
<ul>
<li>Назначении новой задачи ТО на вас</li>
<li>Приближении срока планового ТО (за 3 дня)</li>
<li>Просрочке задачи</li>
<li>Создании новой аварийной заявки</li>
<li>Изменении статуса вашей заявки</li>
<li>Достижении минимального остатка на складе</li>
</ul>
<div class="callout callout-info">
Для получения push-уведомлений необходимо разрешить уведомления при первом входе в систему. Настройки → Уведомления.
</div>
<!-- ENTERPRISE -->
<h2 id="enterprise">Энтерпрайз: офлайн-сервер</h2>
<p>На тарифе Энтерпрайз мы поставляем физический сервер, который разворачивается внутри сети вашего предприятия. Система работает полностью автономно — постоянный доступ к интернету не требуется.</p>
<h3>Что входит в поставку</h3>
<ul>
<li>Настроенный физический сервер с предустановленной АгроТО</li>
<li>Развёртка в локальной сети предприятия (Wi-Fi или LAN)</li>
<li>Доступ с любого устройства в сети без интернета</li>
<li>Офлайн-модель ИИ для работы ИИ-ассистента без облака</li>
<li>Все данные хранятся исключительно на вашем сервере</li>
<li>Периодическая синхронизация обновлений ПО при наличии интернета</li>
</ul>
<div class="callout callout-warn">
<strong>Для кого актуально:</strong> животноводческие комплексы и полевые операции в зонах со слабым покрытием мобильной сети, предприятия с высокими требованиями к защите данных, холдинги в труднодоступных районах.
</div>
<!-- AI -->
<h2 id="ai">ИИ-ассистент</h2>
<p>Встроенный ИИ-ассистент доступен во всех тарифах в облачном режиме и на тарифе Энтерпрайз — в офлайн-режиме на локальном сервере.</p>
<h3>Что умеет ассистент</h3>
<ul>
<li>Отвечать на вопросы по обслуживанию конкретной техники</li>
<li>Помогать описывать неисправности в аварийных заявках</li>
<li>Предлагать типовые регламенты ТО на основе марки и модели</li>
<li>Анализировать историю поломок и формировать рекомендации</li>
<li>Формировать текстовые отчёты по данным системы</li>
</ul>
<!-- 1C -->
<h2 id="1c">Интеграция с 1С</h2>
<p>Доступна на тарифе Энтерпрайз. Интеграция <strong>односторонняя</strong>: АгроТО получает данные из 1С, но не передаёт данные обратно. Это позволяет не дублировать учёт — всё что уже есть в 1С автоматически попадает в АгроТО.</p>
<h3>Что приходит из 1С в АгроТО</h3>
<ul>
<li><strong>Склад запчастей и материалов</strong> — номенклатура, текущие остатки, приход и расход. Главное — вам не нужно вести склад в двух системах.</li>
<li>Справочник оборудования и основных средств</li>
<li>Контрагенты (поставщики запчастей)</li>
</ul>
<div class="callout callout-info">
<strong>Важно:</strong> данные идут из 1С в АгроТО, но не наоборот. АгроТО не вносит изменения в вашу 1С.
</div>
<p>Детали настройки обсуждаются с техническим специалистом. Поддерживаются конфигурации: 1С:Сельскохозяйственное предприятие, 1С:ERP, 1С:Управление торговлей.</p>
</main>
</div>
<section class="cta-section">
<div class="cta-inner">
<div class="cta-eyebrow">Начните сегодня</div>
<h2>Возьмите оборудование<br><em>под контроль</em></h2>
<p class="cta-sub">Быстрое внедрение. Персональная поддержка на старте.</p>
<div class="cta-actions">
<a href="https://app.agroto.ru" class="btn btn-xl btn-cta-white">
Начать работу
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
</a>
<a href="https://app.agroto.ru" class="btn btn-xl btn-cta-ghost">Смотреть демо</a>
</div>
<p class="cta-note">Или напишите нам: <a href="mailto:info@agroto.ru">info@agroto.ru</a></p>
</div>
</section>
<footer>
<div class="footer-grid">
<div>
<div class="footer-logo">
<div class="footer-logo-mark">
<svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 2L2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/>
</svg>
</div>
<span class="footer-logo-name">АгроТО</span>
</div>
<p class="footer-tagline">CMMS-платформа для управления обслуживанием оборудования на агропредприятиях России.</p>
<p class="footer-contact">Написать нам: <a href="mailto:info@agroto.ru">info@agroto.ru</a></p>
</div>
<div class="footer-col">
<h4>Продукт</h4>
<ul>
<li><a href="/#features">Возможности</a></li>
<li><a href="/#pricing">Тарифы</a></li>
<li><a href="/#how">Как работает</a></li>
<li><a href="/#faq">FAQ</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Компания</h4>
<ul>
<li><a href="/about.html">О нас</a></li>
<li><a href="/blog.html">Блог</a></li>
<li><a href="/contacts.html">Контакты</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Поддержка</h4>
<ul>
<li><a href="/docs.html">Документация</a></li>
<li><a href="/kb.html">База знаний</a></li>
<li><a href="mailto:info@agroto.ru">Email</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>© 2026 АгроТО. Все права защищены.</p>
<p>Сделано в России 🇷🇺</p>
</div>
</footer>
<script>
// Активный пункт сайдбара при скролле
const sections = document.querySelectorAll('h2[id]');
const links = document.querySelectorAll('.sidebar-link');
const obs = new IntersectionObserver(entries => {
entries.forEach(e => {
if (e.isIntersecting) {
links.forEach(l => l.classList.remove('active'));
const active = document.querySelector('.sidebar-link[href="#' + e.target.id + '"]');
if (active) active.classList.add('active');
}
});
}, { rootMargin: '-20% 0px -70% 0px' });
sections.forEach(s => obs.observe(s));
</script>
</body>
</html>