36 lines
3.6 KiB
XML
36 lines
3.6 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 960" role="img" aria-labelledby="title desc">
|
|
<title id="title">Замена legacy обработчика с проверкой и откатом</title>
|
|
<desc id="desc">Последовательность безопасной замены: снимок элемента до изменения, выбор старого или нового writer для одного ID, повторная выборка. При расхождении сначала выключается новый маршрут, а поле восстанавливается только после проверки снимка.</desc>
|
|
<defs>
|
|
<linearGradient id="bg" x1="0" x2="1" y1="0" y2="1"><stop stop-color="#0f172a"/><stop offset="1" stop-color="#172554"/></linearGradient>
|
|
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="8" stdDeviation="9" flood-color="#020617" flood-opacity=".36"/></filter>
|
|
<marker id="arrow" markerWidth="12" markerHeight="12" refX="6" refY="10" orient="auto"><path d="M0,0 L12,0 L6,12 Z" fill="#7dd3fc"/></marker>
|
|
<marker id="warn" markerWidth="12" markerHeight="12" refX="6" refY="10" orient="auto"><path d="M0,0 L12,0 L6,12 Z" fill="#fbbf24"/></marker>
|
|
</defs>
|
|
<rect width="760" height="960" rx="28" fill="url(#bg)"/>
|
|
<g font-family="Inter,Arial,sans-serif">
|
|
<text x="52" y="62" fill="#f8fafc" font-size="29" font-weight="700">Один элемент, проверка, откат</text>
|
|
<text x="52" y="93" fill="#94a3b8" font-size="20">Откат маршрута и поля — разные действия.</text>
|
|
<g filter="url(#shadow)">
|
|
<rect x="116" y="142" width="528" height="114" rx="20" fill="#1e293b" stroke="#475569"/>
|
|
<rect x="116" y="332" width="528" height="136" rx="20" fill="#0f3a53" stroke="#38bdf8"/>
|
|
<rect x="116" y="544" width="528" height="104" rx="20" fill="#172554" stroke="#818cf8"/>
|
|
<rect x="116" y="724" width="528" height="160" rx="20" fill="#3f3012" stroke="#fbbf24"/>
|
|
</g>
|
|
<text x="148" y="184" fill="#f8fafc" font-size="22" font-weight="700">1. Снимок до изменения</text>
|
|
<text x="148" y="215" fill="#cbd5e1" font-size="20">ID · IBLOCK_ID · старый CODE · ожидаемый CODE</text>
|
|
<text x="148" y="377" fill="#f8fafc" font-size="22" font-weight="700">2. Маршрут одного вызова</text>
|
|
<text x="148" y="408" fill="#dbeafe" font-size="20">старый / новый writer · только выбранный ID</text>
|
|
<text x="148" y="438" fill="#dbeafe" font-size="20">Update(CODE) без соседних полей</text>
|
|
<text x="148" y="588" fill="#f8fafc" font-size="22" font-weight="700">3. Повторная выборка</text>
|
|
<text x="148" y="619" fill="#e0e7ff" font-size="20">CODE сопоставлен с ожиданием</text>
|
|
<text x="148" y="769" fill="#fef3c7" font-size="22" font-weight="700">4. При расхождении</text>
|
|
<text x="148" y="800" fill="#fde68a" font-size="20">сначала выключить новый маршрут</text>
|
|
<text x="148" y="830" fill="#fde68a" font-size="20">сверить снимок и текущее значение</text>
|
|
<text x="148" y="860" fill="#fde68a" font-size="20">после этого решать вопрос данных</text>
|
|
<path d="M380 256 V332" fill="none" stroke="#7dd3fc" stroke-width="4" marker-end="url(#arrow)"/>
|
|
<path d="M380 468 V544" fill="none" stroke="#7dd3fc" stroke-width="4" marker-end="url(#arrow)"/>
|
|
<path d="M380 648 V724" fill="none" stroke="#fbbf24" stroke-width="4" marker-end="url(#warn)"/>
|
|
</g>
|
|
</svg>
|