Files
progcode/web/public/assets/editorial/2018/bitrix-add-lifecycle.svg
T
huncode 44c99a2640
Build and deploy / deploy (push) Successful in 21s
upgrade January 2018 Bitrix articles
2026-07-31 01:44:45 +03:00

59 lines
3.7 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1360" role="img" aria-labelledby="title desc">
<title id="title">Жизненный цикл CIBlockElement Add</title>
<desc id="desc">Вертикальная последовательность: входные данные, общий обработчик, запись, контрольная публичная выборка и готовый пользовательский результат.</desc>
<defs>
<style>
.bg { fill: #fffdfa; }
.title { fill: #1e252d; font: 700 48px Arial, sans-serif; }
.sub { fill: #64707d; font: 28px Arial, sans-serif; }
.step { fill: #edf5f2; stroke: #216869; stroke-width: 3; }
.event { fill: #eef3fa; stroke: #355c9a; stroke-width: 3; }
.check { fill: #fff4e8; stroke: #b4432a; stroke-width: 3; }
.result { fill: #e5f2ed; stroke: #216869; stroke-width: 3; }
.step-title { fill: #1e252d; font: 700 34px Arial, sans-serif; text-anchor: middle; }
.step-copy { fill: #44515d; font: 26px Arial, sans-serif; text-anchor: middle; }
.note { fill: #65492e; font: 700 28px Arial, sans-serif; text-anchor: middle; }
.arrow { fill: none; stroke: #64707d; stroke-width: 6; marker-end: url(#arrow); }
</style>
<marker id="arrow" markerWidth="14" markerHeight="14" refX="11" refY="7" orient="auto">
<path d="M0,0 L14,7 L0,14 z" fill="#64707d"/>
</marker>
</defs>
<rect class="bg" width="1000" height="1360"/>
<text class="title" x="80" y="84">Путь CIBlockElement::Add</text>
<text class="sub" x="80" y="128">ID — важная контрольная точка, но не финальный критерий готовности.</text>
<rect class="step" x="100" y="200" width="800" height="138" rx="26"/>
<text class="step-title" x="500" y="253">1. Форма или импорт → сервис</text>
<text class="step-copy" x="500" y="300">Поля, внешний ключ и контекст операции.</text>
<path class="arrow" d="M500 338 V415"/>
<rect class="event" x="100" y="430" width="800" height="148" rx="26"/>
<text class="step-title" x="500" y="484">2. OnBeforeIBlockElementAdd</text>
<text class="step-copy" x="500" y="528">Общий инвариант: уточнить поля</text>
<text class="step-copy" x="500" y="563">или отменить запись с понятной причиной.</text>
<path class="arrow" d="M500 578 V655"/>
<rect class="step" x="100" y="670" width="800" height="140" rx="26"/>
<text class="step-title" x="500" y="724">3. CIBlockElement::Add</text>
<text class="step-copy" x="500" y="770">Возвращает ID либо false + LAST_ERROR.</text>
<path class="arrow" d="M500 810 V887"/>
<rect class="check" x="100" y="902" width="800" height="166" rx="26"/>
<text class="step-title" x="500" y="956">4. Контрольная публичная выборка</text>
<text class="step-copy" x="500" y="1000">ACTIVE, даты, раздел, свойства, URL,</text>
<text class="step-copy" x="500" y="1035">а для каталога — цена и остаток по сценарию.</text>
<path class="arrow" d="M500 1068 V1145"/>
<rect class="result" x="100" y="1160" width="800" height="118" rx="26"/>
<text class="step-title" x="500" y="1212">5. Пользователь видит готовый результат</text>
<text class="step-copy" x="500" y="1252">Только теперь можно считать сценарий завершённым.</text>
<text class="note" x="500" y="1324">«Элемент сохранён» и «элемент готов» — разные состояния.</text>
</svg>