[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"navigation_docs":3,"-modules-problems-events":238,"-modules-problems-events-surround":558},[4,45,60],{"title":5,"description":6,"icon":7,"path":8,"stem":9,"children":10},"Методология",null,"ruler","\u002Fmethodology","1.methodology",[11,15,20,25,30,35,40],{"title":12,"path":8,"stem":13,"description":14},"bxshef: методология и проверка навыков","1.methodology\u002Findex","Как писать навыки ИИ-агентов для Битрикса и как проверять, что им можно верить",{"title":16,"path":17,"stem":18,"description":19},"Стандарт навыка","\u002Fmethodology\u002Fstandard","1.methodology\u002F1.standard","11 правил, каждое из провала на стенде",{"title":21,"path":22,"stem":23,"description":24},"Методология проверки","\u002Fmethodology\u002Fmethod","1.methodology\u002F2.method","lint → eval → стенд; что измерено",{"title":26,"path":27,"stem":28,"description":29},"bxshef — CLI","\u002Fmethodology\u002Fbxshef","1.methodology\u002F3.bxshef","lint, eval, feedback",{"title":31,"path":32,"stem":33,"description":34},"GitHub Action","\u002Fmethodology\u002Faction","1.methodology\u002F4.action","тот же lint + eval в любом репозитории навыков",{"title":36,"path":37,"stem":38,"description":39},"Заготовка репозитория","\u002Fmethodology\u002Ftemplate","1.methodology\u002F5.template","с чего начать автору модуля",{"title":41,"path":42,"stem":43,"description":44},"Приёмник отзывов","\u002Fmethodology\u002Ffeedback","1.methodology\u002F6.feedback","куда уходят отзывы ИИ-агентов",{"title":46,"description":6,"icon":47,"path":48,"stem":49,"children":50},"Навыки","sparkles","\u002Fskills","2.skills",[51,55],{"title":52,"path":48,"stem":53,"description":54},"Навыки shef.*","2.skills\u002Findex","npx skills add bx-shef\u002Fskills",{"title":56,"path":57,"stem":58,"description":59},"shef-feedback","\u002Fskills\u002Fshef-feedback","2.skills\u002F1.shef-feedback","Отправить отзыв о навыке shef-* или навыке команды. Брать ВСЕГДА, когда просят оставить или отправить отзыв о навыке — даже если сам навык в диалоге не виден, —",{"title":61,"description":6,"icon":62,"path":63,"stem":64,"children":65},"Модули shef.*","package","\u002Fmodules","3.modules",[66,69,131,179],{"title":61,"path":63,"stem":67,"description":68},"3.modules\u002Findex","Что за чем ставить",{"title":70,"description":6,"path":71,"stem":72,"children":73},"shef.options","\u002Fmodules\u002Foptions","3.modules\u002F1.options\u002Findex",[74,76,81,86,91,96,101,106,110,114,119,123,127],{"title":70,"path":71,"stem":72,"description":75},"фундамент: настройки, трейты, компоненты",{"title":77,"path":78,"stem":79,"description":80},"[`\\Shef\\Options\\Installator`] Installer","\u002Fmodules\u002Foptions\u002Finstaller","3.modules\u002F1.options\u002F1.installer","Для облегчения установок.",{"title":82,"path":83,"stem":84,"description":85},"Сборка, CI и релиз","\u002Fmodules\u002Foptions\u002Fbuild-and-install","3.modules\u002F1.options\u002F10.build-and-install","Раскладка репозитория — в module-structure.md, процесс —\nв CONTRIBUTING.md, установка глазами пользователя —\nв README.md.",{"title":87,"path":88,"stem":89,"description":90},"Раскладка репозитория","\u002Fmodules\u002Foptions\u002Fmodule-structure","3.modules\u002F1.options\u002F11.module-structure","Файл про устройство репозитория. Опорные точки модуля — в CLAUDE.md,\nпроцесс — в CONTRIBUTING.md, сборка — в\nbuild-and-install.md.",{"title":92,"path":93,"stem":94,"description":95},"Проверка на портале","\u002Fmodules\u002Foptions\u002Fportal-check","3.modules\u002F1.options\u002F12.portal-check","Всё, что ниже рантайма Битрикса, тестами не закрыть: установка, права, кеш,\nраскладка файлов, поведение при обновлении. Проверять это приходится руками —\nи лучше по списку, потому что забытый шаг находит не разработчик, а клиент.",{"title":97,"path":98,"stem":99,"description":100},"[`\\Shef\\Options\\Main\\Options`] Опции настроек модуля","\u002Fmodules\u002Foptions\u002Foptions","3.modules\u002F1.options\u002F2.options","Поддерживает следующие типы:",{"title":102,"path":103,"stem":104,"description":105},"Работа с пользователями","\u002Fmodules\u002Foptions\u002Fsecurity","3.modules\u002F1.options\u002F3.security","",{"title":107,"path":108,"stem":109,"description":105},"[`\\Shef\\Options\\Main\\Utils`] Утилиты","\u002Fmodules\u002Foptions\u002Futils","3.modules\u002F1.options\u002F4.utils",{"title":111,"path":112,"stem":113,"description":105},"[`\\Shef\\Options\\Components`] Работа с компонентами","\u002Fmodules\u002Foptions\u002Fcomponents","3.modules\u002F1.options\u002F5.components",{"title":115,"path":116,"stem":117,"description":118},"[`\\Shef\\Options\\Options`] Паттерны","\u002Fmodules\u002Foptions\u002Fpattern","3.modules\u002F1.options\u002F6.pattern","Запускаемые примеры: singleton.php,\nconfig.php, smartstd.php —\nкак их гонять, написано в examples\u002FREADME.md.",{"title":120,"path":121,"stem":122,"description":105},"[`\\Shef\\Options\\Tests`] Тестирование","\u002Fmodules\u002Foptions\u002Ftests","3.modules\u002F1.options\u002F7.tests",{"title":124,"path":125,"stem":126,"description":105},"[`\\Shef\\Options\\TraitList`] Набор трейтов","\u002Fmodules\u002Foptions\u002Ftraitlist","3.modules\u002F1.options\u002F8.traitlist",{"title":128,"path":129,"stem":130,"description":105},"Правила для ИИ-агентов в этом репозитории","\u002Fmodules\u002Foptions\u002Fagent-rules","3.modules\u002F1.options\u002F9.agent-rules",{"title":132,"description":6,"path":133,"stem":134,"children":135},"shef.problems","\u002Fmodules\u002Fproblems","3.modules\u002F2.problems\u002Findex",[136,138,143,147,152,157,161,166,169,172,175],{"title":132,"path":133,"stem":134,"description":137},"логи, журнал событий, учёт проблем",{"title":139,"path":140,"stem":141,"description":142},"[`\\Shef\\Problems\\Integration`] События и меню","\u002Fmodules\u002Fproblems\u002Fevents","3.modules\u002F2.problems\u002F1.events","Что модуль регистрирует в ядре при установке. Список — в .settings.php, ключ\ninstallEvents; что каждый обработчик существует, сверяет\ntests\u002Fsettings_test.php.",{"title":144,"path":145,"stem":146,"description":105},"Безопасность логов","\u002Fmodules\u002Fproblems\u002Fsecurity","3.modules\u002F2.problems\u002F10.security",{"title":148,"path":149,"stem":150,"description":151},"Быстрая отладка: `_pr`, `_log`, `_log1`","\u002Fmodules\u002Fproblems\u002Fdeffunctions","3.modules\u002F2.problems\u002F2.deffunctions","Функции объявляет def-functions.php, подключается он из include.php.",{"title":153,"path":154,"stem":155,"description":156},"Уровни логирования","\u002Fmodules\u002Fproblems\u002Floglevel","3.modules\u002F2.problems\u002F3.loglevel","Уровни — стандарт PSR-3, в Monolog это \\Monolog\\Level. Ниже — когда какой брать.",{"title":158,"path":159,"stem":160,"description":105},"[`\\Shef\\Problems\\Integration\\Monolog`] Monolog","\u002Fmodules\u002Fproblems\u002Fmonolog","3.modules\u002F2.problems\u002F4.monolog",{"title":162,"path":163,"stem":164,"description":165},"Ротация логов","\u002Fmodules\u002Fproblems\u002Flogrotate","3.modules\u002F2.problems\u002F5.logrotate","Логи модуля лежат в каталоге логов — по умолчанию на уровень выше корня сайта,\nдля BitrixVM \u002Fhome\u002Fbitrix\u002Fsh_log\u002F*.log, — и сами не чистятся. Ротацию делает\nlogrotate — системная утилита, а не Monolog: Monolog тоже умеет\n(RotatingFileHandler), но тогда за файлами следит каждый PHP-процесс, а не\nодна служба.",{"title":128,"path":167,"stem":168,"description":105},"\u002Fmodules\u002Fproblems\u002Fagent-rules","3.modules\u002F2.problems\u002F6.agent-rules",{"title":82,"path":170,"stem":171,"description":85},"\u002Fmodules\u002Fproblems\u002Fbuild-and-install","3.modules\u002F2.problems\u002F7.build-and-install",{"title":87,"path":173,"stem":174,"description":90},"\u002Fmodules\u002Fproblems\u002Fmodule-structure","3.modules\u002F2.problems\u002F8.module-structure",{"title":92,"path":176,"stem":177,"description":178},"\u002Fmodules\u002Fproblems\u002Fportal-check","3.modules\u002F2.problems\u002F9.portal-check","Всё, что ниже рантайма Битрикса, тестами не закрыть: установка, права, меню,\nраскладка файлов, журнал событий, поведение при обновлении. Проверять это\nприходится руками — и лучше по списку, потому что забытый шаг находит не\nразработчик, а клиент.",{"title":180,"description":6,"path":181,"stem":182,"children":183},"shef.insync","\u002Fmodules\u002Finsync","3.modules\u002F3.insync\u002Findex",[184,186,191,194,198,203,208,213,218,222,227,232,235],{"title":180,"path":181,"stem":182,"description":185},"агенты, импорт, API-клиенты, модели",{"title":187,"path":188,"stem":189,"description":190},"[`\\Shef\\InSync\\Agents`] Агенты","\u002Fmodules\u002Finsync\u002Fagents","3.modules\u002F3.insync\u002F1.agents","Агент импорта — наследник \\Shef\\InSync\\Agents\\AAgent. Описание агента для\nb_agent — \\Shef\\InSync\\Agents\\Entity, установку и управление берёт на себя\n\\Shef\\InSync\\Agents\\Manager.",{"title":87,"path":192,"stem":193,"description":90},"\u002Fmodules\u002Finsync\u002Fmodule-structure","3.modules\u002F3.insync\u002F10.module-structure",{"title":92,"path":195,"stem":196,"description":197},"\u002Fmodules\u002Finsync\u002Fportal-check","3.modules\u002F3.insync\u002F11.portal-check","Всё, что ниже рантайма Битрикса, тестами не закрыть: установка, права, левое\nменю, раскладка компонентов, агенты, таблица импорта, поведение при\nобновлении. Проверять это приходится руками — и лучше по списку, потому что\nзабытый шаг находит не разработчик, а клиент.",{"title":199,"path":200,"stem":201,"description":202},"Безопасность","\u002Fmodules\u002Finsync\u002Fsecurity","3.modules\u002F3.insync\u002F12.security","Модуль даёт другим модулям заготовки для синхронизаций, и самые опасные места\nу него общие с ними: кто может запускать агенты и импорт, что ложится в каталоги\nимпорта, что уходит в SQL и в лог. Ниже — что держит модуль и что остаётся\nпроекту.",{"title":204,"path":205,"stem":206,"description":207},"[`\\Shef\\InSync\\Sync`] Импорт","\u002Fmodules\u002Finsync\u002Fimport","3.modules\u002F3.insync\u002F2.import","Импорт идёт в два шага через таблицу импорта \\Shef\\InSync\\Sync\\Model\\SyncTable\n(shef_insync_model):",{"title":209,"path":210,"stem":211,"description":212},"[`\\Shef\\InSync\\Api`] API","\u002Fmodules\u002Finsync\u002Fapi","3.modules\u002F3.insync\u002F3.api","Обращение к внешнему API по HTTP — наследник \\Shef\\InSync\\Api\\AConnector.",{"title":214,"path":215,"stem":216,"description":217},"[`\\Shef\\InSync\\TraitList\\Xml`] Парсинг XML","\u002Fmodules\u002Finsync\u002Fxml","3.modules\u002F3.insync\u002F4.xml","Разбор XML сделан через SbWereWolf\u002Fxml-navigator\n(статья на Хабре): XMLReader идёт по\nдокументу потоком, а каждый элемент с нужным тегом HierarchyComposer\nпревращает в массив — n имя, v значение, a атрибуты, s вложенные\nэлементы.",{"title":219,"path":220,"stem":221,"description":105},"Компоненты","\u002Fmodules\u002Finsync\u002Fcomponents","3.modules\u002F3.insync\u002F5.components",{"title":223,"path":224,"stem":225,"description":226},"Страницы","\u002Fmodules\u002Finsync\u002Fpage","3.modules\u002F3.insync\u002F6.page","Страницы модуля — в левом меню, штатным разделом intranet\n(Bitrix\\Intranet\\CustomSection): раздел «SH Импорт», код shinsync.\nВерхней панели и shef.uiclear больше нет.",{"title":228,"path":229,"stem":230,"description":231},"[`\\Shef\\InSync\\Main\\Options`] Опции настроек модуля","\u002Fmodules\u002Finsync\u002Foptions","3.modules\u002F3.insync\u002F7.options","Опции для страницы настроек модуля импорта (на ShOptionsConfig из\nshef.options): добавьте их во вкладку своего options_conf.php.",{"title":128,"path":233,"stem":234,"description":105},"\u002Fmodules\u002Finsync\u002Fagent-rules","3.modules\u002F3.insync\u002F8.agent-rules",{"title":82,"path":236,"stem":237,"description":85},"\u002Fmodules\u002Finsync\u002Fbuild-and-install","3.modules\u002F3.insync\u002F9.build-and-install",{"id":239,"title":139,"body":240,"description":142,"extension":552,"meta":553,"navigation":554,"path":140,"rawbody":555,"seo":556,"stem":141,"__hash__":557},"docs\u002F3.modules\u002F2.problems\u002F1.events.md",{"type":241,"value":242,"toc":546},"minimark",[243,260,312,319,373,378,392,473,476,502,506,517,524,533],[244,245,246,247,251,252,255,256,259],"p",{},"Что модуль регистрирует в ядре при установке. Список — в ",[248,249,250],"code",{},".settings.php",", ключ\n",[248,253,254],{},"installEvents","; что каждый обработчик существует, сверяет\n",[248,257,258],{},"tests\u002Fsettings_test.php",".",[261,262,263,279],"table",{},[264,265,266],"thead",{},[267,268,269,273,276],"tr",{},[270,271,272],"th",{},"обработчик",[270,274,275],{},"событие",[270,277,278],{},"что делает",[280,281,282,299],"tbody",{},[267,283,284,288,293],{},[285,286,287],"td",{},"Main\\Events::onPageStart",[285,289,290],{},[248,291,292],{},"main:OnPageStart",[285,294,295,296],{},"в административной части подключает стили вывода ",[248,297,298],{},"PrHtml",[267,300,301,304,309],{},[285,302,303],{},"Main\\Events::onEventLogGetAuditTypes",[285,305,306],{},[248,307,308],{},"main:OnEventLogGetAuditTypes",[285,310,311],{},"регистрирует типы событий модуля в журнале событий — их видно в фильтре",[244,313,314,315,318],{},"Типы событий журнала — ",[248,316,317],{},"\\Shef\\Problems\\Main\\Constants::getAuditTypeList()",":",[261,320,321,331],{},[264,322,323],{},[267,324,325,328],{},[270,326,327],{},"тип",[270,329,330],{},"о чём",[280,332,333,343,353,363],{},[267,334,335,340],{},[285,336,337],{},[248,338,339],{},"SH_PROBLEMS_PROBLEM",[285,341,342],{},"проблема общего вида — тип по умолчанию",[267,344,345,350],{},[285,346,347],{},[248,348,349],{},"SH_PROBLEMS_SYNC",[285,351,352],{},"проблема с синхронизацией",[267,354,355,360],{},[285,356,357],{},[248,358,359],{},"SH_PROBLEMS_PRODUCT",[285,361,362],{},"проблема с товаром",[267,364,365,370],{},[285,366,367],{},[248,368,369],{},"SH_PROBLEMS_SALE",[285,371,372],{},"проблема с продажами",[374,375,377],"h2",{"id":376},"меню-учёт-проблем","Меню «Учёт проблем»",[244,379,380,384,385,388,389,259],{},[381,382,383],"strong",{},"Настройки → Учёт проблем"," в административной части, только администратору.\nОтдаёт его ",[248,386,387],{},"admin\u002Fmenu.php",": ядро подключает этот файл само для каждого\nустановленного модуля, ничего регистрировать не нужно. Разметку меню строит\n",[248,390,391],{},"\\Shef\\Problems\\Integration\\Main\\AdminMenu::build()",[261,393,394,404],{},[264,395,396],{},[267,397,398,401],{},[270,399,400],{},"пункт",[270,402,403],{},"куда ведёт",[280,405,406,417,432,440,450,465],{},[267,407,408,414],{},[285,409,410,411],{},"Логи → ",[248,412,413],{},"[Monolog] …",[285,415,416],{},"каждый файл, который пишут логгеры модуля; фабрика проблем — по файлу на тип",[267,418,419,422],{},[285,420,421],{},"Логи → Ошибки PHP, E-mail",[285,423,424,427,428,431],{},[248,425,426],{},"exceptions.log"," и ",[248,429,430],{},"mailer.log",", если проект кладёт их в каталог логов",[267,433,434,437],{},[285,435,436],{},"Логи → Все логи",[285,438,439],{},"список файлов каталога логов с размером и временем",[267,441,442,447],{},[285,443,444,445],{},"Журнал событий → ",[248,446,413],{},[285,448,449],{},"журнал, отфильтрованный по типу события",[267,451,452,455],{},[285,453,454],{},"Журнал событий → Ошибки платёжных систем",[285,456,457,458,461,462],{},"таблица ",[248,459,460],{},"b_sale_pay_system_err_log","; только если стоит ",[248,463,464],{},"perfmon",[267,466,467,470],{},[285,468,469],{},"Настройки модуля",[285,471,472],{},"страница настроек",[244,474,475],{},"Та же страница логов — по ссылке со страницы настроек модуля, вкладка\n«Сотрудники»; там же виден каталог логов.",[244,477,478,479,482,483,486,487,489,490,493,494,497,498,259],{},"Логи открываются ",[381,480,481],{},"страницей модуля"," ",[248,484,485],{},"\u002Fbitrix\u002Fadmin\u002Fshef_problems_logs.php",":\nкаталог логов лежит вне корня сайта, и ни прямая ссылка, ни файловый менеджер\nБитрикса до него не дотянутся. Заглушку ",[248,488,485],{},"\nпишет установщик — с путём туда, где модуль стоит (",[248,491,492],{},"\u002Fbitrix\u002Fmodules"," или\n",[248,495,496],{},"\u002Flocal\u002Fmodules","); удаление модуля убирает ровно её и только если это она, а\nне файл проекта. Как страница проверяет имя файла — в\n",[499,500,501],"a",{"href":145},"security.md",[374,503,505],{"id":504},"до-200-shefuiclear","До 2.0.0: shef.uiclear",[244,507,508,509,512,513,516],{},"Раньше те же пункты вешались на верхнюю панель Битрикс24 через событие\n",[248,510,511],{},"shef.uiclear:onBitrixMenuExtInitTopPanelUserMenu",", и модуль требовал\n",[248,514,515],{},"shef.uiclear",". С 2.0.0 от него не зависит: меню — штатное, административное.",[244,518,519,520,523],{},"На портале, обновлённом с 1.x, регистрация того обработчика остаётся: замена\nфайлов её не снимает. Поэтому класс\n",[248,521,522],{},"\\Shef\\Problems\\Integration\\Shef\\UiClear\\Events"," оставлен заглушкой — отвечает\n«нечего добавить» и не падает, — а деинсталляция снимает и эту регистрацию.\nХотите убрать её сразу — переустановите модуль.",[244,525,526,529,530],{},[499,527,528],{"href":133},"↑ Содержание"," | ",[499,531,532],{"href":149},"def-functions →",[534,535,536],"note",{},[244,537,538,539,545],{},"Источник: ",[499,540,544],{"href":541,"rel":542},"https:\u002F\u002Fgithub.com\u002Fbx-shef\u002Fproblems\u002Fblob\u002Fmain\u002Fdocs\u002F1_events.md",[543],"nofollow","problems\u002Fdocs\u002F1_events.md"," — правки туда, сайт пересобирается сам.",{"title":105,"searchDepth":547,"depth":547,"links":548},3,[549,551],{"id":376,"depth":550,"text":377},2,{"id":504,"depth":550,"text":505},"md",{},true,"---\ntitle: \"[`\\\\Shef\\\\Problems\\\\Integration`] События и меню\"\n---\n\nЧто модуль регистрирует в ядре при установке. Список — в `.settings.php`, ключ\n`installEvents`; что каждый обработчик существует, сверяет\n`tests\u002Fsettings_test.php`.\n\n| обработчик | событие | что делает |\n|---|---|---|\n| Main\\Events::onPageStart | `main:OnPageStart` | в административной части подключает стили вывода `PrHtml` |\n| Main\\Events::onEventLogGetAuditTypes | `main:OnEventLogGetAuditTypes` | регистрирует типы событий модуля в журнале событий — их видно в фильтре |\n\nТипы событий журнала — `\\Shef\\Problems\\Main\\Constants::getAuditTypeList()`:\n\n| тип | о чём |\n|---|---|\n| `SH_PROBLEMS_PROBLEM` | проблема общего вида — тип по умолчанию |\n| `SH_PROBLEMS_SYNC` | проблема с синхронизацией |\n| `SH_PROBLEMS_PRODUCT` | проблема с товаром |\n| `SH_PROBLEMS_SALE` | проблема с продажами |\n\n## Меню «Учёт проблем»\n\n**Настройки → Учёт проблем** в административной части, только администратору.\nОтдаёт его `admin\u002Fmenu.php`: ядро подключает этот файл само для каждого\nустановленного модуля, ничего регистрировать не нужно. Разметку меню строит\n`\\Shef\\Problems\\Integration\\Main\\AdminMenu::build()`.\n\n| пункт | куда ведёт |\n|---|---|\n| Логи → `[Monolog] …` | каждый файл, который пишут логгеры модуля; фабрика проблем — по файлу на тип |\n| Логи → Ошибки PHP, E-mail | `exceptions.log` и `mailer.log`, если проект кладёт их в каталог логов |\n| Логи → Все логи | список файлов каталога логов с размером и временем |\n| Журнал событий → `[Monolog] …` | журнал, отфильтрованный по типу события |\n| Журнал событий → Ошибки платёжных систем | таблица `b_sale_pay_system_err_log`; только если стоит `perfmon` |\n| Настройки модуля | страница настроек |\n\nТа же страница логов — по ссылке со страницы настроек модуля, вкладка\n«Сотрудники»; там же виден каталог логов.\n\nЛоги открываются **страницей модуля** `\u002Fbitrix\u002Fadmin\u002Fshef_problems_logs.php`:\nкаталог логов лежит вне корня сайта, и ни прямая ссылка, ни файловый менеджер\nБитрикса до него не дотянутся. Заглушку `\u002Fbitrix\u002Fadmin\u002Fshef_problems_logs.php`\nпишет установщик — с путём туда, где модуль стоит (`\u002Fbitrix\u002Fmodules` или\n`\u002Flocal\u002Fmodules`); удаление модуля убирает ровно её и только если это она, а\nне файл проекта. Как страница проверяет имя файла — в\n[security.md](\u002Fmodules\u002Fproblems\u002Fsecurity).\n\n## До 2.0.0: shef.uiclear\n\nРаньше те же пункты вешались на верхнюю панель Битрикс24 через событие\n`shef.uiclear:onBitrixMenuExtInitTopPanelUserMenu`, и модуль требовал\n`shef.uiclear`. С 2.0.0 от него не зависит: меню — штатное, административное.\n\nНа портале, обновлённом с 1.x, регистрация того обработчика остаётся: замена\nфайлов её не снимает. Поэтому класс\n`\\Shef\\Problems\\Integration\\Shef\\UiClear\\Events` оставлен заглушкой — отвечает\n«нечего добавить» и не падает, — а деинсталляция снимает и эту регистрацию.\nХотите убрать её сразу — переустановите модуль.\n\n[↑ Содержание](\u002Fmodules\u002Fproblems) | [def-functions →](\u002Fmodules\u002Fproblems\u002Fdeffunctions)\n\n::note\nИсточник: [problems\u002Fdocs\u002F1_events.md](https:\u002F\u002Fgithub.com\u002Fbx-shef\u002Fproblems\u002Fblob\u002Fmain\u002Fdocs\u002F1_events.md) — правки туда, сайт пересобирается сам.\n::\n\n",{"title":139,"description":142},"rF3MXgxS5MQ6tD9aN-wHR_vRxS2UN9ZoVIms654NabI",[559,560],{"title":132,"path":133,"stem":134,"description":137,"children":-1},{"title":144,"path":145,"stem":146,"description":105,"children":-1},1790857269476]