[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$E2qPcpmlYp":3,"$BAesavdSQS":675},{"items":4,"total":674},[5,85,138,194,250,308,364,416,473,526,576,626],{"order":6,"id":7,"documentId":8,"title":9,"date":10,"description":11,"slug":12,"showOnMainPage":13,"createdAt":14,"updatedAt":15,"publishedAt":16,"locale":17,"cover":18,"content":64,"media_event":11,"media_areas":69,"seo":11,"localizations":84},1,297,"yazmsp31df1ggv8saaix8dkd","«Тут почти стандартно, пара нюансов»: как эта фраза убивает экономику подписки\n","2026-07-22",null,"-tut-pochti-standartno-para-nyuansov-kak-eta-fraza-ubivaet-ekonomiku-podpiski",true,"2026-07-22T11:46:36.625Z","2026-09-13T23:21:38.544Z","2026-09-13T23:21:38.602Z","ru",{"id":19,"documentId":20,"name":21,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":24,"hash":58,"ext":26,"mime":29,"size":59,"url":60,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":62,"updatedAt":62,"publishedAt":63},734,"n9sbgz75x8lwc3ejiqvrfy7j","Изображение Codex 14 сент. 2026 г., 02_15_57.png",1920,1280,{"large":25,"small":35,"medium":43,"thumbnail":50},{"ext":26,"url":27,"hash":28,"mime":29,"name":30,"path":11,"size":31,"width":32,"height":33,"sizeInBytes":34},".png","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","large_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","image\u002Fpng","large_Изображение Codex 14 сент. 2026 г., 02_15_57.png",538.5,1000,667,538496,{"ext":26,"url":36,"hash":37,"mime":29,"name":38,"path":11,"size":39,"width":40,"height":41,"sizeInBytes":42},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","small_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","small_Изображение Codex 14 сент. 2026 г., 02_15_57.png",157.58,500,333,157583,{"ext":26,"url":44,"hash":45,"mime":29,"name":46,"path":11,"size":47,"width":48,"height":40,"sizeInBytes":49},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","medium_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","medium_Изображение Codex 14 сент. 2026 г., 02_15_57.png",325.8,750,325804,{"ext":26,"url":51,"hash":52,"mime":29,"name":53,"path":11,"size":54,"width":55,"height":56,"sizeInBytes":57},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b","thumbnail_Изображение Codex 14 сент. 2026 г., 02_15_57.png",44.25,234,156,44252,"Izobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b",552.85,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_15_57_77e449973b.png","aws-s3","2026-09-13T23:17:06.834Z","2026-09-13T23:17:06.835Z",[65],{"__component":66,"id":67,"text":68},"media.text",261,"\u003Cp>Представьте SaaS, который уже покупают крупные компании: продукт один, сценарии понятные, команда планирует развитие на несколько релизов вперёд. Потом приходит важный заказчик и говорит: «Тут почти стандартно, пара нюансов» — отдельный порядок согласования, отчёт для финансового отдела, свои роли в кабинете, интеграцию с внутренней системой и особые требования к хранению данных.\u003Cbr>\u003Cbr>Для продаж это понятная ситуация: крупный договор, требования объяснимы, бюджет на внедрение есть. Для продукта риск появляется позже. Исключения накапливаются незаметно: поддержка помнит, кому нельзя включать новый сценарий, разработка держит в голове старые условия, менеджеры уточняют детали в чатах перед каждым запуском.\u003Cbr>\u003Cbr>Так маленькая просьба превращается в постоянный расход. Клиент оплатил внедрение один раз, а команда возвращается к его исключению на каждом соседнем релизе: в тестировании, документации, аналитике, миграциях, поддержке и обучении новых людей. В какой-то момент SaaS с повторяемой выручкой начинает жить как поток отдельных проектов.\u003C\u002Fp>\u003Ch2>Задача в статусе «готово», а деньги всё ещё тратит\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 02_16_04.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_16_04_5e5f133db1.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Например, крупному клиенту нужен дополнительный статус в отчёте. На встрече это выглядит как небольшая доработка: добавить поле, проверить выгрузку, обновить инструкцию, объяснить логику клиенту. Задача проходит разработку, попадает в релиз и вроде бы закрывается.\u003Cbr>\u003Cbr>Через месяц меняется общий отчёт, и команда снова вспоминает про этот статус. Через три месяца появляется новый тариф, где статус должен работать только для части пользователей. Через полгода переносят данные, и старое исключение приходится учитывать в миграции. В трекере задача давно стоит в статусе «готово», но в экономике продукта она продолжает занимать время.\u003Cbr>\u003Cbr>Пять таких исключений команда ещё держит за счёт памяти и дисциплины. Пятьдесят превращают запуск каждого крупного клиента в отдельное расследование: где у него особые права, какие отчёты нельзя трогать, почему новая функция должна открываться только после согласования с закупками.\u003C\u002Fp>\u003Ch2>Три числа, по которым видно, что маржа уже под давлением\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 02_18_13.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_18_13_c7ae1a12ea.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Затраты на разработку видны лучше всего, но они редко показывают полную цену кастомизации. В SaaS полезно смотреть на три прикладных показателя вместе.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e5b0b9e32ac51c6506183197545ca4126\">Сколько занимает запуск нового крупного клиента. Если раньше аккаунт поднимали за несколько дней, а теперь на каждый договор уходит несколько недель, продукт уже обслуживает настройки вместе с накопленными исключениями.\u003C\u002Fli>\u003Cli data-list-item-id=\"e3a42cf0a42ce85784da8e1c8bfd44508\">Какая доля команды уходит на индивидуальные запросы. Считать стоит всю цепочку: разработку, поддержку, аналитику, тестирование, документацию, менеджеров внедрения и людей, которые объясняют внутренние правила друг другу.\u003C\u002Fli>\u003Cli data-list-item-id=\"e1e024c3e974942b9cc90d6f43d4b0143\">Сколько клиентских сценариев нужно проверить перед релизом. Если любое изменение требует вспомнить десятки частных условий, релизная скорость падает, а стоимость подписки для команды растёт.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Когда все три числа растут одновременно, маржа уже под давлением. Это момент, когда кастомизацию нужно перестать обсуждать как «пожелания клиента» и начать разбирать как продуктовую архитектуру.\u003C\u002Fp>\u003Ch2>Правило: тариф, роль и отчёт меняются без релиза\u003C\u002Fh2>\u003Cp>Главный тест простой: запрос повторяется у нескольких клиентов одного сегмента или завязан на внутренний процесс одной компании?\u003Cbr>\u003Cbr>Если сценарий повторяется и его можно описать параметрами продукта, его стоит переводить в настройки, модуль или тарифную возможность. Если просьба нужна одному стратегическому клиенту и держится на его регламенте, её честнее считать отдельным проектом с отдельной стоимостью поддержки.\u003Cbr>\u003Cbr>Чаще всего в настройки уходят роли пользователей, состав тарифов, доступность функций, отчёты, уведомления и интеграции. Если несколько клиентов просят разные отчёты, продукту нужен набор шаблонов или конструктор. Если регулярно меняются права пользователей, нужна понятная модель ролей и действий внутри системы. Если отличаются условия оплаты, тарифы стоит связывать с набором функций, лимитами, периодами и правилами продления.\u003Cbr>\u003Cbr>Ориентир можно сформулировать жёстче: изменение тарифа, роли или отчёта должно проходить через настройки, без отдельного релиза. Пока каждую такую просьбу снова берёт разработка, кастомизация остаётся заказной задачей внутри подписки.\u003C\u002Fp>\u003Ch2>Один договор тормозит всех: цена непродуманной архитектуры\u003C\u002Fh2>\u003Cp>Один из главных вопросов для SaaS — как разные компании будут работать внутри одной системы. У каждой должны быть свои данные, настройки, роли и ограничения, при этом продукту нужна общая логика, понятные релизы и предсказуемая поддержка.\u003Cbr>\u003Cbr>Когда этот слой не продуман, команда быстро приходит к отдельным установкам, базам с разной логикой и инструкциям для каждого крупного клиента. Один договор начинает тормозить остальных, потому что любое изменение приходится проверять на наборе частных условий, а перенос данных превращается в отдельный проект.\u003Cbr>\u003Cbr>До выхода к крупным корпоративным клиентам стоит решить, как будут разделяться данные и нагрузка. В одном случае достаточно изоляции строк на уровне базы, в другом удобнее отдельная схема для каждой компании, для наиболее жестких требований нужна отдельная база. У каждого варианта своя стоимость, уровень изоляции и сложность поддержки, поэтому такую модель лучше фиксировать до разработки, пока на команду ещё не давит подписанный договор.\u003Cbr>\u003Cbr>Сюда же относятся установки в контуре клиента и частные облака. Если такие требования могут появиться в продажах, команде нужно заранее заложить инфраструктуру, доставку релизов, мониторинг, резервные копии и порядок обновлений под этот сценарий.\u003C\u002Fp>\u003Ch2>Пока тарифы зашиты в код, каждая упаковка — это релиз\u003C\u002Fh2>\u003Cp>На старте схема часто кажется простой: базовый тариф, расширенный тариф, администратор и пользователь. Потом появляются пробные периоды, годовые договоры, оплата по объёму использования, лимиты, скидки, отдельные роли для подразделений, корпоративный вход и автоматическое управление пользователями.\u003Cbr>\u003Cbr>Если тарифная логика зашита в код, новая упаковка продукта становится релизом. Команда хочет проверить другой состав тарифа или запустить пилот для части клиентов, но вместо настройки получает задачу на разработку. В корпоративном SaaS это особенно больно: клиент может попросить годовой контракт, отдельные лимиты, счета для бухгалтерии и вход через свою систему авторизации.\u003Cbr>\u003Cbr>Проще поддерживать схему, где тариф управляет набором возможностей, роли описывают действия пользователя, а доступ к функциям включается через настройки. Тогда продуктовая команда быстрее проверяет упаковку: меняет состав тарифов, запускает пилоты и даёт доступ отдельным сегментам без лишнего релиза.\u003Cbr>\u003Cbr>В Qtim при \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas?utm_source=qtim_blog&amp;utm_medium=article&amp;utm_campaign=saas\">разработке SaaS-платформ\u003C\u002Fa> мы раскладываем продукт на такие слои: работа нескольких компаний в одной системе, подписки и оплата, роли и права доступа, самостоятельный запуск клиента, интеграции, админ-панель, продуктовая аналитика и инфраструктура.\u003C\u002Fp>\u003Ch2>Поддержка работает вслепую — и каждый тикет превращается в расследование\u003C\u002Fh2>\u003Cp>Когда исключения хранятся в инструкциях и переписках, поддержка первой начинает работать вслепую. В тикете написано: «Не сходится отчёт», но причину нельзя понять по одному экрану. Нужно помнить тариф, включённые модули, права пользователя, интеграции, историю платежей и особые условия клиента.\u003Cbr>\u003Cbr>Поэтому админ-панель в SaaS нужна как рабочий инструмент поддержки. Команда должна видеть компанию, активные функции, роли, лимиты, ошибки интеграций, историю изменений и события, которые влияют на поведение продукта. Иначе каждый сложный вопрос превращается в расследование по перепискам.\u003Cbr>\u003Cbr>В зрелой админке есть журнал действий, возможность проверить сценарий глазами пользователя, управление кредитами, заморозками и возвратами, статусы интеграций и понятная эскалация. Эти вещи редко продают продукт на первом звонке, зато они сохраняют скорость после роста клиентской базы.\u003C\u002Fp>\u003Ch2>Иногда правильный ответ клиенту — «нет»\u003C\u002Fh2>\u003Cp>Есть и обратная ловушка: попытаться сделать настраиваемым вообще всё. Так в продукте появляется система параметров, в которой трудно разобраться даже собственной команде, а каждое изменение требует долгого согласования.\u003Cbr>\u003Cbr>Отказывать крупному клиенту проще, когда у команды есть общий критерий. Разговор строится вокруг стоимости владения: этот сценарий будет влиять на релизы, тестирование и поддержку, поэтому у него должна быть отдельная экономика.\u003Cbr>\u003Cbr>Вместо размытого «посмотрим» лучше предложить понятный вариант: вынести запрос в отдельный проект с ценой поддержки, поставить в роадмап, если сценарий повторяется у сегмента, или оформить платный кастом с границами, SLA и сроком пересмотра. Так отказ перестаёт выглядеть упрямством и становится нормальным разговором о том, что продукт сможет поддерживать через год.\u003C\u002Fp>\u003Ch2>Начните с карты исключений — на ней сразу видно, где течёт маржа\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 02_20_41.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_02_20_41_2864e203fa.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Переписывать платформу сразу не нужно. Сначала стоит собрать карту исключений: какие доработки делали, для кого, сколько они занимали на запуске и где продолжают требовать внимания после релиза.\u003Cbr>\u003Cbr>Отдельно выпишите тарифные исключения, роли, отчёты, интеграции, импорт данных, требования безопасности и поддержку. Для каждого пункта отметьте, повторяется ли он у нескольких клиентов одного сегмента или держится на процессе одной компании. После такого разбора становится видно, что можно перевести в настройки, что оставить как отдельную услугу, а что убрать из будущих продаж.\u003Cbr>\u003Cbr>Если нужна внешняя помощь, в Qtim мы начинаем с такого же разбора архитектуры: смотрим, где продукт теряет повторяемость, какие запросы можно вынести в платформенный слой и как перейти к новой модели без остановки продаж. Когда SaaS уже работает как отдельная установка под каждого клиента, собран на конструкторе или вырос из коробочного решения, переход обычно можно делать поэтапно: аудит, параллельная платформа, перенос клиентов, стабилизация и передача процесса команде заказчика.\u003Cbr>\u003Cbr>Цель — вернуть продукту скорость и защитить экономику подписки. Под крупный контракт появляется переиспользуемая логика, команда перестает бояться очередного исключения перед релизом, а карта исключений показывает, где маржа уходит сейчас и что стоит перевести в конфигурируемую платформу. Если хотите свериться с нашим подходом, посмотрите, как мы подходим к \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas?utm_source=qtim_blog&amp;utm_medium=article&amp;utm_campaign=saas\">разработке SaaS-платформ\u003C\u002Fa>.\u003C\u002Fp>",[70,77],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},2,"ei24o3vyhndi1hqwqhnd61p0","Все","ALL","2026-02-25T07:47:50.713Z","2026-02-25T07:47:50.739Z",{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},31,"x54tt9ferpmy25va1y5hlmqq","Стоимость и бюджеты","stoimost-i-byudzhety","2026-07-30T14:30:46.759Z","2026-07-30T14:30:46.777Z",[],{"order":6,"id":86,"documentId":87,"title":88,"date":89,"description":11,"slug":90,"showOnMainPage":13,"createdAt":91,"updatedAt":92,"publishedAt":93,"locale":17,"cover":94,"content":130,"media_event":11,"media_areas":134,"seo":11,"localizations":137},303,"k77qvgjbwvomrrx4tn51benn","Почему похожие интернет-магазины отличаются по стоимости в несколько раз","2026-07-31","-pochemu-pohozhie-internet-magaziny-otlichayutsya-po-stoimosti-v-neskolko-raz","2026-07-31T16:11:46.552Z","2026-09-14T11:00:11.859Z","2026-09-14T11:00:11.926Z",{"id":95,"documentId":96,"name":97,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":100,"hash":125,"ext":26,"mime":29,"size":126,"url":127,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":128,"updatedAt":128,"publishedAt":129},741,"z36v9tppp8t4gvtmilm251do","Изображение Codex 14 сент. 2026 г., 13_54_55.png",1536,1024,{"large":101,"small":107,"medium":113,"thumbnail":119},{"ext":26,"url":102,"hash":103,"mime":29,"name":104,"path":11,"size":105,"width":32,"height":33,"sizeInBytes":106},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc.png","large_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc","large_Изображение Codex 14 сент. 2026 г., 13_54_55.png",897.26,897257,{"ext":26,"url":108,"hash":109,"mime":29,"name":110,"path":11,"size":111,"width":40,"height":41,"sizeInBytes":112},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc.png","small_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc","small_Изображение Codex 14 сент. 2026 г., 13_54_55.png",232.36,232359,{"ext":26,"url":114,"hash":115,"mime":29,"name":116,"path":11,"size":117,"width":48,"height":40,"sizeInBytes":118},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc.png","medium_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc","medium_Изображение Codex 14 сент. 2026 г., 13_54_55.png",507.77,507768,{"ext":26,"url":120,"hash":121,"mime":29,"name":122,"path":11,"size":123,"width":55,"height":56,"sizeInBytes":124},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc","thumbnail_Изображение Codex 14 сент. 2026 г., 13_54_55.png",61.36,61357,"Izobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc",505.79,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_13_54_55_505ca875cc.png","2026-09-14T10:58:45.699Z","2026-09-14T10:58:45.700Z",[131],{"__component":66,"id":132,"text":133},267,"\u003Cp>Запрос «нужен интернет-магазин» почти ничего не говорит о будущей разработке. В одной заявке за ним стоит каталог на 300 товаров, один склад и доставка по понятным правилам. В другой — десятки тысяч позиций, несколько поставщиков, личные цены, бонусы, синхронизация с 1С и остатки, которые обновляются чаще, чем кто-то успевает открыть Excel.\u003Cbr>\u003Cbr>На экране разница бывает минимальной: каталог, карточка товара, корзина, оплата. Основной объём прячется в процессах, данных, интеграциях и ролях.\u003Cbr>Кратная разница в стоимости появляется из-за количества состояний, которые нужно спроектировать, связать с системами и проверить на отказ. Склад не ответил. Цена изменилась во время оплаты. Платёж прошёл, а CRM временно недоступна. Поставщик загрузил товар, который должен пройти модерацию. Каждое такое состояние требует логики, интерфейса, проверки и поддержки.\u003Cbr>\u003Cbr>Разберу, где оценка начинает расходиться и как мы смотрим на такие проекты в Qtim.\u003C\u002Fp>\u003Ch2>За одной кнопкой «купить» стоят разные роли\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 13_55_09.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_13_55_09_c1f1d4c7f9.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_13_55_09_c1f1d4c7f9.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_13_55_09_c1f1d4c7f9.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_13_55_09_c1f1d4c7f9.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_13_55_09_c1f1d4c7f9.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Сначала важно понять, кто управляет продажей.\u003C\u002Fp>\u003Cp>Если ассортиментом занимается сам бизнес, логика обычно строится вокруг каталога, остатков, оплаты, доставки и админки. У команды есть понятный набор ролей: администратор, менеджер, покупатель.\u003C\u002Fp>\u003Cp>У маркетплейса появляются поставщики, модераторы, комиссии, взаиморасчёты, разные права доступа и личные кабинеты. Товар добавляет один участник, проверяет другой, деньги распределяются по правилам площадки.\u003C\u002Fp>\u003Cp>Для покупателя это всё ещё кнопка «купить». Для разработки — отдельный операционный слой, который двигает сроки и бюджет.\u003C\u002Fp>\u003Ch2>MVP начинается с границ первой версии\u003C\u002Fh2>\u003Cp>Мы в Qtim считаем MVP по сквозному сценарию покупки.\u003C\u002Fp>\u003Cp>Покупатель должен найти товар, изучить карточку, добавить позицию в корзину, выбрать доставку и оплатить заказ. Сотрудник должен получить заявку, увидеть состав, передать дальше в обработку и обновить статус.\u003C\u002Fp>\u003Cp>В «\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fklik-yut\">Клик ЮТ\u003C\u002Fa>» такой сценарий связал каталог с фильтрами, разные способы оплаты и доставку с учётом местоположения клиента.\u003C\u002Fp>\u003Cp>Звучит базово. Но даже в таком «базово» должны сойтись каталог, корзина, платежи, доставка и административная часть. Если сразу добавить бонусы, персональные цены, сложные акции и несколько типов клиентов, первая версия быстро перестаёт быть маленькой.\u003C\u002Fp>\u003Ch2>Интеграции съедают больше времени, чем кажется\u003C\u002Fh2>\u003Cp>До разработки нужно понять, где живут цены, остатки, заказы и клиентские данные.\u003C\u002Fp>\u003Cp>Иногда всё хранится внутри сайта. Тогда проще. Чаще цены приезжают из 1С, наличие — со склада, доставку считает внешний сервис, платежи подтверждает банк, а статусы отправлений возвращает логистический партнёр.\u003C\u002Fp>\u003Cp>Каждую такую связь нужно разработать, проверить и поддерживать. Что делать, если 1С прислала цену со старой скидкой? Как показать товар, если склад отдаёт остаток с задержкой в час? Куда записать заказ, если банк подтвердил оплату дважды?\u003C\u002Fp>\u003Cp>На макете этого не видно. В смете — видно.\u003C\u002Fp>\u003Ch2>Главная сложность живёт за пределами корзины\u003C\u002Fh2>\u003Cp>В e-commerce самая трудная часть не всегда связана с каталогом и оплатой.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fscanwow\">ScanWow\u003C\u002Fa> пользователь выбирает 3D-модель и пресет под нужный движок, а платформа готовит архив для скачивания. Внутри этого сценария — серверная обработка файлов, очередь фоновых задач, экспортёр моделей и письмо со ссылкой, когда архив готов.\u003C\u002Fp>\u003Cp>Для пользователя путь короткий: выбрал, скачал, импортировал. Для разработки это отдельная продуктовая логика, которая и создаёт ценность сервиса.\u003C\u002Fp>\u003Cp>Такую функцию нельзя оценивать как ещё одну кнопку в карточке товара. Она влияет на архитектуру, сроки и стоимость сильнее, чем десяток обычных экранов.\u003C\u002Fp>\u003Ch2>Коробка хороша, пока не мешает развитию\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 13_55_15.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_13_55_15_ae5241cd4a.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_13_55_15_ae5241cd4a.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_13_55_15_ae5241cd4a.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_13_55_15_ae5241cd4a.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_13_55_15_ae5241cd4a.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Готовая платформа подходит, когда процессы совпадают с её логикой: стандартный каталог, понятный заказ, типовая админка, привычные интеграции.\u003C\u002Fp>\u003Cp>Проблемы начинаются при росте каталога, сложной лояльности, нестандартных правилах продажи, высоких требованиях к скорости или желании развивать продукт без постоянных обходных решений.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002F4fresh\">4fresh\u003C\u002Fa> возможности 1С-Битрикс стали ограничивать развитие магазина. Мы перенесли площадку на собственное решение и сохранили профили пользователей, историю заказов и тысячи отзывов.\u003C\u002Fp>\u003Cp>Миграция такого уровня — отдельная работа. Нужно перенести данные, проверить их целостность, сохранить привычный опыт для покупателей и не уронить то, что уже приносит бизнесу деньги.\u003C\u002Fp>\u003Cp>Низкая оценка редко означает, что проект проще. Чаще часть состояний просто не заложили в смету: не спросили про остатки из 1С, не продумали поведение при недоступной оплате, не учли роли поставщиков. Эти сценарии никуда не деваются. Они всплывают переделкой после релиза, когда чинить уже дороже.\u003C\u002Fp>\u003Ch2>Первый релиз проверяет спрос\u003C\u002Fh2>\u003Cp>После запуска приоритеты становятся конкретнее. Уже видно, где падает конверсия, где тормозит загрузка, на каком шаге ошибаются пользователи и сколько времени сотрудники тратят на обработку заказа.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fdroneshow-gallery\">DroneShow Gallery\u003C\u002Fa> за 2,5 месяца мы запустили маркетплейс готовых дрон-шоу: каталог сценариев, фильтры по параметрам площадки, просмотр моделей в 3D, оплату и доступ к исходным файлам.\u003C\u002Fp>\u003Cp>Первый релиз закрыл путь от просмотра модели до покупки и скачивания исходников. Редактор моделей, расширенную аналитику и дополнительные сценарии можно развивать следующим этапом, когда уже понятно, как люди пользуются продуктом.\u003C\u002Fp>\u003Ch2>Объём прячется за витриной\u003C\u002Fh2>\u003Cp>В оценке интернет-магазина мы идём от процесса продажи: кто управляет товарами, откуда приходят цены и остатки, какие системы уже есть у бизнеса, где заказ может зависнуть и что нужно для первого рабочего релиза.\u003C\u002Fp>\u003Cp>В этом и есть работа интегратора: увидеть связи под витриной до того, как они расползутся по срокам.\u003C\u002Fp>\u003Cp>Иногда проект можно запустить проще и дешевле, чем казалось на старте. Иногда за коротким запросом оказывается маркетплейс с интеграциями, ролями, миграцией и нетиповой логикой.\u003C\u002Fp>\u003Cp>Оценка на глаз почти всегда мимо: недозаложили — сорвали сроки и бюджет, перезаложили — переплатили за то, что можно было отложить на второй этап. Дешевле разобрать состав работ до старта.\u003C\u002Fp>\u003Cp>Если у вас есть идея магазина, текущая площадка или список «хотим как у конкурентов», можно разобрать это с нами. Покажем, что стоит запускать первым, какие места потянут сроки и где лучше не тащить всё в первый релиз: \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">получить предварительный план запуска\u003C\u002Fa>.\u003C\u002Fp>",[135,136],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"order":6,"id":139,"documentId":140,"title":141,"date":142,"description":11,"slug":143,"showOnMainPage":13,"createdAt":144,"updatedAt":145,"publishedAt":146,"locale":17,"cover":147,"content":180,"media_event":11,"media_areas":184,"seo":11,"localizations":193},304,"vvxg6n1kmg9y7k6143t9gm8o","1 октября в прод: что 12 платформам придётся перестроить из-за нового закона","2026-08-14","novyy-zakon-dlya-platform-12-servisov","2026-08-18T10:59:43.550Z","2026-09-14T12:10:46.768Z","2026-09-14T12:10:46.844Z",{"id":148,"documentId":149,"name":150,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":151,"hash":176,"ext":26,"mime":29,"size":177,"url":178,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":179,"updatedAt":179,"publishedAt":179},743,"l8dozptgwwcda9eqjz3g0ysf","Изображение Codex 14 сент. 2026 г., 15_06_57.png",{"large":152,"small":158,"medium":164,"thumbnail":170},{"ext":26,"url":153,"hash":154,"mime":29,"name":155,"path":11,"size":156,"width":32,"height":33,"sizeInBytes":157},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186","large_Изображение Codex 14 сент. 2026 г., 15_06_57.png",670.35,670354,{"ext":26,"url":159,"hash":160,"mime":29,"name":161,"path":11,"size":162,"width":40,"height":41,"sizeInBytes":163},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186","small_Изображение Codex 14 сент. 2026 г., 15_06_57.png",185.78,185783,{"ext":26,"url":165,"hash":166,"mime":29,"name":167,"path":11,"size":168,"width":48,"height":40,"sizeInBytes":169},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186","medium_Изображение Codex 14 сент. 2026 г., 15_06_57.png",394.62,394623,{"ext":26,"url":171,"hash":172,"mime":29,"name":173,"path":11,"size":174,"width":55,"height":56,"sizeInBytes":175},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186","thumbnail_Изображение Codex 14 сент. 2026 г., 15_06_57.png",50.19,50193,"Izobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186",590.69,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_06_57_10e21b7186.png","2026-09-14T12:10:41.048Z",[181],{"__component":66,"id":182,"text":183},268,"\u003Cp class=\"p1\">Жалоба удовлетворена, но кабинет продавца уже открыт, карточка всё ещё скрыта, рейтинг не вернулся, деньги остаются удержаны: решение застряло между пятью сервисами.\u003C\u002Fp>\u003Cp class=\"p1\">С 1 октября 2026 года вступает в силу Федеральный закон № 289-ФЗ «Об отдельных вопросах регулирования платформенной экономики в Российской Федерации». Для площадок из предварительного перечня Минэкономразвития это дата готовности к новому режиму: обязательный контур должен быть в проде не позднее включения конкретной платформы в реестр.\u003C\u002Fp>\u003Cp class=\"p1\">Для IT-команды это большой релиз. Придётся проверять продавцов и карточки через государственные реестры, хранить согласия на скидки, запускать таймеры уведомлений, принимать жалобы и синхронно отменять ограничения. За каждым глаголом — статусы, интеграции, фоновые задачи, журнал решений и сквозные тесты.\u003C\u002Fp>\u003Cp class=\"p1\">Мы разрабатываем SaaS-сервисы и платформы, поэтому читаем новые требования как описание будущего поведения системы. Ниже разберем, где возникает скрытый объём разработки и что должно работать к октябрьскому запуску. Юридическую трактовку требований нужно согласовать с профильными специалистами.\u003C\u002Fp>\u003Cp class=\"p2\">&nbsp;\u003C\u002Fp>\u003Ch2>12 площадок в списке — и у каждой откроется свой бэклог\u003C\u002Fh2>\u003Cp class=\"p1\">Минэкономразвития назвало 12 площадок, которые планирует включить в реестр: Avito, Delivery Club, Joom, Lamoda, Ozon, Wildberries, «Купер», «Магнит Маркет», «Яндекс Маркет», «Яндекс Go», «Яндекс Еда» и «Яндекс Путешествия»\u003C\u002Fp>\u003Cp class=\"p1\">Перечень пока предварительный. Закон начинает действовать 1 октября 2026 года, а статус посреднической цифровой платформы возникает после включения в реестр. Значит, 1 октября — точка готовности к новому режиму, а запись в реестре — момент, когда обязательные сценарии уже должны работать.\u003C\u002Fp>\u003Cp class=\"p1\">В законе № 289-ФЗ много формулировок вроде «уведомить», «получить согласие», «проверить» и «отменить меру». Для разработки это глаголы с состоянием. Нужно знать, кто запустил действие, к какому объекту оно относится, когда истекает срок, какой модуль отвечает за результат и что происходит при ошибке.\u003C\u002Fp>\u003Cp class=\"p1\">Требование «уведомить продавца» превращается в событие, канал доставки, подтверждение, таймер и запись для аудита. Этот слой и создаёт объём, которого нет на первом макете.\u003C\u002Fp>\u003Ch2>Кнопка «жалоба удовлетворена» должна сработать в пяти сервисах\u003C\u002Fh2>\u003Cp class=\"p1\">Закон связывает ограничение кабинета или карточки с системой досудебных жалоб. Если оператор признал жалобу обоснованной, применённую меру нужно отменить за 48 часов.\u003C\u002Fp>\u003Cp class=\"p1\">В зрелом продукте доступ закрывает сервис авторизации, карточку снимает модерация, рейтинг считает отдельный модуль, деньги удерживает расчётный контур, а обращение живёт в службе поддержки. Ответ «жалоба удовлетворена» ничего не меняет, пока пять систем хранят разные состояния.\u003C\u002Fp>\u003Cp class=\"p1\">Кнопка сработала в поддержке. Система — ещё нет.\u003C\u002Fp>\u003Cp class=\"p1\">Монолит упирается в те же 48 часов и журнал решений. Сбой просто живёт в другом месте: в локальной транзакции, фоновой задаче или последовательности обновлений модулей. Если восстановление остановилось посередине, пользователь получает тот же рассинхрон.\u003C\u002Fp>\u003Cp class=\"p1\">Мы связываем изменения общим идентификатором решения. В распределённой архитектуре запись о смене состояния и событие для других сервисов фиксируем через transactional outbox. Обработчики делаем идемпотентными: повторная команда не должна второй раз вернуть деньги, поднять рейтинг или разблокировать кабинет. После исчерпания повторов сообщение попадает в dead letter queue (DLQ), откуда его разбирает поддержка.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>45 дней, три дня, 15 дней, 48 часов: теперь это системные таймеры\u003C\u002Fh2>\u003Cp class=\"p1\">О существенных изменениях договора партнёра предупреждают за 45 дней. О большинстве санкций — за три дня. На ответ по жалобе даётся 15 дней, на отмену обоснованно оспоренной меры — 48 часов. Эти сроки собраны в статьях 12–14 закона.\u003C\u002Fp>\u003Cp class=\"p1\">Календарь юриста не запустит фоновую задачу. Продукт должен сам зафиксировать начало отсчёта, доставить уведомление, не применить меру раньше времени и поднять инцидент, если срок заканчивается без результата. Для каждого перехода нужны основание, версия правила, время и исполнитель — человек или сервис.\u003C\u002Fp>\u003Cp class=\"p1\">Проектирование начинаем с карты состояний: решение создано → уведомление отправлено → срок истёк → ограничение применено → жалоба подана → решение пересмотрено → доступ восстановлен. Схема показывает пропущенные события, владельцев данных и точки аудита. Она же становится основой для сквозных тестов.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_kopiya_22683be81e.png\" alt=\"pic&nbsp;— копия.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_kopiya_22683be81e.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_kopiya_22683be81e.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_kopiya_22683be81e.png 750w\" sizes=\"100vw\" width=\"750\">\u003C\u002Ffigure>\u003Cp class=\"p1\">При приёмке релиза первым проходит сценарий жалобы: блокируем тестового продавца, оспариваем решение и проверяем, что восстановились кабинет, карточка, рейтинг и расчёты. Пять зелёных тестов отдельных сервисов такой сценарий не заменят.\u003C\u002Fp>\u003Ch2>Реестр не ответил. Что увидит продавец?\u003C\u002Fh2>\u003Cp class=\"p1\">При регистрации продавца или публикации карточки внешний реестр может ответить ошибкой. Продукту нужен предсказуемый статус и понятное объяснение происходящего. Бесконечный спиннер, потерянный запрос и публикация без обязательной проверки одинаково опасны.\u003C\u002Fp>\u003Cp class=\"p1\">При регистрации платформа сверяет партнёров и владельцев пунктов выдачи через ЕГРЮЛ, ЕГРИП, ЕСИА или другие разрешённые способы. Для товарных карточек код ТН ВЭД ЕАЭС или ОКПД 2 определяет, нужно ли обращаться к реестру разрешительных документов. На специальную проверку отведено три рабочих дня, а для старого каталога предусмотрен переходный период в 180 дней. Механику закрепляет постановление № 821.\u003C\u002Fp>\u003Cp class=\"p1\">Интеграцию сразу проектируем с учётом недоступности источника. Реестр может отвечать медленно, вернуть неполные данные или временно отключиться. Запросу нужны idempotency key, retry с ограничением попыток и backoff, журнал ответа и понятный статус для пользователя. После нескольких неудач запись уходит в DLQ, которую видит поддержка.\u003C\u002Fp>\u003Cp class=\"p1\">Миграцию существующего каталога выносим в отдельный поток. Если старые карточки попадут в ту же очередь, что и новые, фоновая проверка заберёт ресурсы у ежедневной публикации товаров. Очередям задаём разные приоритеты, контролируем пропускную способность и сохраняем возможность остановить миграцию без остановки основного сценария.\u003C\u002Fp>\u003Ch2>Одно поле не закроет согласия, отправки и часы\u003C\u002Fh2>\u003Cp class=\"p1\">Платформа сможет снизить цену за счёт продавца после уведомления и согласия. Продавец вправе отозвать согласие для ещё не проданного товара или заранее запретить такие акции. Отказ не должен ухудшать рейтинг, поиск или доступ к кабинету.\u003C\u002Fp>\u003Cp class=\"p1\">Булева переменная discount_allowed хранит только текущий ответ. Для полноценной истории нужны версия условий, время уведомления и согласия, список товаров, период акции и событие отзыва. Ценообразование проверяет актуальное разрешение перед расчётом, а поиск и рейтинг исключают отказ из отрицательных сигналов. Без этой истории невозможно восстановить область действия согласия.\u003C\u002Fp>\u003Cp class=\"p1\">Та же инженерная дисциплина нужна в обмене с ФНС. Правила взаимодействия с ФНС предусматривают электронные сервисы и протоколы, а ведомство уже публикует проекты интерфейсов. Команде понадобятся версии схем, контроль доставки, сверка отправленных данных и повторная обработка ошибок. Кнопка «отправить» без журнала и подтверждения быстро создаст расхождение между платформой и внешней системой.\u003C\u002Fp>\u003Cp class=\"p1\">У сервисных платформ появляется ещё один расчётный модуль. Постановление № 760 задаёт критерий продолжительной работы на одного заказчика: свыше 60 часов в месяц на протяжении шести месяцев подряд для ряда видов деятельности. Показатель работает как правило допуска к следующему заказу. Система связывает исполнителя, заказчика, отрасль, часы и скользящее шестимесячное окно, заранее показывает приближение к ограничению и объясняет отказ.\u003C\u002Fp>\u003Ch2>Что должно работать к запуску, даже если команда не успевает всё\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic&nbsp;— копия 10.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_kopiya_10_553da62c00.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_kopiya_10_553da62c00.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_kopiya_10_553da62c00.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_kopiya_10_553da62c00.png 750w\" sizes=\"100vw\" width=\"750\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Границу первого релиза определяет риск пропустить срок или изменить права пользователя без следа. К октябрьскому запуску, а для конкретной платформы — не позднее включения в реестр, должны работать четыре группы сценариев:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eb0aed3d5c12c96ee4fb071209ee73458\">\u003Cp class=\"p1\">проверка новых партнёров и карточек с блокировкой публикации до обязательной сверки;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5294c486c368acf3297caacb19e8bd9d\">\u003Cp class=\"p1\">уведомления, ограничения, жалобы и восстановление доступа в установленный срок;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ed7ef126ca81d815107288b16861bb35c\">\u003Cp class=\"p1\">согласия на скидки, отзыв согласия и защита положения продавца после отказа;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0cd330a29926876da305924063274597\">\u003Cp class=\"p1\">журнал решений, таймеры, повторная обработка ошибок и мониторинг внешних интеграций.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Старый каталог можно проверять после старта в пределах 180-дневного переходного периода из постановления № 821. Очередь миграции, ограничение её нагрузки и наблюдаемость нужны уже в первом релизе. Иначе переходный период превратится в неконтролируемый фон и начнёт мешать новым карточкам.\u003C\u002Fp>\u003Cp class=\"p1\">После запуска можно улучшать интерфейсы, расширять аналитические панели и ускорять операции, которые уже выполняются корректно. Статусная модель, сроки, аудит и безопасный откат остаются в обязательной части.\u003C\u002Fp>\u003Cp class=\"p1\">Универсальной оценки в спринтах здесь нет. Одна площадка уже хранит историю санкций и доработает существующий процесс; другой придётся создавать доменную модель, интеграции и очереди с нуля. Приоритет при этом ясен: сначала сценарии, где можно пропустить законный срок, опубликовать непроверенную карточку или оставить пользователя в неверном статусе.\u003C\u002Fp>\u003Ch2>Шесть проверок до первой оценки разработки\u003C\u002Fh2>\u003Cp class=\"p1\">До макетов и перечня экранов команда Qtim проходит шесть шагов:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e275177f4311fd9580c4ebb16e1319ec2\">\u003Cp class=\"p1\">Выписываем события, которые создают юридический срок или меняют права пользователя.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e589650020a6d1dcb4cfe2e26a2d54019\">\u003Cp class=\"p1\">Связываем каждое событие с модулем, владельцем данных и зависимыми системами.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee239753e96ab2353159e4acb79952efb\">\u003Cp class=\"p1\">Для каждой внешней интеграции описываем таймаут, retry, недоступность и DLQ.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee4f12a97eac62412574c79df9eb13ef0\">\u003Cp class=\"p1\">Проверяем, можно ли восстановить историю решения: основание, версию правила, время и исполнителя.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ed048589dc77ca8107f2efad5bdc30936\">\u003Cp class=\"p1\">Отделяем миграции старых данных от ежедневного потока и оцениваем нагрузку на оба контура.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e7a99738a024cce843898d9496ae28985\">\u003Cp class=\"p1\">Собираем сквозные тесты для жалобы, отзыва согласия, недоступности реестра и отмены ограничения.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">После этой раскладки в оценке появляются оркестрация между сервисами, outbox, журнал решений, очереди, мониторинг, миграции и тесты на сбои. Такие участки часто определяют срок релиза, хотя на первых макетах их не видно.\u003C\u002Fp>\u003Cp class=\"p1\">Мы считаем релиз готовым, когда каждое обязательное действие можно запустить, проследить до результата и безопасно повторить после ошибки.\u003C\u002Fp>\u003Cp class=\"p1\">Если ваша платформа может попасть в реестр, в Qtim можно обсудить технический аудит и план доработок. Для первого разговора пригодятся схема сервисов, список внешних интеграций и один сквозной сценарий, который сейчас проходит через несколько команд.\u003C\u002Fp>",[185,186],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},13,"glhljk70qdskk3mk7phi4ig0","Рынок ","media-area-2","2026-05-27T09:09:31.488Z","2026-05-27T09:09:31.502Z",[],{"order":6,"id":195,"documentId":196,"title":197,"date":198,"description":11,"slug":199,"showOnMainPage":13,"createdAt":200,"updatedAt":201,"publishedAt":202,"locale":17,"cover":203,"content":236,"media_event":11,"media_areas":240,"seo":11,"localizations":249},305,"z5gc803xpd7jutuksh8q0er3","97% компаний создают учебный контент сами: следующий дефицит EdTech — подготовка преподавателей","2026-08-17","97-kompaniy-sozdayut-uchebnyy-kontent-sami-podgotovka-prepodavateley","2026-08-18T11:17:37.963Z","2026-09-14T12:11:38.758Z","2026-09-14T12:11:38.812Z",{"id":204,"documentId":205,"name":206,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":207,"hash":232,"ext":26,"mime":29,"size":233,"url":234,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":235,"updatedAt":235,"publishedAt":235},744,"thddqywdfa66vk7yxlyrvh73","Изображение Codex 14 сент. 2026 г., 15_08_15.png",{"large":208,"small":214,"medium":220,"thumbnail":226},{"ext":26,"url":209,"hash":210,"mime":29,"name":211,"path":11,"size":212,"width":32,"height":33,"sizeInBytes":213},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610","large_Изображение Codex 14 сент. 2026 г., 15_08_15.png",895.34,895342,{"ext":26,"url":215,"hash":216,"mime":29,"name":217,"path":11,"size":218,"width":40,"height":41,"sizeInBytes":219},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610","small_Изображение Codex 14 сент. 2026 г., 15_08_15.png",245.64,245636,{"ext":26,"url":221,"hash":222,"mime":29,"name":223,"path":11,"size":224,"width":48,"height":40,"sizeInBytes":225},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610","medium_Изображение Codex 14 сент. 2026 г., 15_08_15.png",527.2,527195,{"ext":26,"url":227,"hash":228,"mime":29,"name":229,"path":11,"size":230,"width":55,"height":56,"sizeInBytes":231},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610","thumbnail_Изображение Codex 14 сент. 2026 г., 15_08_15.png",61.29,61287,"Izobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610",881.51,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_08_15_956424b610.png","2026-09-14T12:11:33.918Z",[237],{"__component":66,"id":238,"text":239},269,"\u003Cp class=\"p1\">Курс по новому продукту выложили в четверг. В пятницу продукт поменялся: обновился регламент, руководитель продаж добавил сценарий для партнёров. К понедельнику менеджеры пересказывают друг другу правильную версию в рабочем чате — в LMS всё ещё лежит четверговая.\u003C\u002Fp>\u003Cp class=\"p1\">В исследовании Digital Learning 2026 среди 115 представителей российских компаний 63% разрабатывают контент полностью собственными силами, ещё 32% совмещают его с покупкой внешних материалов. По подсчёту авторов исследования, собственный учебный контент так или иначе создают 97% участников.\u003C\u002Fp>\u003Cp class=\"p1\">Мы разрабатываем EdTech-платформы и видим, как при таком подходе меняется задача LMS. Платформа должна поддерживать производство контента, подготовку внутренних преподавателей, правила работы с AI и связь обучения с результатами сотрудников. Каталога курсов для этого уже мало.\u003C\u002Fp>\u003Ch2>Рынок ещё на 75% частный, а ТЗ платформы уже пишет работодатель\u003C\u002Fh2>\u003Cp class=\"p1\">В российском EdTech частные пользователи всё ещё формируют основной спрос. По открытой сводке исследования BusinesStat, в 2025 году рынок вырос на 12% и достиг 166 млрд рублей. Образовательные платформы занимают 83% оборота, B2C — 75%. При этом доля B2C сокращается на фоне роста корпоративного и государственного сегментов.\u003C\u002Fp>\u003Cp class=\"p1\">Корпоративный заказчик меняет ТЗ платформы. Частному ученику важны программа, преподаватель, удобный кабинет и понятная оплата. Компании дополнительно приносят структуру подразделений, должности, обязательные допуски, внутренние регламенты, данные из HR-систем и отчётность для руководителей.\u003C\u002Fp>\u003Cp class=\"p1\">Один курс по продажам в такой среде может отличаться для новых менеджеров, руководителей групп и сотрудников партнёрской сети. После обновления продукта нужно заменить пример, пересобрать тест, уведомить преподавателей и проверить, кто уже прошёл старую версию. В этот момент LMS начинает работать как часть операционного контура компании.\u003C\u002Fp>\u003Ch2>Курс про свою компанию снаружи не купишь: 61% не берут внешние школы\u003C\u002Fh2>\u003Cp class=\"p1\">Корпоративным заказчикам нужен контент, в котором узнаётся их работа. Универсальный курс объяснит основы информационной безопасности. Внутренняя программа покажет, как сотрудник запрашивает доступ именно в этой компании, кому сообщает об инциденте и какие данные запрещено отправлять подрядчику.\u003C\u002Fp>\u003Cp class=\"p1\">Исследование Digital Learning показывает устойчивость этого запроса: 97% участников хотя бы частично создают материалы сами, а 61% вообще не используют курсы внешних онлайн-школ для обучения сотрудников. Внешние провайдеры остаются полезны для отдельных тем, однако основу многие компании собирают вокруг собственных процессов, продуктов и стандартов.\u003C\u002Fp>\u003Cp class=\"p1\">Контент проходит через несколько рук. Эксперт даёт фактуру, методист собирает учебный сценарий, редактор проверяет ясность, владелец процесса подтверждает актуальность, преподаватель проводит занятие. После запуска команда разбирает вопросы и обновляет материал.\u003C\u002Fp>\u003Cp class=\"p1\">Если эта цепочка живёт в презентациях, почте и чатах, у курса быстро появляется несколько правд. Одна лежит в LMS, вторая — у преподавателя, третья называется «final_final_точно». Название смешное ровно до первой проверки или ошибки сотрудника.\u003C\u002Fp>\u003Ch2>Файл final_final не выдерживает темп бизнесаё\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F6d4c0148_0fb5_55b4_9a17_d6853678a8b3_9847c59ae2.png\" alt=\"6d4c0148-0fb5-55b4-9a17-d6853678a8b3.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_6d4c0148_0fb5_55b4_9a17_d6853678a8b3_9847c59ae2.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_6d4c0148_0fb5_55b4_9a17_d6853678a8b3_9847c59ae2.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_6d4c0148_0fb5_55b4_9a17_d6853678a8b3_9847c59ae2.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_6d4c0148_0fb5_55b4_9a17_d6853678a8b3_9847c59ae2.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Когда компания делает курсы сама, LMS ведёт сразу два контура: обучение сотрудников и производство материалов. Второй часто остаётся за пределами платформы, хотя именно там копятся задержки и устаревшие версии. Похожий момент мы разбирали на стороне онлайн-школ — когда готовая LMS перестаёт тянуть процесс.\u003C\u002Fp>\u003Cp class=\"p1\">Для такого контура нужны роли автора, методиста, преподавателя, согласующего и владельца программы. У каждой роли свои действия: создать черновик, отдать на проверку, утвердить, провести занятие, снять версию с публикации. Полезно хранить историю изменений и связывать результаты учеников с той редакцией курса, которую они проходили.\u003C\u002Fp>\u003Cp class=\"p1\">Дешевле собирать материалы из повторно используемых блоков. Изменилось правило возврата товара — правка в одном утверждённом фрагменте уезжает сразу в программы для продавцов, поддержки и руководителей. Пять независимых копий почти гарантируют шестую версию — ту, которую пересказывают на планёрке.\u003C\u002Fp>\u003Cp class=\"p1\">AI ускоряет подготовку черновиков, тестов и примеров. Он же ускоряет распространение ошибки, если берёт устаревший регламент или додумывает деталь. Поэтому источники, дата актуальности, автор изменения и маршрут согласования становятся частью архитектуры контента.\u003C\u002Fp>\u003Ch2>Преподавателю выдали AI раньше инструкции\u003C\u002Fh2>\u003Cp class=\"p1\">Следующий дефицит EdTech — подготовка преподавателей.\u003C\u002Fp>\u003Cp class=\"p1\">Международный отчёт Microsoft охватил 3345 участников в шести странах. AI для учебных задач уже использовали 88% педагогов, но 53% не проходили формальной подготовки. При этом 66% педагогов хотят получать подготовку ежемесячно или ежеквартально.\u003C\u002Fp>\u003Cp class=\"p1\">Исследование Instructure в США показывает похожий разрыв. AI хотя бы иногда применяют 68% школьных учителей и 61% преподавателей вузов. Формальной подготовки не было у 45% и 41% соответственно; комплексную получили только 8% и 11%.\u003C\u002Fp>\u003Cp class=\"p1\">Эти опросы не измеряют российских корпоративных преподавателей напрямую, поэтому переносить на них проценты нельзя. Показательно другое: в российском исследовании применение ИИ разложено по четырём направлениям, а вопроса о подготовке тех, кто ведёт обучение, нет ни одного. Инструменты уже считают, людей — ещё нет. Организационная задача при этом та же: сильный внутренний эксперт знает продукт, технологию или регламент, но преподаванию ему ещё предстоит научиться. С AI добавляются проверка фактов, защита внутренних данных, правила для учеников и список решений, которые модель принимать не должна.\u003C\u002Fp>\u003Cp class=\"p1\">Кнопка «сгенерировать курс» появляется быстрее, чем ответ на вопрос «кто отвечает за неточность». Ответ должен лежать в платформе раньше кнопки.\u003C\u002Fp>\u003Ch2>LMS теперь учит ещё и тех, кто учит\u003C\u002Fh2>\u003Cp class=\"p1\">Подготовка преподавателя становится отдельным маршрутом внутри корпоративной LMS. В него входят основы методики, работа с аудиторией, правила оценки, политика использования AI и практика на реальных сценариях компании.\u003C\u002Fp>\u003Cp class=\"p1\">Маршрут работает, когда связан с допуском: сотрудник сначала проходит короткую программу, готовит пробный фрагмент, получает обратную связь методиста и только затем публикует курс или проводит занятие. При изменении политики AI платформа назначает обновление всем авторам и преподавателям, которых оно касается.\u003C\u002Fp>\u003Cp class=\"p1\">В самой системе для этого нужны пять вещей:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e96d92ac44674ce540ceb30c727d61bff\">\u003Cp class=\"p1\">программа подготовки и повторной сертификации преподавателей;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3075fbafef25c4cc03f64209562f5bba\">\u003Cp class=\"p1\">песочница, где можно собрать модуль и проверить его до публикации;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecca7b47e99ea6f762229a6108fd5676c\">\u003Cp class=\"p1\">маршрут согласования с ролями и сроками;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e7b3307c515f2f73aa4730da3df1e3738\">\u003Cp class=\"p1\">журнал версий, источников и решений по AI-контенту;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee71dbb801699d4143f03a281a0cacb5d\">\u003Cp class=\"p1\">аналитика по преподавателю, версии курса и рабочему результату.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F443f6f5b_2ce4_5fa6_80f6_b0e89c72e85b_c8a4ba5b0b.png\" alt=\"443f6f5b-2ce4-5fa6-80f6-b0e89c72e85b.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_443f6f5b_2ce4_5fa6_80f6_b0e89c72e85b_c8a4ba5b0b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_443f6f5b_2ce4_5fa6_80f6_b0e89c72e85b_c8a4ba5b0b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_443f6f5b_2ce4_5fa6_80f6_b0e89c72e85b_c8a4ba5b0b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_443f6f5b_2ce4_5fa6_80f6_b0e89c72e85b_c8a4ba5b0b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Здесь полезен принцип из разработки программных продуктов: релиз заканчивает одну итерацию и запускает следующую. Курс тоже меняется после вопросов учеников, обновлений продукта и новых ошибок в работе. У него должен быть владелец и понятный бэклог, иначе LMS постепенно превращается в архив хорошо оформленных воспоминаний.\u003C\u002Fp>\u003Ch2>AI-тренажёр тоже требует преподавателя\u003C\u002Fh2>\u003Cp class=\"p1\">В исследовании Digital Learning AI для интеллектуальных тренажёров уже используют 26% компаний. Идея выглядит привлекательно: сотрудник отрабатывает разговор с клиентом или реакцию на инцидент, а система доступна в любое время.\u003C\u002Fp>\u003Cp class=\"p1\">Эффект зависит от сценария. Тренажёру нужны контекст компании, критерии ответа, допустимые варианты, правила остановки и передача сложного случая человеку. Свободный диалог без этих ограничений умеет поддержать беседу, но плохо объясняет руководителю, чему сотрудник научился.\u003C\u002Fp>\u003Cp class=\"p1\">Преподаватель или методист здесь не исчезает. Он проектирует ситуацию, описывает ошибки, проверяет обратную связь модели и разбирает спорные ответы. Платформа хранит версию сценария и показывает типовые затруднения группы. Тогда AI помогает масштабировать практику, сохраняя человеческий контроль над содержанием и оценкой.\u003C\u002Fp>\u003Cp class=\"p1\">Для чувствительных тем границы должны быть жёстче. Модель может предложить черновик обратной связи, но итоговую аттестацию, допуск к оборудованию или кадровое решение утверждает человек. Такие ограничения живут в ролях и логике LMS, а не строкой в памятке.\u003C\u002Fp>\u003Ch2>Курс пройден. Бизнес-метрика ещё не появилась\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F2994909b_fb9f_51f6_a774_a278a5cbbbb9_8aad2bfd37.png\" alt=\"2994909b-fb9f-51f6-a774-a278a5cbbbb9.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_2994909b_fb9f_51f6_a774_a278a5cbbbb9_8aad2bfd37.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_2994909b_fb9f_51f6_a774_a278a5cbbbb9_8aad2bfd37.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_2994909b_fb9f_51f6_a774_a278a5cbbbb9_8aad2bfd37.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_2994909b_fb9f_51f6_a774_a278a5cbbbb9_8aad2bfd37.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Собственный контент даёт компании больше контроля. Сам факт публикации при этом ничего не доказывает. По данным Digital Learning, 75% участников оценивают знания сотрудников, а связь обучения с рабочими KPI отслеживают только 38,8%.\u003C\u002Fp>\u003Cp class=\"p1\">Процент завершения курса удобен: он уже лежит в LMS и не требует долгих споров. Руководителю нужны другие ответы. Стал ли новичок быстрее выходить на самостоятельную работу? Снизилось ли число ошибок? Изменились ли продажи, качество консультаций или время обработки обращения?\u003C\u002Fp>\u003Cp class=\"p1\">Для этого учебные данные нужно связывать с HR-системой, CRM, сервис-деском, системой контроля качества или BI. Платформа должна знать подразделение, роль, преподавателя, версию курса и время прохождения. Во внешнем контуре остаётся рабочий результат. Без этой связи аналитика честно сообщает одно: сотрудник посмотрел семь экранов и нажал „завершить\".\u003C\u002Fp>\u003Cp class=\"p1\">Первый заход — одна метрика и один процесс. Например, взять программу адаптации продавцов, выбрать время до первой самостоятельной сделки и сравнить группы на одной версии курса. Такой пилот быстрее покажет качество данных и границы интеграции, чем попытка сразу построить образовательный центр управления полётами.\u003C\u002Fp>\u003Ch2>Готовая LMS держится, пока маршрут знания помещается в настройки\u003C\u002Fh2>\u003Cp class=\"p1\">Готовая LMS подходит многим компаниям. Если программы меняются редко, ролей немного, стандартных отчётов хватает, а внешние системы уже связаны готовыми интеграциями, разработка отдельного контура будет преждевременной.\u003C\u002Fp>\u003Cp class=\"p1\">Разговор о собственной платформе или дополнительном продуктовом слое начинается, когда совпадают несколько условий. Контент регулярно обновляют внутренние эксперты. Согласования уходят в почту и чаты. Для разных программ действуют свои правила AI. Преподавателям нужны допуски и повторная подготовка. Руководители хотят связать обучение с рабочими показателями, а готового API для этого не хватает.\u003C\u002Fp>\u003Cp class=\"p1\">Практический критерий простой: готовая LMS подходит, пока настройки удерживают маршрут знания от эксперта до сотрудника. Отдельный контур нужен, когда важные версии, права, согласования и результаты приходится постоянно собирать вокруг платформы.\u003C\u002Fp>\u003Cp class=\"p1\">Мы в Qtim начинаем такой проект с карты контента и ролей: кто создаёт материал, кто отвечает за факты, кто допускает преподавателя, какие данные нужны руководителю и где лежит рабочий результат. После этого видно, что можно оставить в готовой LMS, что закрыть интеграцией и где действительно нужна разработка. Тот самый final_final после этого просто перестаёт существовать: у каждой версии есть автор, дата и статус, а четверговый курс либо обновлён, либо снят с публикации.\u003C\u002Fp>\u003Cp class=\"p1\">Если ваша корпоративная платформа уже хранит много курсов, но плохо управляет их обновлением, преподавателями и связью с бизнес-метриками, приходите обсудить состав следующего релиза: мы собираем образовательные платформы, включая контуры для ДПО и корпоративного обучения с интеграциями в HR.\u003C\u002Fp>",[241,248],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},27,"x6rulaa9s3473663k7mutmd7","EdTech ","ed-tech","2026-07-30T14:30:19.041Z","2026-07-30T14:30:19.062Z",{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"order":6,"id":251,"documentId":252,"title":253,"date":254,"description":11,"slug":255,"showOnMainPage":13,"createdAt":256,"updatedAt":257,"publishedAt":258,"locale":17,"cover":259,"content":292,"media_event":11,"media_areas":296,"seo":305,"localizations":307},306,"x28rh3zoj50o59tcgvzve415","AI-агенты внутри компании: где нужны доступы, ограничения и человек на проверке","2026-08-19","ai-agenty-v-kompanii-dostupy-i-kontrol","2026-08-18T14:05:29.647Z","2026-09-14T12:13:14.538Z","2026-09-14T12:13:14.626Z",{"id":260,"documentId":261,"name":262,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":263,"hash":288,"ext":26,"mime":29,"size":289,"url":290,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":291,"updatedAt":291,"publishedAt":291},745,"xxclywu0yucnlclk2vpggwui","Изображение Codex 14 сент. 2026 г., 15_12_45.png",{"large":264,"small":270,"medium":276,"thumbnail":282},{"ext":26,"url":265,"hash":266,"mime":29,"name":267,"path":11,"size":268,"width":32,"height":33,"sizeInBytes":269},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb","large_Изображение Codex 14 сент. 2026 г., 15_12_45.png",567.52,567522,{"ext":26,"url":271,"hash":272,"mime":29,"name":273,"path":11,"size":274,"width":40,"height":41,"sizeInBytes":275},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb","small_Изображение Codex 14 сент. 2026 г., 15_12_45.png",158.63,158625,{"ext":26,"url":277,"hash":278,"mime":29,"name":279,"path":11,"size":280,"width":48,"height":40,"sizeInBytes":281},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb","medium_Изображение Codex 14 сент. 2026 г., 15_12_45.png",339.91,339911,{"ext":26,"url":283,"hash":284,"mime":29,"name":285,"path":11,"size":286,"width":55,"height":56,"sizeInBytes":287},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb","thumbnail_Изображение Codex 14 сент. 2026 г., 15_12_45.png",40.22,40216,"Izobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb",667.58,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_12_45_bbd1b1e6bb.png","2026-09-14T12:13:11.309Z",[293],{"__component":66,"id":294,"text":295},270,"\u003Cp class=\"p1\">Менеджер просит агента разобрать почту — и через минуту у того есть доступ к переписке, карточкам клиентов и право писать в корпоративную систему. Никто не принимал этого решения отдельно: оно приехало вместе с задачей.\u003C\u002Fp>\u003Cp class=\"p1\">Если агент входит под учётной записью менеджера, он наследует её права. Если работает через общий технический аккаунт, источник действия быстро теряется в журналах. Модель может рассуждать аккуратно, а права, выданные один раз, останутся у агента и после того, как сценарий поменяется.\u003C\u002Fp>\u003Cp class=\"p1\">Мы разрабатываем AI-чатботов, RAG-системы и LLM-интеграции. В этой статье разберу практическую схему: какие данные ему открывать, когда разрешать запись и где действие должно ждать проверки сотрудника.\u003C\u002Fp>\u003Ch2>До первого действия агенту уже нужен пропуск\u003C\u002Fh2>\u003Cp class=\"p2\">Внутренний агент отличается от обычного чата возможностью обращаться к инструментам. Один инструмент получает данные из базы знаний или CRM, другой отправляет письмо, меняет статус или создаёт заявку. В практическом гайде по созданию агентов OpenAI разделяет инструменты получения данных и инструменты действия. Для компании эта граница важнее, чем то, насколько удачно написан промпт.\u003C\u002Fp>\u003Cp class=\"p2\">Каждому агенту нужна отдельная идентичность с понятным владельцем. В журналах должно быть видно, какой агент вызвал инструмент, с каким набором прав, к какому объекту обратился и от чьего имени действовал. Общая учётка «ai-service» для всех сценариев упрощает запуск и усложняет любое расследование.\u003C\u002Fp>\u003Cp class=\"p2\">Microsoft в рекомендациях для AI-агентов советует закрепить за исполнителем отдельную управляемую идентичность, ограничивать область ресурсов, выдавать повышенные права на время конкретного процесса и заранее проверять отзыв токенов. Такой подход позволяет отключить одного исполнителя, не останавливая остальные интеграции.\u003C\u002Fp>\u003Cp class=\"p2\">Пароль от всего иногда экономит час настройки. Потом этот час вспоминают на длинном созвоне.\u003C\u002Fp>\u003Ch2>Читать можно раньше, чем нажимать\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"magnific_a-modern-nearphotorealist_gOO4QF0SXO 1.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_a_modern_nearphotorealist_g_OO_4_QF_0_SXO_1_43dbff4243.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_a_modern_nearphotorealist_g_OO_4_QF_0_SXO_1_43dbff4243.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_a_modern_nearphotorealist_g_OO_4_QF_0_SXO_1_43dbff4243.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_a_modern_nearphotorealist_g_OO_4_QF_0_SXO_1_43dbff4243.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_a_modern_nearphotorealist_g_OO_4_QF_0_SXO_1_43dbff4243.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Полномочия мы разводим по пяти ступеням. Каждая следующая добавляет агенту возможность влиять на систему и повышает требования к проверке.\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"e0aa3288130a8f88d2e782b4f84a6420e\">\u003Cp class=\"p1\">Контекст внутри запроса. Агент работает только с тем, что человек передал в диалог или форму. Подходит для анализа, классификации и черновиков без подключения к корпоративным системам.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e75a82abc8b287a390ecad8d4393cfe88\">\u003Cp class=\"p1\">Чтение разрешённых данных. Система ищет регламент, проверяет статус заказа или собирает карточку клиента. Запись, отправка и изменение недоступны.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0f1b8d667db7853e068254fcbea32c2a\">\u003Cp class=\"p1\">Черновик действия. Агент готовит письмо, ответ, заявку или изменение записи. Человек видит результат и запускает следующий шаг.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5be5478741d0c90b7c01e741cf6566ae\">\u003Cp class=\"p1\">Ограниченное исполнение. Агент сам выполняет обратимую операцию внутри заранее заданных лимитов: добавляет внутреннюю заметку, назначает категорию или создаёт задачу без удаления исходных данных.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e70ed760de77da0f9f43a7987ee30a17e\">\u003Cp class=\"p1\">Действие после подтверждения. Деньги, внешние сообщения, изменение прав, удаление и другие чувствительные операции останавливаются перед исполнением. Человек проверяет конкретный шаг и его последствия.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp class=\"p1\">OpenAI советует оценивать инструменты по типу доступа, обратимости, правам учётной записи и финансовым последствиям. У нас эта оценка превращается в техническое правило: низкий риск проходит автоматически, средний запускает дополнительную проверку, высокий передаёт управление человеку.\u003C\u002Fp>\u003Cp class=\"p1\">На пилоте я бы оставил большинство сценариев на второй или третьей ступени. Агент уже экономит время, а команда видит ошибки до того, как они превращаются в изменения данных или письма клиентам.\u003C\u002Fp>\u003Cp class=\"p1\">Уверенный тон ответа здесь ничего не решает. «Кажется, всё правильно» пока не появилось среди ролей в системе управления доступом.\u003C\u002Fp>\u003Ch2>Промпт объясняет, как поступать. Система доступа определяет, что возможно\u003C\u002Fh2>\u003Cp class=\"p1\">Широкий доступ не увеличивает число ошибок агента — он увеличивает цену одной. OWASP относит избыточные инструменты, широкие разрешения и лишнюю автономность к риску Excessive Agency. Рекомендация практичная: агент получает только необходимые функции. Для чтения писем ему не требуется отправка и удаление. Для подбора товаров достаточно доступа к каталогу без права менять цены и остатки.\u003C\u002Fp>\u003Cp class=\"p1\">Ограничение должно работать в API, базе данных и системе авторизации. Фраза в инструкции «не открывай зарплатные данные» полезна для поведения модели, но право на чтение таких записей всё равно нужно снять на уровне источника.\u003C\u002Fp>\u003Cp class=\"p1\">Технический контур обычно включает отдельные роли для чтения и записи, список разрешённых инструментов, фильтры по отделу и объекту, короткоживущие токены и лимиты. Ограничивать можно число изменяемых записей, сумму операции, частоту вызовов, доступное время и набор статусов. Если агенту разрешено создавать заявку, это ещё не даёт ему права редактировать все заявки отдела.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"magnific_use-the-two-attached-imag_aFF5J4lfSh 1.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_use_the_two_attached_imag_a_FF_5_J4lf_Sh_1_02a631546f.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_use_the_two_attached_imag_a_FF_5_J4lf_Sh_1_02a631546f.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_use_the_two_attached_imag_a_FF_5_J4lf_Sh_1_02a631546f.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_use_the_two_attached_imag_a_FF_5_J4lf_Sh_1_02a631546f.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_use_the_two_attached_imag_a_FF_5_J4lf_Sh_1_02a631546f.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">В Qtim закладываем рамки доступа до подключения агента к корпоративным данным.\u003C\u002Fp>\u003Cp class=\"p1\">Нужен и быстрый способ остановки: отключить идентичность, отозвать токен, заблокировать инструмент и откатить изменение. У токена доступа нет чувства меры. Он продолжает работать ровно в тех границах, которые ему выдали.\u003C\u002Fp>\u003Cp class=\"p1\">В журнале должны оставаться промежуточные действия вместе с финальным ответом: какие данные прочитаны, какой инструмент выбран, что изменено, где сработал лимит и кто подтвердил рискованный шаг. Иначе разбор ошибки начинается с археологии.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>Человек подключается до необратимого шага\u003C\u002Fh2>\u003Cp class=\"p1\">Проверять каждый ответ бессмысленно: очередь из согласований съест выгоду. Рабочая граница проходит по последствиям и обратимости. NIST рекомендует заранее определять роли человека и AI в принятии решений и документировать уровень надзора с учётом риска.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"magnific_a-modern-nearphotorealist_CqqkOtpEEy 1.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_a_modern_nearphotorealist_Cqqk_Otp_E_Ey_1_5d7c3daa14.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_a_modern_nearphotorealist_Cqqk_Otp_E_Ey_1_5d7c3daa14.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_a_modern_nearphotorealist_Cqqk_Otp_E_Ey_1_5d7c3daa14.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_a_modern_nearphotorealist_Cqqk_Otp_E_Ey_1_5d7c3daa14.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_a_modern_nearphotorealist_Cqqk_Otp_E_Ey_1_5d7c3daa14.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Внешние сообщения требуют проверки, пока команда не убедилась в стабильности узкого сценария. Агент может подготовить ответ клиенту или письмо кандидату, а отправка останется отдельным действием. Позже автоматизацию можно разрешить для шаблонных уведомлений с фиксированными получателями и содержанием.\u003C\u002Fp>\u003Cp class=\"p1\">Деньги, права доступа, юридически значимые операции, HR-решения, защищённые данные и удаление требуют более строгого маршрута. Здесь человек подтверждает действие до выполнения. То же правило срабатывает при конфликте источников, превышении лимита, нескольких неудачных попытках или выходе за обычный сценарий.\u003C\u002Fp>\u003Cp class=\"p1\">Экран согласования должен показывать действие без загадок: какой объект изменится, какие данные использованы, что получится после подтверждения и как выполнить откат. Кнопка «Продолжить?» без контекста добавляет ритуал. Контроля не добавляет.\u003C\u002Fp>\u003Cp class=\"p1\">У схемы есть цена. Ступени и подтверждения — это проектная работа до запуска, регулярный пересмотр доступов и трение ровно на тех операциях, которые бизнесу нужны срочно. Плюс зависимость от смежных систем: если CRM не перепроверяет права на своей стороне, аккуратная настройка агента её не спасёт.\u003C\u002Fp>\u003Cp class=\"p1\">Скучная кнопка подтверждения редко попадает в презентацию. Финансовый директор обычно переживает это спокойно.\u003C\u002Fp>\u003Ch2>У бухгалтера и рекрутера разные пропуска, хотя мессенджер один\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"magnific_a-modern-nearphotorealist_4RRm61V9Aa 1.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_a_modern_nearphotorealist_4_R_Rm61_V9_Aa_1_bf3a7c9510.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_a_modern_nearphotorealist_4_R_Rm61_V9_Aa_1_bf3a7c9510.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_a_modern_nearphotorealist_4_R_Rm61_V9_Aa_1_bf3a7c9510.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_a_modern_nearphotorealist_4_R_Rm61_V9_Aa_1_bf3a7c9510.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_a_modern_nearphotorealist_4_R_Rm61_V9_Aa_1_bf3a7c9510.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">В поддержке агент может читать утверждённую базу знаний, карточку обращения и статус конкретного заказа. Следующие ступени — черновик ответа и внутренняя заметка. Возврат денег, отмена заказа или обещание индивидуальных условий проходят через сотрудника. Массовая ошибка здесь распространяется быстрее, потому что агент не устаёт повторять одно и то же.\u003C\u002Fp>\u003Cp class=\"p1\">В HR безопасный старт состоит из ответов по утверждённым правилам, подготовки чек-листа онбординга и черновика вакансии. Доступ к данным о вознаграждении, здоровье, оценке работы и дисциплинарных решениях выделяется отдельно под конкретную задачу. Решения о найме, повышении и увольнении остаются у ответственных сотрудников.\u003C\u002Fp>\u003Cp class=\"p1\">В финансах система может сверять поля счетов, искать расхождения и готовить реестр на оплату. Создание черновика платежа относится к следующей ступени. Подписание, отправка и изменение реквизитов требуют подтверждения по действующему финансовому процессу.\u003C\u002Fp>\u003Cp class=\"p1\">За одинаковым интерфейсом чата должны стоять три разных набора прав.\u003C\u002Fp>\u003Ch2>Чем сложнее откат, тем ближе проверка\u003C\u002Fh2>\u003Cp class=\"p1\">Для каждого действия достаточно задать два вопроса: насколько велики последствия ошибки и насколько легко вернуть систему в исходное состояние. Низкие последствия и простой откат позволяют автоматическое выполнение в лимитах. Чувствительные и труднообратимые шаги останавливаются перед подтверждением.\u003C\u002Fp>\u003Cp class=\"p1\">Хороший внутренний агент знает свою задачу, видит только нужные данные, использует ограниченный набор инструментов и оставляет проверяемый след. Его самостоятельность растёт вместе с доказанной надёжностью конкретного процесса.\u003C\u002Fp>\u003Cp class=\"p1\">Тот самый агент из начала статьи по-прежнему разбирает почту. Разница в том, что теперь видно, что именно он может сделать с ответом.\u003C\u002Fp>\u003Cp class=\"p1\">Если вы готовите внутреннего агента, RAG-систему или LLM-интеграцию, можно обсудить AI-проект с командой Qtim. Разложим сценарий на данные, инструменты, уровни прав и точки передачи человеку до выхода в продакшен.\u003C\u002Fp>\u003Cp class=\"p2\">&nbsp;\u003C\u002Fp>",[297,298],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},25,"pzycouhlw11nznfb4b0zb2tv","AI и нейросети","ai-i-nejroseti","2026-07-30T14:30:01.132Z","2026-07-30T14:30:01.147Z",{"id":306,"metaTitle":11,"metaDescription":11},699,[],{"order":6,"id":309,"documentId":310,"title":311,"date":312,"description":11,"slug":313,"showOnMainPage":13,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":17,"cover":317,"content":350,"media_event":11,"media_areas":354,"seo":11,"localizations":363},310,"zm2xqct6baoxjz7jsy605ztw","Duolingo прибавил 23% ежедневной аудитории. Что интернет-магазин может забрать у совы\n","2026-08-31","duolingo-23-rosta-gamifikaciya-dlya-magazina","2026-08-31T08:37:31.518Z","2026-09-14T12:31:11.576Z","2026-09-14T12:31:11.708Z",{"id":318,"documentId":319,"name":320,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":321,"hash":346,"ext":26,"mime":29,"size":347,"url":348,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":349,"updatedAt":349,"publishedAt":349},753,"gnzco9d3ng4z7i8bq7kj71yg","Изображение Codex 14 сент. 2026 г., 15_14_08.png",{"large":322,"small":328,"medium":334,"thumbnail":340},{"ext":26,"url":323,"hash":324,"mime":29,"name":325,"path":11,"size":326,"width":32,"height":33,"sizeInBytes":327},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d","large_Изображение Codex 14 сент. 2026 г., 15_14_08.png",630.49,630494,{"ext":26,"url":329,"hash":330,"mime":29,"name":331,"path":11,"size":332,"width":40,"height":41,"sizeInBytes":333},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d","small_Изображение Codex 14 сент. 2026 г., 15_14_08.png",191.74,191743,{"ext":26,"url":335,"hash":336,"mime":29,"name":337,"path":11,"size":338,"width":48,"height":40,"sizeInBytes":339},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d","medium_Изображение Codex 14 сент. 2026 г., 15_14_08.png",393.71,393711,{"ext":26,"url":341,"hash":342,"mime":29,"name":343,"path":11,"size":344,"width":55,"height":56,"sizeInBytes":345},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d","thumbnail_Изображение Codex 14 сент. 2026 г., 15_14_08.png",50.66,50658,"Izobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d",584.83,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_14_08_c688dde12d.png","2026-09-14T12:21:37.940Z",[351],{"__component":66,"id":352,"text":353},274,"\u003Cp class=\"p1\">Вчера человек нашёл нужные кроссовки, выбрал 43-й размер и ушёл подумать. Сегодня магазин зовёт его обратно: «Скидка 10% на всё до полуночи». Он нажимает на пуш — и попадает на главную. Отлично. Теперь осталось вспомнить модель, снова найти карточку и выбрать размер. Магазин уже всё это видел, но решил начать отношения с чистого листа.\u003C\u002Fp>\u003Cp class=\"p1\">Duolingo память не теряет. Если урок на сегодня ещё не пройден, сова напоминает о серии, а по нажатию сразу открывает следующий урок. Один клик — и человек снова в деле. Посмотрим, как сохраняется контекст, выбирается повод для сообщения и проверяется результат. Сова в штатном расписании не понадобится.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Сова не накликала 23% в одиночку\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Во втором квартале 2026 года средняя ежедневная аудитория Duolingo составила 58,7 млн человек против 47,7 млн во втором квартале 2025-го — рост на 23% год к году. В письме акционерам, опубликованном в \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.sec.gov\u002FArchives\u002Fedgar\u002Fdata\u002F1562088\u002F000162828026053299\u002Fq2fy26duolingo6-30x26share.htm\">SEC\u003C\u002Fa>, компания назвала три причины: продуктовые изменения, маркетинг и разовую кампанию по восстановлению серий.\u003C\u002Fp>\u003Cp class=\"p1\">Все 23% нельзя приписать одному удачному напоминанию. Зато продуктовую часть можно разобрать и повторить у себя: найти причину вернуться, сохранить прогресс и проверить каждую правку на эксперименте.\u003C\u002Fp>\u003Cp class=\"p1\">Один из главных ориентиров Duolingo — Current User Retention Rate, или CURR. Это доля «текущих» DAU, которые возвращаются на следующий день; «текущими» Duolingo считает тех, кто был активен ещё хотя бы раз за предыдущие семь дней. В письме за второй квартал 2026 года компания сообщила, что CURR достиг рекордных 84%. Duolingo считает показатель опережающим: небольшие улучшения ежедневного возврата со временем заметно двигают DAU.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Один урок оказался сильнее большого плана\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Раньше серия Duolingo продлевалась только после выполнения всего дневного плана. На бумаге это: поставили план, напряглись, стали лучше. В жизни высокая планка часто работала как табличка «вернусь завтра». Команда оставила дневную цель, а для продления серии разрешила пройти один урок.\u003C\u002Fp>\u003Cp class=\"p1\">Эксперимент Duolingo \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fblog.duolingo.com\u002Fimproving-the-streak\u002F\">дал\u003C\u002Fa> три относительных изменения: удержание на 14-й день выросло на 3,3%, общая ежедневная аудитория — на 1%, а доля ежедневных пользователей с серией — на 10,5% за первые 20 дней эксперимента. Полную дневную цель при этом стали закрывать реже. Один показатель вырос, другой просел. Обычный вторник в продуктовой команде.\u003C\u002Fp>\u003Cp class=\"p1\">Для интернет-магазина вывод простой: порог возврата должен быть низким. За короткий визит человек проверяет наличие своего размера, сравнивает две модели, повторяет покупку или смотрит, где сейчас заказ. Просить снова пройти весь путь до покупки — примерно как требовать весь дневной план ради одного огонька.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Ежедневная серия для дивана выглядит подозрительно\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 15_14_13.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_14_13_3e329514bd.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_14_13_3e329514bd.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_14_13_3e329514bd.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_14_13_3e329514bd.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_14_13_3e329514bd.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Язык можно учить каждый день. Диван покупают заметно реже. У каждой товарной категории свой ритм: где-то счёт идёт на дни, где-то — на годы. Механика возврата должна в него попадать. Серия из ежедневных визитов мерила бы здесь не привычку, а терпение покупателя.\u003C\u002Fp>\u003Cp class=\"p1\">Для кормов, продуктов, косметики и расходников понятный повод появляется через неделю или месяц. Магазину остаётся подхватить момент: напомнить о повторном заказе, сохранить привычный состав корзины или показать замену товару, который закончился.\u003C\u002Fp>\u003Cp class=\"p1\">С одеждой и техникой другая история: здесь человек часто возвращается в период выбора. Снова открывает карточку, сравнивает характеристики, ждёт скидку или нужный размер. Такая «серия» держится на сохранённом контексте. Ежедневный визит ей не нужен.\u003C\u002Fp>\u003Cp class=\"p1\">После покупки поводы тоже не заканчиваются: доставка, сборка, расходники, гарантия, ремонт. Магазин может оставаться полезным годами, даже если следующего большого заказа придётся подождать.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Верните человеку то, что он уже собрал\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В том же квартале Duolingo провёл разовую кампанию Streak Revival. Пользователю возвращали его самую длинную серию, если он принимал предложение и проходил три урока. Так сделали 15,4 млн человек. Почти у 8 млн из них на старте уже не было активной серии.\u003C\u002Fp>\u003Cp class=\"p1\">Duolingo вернул людям ценность, которую они уже заработали. В магазине такой ценностью может быть сохранённый список, собранная корзина, история сравнений, статус лояльности или цена, за которой человек следил. Всё это уже даёт причину открыть сообщение.\u003C\u002Fp>\u003Cp class=\"p1\">Хороший сценарий возврата помнит, что человек делал до ухода. Если в корзине лежат пять выбранных товаров, вести его на главную с подборкой хитов странно. Он уже объяснил, чего хочет. Пять товаров в корзине — намёк достаточно толстый.\u003C\u002Fp>\u003Ch2>\u003Cstrong>После пуша не устраивайте покупателю квест\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 15_14_24.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_14_24_95adaa9cdf.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_14_24_95adaa9cdf.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_14_24_95adaa9cdf.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_14_24_95adaa9cdf.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_14_24_95adaa9cdf.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Уведомление — это только дверь обратно. Duolingo ведёт через неё сразу в следующий урок. Магазин должен открыть карточку нужного товара с выбранным размером или корзину с прежним составом. Если после клика человек снова листает двадцать карточек, вместо продолжения получился квест. Призов в нём обычно нет.\u003C\u002Fp>\u003Cp class=\"p1\">Чтобы это работало, система хранит ID клиента и состояние сценария: товар, SKU, размер, цвет, фильтры, цену в момент интереса и наличие. События product_viewed, favorite_added, cart_updated и order_completed показывают, где человек остановился. Цена изменилась или размер появился — триггер связывает событие с профилем и отправляет сообщение в разрешённый канал.\u003C\u002Fp>\u003Cp class=\"p1\">Сам пуш стоит в конце цепочки. До него нужно собрать события, сохранить состояние и подготовить глубокую ссылку. Общее сообщение отправить проще. Только покупателю от этого не проще: путь до товара остаётся прежним.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Между карточкой товара и пушем — пять слоёв\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В Duolingo постоянные эксперименты называют Green Machine. Команда запускает сотни тестов, измеряет результат и постепенно раскатывает удачные версии. В блоге Duolingo \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fblog.duolingo.com\u002Fimproving-duolingo-one-experiment-at-a-time\u002F\">описывает\u003C\u002Fa> инфраструктуру, которая следит за метриками и останавливает неудачные варианты. Название бодрое. Работа прозаичнее: считать, сравнивать и вовремя жать «стоп».\u003C\u002Fp>\u003Cp class=\"p1\">Для одной механики возврата нужны пять слоёв. Разберём их на примере: покупатель смотрел конкретные кроссовки, выбрал 43-й размер и ушёл.\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"e749d13eab6a5f530b14f5d662a4847c1\">\u003Cp class=\"p1\">События — покупатель открыл карточку кроссовок и выбрал 43-й размер.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"edd37c79b73bf2988eedac848f21475f8\">\u003Cp class=\"p1\">Профиль — с покупателем связаны модель, цвет, 43-й размер, разрешённый канал и согласие на уведомление.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e91aaaa9fb167aa008de7942bfda7d6e8\">\u003Cp class=\"p1\">Решение — 43-й размер вернулся в продажу; теперь у магазина есть полезный повод написать.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e656eab3dde8da302b6c97a6079e2c4bf\">\u003Cp class=\"p1\">Доставка — пуш открывает карточку этой модели уже с выбранным размером, а система ограничивает частоту сообщений.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3fd50f7b9527154c18d6a35f7cea49c0\">\u003Cp class=\"p1\">Эксперимент — механику видит только часть покупателей с тем же интересом, остальные остаются точкой отсчёта.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp class=\"p1\">Контрольную группу выделяют заранее. Если показать механику всем, заказы могут вырасти, но причина останется неизвестной: сработал пуш, акция или сезон. Сам Duolingo называет второй квартал сильным; сезонность продаж компания тоже учитывает и считает соответствующей ожиданиям. Контрольная группа отделяет эффект механики от календаря.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Начните с задачи, которую покупатель бросил на полпути\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Подойдёт сценарий, где интерес уже виден и появился новый полезный сигнал: нужный размер вернулся в продажу, цена изменилась, подошёл срок повторной покупки. А вот таймер «давно не заходили» знает только дату последнего визита. О задаче покупателя он не знает ничего, зато очень хочет написать.\u003C\u002Fp>\u003Cp class=\"p1\">Дальше определяем минимальное действие. Для одежды это переход к конкретному SKU, для регулярных товаров — повтор последнего заказа, для сложной техники — сохранённое сравнение моделей. Если клик просто возвращает на витрину, мы тестируем формулировку пуша. Сам маршрут остаётся сломанным.\u003C\u002Fp>\u003Cp class=\"p1\">Перед запуском записываем одну гипотезу и один бизнес-результат. Например: сообщение о появлении размера увеличит долю завершённых заказов в этой группе. Тогда эксперимент ответит на полезный вопрос: мы починили прерванный путь или просто добавили ещё одно уведомление в чужой телефон?\u003C\u002Fp>\u003Ch2>\u003Cstrong>Можно поднять DAU и сделать продукту хуже\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 15_27_19.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_27_19_82186d2a39.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_27_19_82186d2a39.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_27_19_82186d2a39.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_27_19_82186d2a39.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_27_19_82186d2a39.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Один из экспериментов Duolingo хорошо отрезвляет. Промо платной подписки подняло выручку, но снизило удержание и DAU. Команда выключила промо и продолжила тестировать. В магазине та же ловушка: пуш добавляет визиты, скидка — заказы, а вместе они могут съесть маржу и терпение аудитории.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому одного счётчика открытий мало.&nbsp;\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Смотрим по цепочке:\u003C\u002Fi>\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e6894ec87197d1f27149b7ac5b67d56bb\">\u003Cp class=\"p1\">вернулся ли человек к тому сценарию, ради которого мы его позвали;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4b0a3a6203f43b3cd2d978228ab2d347\">\u003Cp class=\"p1\">дошёл ли до целевого действия или заказа;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eb5c53b241d9bb35f9b4d346d39fc01c7\">\u003Cp class=\"p1\">что произошло с выручкой и маржой;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5c31be9e506f57218696878f82180f37\">\u003Cp class=\"p1\">не выросли ли отписки, отключения пушей, возвраты и обращения в поддержку.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Если выросли только открытия, команда научилась хорошо доставлять уведомления. Полезно, если вы продаёте сервис рассылок. Интернет-магазину ещё предстоит доказать, что визит закончился заказом и не съел маржу.\u003C\u002Fp>\u003Cp class=\"p1\">И ещё: DAU подходит не каждому магазину. Ближайший e-commerce-аналог CURR — доля покупателей, которые за заданное для категории число дней вернулись к сохранённому товару, корзине или повторному заказу. При редких покупках полезнее также считать конверсию из сохранённого списка и обращения после покупки. Метрика должна жить в том же ритме, что и задача клиента. Иначе можно праздновать активность, пока продажи спокойно проходят мимо.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Порядок один, частота у каждой категории своя\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">У Duolingo схема короткая: приложение помнит, где остановился человек, ждёт подходящего повода и ведёт к следующему действию. Потом команда проверяет эффект на контрольной группе. Интернет-магазину пригодится тот же порядок.\u003C\u002Fp>\u003Cp class=\"p1\">Частоту диктует категория. Корм напоминает о себе через неделю или месяц, техника — после изменения цены, одежда — когда вернулся нужный размер. Главное — продолжить задачу покупателя. Новую он найдёт и без помощи рассылки.\u003C\u002Fp>\u003Cp class=\"p1\">Хотите собрать такой маршрут в своём магазине — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">обсудите e-commerce-продукт\u003C\u002Fa> с нами. Начнём с одного сценария, свяжем события с контекстом и проверим цифры. Сову можно оставить Duolingo: она там уже прошла испытательный срок.\u003C\u002Fp>",[355,356],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},33,"xhke7f1vzoqyx9nzqc1sukc6","e-commerce","ecommerce-blog","2026-08-31T12:06:40.235Z","2026-08-31T12:06:40.258Z",[],{"order":6,"id":365,"documentId":366,"title":367,"date":368,"description":11,"slug":369,"showOnMainPage":13,"createdAt":370,"updatedAt":371,"publishedAt":372,"locale":17,"cover":373,"content":408,"media_event":11,"media_areas":412,"seo":11,"localizations":415},321,"k6ijlgqkm5unejznzmeyo4vg","Интеграция с маркетплейсами и ERP: как синхронизировать заказы, статусы и остатки\n","2026-09-16","integraciya-marketpleysov-i-erp","2026-09-16T11:08:28.748Z","2026-09-16T11:31:18.295Z","2026-09-16T11:31:18.405Z",{"id":374,"documentId":375,"name":376,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":377,"hash":404,"ext":379,"mime":382,"size":405,"url":406,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":407,"updatedAt":407,"publishedAt":407},771,"pog6mv2v922fypz25ta3rexi","photo_2026-09-16 14.24.39.jpeg",{"large":378,"small":386,"medium":392,"thumbnail":398},{"ext":379,"url":380,"hash":381,"mime":382,"name":383,"path":11,"size":384,"width":32,"height":33,"sizeInBytes":385},".jpeg","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","large_photo_2026_09_16_14_24_39_fd554ec0ac","image\u002Fjpeg","large_photo_2026-09-16 14.24.39.jpeg",28.47,28474,{"ext":379,"url":387,"hash":388,"mime":382,"name":389,"path":11,"size":390,"width":40,"height":41,"sizeInBytes":391},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","small_photo_2026_09_16_14_24_39_fd554ec0ac","small_photo_2026-09-16 14.24.39.jpeg",10.1,10096,{"ext":379,"url":393,"hash":394,"mime":382,"name":395,"path":11,"size":396,"width":48,"height":40,"sizeInBytes":397},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","medium_photo_2026_09_16_14_24_39_fd554ec0ac","medium_photo_2026-09-16 14.24.39.jpeg",18.22,18219,{"ext":379,"url":399,"hash":400,"mime":382,"name":401,"path":11,"size":402,"width":55,"height":56,"sizeInBytes":403},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_39_fd554ec0ac.jpeg","thumbnail_photo_2026_09_16_14_24_39_fd554ec0ac","thumbnail_photo_2026-09-16 14.24.39.jpeg",3.51,3508,"photo_2026_09_16_14_24_39_fd554ec0ac",66.97,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_39_fd554ec0ac.jpeg","2026-09-16T11:28:55.322Z",[409],{"__component":66,"id":410,"text":411},285,"\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Два одинаковых заказа в ERP, системе управления ресурсами компании, и товар, проданный в офлайне, но всё ещё доступный на маркетплейсе, выглядят для оператора как разные ошибки. Часто у них одна причина: системы обмениваются данными, однако у обмена нет точных правил.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Один заказ пришёл дважды. Это вполне реальный класс событий. В&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fpush-notifications\u002Freference\u002FsendNotification\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>документации Яндекс Маркета\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> прямо сказано, что площадка может несколько раз отправить уведомление об одном изменении. Там же предупреждают: время и состояние заказа в уведомлении, ответе API и системе магазина могут различаться.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Интеграция с маркетплейсами и ERP требует заранее определить источники данных, защиту от дублей, карту статусов, синхронизацию остатков и аварийные сценарии. Ниже разберём эти решения и приведём критерий готовности, который можно проверить до запуска.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">API подключили. Правила обмена ещё не появились\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Токен, работающий запрос и первый полученный заказ доказывают только техническую доступность канала. Рабочая интеграция начинается с ответов на более неудобные вопросы: какая система владеет каждым полем, как распознать повторное событие, какой статус считать актуальным и что делать после тайм-аута.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">У площадок разные контракты и операционные модели. В&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdev.wildberries.ru\u002F\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>WB API\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> отдельно описаны товары, остатки и несколько схем исполнения заказов. Яндекс Маркет делит методы по кабинетам, магазинам, складам и моделям работы. ERP хранит собственные документы, регистры, резервы и правила проведения. Прямое соединение «API в ERP» быстро обрастает условиями внутри учётной системы.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы обычно выносим работу с площадками в интеграционный слой. Он переводит внешние сущности во внутреннюю модель, хранит соответствия идентификаторов, принимает события, запускает повторы и ведёт журнал. ERP получает согласованный контракт вместо логики трёх площадок, размазанной по обработчикам.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Сама 1С допускает несколько способов интеграции. Её&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fv8.1c.ru\u002Fplatforma\u002Frest-interfeys\u002F\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>REST-интерфейс\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> позволяет читать и изменять объекты, создавать документы и получать остатки. Конкретный транспорт выбирают после разбора конфигурации, нагрузки и допустимых изменений. Схема обмена важнее модного названия протокола.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Пять сущностей, пять владельцев: без этой карты обмен спорит сам с собой\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-16 14.24.37.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_37_866705102d.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_37_866705102d.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_37_866705102d.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_37_866705102d.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_37_866705102d.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Перед разработкой полезно собрать карту источников истины. Это короткая таблица или схема: сущность, владелец, направление обмена, частота, ключ и поведение при ошибке. В типовом проекте она выглядит так:\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cul style=\"margin-bottom:0;margin-top:0;padding-inline-start:48px;\">\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e22cf960b232e79071e0ed9f5edfda3fb\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">товар и SKU: ERP или PIM (система управления товарными данными) хранит внутренний идентификатор, интеграционный слой связывает его с внешним ID каждой площадки;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"eab605a6d7418cb894b58017114d4b3a3\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">цена: владелец зависит от модели ценообразования; рядом фиксируются акции, минимальная цена и момент вступления значения в силу;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e461aab685f6614aa1ee313eb72a9ab1c\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">доступный остаток: ERP, WMS (система управления складом) или отдельная система управления заказами считает физический запас, резервы и страховой остаток;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e05b1d60c049664ff0f94ae31d27ee173\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">заказ: маркетплейс владеет внешним номером и исходными условиями, ERP создаёт внутренний документ с постоянной ссылкой на этот номер;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"ee283dc0d392ddbbcdb0b2341af72d64b\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">статусы, возвраты и выплаты: площадка сообщает внешнее состояние, а компания отдельно ведёт операционный, логистический и финансовый контуры.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Карту нельзя заполнять по принципу «всё берём из ERP». Учётная система может знать количество на складе и не знать, что площадка уже создала заявку на отмену. Маркетплейс видит свой заказ и не учитывает продажу из розничной точки. Интеграционный слой связывает эти факты, не присваивая себе владение бизнес-данными.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch3 style=\"line-height:1.38;margin-bottom:4pt;margin-top:16pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#434343;font-family:Arial,sans-serif;font-size:13.999999999999998pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Минимальная строка карты\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Сущность → источник → внешний ключ → направление → допустимая задержка → действие при ошибке → ответственный. Когда хотя бы одно поле пустует, спор о данных переезжает с доски аналитика в рабочий заказ.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Повторное уведомление не должно создавать второй заказ\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-16 14.24.34.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_34_42c8939520.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_34_42c8939520.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_34_42c8939520.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_34_42c8939520.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_34_42c8939520.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Сетевой обмен не обещает, что каждое событие придёт ровно один раз и строго по порядку. Площадка повторяет уведомление, клиент повторяет запрос после тайм-аута, очередь доставляет сообщение заново. Поэтому мы делаем создание заказа идемпотентным: повтор той же команды сохраняет прежний результат.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Практический ключ можно собрать из площадки, кабинета продавца и внешнего ID заказа. На эту комбинацию ставят уникальное ограничение. При повторе слой интеграции находит созданный документ, сверяет версию или время обновления и применяет только новое изменение.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы сохраняем след каждого события: внешний ID, внутренний ID, направление, тип операции, время источника, номер попытки и результат. В журнал записываем и цифровой отпечаток сообщения, то есть хэш полезной нагрузки. Тогда оператор видит, пришла копия прежнего сообщения или площадка прислала другой состав с тем же номером.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Тайм-аут требует особой осторожности. Отсутствие ответа не доказывает, что операция провалилась: ERP могла принять документ, а сеть потеряла подтверждение. Без проверки по внешнему ключу автоматический повтор создаст дубль именно в тот момент, когда система пытается восстановиться.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Статус «доставлен» живёт отдельно от оплаты и возврата\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Попытка свести все состояния к одному полю рождает странные значения: «отгружен, частично выкуплен, возврат в пути, выплата ожидается». Человеку фраза ещё понятна. Для автоматизации это четыре разных процесса.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы разделяем как минимум внешний статус площадки, внутренний статус обработки, доставку и финансовое состояние. Затем описываем разрешённые переходы. Система знает, кто меняет статус, какое событие разрешает следующий шаг и можно ли откатить операцию.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Такой граф защищает от запоздавших сообщений. Событие «готов к отгрузке», пришедшее после подтверждённой доставки, попадёт в журнал и очередь разбора, но не вернёт заказ на склад. В&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fconcepts\u002Fdbs-order-status-model\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>документации Яндекс Маркета\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> порядок переходов указан отдельно: нарушение последовательности приводит к ошибке.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Для бизнеса карта статусов даёт ещё один результат: становится видно, где заказ застрял и кто должен действовать. «Ошибка интеграции» превращается в конкретную очередь: не найден SKU, ERP отклонила документ, склад не подтвердил резерв, площадка не приняла переход.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Остаток должен учитывать продажи во всех каналах\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-16 14.24.33.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_16_14_24_33_222a609262.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_16_14_24_33_222a609262.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_16_14_24_33_222a609262.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_16_14_24_33_222a609262.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_16_14_24_33_222a609262.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Остаток для маркетплейса означает количество, доступное к заказу. Его рассчитывают из свободного физического запаса с учётом активных резервов и страхового остатка. Продажу в другом канале сразу вычитаем из доступного количества. Для всех площадок используем одно правило расчёта.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.yandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fstep-by-step\u002Fstocks\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>Яндекс Маркет\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> отдельно подчёркивает, что продажа вне площадки тоже должна сразу уменьшать передаваемый остаток. В запросе указываются SKU, склад, количество и момент актуальности значения. Эта отметка времени важна: новое обновление не должно уступить место опоздавшему старому пакету.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Один лишь обмен по расписанию оставляет окно для перепродажи. Его ширина равна интервалу синхронизации плюс время обработки. Поэтому критичные изменения отправляют по событию, а периодическую сверку оставляют как страховку от потерянных сообщений. Событийный поток даёт скорость, сверка восстанавливает целостность.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch3 style=\"line-height:1.38;margin-bottom:4pt;margin-top:16pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#434343;font-family:Arial,sans-serif;font-size:13.999999999999998pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Формула, которую согласовываем до кода\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh3>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Доступно к продаже = свободный физический остаток − активные резервы − страховой запас. Продажа в другом канале сразу меняет свободный остаток. Для каждого слагаемого фиксируем владельца и момент обновления.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Семь сбоев, которые разыгрываем до запуска\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Успешный сценарий проверяет API. Набор аварийных ситуаций проверяет всю операционную систему. Перед первым боевым заказом мы проводим семь испытаний:\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cul style=\"margin-bottom:0;margin-top:0;padding-inline-start:48px;\">\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"eee7ffcdffffbd4193c898a91b7a86872\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">одно уведомление приходит дважды;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"ec86dedbdf0c30117bf725be884310214\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">два статуса приходят в обратном порядке;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e7dbcefe70346e572e7d95f262d6fb662\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">ERP создаёт документ, но ответ теряется по тайм-ауту;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e37c67f6f2d9d47a4fc316446c9ec180a\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">площадка возвращает ограничение частоты или временную серверную ошибку;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"eb005d6546e10164ad681d017199b7f5b\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">в пакете из ста остатков часть строк отклонена;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"ee3bafaefe17c834bbc640727a1d1d6a4\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">один внешний SKU связан с неверной номенклатурой;\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003Cli class=\"ck-list-marker-font-size ck-list-marker-color ck-list-marker-font-family\" style=\"--ck-content-list-marker-color:#000000;--ck-content-list-marker-font-family:Arial,sans-serif;--ck-content-list-marker-font-size:11pt;background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;font-style:normal;font-variant:normal;font-weight:400;list-style-type:disc;text-decoration:none;vertical-align:baseline;white-space:pre;\" dir=\"ltr\" aria-level=\"1\" data-list-item-id=\"e367fa7b2f1919c2304865d908329ccc2\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">товар одновременно покупают на маркетплейсе и в другом канале.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Для каждого сценария фиксируют ожидаемое состояние заказа и остатка, максимальное время восстановления, маршрут оповещения и действие оператора. Повтор должен быть безопасным, ошибка видимой, а восстановление доступным без правки данных напрямую в базе.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2 style=\"line-height:1.38;margin-bottom:6pt;margin-top:18pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:16pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Один сквозной заказ важнее трёх подключённых площадок\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fh2>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Первый релиз разумно ограничить одной площадкой, одной схемой исполнения, одним складом и одним типом заказа. Заказ проходит весь путь: появляется на площадке, создаётся в ERP, резервирует товар, меняет статусы, отгружается, отменяется или возвращается. После этого подключение следующего канала становится добавлением адаптера к устойчивому ядру.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">В проекте&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>HOTZ\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\"> мы связали с 1С одну витрину для четырёх продуктовых линеек: товары, цены, остатки и заказы участвуют в двустороннем обмене. За интерфейсом работает тот же принцип: у сущностей есть владельцы, операции идут в правильной последовательности, а состояние заказа можно разобрать по шагам.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Интеграция готова, когда один заказ проходит от площадки до ERP и обратно с тем же внешним ID, составом, количеством и разрешённой цепочкой статусов. Повтор события сохраняет один документ, ошибка попадает в журнал, а сверка восстанавливает пропущенные изменения.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Тогда оператор открывает ERP и видит один заказ вместо двух, а покупатель видит доступным только тот товар, который компания действительно может отгрузить.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:1.38;margin-bottom:8pt;margin-top:0pt;\" dir=\"ltr\">\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">Мы проектируем интеграции с 1С, ERP, WMS и API площадок в&nbsp;\u003C\u002Fspan>\u003C\u002Fspan>\u003Ca style=\"text-decoration:none;\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">\u003Cspan style=\"background-color:transparent;color:#1155cc;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"-webkit-text-decoration-skip:none;font-style:normal;font-variant:normal;font-weight:400;text-decoration-skip-ink:none;vertical-align:baseline;white-space:pre-wrap;\">\u003Cu>направлении e-commerce и маркетплейсов\u003C\u002Fu>\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan style=\"background-color:transparent;color:#000000;font-family:Arial,sans-serif;font-size:11pt;\">\u003Cspan style=\"font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;vertical-align:baseline;white-space:pre-wrap;\">. Можно прислать схему текущего обмена или описать проблемный заказ: разберём источники данных, статусы и точки отказа, затем предложим состав первого релиза.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fp>",[413,414],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"order":6,"id":417,"documentId":418,"title":419,"date":420,"description":11,"slug":421,"showOnMainPage":13,"createdAt":422,"updatedAt":423,"publishedAt":424,"locale":17,"cover":425,"content":459,"media_event":11,"media_areas":463,"seo":11,"localizations":472},331,"m3jg0ix87senqmdibgb089zk","Настройка резервного копирования: как проверить восстановление сервиса\n","2026-09-17","rezervnoe-kopirovanie-proverka-vosstanovleniya","2026-09-17T08:38:21.082Z","2026-09-17T14:08:08.647Z","2026-09-17T14:08:08.708Z",{"id":426,"documentId":427,"name":428,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":429,"hash":454,"ext":379,"mime":382,"size":455,"url":456,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":457,"updatedAt":457,"publishedAt":458},794,"rejdhpayptwmftim0dz8qkhm","photo_2026-09-17 14.46.04.jpeg",{"large":430,"small":436,"medium":442,"thumbnail":448},{"ext":379,"url":431,"hash":432,"mime":382,"name":433,"path":11,"size":434,"width":32,"height":33,"sizeInBytes":435},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_14_46_04_e8ee782619.jpeg","large_photo_2026_09_17_14_46_04_e8ee782619","large_photo_2026-09-17 14.46.04.jpeg",33.05,33049,{"ext":379,"url":437,"hash":438,"mime":382,"name":439,"path":11,"size":440,"width":40,"height":41,"sizeInBytes":441},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_14_46_04_e8ee782619.jpeg","small_photo_2026_09_17_14_46_04_e8ee782619","small_photo_2026-09-17 14.46.04.jpeg",12.17,12169,{"ext":379,"url":443,"hash":444,"mime":382,"name":445,"path":11,"size":446,"width":48,"height":40,"sizeInBytes":447},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_14_46_04_e8ee782619.jpeg","medium_photo_2026_09_17_14_46_04_e8ee782619","medium_photo_2026-09-17 14.46.04.jpeg",21.78,21780,{"ext":379,"url":449,"hash":450,"mime":382,"name":451,"path":11,"size":452,"width":55,"height":56,"sizeInBytes":453},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_14_46_04_e8ee782619.jpeg","thumbnail_photo_2026_09_17_14_46_04_e8ee782619","thumbnail_photo_2026-09-17 14.46.04.jpeg",4.03,4025,"photo_2026_09_17_14_46_04_e8ee782619",77.41,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_14_46_04_e8ee782619.jpeg","2026-09-17T11:46:34.244Z","2026-09-17T11:46:34.245Z",[460],{"__component":66,"id":461,"text":462},295,"\u003Cp>100 %\u003C\u002Fp>\u003Ch1>300 ГБ исчезли за секунды: как проверить, что бэкап вернёт сервис вовремя\u003C\u002Fh1>\u003Cp>Сотрудник команды GitLab хотел заново настроить резервный сервер PostgreSQL и через несколько секунд остановил команду: она удаляла данные на основной базе. К этому моменту исчезли около 300 ГБ. Затем взяли резервную копию и выяснили, что привычный pg_dump завершался с ошибкой, а уведомления об этом не доходили.\u003C\u002Fp>\u003Cp>Это случилось с \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fabout.gitlab.com\u002Fblog\u002Fpostmortem-of-database-outage-of-january-31\u002F\">GitLab.com\u003C\u002Fa>. В публичном разборе инцидента описано, как для восстановления пришлось взять снимок шестичасовой давности. Перенос данных занял около 18 часов. Сервис вернулся, часть проектов, комментариев и учётных записей вернуть не удалось.\u003C\u002Fp>\u003Cp>В рабочем тесте мы проходим всю цепочку: поднимаем данные в отдельном окружении, запускаем приложение, проверяем критичный сценарий и измеряем время до готовности продукта. На примерах \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">«Стадикэтс»\u003C\u002Fa> и \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fponimayu\">«Понимаю»\u003C\u002Fa> покажем, какие вопросы эта проверка ставит перед большим сервисом.\u003C\u002Fp>\u003Ch2>Две цифры связывают бэкап с потерями бизнеса\u003C\u002Fh2>\u003Cp>RPO, Recovery Point Objective, задаёт допустимую потерю данных во времени. RTO, Recovery Time Objective, определяет предельную длительность восстановления. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Fframework\u002Frel_backing_up_data_periodic_recovery_testing_data.html\">AWS Well-Architected\u003C\u002Fa> рекомендует подтверждать оба показателя в ходе учений: RPO — по свежести восстановленной точки, RTO — по всему пути до готовности системы к работе.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 14.46.02.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_14_46_02_87c2923fc4.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_14_46_02_87c2923fc4.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_14_46_02_87c2923fc4.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_14_46_02_87c2923fc4.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_14_46_02_87c2923fc4.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">«Стадикэтс»\u003C\u002Fa> мы объединили шесть образовательных курсов в одну платформу: с личным кабинетом, домашними заданиями, пробниками и статистикой прогресса. Для такого контура RPO и RTO обсуждают не абстрактно. Нужно решить, за какой интервал допустимо потерять отправленные задания, результаты пробников, покупки и изменения доступа к курсу. Ответ задаёт требования к данным и времени возврата критичных сценариев.\u003C\u002Fp>\u003Cp>Допустим, интернет-магазин принимает заказы постоянно. RPO в 15 минут означает, что компания допускает потерю изменений максимум за этот интервал. При RTO в два часа критичный сценарий должен вернуться в строй в пределах этого срока. Эти значения служат условиями примера, а не универсальной нормой.\u003C\u002Fp>\u003Cp>Мы начинаем с процессов: перечисляем критичные действия пользователей, определяем допустимую потерю данных для каждого, фиксируем срок возврата функции и проверяем выбранную стратегию на тесте. Единый RPO для всех наборов данных обычно даёт лишние расходы в одних местах и слишком мягкую защиту в других.\u003C\u002Fp>\u003Ch2>База поднялась, а продукт ещё лежит\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 14.46.01.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_14_46_01_17d2e3ef98.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_14_46_01_17d2e3ef98.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_14_46_01_17d2e3ef98.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_14_46_01_17d2e3ef98.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_14_46_01_17d2e3ef98.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Готовность базы данных часто принимают за конец процедуры. Пользовательский сервис зависит от версии приложения, конфигурации инфраструктуры, объектного хранилища, очередей, поискового индекса, ключей шифрования, DNS, фоновых заданий и внешних интеграций.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fponimayu\">«Понимаю»\u003C\u002Fa> — корпоративная платформа поддержки сотрудников с онлайн-консультациями разных специалистов. В таком сервисе критичным становится не только подъём базы: восстановленный продукт должен вернуть пользователю возможность войти по корпоративному доступу, увидеть запланированную встречу и подключиться к консультации.\u003C\u002Fp>\u003Cp>На практике мы выстраиваем очередность по зависимостям: сначала поднимаем инфраструктуру и доступ к ключам, затем хранилища данных, после этого приложение, фоновые процессы и интеграции. Последним проверяем сквозной сценарий. Самая медленная обязательная зависимость определяет срок возврата бизнеса.\u003C\u002Fp>\u003Ch2>Зелёный статус задания заканчивается запросом к данным\u003C\u002Fh2>\u003Cp>Тест бэкапа мы заканчиваем работающим сервисом в изолированном окружении. AWS называет типичной ошибкой восстановление ресурса без чтения и подтверждения целостности данных. Архив распаковался, база запустилась, а нужные таблицы повреждены или приложение не может подключиться.\u003C\u002Fp>\u003Cp>Минимальное учение проводим по семи шагам:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"e01483550c75bae7df17f7303afb6e109\">Выбираем конкретный сервис, его RPO и RTO.\u003C\u002Fli>\u003Cli data-list-item-id=\"efdf2c938c95452cf662a8912464fd1aa\">Берём точку восстановления по обычной производственной процедуре.\u003C\u002Fli>\u003Cli data-list-item-id=\"e5338a7630fe5d9652deb9e8df754a3c3\">Запускаем таймер и разворачиваем отдельное окружение.\u003C\u002Fli>\u003Cli data-list-item-id=\"e9c0ba38c4525ca691f045e665d5ba79e\">Проверяем целостность: контрольные суммы, количество записей и бизнес-инварианты.\u003C\u002Fli>\u003Cli data-list-item-id=\"ed24691104b4df2673014411b377dd72b\">Подключаем приложение и проходим один критичный пользовательский сценарий.\u003C\u002Fli>\u003Cli data-list-item-id=\"eba139bd36ed47de8aff0b59b6562ed0a\">Фиксируем фактическую потерю данных и полное время до готовности.\u003C\u002Fli>\u003Cli data-list-item-id=\"e555fec8d6cf599d3557c6162d6abc894\">Обновляем инструкцию, автоматизацию и владельцев по итогам учения.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Бизнес-инвариант зависит от продукта. В «Стадикэтс» для проверки полезно сопоставить доступ к курсу, факт оплаты, отправленное задание и результат пробника. Для «Понимаю» — доступ пользователя и корректность данных о запланированной консультации.\u003C\u002Fp>\u003Cp>Инструкцию отдаём сотруднику команды, который её не писал. Во время аварии автор может быть недоступен, а двусмысленный шаг увеличит паузу. В документе оставляем команды, критерии результата и условия остановки.\u003C\u002Fp>\u003Ch2>Копия в той же зоне риска исчезает вместе с оригиналом\u003C\u002Fh2>\u003Cp>Общий аккаунт администратора, один регион, доступное для записи сетевое хранилище или единая политика удаления связывают оригинал и копию общей причиной отказа. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.cisa.gov\u002Fstopransomware\u002Fransomware-guide\">CISA\u003C\u002Fa> советует хранить критичные резервные данные офлайн и в зашифрованном виде, регулярно проверять доступность и целостность копий.\u003C\u002Fp>\u003Cp>В облачной инфраструктуре мы строим изоляцию из отдельного аккаунта, неизменяемого хранилища, раздельных ролей на создание и удаление копий, многофакторного подтверждения чувствительных операций и собственных оповещений. Конкретный набор зависит от угроз и стоимости простоя.\u003C\u002Fp>\u003Cp>Репликация помогает быстро переключиться при отказе узла. Ошибочное удаление или повреждение может уйти и на реплику. Для возврата к состоянию до события используем независимую точку восстановления с подходящим сроком хранения.\u003C\u002Fp>\u003Ch2>Один журнал отвечает на вопрос «мы восстановимся?»\u003C\u002Fh2>\u003Cp>После каждого учения мы заполняем короткий паспорт результата: сервис и ответственного, точку и источник копии, целевые и фактические RPO\u002FRTO, результат чтения данных, прохождение пользовательского сценария, найденные ограничения и дату следующего запуска.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fprescriptive-guidance\u002Flatest\u002Fstrategy-database-disaster-recovery\u002Ftesting.html\">AWS Prescriptive Guidance\u003C\u002Fa> предлагает учитывать требования бизнеса и повторять тесты после существенных обновлений приложения или инфраструктуры. Поводом для внепланового прогона становятся рост объёма базы, смена версии СУБД, новый регион, ротация ключей, миграция хранилища и переработка критичного сценария.\u003C\u002Fp>\u003Cp>Для большой образовательной или консультационной платформы этот журнал сохраняет связь между изменениями продукта и готовностью вернуться в работу. Новая интеграция, изменение авторизации или обновление сценария оплаты — повод проверить, что прежнее измерение RTO ещё относится к текущей архитектуре.\u003C\u002Fp>\u003Ch2>Пять вопросов перед следующим релизом\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 14.45.58.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_14_45_58_4f99dfdb5c.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_14_45_58_4f99dfdb5c.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_14_45_58_4f99dfdb5c.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_14_45_58_4f99dfdb5c.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_14_45_58_4f99dfdb5c.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Col>\u003Cli data-list-item-id=\"ee95c44f84722fe7153649d0459b8e30e\">Какие действия пользователей компания готова потерять и за какой интервал?\u003C\u002Fli>\u003Cli data-list-item-id=\"e20b05f6182adc6d4f99648a99cedc51e\">Через сколько должен заработать каждый критичный сценарий?\u003C\u002Fli>\u003Cli data-list-item-id=\"e7ca2e5879368ec61f9de22d3099452ad\">Где лежат копии и кто может их изменить или удалить?\u003C\u002Fli>\u003Cli data-list-item-id=\"eb002666ad460fd4b020af78804c380f8\">Когда сервис в последний раз поднимали с нуля из сохранённой точки?\u003C\u002Fli>\u003Cli data-list-item-id=\"e1258e0505bb9640281bc6ba6ba805e00\">Какие RPO и RTO зафиксировали?\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Мы считаем бэкап рабочим после тестового восстановления, проверки данных и фиксации фактических RPO и RTO. Без даты последнего учения и этих измерений заявленный срок остаётся ожиданием.\u003C\u002Fp>\u003Cp>В Qtim бэкапы входят в инфраструктурный контур SaaS вместе с наблюдаемостью, SLA, дежурством и инструкциями для аварийных действий. Остальные составляющие собрали на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas\">странице о разработке SaaS-сервисов\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>После остановленной команды мы уже знаем, из какой точки вернуть 300 ГБ и сколько займёт возврат системы в работу.\u003C\u002Fp>",[464,471],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},21,"yf23yooxmjrfe35xytsexltw","Веб-разработка","veb-razrabotka","2026-07-30T14:29:04.519Z","2026-07-30T14:29:04.572Z",{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"order":6,"id":474,"documentId":475,"title":476,"date":477,"description":11,"slug":478,"showOnMainPage":13,"createdAt":479,"updatedAt":480,"publishedAt":481,"locale":17,"cover":482,"content":518,"media_event":11,"media_areas":522,"seo":11,"localizations":525},336,"xujodhmvw1zxpvpcqahtklmc","Когда D2C становится выгоднее маркетплейса: расчёт по заказам\n","2026-08-28","kogda-d2c-vygodnee-marketpleysa-raschet-po-zakazam","2026-08-27T14:24:12.532Z","2026-09-17T22:22:16.654Z","2026-09-17T22:22:16.749Z",{"id":483,"documentId":484,"name":485,"alternativeText":11,"caption":11,"width":486,"height":487,"formats":488,"hash":513,"ext":26,"mime":29,"size":514,"url":515,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":516,"updatedAt":516,"publishedAt":517},809,"wh0w33d5r9e3mqugb21bad8h","marketplace-d2c-reconstructed-2x.png",3072,2048,{"large":489,"small":495,"medium":501,"thumbnail":507},{"ext":26,"url":490,"hash":491,"mime":29,"name":492,"path":11,"size":493,"width":32,"height":33,"sizeInBytes":494},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_marketplace_d2c_reconstructed_2x_127fdfd6e7.png","large_marketplace_d2c_reconstructed_2x_127fdfd6e7","large_marketplace-d2c-reconstructed-2x.png",732.28,732281,{"ext":26,"url":496,"hash":497,"mime":29,"name":498,"path":11,"size":499,"width":40,"height":41,"sizeInBytes":500},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_marketplace_d2c_reconstructed_2x_127fdfd6e7.png","small_marketplace_d2c_reconstructed_2x_127fdfd6e7","small_marketplace-d2c-reconstructed-2x.png",222.12,222122,{"ext":26,"url":502,"hash":503,"mime":29,"name":504,"path":11,"size":505,"width":48,"height":40,"sizeInBytes":506},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_marketplace_d2c_reconstructed_2x_127fdfd6e7.png","medium_marketplace_d2c_reconstructed_2x_127fdfd6e7","medium_marketplace-d2c-reconstructed-2x.png",452.9,452897,{"ext":26,"url":508,"hash":509,"mime":29,"name":510,"path":11,"size":511,"width":55,"height":56,"sizeInBytes":512},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_marketplace_d2c_reconstructed_2x_127fdfd6e7.png","thumbnail_marketplace_d2c_reconstructed_2x_127fdfd6e7","thumbnail_marketplace-d2c-reconstructed-2x.png",54.82,54818,"marketplace_d2c_reconstructed_2x_127fdfd6e7",1170.92,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmarketplace_d2c_reconstructed_2x_127fdfd6e7.png","2026-09-17T22:22:05.920Z","2026-09-17T22:22:05.922Z",[519],{"__component":66,"id":520,"text":521},300,"\u003Cp class=\"p1\">Покупатель заказывает у бренда шампунь в третий раз. Товар тот же, продавец тот же, привычка уже появилась. Для селлера третий заказ снова оплачивается как первый: финансовый отчёт опять включает комиссию площадки, логистику и расходы на продвижение. Третий флакон знакомится с брендом заново — очень вежливо и за деньги.\u003C\u002Fp>\u003Cp class=\"p1\">Выключать кабинет продавца в этот момент рано. Маркетплейс приводит аудиторию, принимает оплату, помогает с доверием и доставкой. Собственный D2C-канал (direct-to-consumer, прямые продажи бренда покупателю) становится рациональным, когда повторные заказы оставляют больше денег, чем стоят привлечение, операционные процессы и развитие платформы.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Комиссия — только первая строка длинного отчёта\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Стоимость маркетплейса нельзя свести к одному проценту. Итог зависит от категории, схемы поставки, склада, габаритов, возвратов и продвижения. Поэтому спор о «слишком большой комиссии» мы заменяем выгрузкой по конкретным товарам хотя бы за несколько месяцев.\u003C\u002Fp>\u003Cp class=\"p1\">Сами площадки считают экономику шире. В калькуляторе Wildberries рядом с комиссией стоят логистика, хранение, налоги и продвижение. Маркет отдельно показывает размещение, перевод платежей, услуги по обработке заказов и рекламу. Процент из карточки тарифа здесь работает как трейлер: фильм начинается в финансовом отчёте.\u003C\u002Fp>\u003Cp class=\"p1\">Для каждого SKU, то есть товарной позиции, мы считаем одну формулу:\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Вклад заказа на маркетплейсе = цена продажи − себестоимость − упаковка − все переменные услуги площадки − продвижение − резерв на возвраты.\u003C\u002Fi>\u003C\u002Fp>\u003Cp class=\"p1\">Вклад показывает, сколько заказ оставляет на покрытие постоянных расходов и прибыль бизнеса. Налоги и общие расходы компании добавляются следующим слоем по единым правилам сравнения для обоих каналов.\u003C\u002Fp>\u003Cp class=\"p1\">Под «всеми услугами» нужны реальные удержания из отчёта: размещение, приёмка, логистика, хранение, обработка возврата и другие списания по вашей модели. Усреднение по магазину может обмануть. Компактный товар с быстрой оборачиваемостью и крупная коробка, которая месяцами живёт на складе, продаются в одной витрине, но участвуют в разных экономиках.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Своя касса приводит с собой новые счета\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-rashody-marketpleys-d2c.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_rashody_marketpleys_d2c_f1603b7603.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_rashody_marketpleys_d2c_f1603b7603.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_rashody_marketpleys_d2c_f1603b7603.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_rashody_marketpleys_d2c_f1603b7603.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_rashody_marketpleys_d2c_f1603b7603.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">У D2C исчезают услуги маркетплейса, зато появляются собственные расходы. Бренду нужны трафик, приём банковских платежей, сайт, каталог, интеграция с учётной системой, доставка, поддержка, обработка возвратов, CRM для работы с клиентской базой и аналитика. Комиссия площадки не превращается в чистую прибыль одним нажатием на кнопку «Запустить интернет-магазин».\u003C\u002Fp>\u003Cp class=\"p1\">Расходы мы делим на две группы. Переменные возникают с заказом: платёж, сборка, доставка, возврат и поддержка. Постоянные живут по календарю: развитие платформы, инфраструктура, контент, CRM и команда канала. Их тоже нужно разнести на заказы, иначе собственный сайт на бумаге окажется подозрительно щедрым.\u003C\u002Fp>\u003Cp class=\"p1\">На пилоте \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">собственный e-commerce-контур\u003C\u002Fa> мы бы собрали вокруг одного покупательского сценария. Каталог, оформление заказа, оплата, доставка, синхронизация остатков и события аналитики важнее длинного списка функций личного кабинета. Сначала канал должен принять заказ и отдать данные для расчёта. Остальное уходит в план следующих релизов.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Первый прямой заказ дорожает из-за привлечения\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Маркетплейс уже собрал трафик, отзывы, знакомый интерфейс и доверие к оплате. Собственному магазину приходится создавать этот контекст самому. Поэтому первый D2C-заказ несёт стоимость привлечения клиента — CAC, customer acquisition cost — и нередко уступает заказу с площадки.\u003C\u002Fp>\u003Cp class=\"p1\">Формула первого заказа выглядит так:\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Вклад первого D2C-заказа = цена − себестоимость − переменные расходы канала − CAC.\u003C\u002Fi>\u003C\u002Fp>\u003Cp class=\"p1\">Постоянные расходы канала — платформа, CRM, аналитика, развитие — распределяются на все заказы периода. Чтобы сравнить конкретный заказ с заказом на маркетплейсе, из его вклада дополнительно вычитается доля этих расходов.\u003C\u002Fp>\u003Cp class=\"p1\">Если сравнивать только эту строку, идея собственного канала может закрыться до того, как успеет собрать данные. Особенно тяжело товарам, которые покупают редко: дивану трудно окупить рекламу обещанием второго дивана в следующем месяце. У корма, косметики, кофе, расходников и детских товаров горизонт короче, поэтому повторный спрос быстрее влияет на расчёт.\u003C\u002Fp>\u003Cp class=\"p1\">Здесь важен ещё один источник первого заказа. Бренд с поисковым спросом, активной аудиторией в соцсетях, офлайн-точками или базой покупателей с согласиями начинает не с пустого экрана. Если весь трафик приходится покупать заново, D2C получает самую дорогую версию старта.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Второй заказ меняет счёт\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-pervyy-i-povtornyy-zakaz.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_pervyy_i_povtornyy_zakaz_63fe1a6abe.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_pervyy_i_povtornyy_zakaz_63fe1a6abe.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_pervyy_i_povtornyy_zakaz_63fe1a6abe.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_pervyy_i_povtornyy_zakaz_63fe1a6abe.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_pervyy_i_povtornyy_zakaz_63fe1a6abe.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Повторная покупка уже не требует заново оплачивать весь CAC. Вместо него остаются расходы на удержание: письмо, push, программа лояльности, контент или персональное предложение. Если человек возвращается сам, стоимость может быть ещё ниже.\u003C\u002Fp>\u003Cp class=\"p1\">Для повторного заказа формула меняется:\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Вклад повторного D2C-заказа = цена − себестоимость − переменные расходы канала − стоимость удержания.\u003C\u002Fi>\u003C\u002Fp>\u003Cp class=\"p1\">Каналы мы сравниваем по одной когорте — группе клиентов, которые сделали первую покупку в одном периоде. Для клиента с тремя заказами экономика маркетплейса равна трём вкладам заказа. В D2C складываются первый заказ с CAC и два повторных с расходами на удержание.\u003C\u002Fp>\u003Cp class=\"p1\">Канал догоняет маркетплейс, когда выполняется условие:\u003C\u002Fp>\u003Cp class=\"p1\">Вклад первого D2C-заказа + вклад повторных заказов − постоянные расходы канала ≥ вклад тех же заказов на маркетплейсе.\u003C\u002Fp>\u003Cp class=\"p1\">Важна именно накопленная сумма. Средняя окупаемость рекламы может выглядеть бодро и всё равно скрывать, что половина покупателей не вернулась. Когортный отчёт показывает долю клиентов со вторым заказом и реальный срок между покупками.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Считаем на условных цифрах: перелом наступает на третьем заказе\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Ниже — условный пример, а не тариф площадки и не коммерческие показатели Qtim. Его задача — показать механику. Подставьте свои цифры по SKU, источнику трафика и модели доставки.\u003C\u002Fp>\u003Cp class=\"p1\">Допустим, товар продаётся за 3 000 ₽, себестоимость вместе с упаковкой составляет 1 200 ₽.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e556facdffdadf15e1a637635d55bc876\">\u003Cp class=\"p1\">На маркетплейсе совокупные расходы канала — комиссия, логистика, хранение, возвраты и продвижение — составили в сценарии 1 250 ₽. Вклад заказа: 550 ₽.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9c63122f109329850a296d7295ae2b68\">\u003Cp class=\"p1\">В D2C платёж, сборка, доставка, возвраты и поддержка стоят 550 ₽ на заказ. CAC первого покупателя — 800 ₽. Вклад первого заказа составляет 450 ₽. После распределения 300 ₽ постоянных расходов канала остаётся 150 ₽.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e67fa20f5b11f8d43b7883d0bcb00aa5e\">\u003Cp class=\"p1\">При повторе расходы на удержание составляют 150 ₽ вместо CAC. Вклад заказа равен 1 100 ₽, после доли постоянных расходов остаётся 800 ₽.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Теперь смотрим на одного покупателя:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ebd9cb1265d1c1a36de2812ed0db04113\">\u003Cp class=\"p1\">после первой покупки: маркетплейс — 550 ₽, D2C — 150 ₽;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e07ddcc2bc3fd62f8ff06d9a5d9033031\">\u003Cp class=\"p1\">после второй: маркетплейс — 1 100 ₽, D2C — 950 ₽;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9e83a3ec9c5070088de5efafe094eeb4\">\u003Cp class=\"p1\">после третьей: маркетплейс — 1 650 ₽, D2C — 1 750 ₽.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">В этом сценарии собственный канал выходит вперёд на третьем заказе. Если покупатель возвращается только один раз, маркетплейс остаётся выгоднее. Если CAC вырастет или объём заказов окажется слишком маленьким и доля постоянных расходов увеличится, точка окупаемости отодвинется. Таблица не обещает красивый ответ, зато быстро показывает, где он сломался.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Пять признаков, что пилот пора считать в деньгах\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg>\u003C\u002Ffigure>\u003Cp class=\"p1\">\u003Ci>Есть повторный спрос.\u003C\u002Fi> В когортах видны второй и третий заказы на понятном горизонте. Мы смотрим по категориям: один средний показатель по магазину легко смешивает шампунь и шкаф.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>У бренда есть собственный входящий спрос.\u003C\u002Fi> Люди ищут название, читают соцсети, приходят из офлайна или уже оставили согласие на коммуникацию в других каналах бренда. Смотрим долю прямых и брендовых заходов в Метрике или GA и число упоминаний в соцсетях — если оно заметно, первый заказ меньше зависит от платной рекламы.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Ассортимент даёт повод идти напрямую.\u003C\u002Fi> Наборы, подписка, ранний доступ, консультация, расширенный контент или персональный подбор создают отдельный сценарий. Копия карточки с маркетплейса редко убеждает человека осваивать новое оформление заказа.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Операции выдержат обещание\u003C\u002Fi>. Остатки синхронизируются, заказ собирается вовремя, доставка предсказуема, поддержка отвечает, возврат проходит без археологических раскопок в таблицах. Сэкономленная комиссия быстро заканчивается там, где начинается дорогая ошибка в заказе.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Ci>Маржа и объём покрывают постоянный контур.\u003C\u002Fi> Прогноз заказов должен оплачивать платформу, CRM, аналитику и развитие. Если после распределения этих расходов повторный D2C-заказ всё ещё сильнее заказа на площадке, пилот получил экономическое основание.\u003C\u002Fp>\u003Cp class=\"p1\">Один признак не решает задачу. Повторный спрос без нормальной доставки создаёт очередь жалоб, а готовая платформа без собственного трафика не набирает объём для проверки экономики.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Один сегмент безопаснее переезда всем каталогом\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Проверка D2C не требует в один день закрывать продажи на площадке. Мы бы выбрали категорию с повторным спросом, один понятный источник трафика и регион, где логистика уже предсказуема. Маркетплейс продолжает приводить новых покупателей, пока собственный канал доказывает экономику.\u003C\u002Fp>\u003Cp class=\"p1\">На пилоте мы бы отслеживали семь показателей:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e2ebef6e0c094e5f6aabb0bff0754ef76\">\u003Cp class=\"p1\">вклад первого заказа после CAC;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecb95c38e439385cb97caed14ed74f5f6\">\u003Cp class=\"p1\">вклад повторного заказа после расходов на удержание;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e755785757118f634c897c3d91982d317\">\u003Cp class=\"p1\">CAC по каждому источнику;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e989a15896f349a56fa5ec412bd40cc59\">\u003Cp class=\"p1\">долю клиентов со второй и третьей покупкой;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3df32549f513707d36a5e3a99c000007\">\u003Cp class=\"p1\">время до следующего заказа;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ed00ceea1acc85a7ba4dd1d379c8d3630\">\u003Cp class=\"p1\">стоимость возврата и поддержки на заказ;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"efe8fa98945ea8968c43a8c2ac548d15b\">\u003Cp class=\"p1\">постоянные расходы D2C в расчёте на заказ.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Проверка заканчивается решением по первой когорте, которая успела дожить до второго заказа. Если повторов недостаточно, меняем предложение, сужаем ассортимент или оставляем площадку основным каналом. Если экономика сходится, следующими подключаются новые категории, регионы и сценарии удержания.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Маркетплейс и D2C могут делать разную работу\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Полный уход с маркетплейса нужен реже, чем кажется после тяжёлого финансового отчёта. Площадка может оставаться витриной, точкой первой покупки и способом проверить спрос. D2C берёт на себя сценарии, где важны повтор, данные, программа лояльности, наборы и прямой контакт с аудиторией, которая согласилась получать сообщения бренда.\u003C\u002Fp>\u003Cp class=\"p1\">Критерий-решалка звучит так: если второй и третий прямые заказы перекрывают разницу первого, D2C пора пилотировать. До этого собственный магазин остаётся гипотезой. После — у него появляется экономика.\u003C\u002Fp>\u003Cp class=\"p1\">Тот самый третий флакон может снова приехать через маркетплейс, и в этом нет ошибки, если заказ оставляет больше денег. Ошибка начинается, когда селлер платит за привычный маршрут клиента и не знает, выгодно ли построить свой.\u003C\u002Fp>\u003Cp class=\"p1\">Если хотите посчитать точку окупаемости и состав первого релиза — приходите с выгрузкой, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">обсудим пилот D2C.\u003C\u002Fa> Разберём экономику заказа, путь покупателя, интеграции и метрики, которые должны сойтись до масштабирования.\u003C\u002Fp>",[523,524],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"order":6,"id":527,"documentId":528,"title":529,"date":530,"description":11,"slug":531,"showOnMainPage":13,"createdAt":532,"updatedAt":532,"publishedAt":533,"locale":17,"cover":534,"content":568,"media_event":11,"media_areas":572,"seo":11,"localizations":575},343,"c4qw6xwuehgz8lo5zyabldkb","Платформа обучения сотрудников: почему курс заканчивается раньше рабочего результата","2026-09-18","platforma-obucheniya-sotrudnikov-rabochiy-rezultat","2026-09-18T10:17:38.082Z","2026-09-18T10:17:38.173Z",{"id":535,"documentId":536,"name":537,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":538,"hash":563,"ext":379,"mime":382,"size":564,"url":565,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":566,"updatedAt":566,"publishedAt":567},819,"edjo5wob21z5uhha17u4q9dp","photo_2026-09-18 13.08.32.jpeg",{"large":539,"small":545,"medium":551,"thumbnail":557},{"ext":379,"url":540,"hash":541,"mime":382,"name":542,"path":11,"size":543,"width":32,"height":33,"sizeInBytes":544},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_18_13_08_32_58620c6905.jpeg","large_photo_2026_09_18_13_08_32_58620c6905","large_photo_2026-09-18 13.08.32.jpeg",54.25,54252,{"ext":379,"url":546,"hash":547,"mime":382,"name":548,"path":11,"size":549,"width":40,"height":41,"sizeInBytes":550},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_18_13_08_32_58620c6905.jpeg","small_photo_2026_09_18_13_08_32_58620c6905","small_photo_2026-09-18 13.08.32.jpeg",20.13,20134,{"ext":379,"url":552,"hash":553,"mime":382,"name":554,"path":11,"size":555,"width":48,"height":40,"sizeInBytes":556},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_18_13_08_32_58620c6905.jpeg","medium_photo_2026_09_18_13_08_32_58620c6905","medium_photo_2026-09-18 13.08.32.jpeg",35.88,35883,{"ext":379,"url":558,"hash":559,"mime":382,"name":560,"path":11,"size":561,"width":55,"height":56,"sizeInBytes":562},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_18_13_08_32_58620c6905.jpeg","thumbnail_photo_2026_09_18_13_08_32_58620c6905","thumbnail_photo_2026-09-18 13.08.32.jpeg",6.9,6900,"photo_2026_09_18_13_08_32_58620c6905",124.5,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_18_13_08_32_58620c6905.jpeg","2026-09-18T10:16:22.449Z","2026-09-18T10:16:22.450Z",[569],{"__component":66,"id":570,"text":571},307,"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Сотрудник сдал тест и получил сертификат, но руководителю этих данных недостаточно для допуска к работе с клиентами: знание терминов ещё не показывает, как человек применяет их на практике.\u003C\u002Fp>\u003Cp dir=\"auto\">Библиотека курсов хранит материалы и фиксирует прохождение. Полный маршрут начинается с назначения программы по роли и заканчивается допуском после практики, проверки наставника и сверки результата в рабочей системе.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Что остаётся за статусом «завершено»: поведение и рабочий результат\u003C\u002Fh2>\u003Cp dir=\"auto\">Статус «завершено» фиксирует факт прохождения программы. Реакцию участника и усвоение знаний оценивают отдельно. Чтобы увидеть изменение поведения и рабочий результат, нужны данные из рабочих систем.\u003C\u002Fp>\u003Cp dir=\"auto\">Эту логику объясняет \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.kirkpatrickpartners.com\u002Fthe-kirkpatrick-model\u002F\">модель Киркпатрика\u003C\u002Fa>. В ней четыре уровня оценки: реакция участника, усвоение знаний, изменение поведения и результат для организации.\u003C\u002Fp>\u003Cp dir=\"auto\">У службы поддержки таким показателем может быть снижение доли повторных обращений. Для отдела продаж подойдут качество консультации или время до первой самостоятельной сделки. На производстве важны допуск к операции и число ошибок после него. Метрику выбирают до запуска программы, иначе после обучения команда ищет в данных хоть какое-нибудь улучшение и рискует выдать совпадение за эффект курса.\u003C\u002Fp>\u003Cp dir=\"auto\">На рабочий показатель влияют сезонность, изменения продукта, состав команды и десятки других факторов. Поэтому платформа должна соединить учебные и операционные данные, а вывод о причине всё равно остаётся за аналитиком и владельцем процесса.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Пять статусов превращают курс в рабочий маршрут\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-18 13.08.34.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_18_13_08_34_93eaa437fd.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_18_13_08_34_93eaa437fd.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_18_13_08_34_93eaa437fd.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_18_13_08_34_93eaa437fd.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_18_13_08_34_93eaa437fd.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Минимальный контур можно описать одной строкой:\u003C\u002Fp>\u003Cp dir=\"auto\">назначено → изучено → отработано → подтверждено → допущено.\u003C\u002Fp>\u003Cp dir=\"auto\">За каждым статусом стоит отдельное действие и источник данных.\u003C\u002Fp>\u003Col data-spread=\"false\">\u003Cli data-list-item-id=\"ef791436e4d4fb4fc625cc34596075059\">\u003Cp dir=\"auto\">Назначено. Платформа получает роль, подразделение и событие из HR-системы: выход сотрудника, перевод, изменение регламента или окончание срока допуска. На этом основании она назначает нужную программу и фиксирует дедлайн.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e272cb410e366d1711cb835a8ea9a8b82\">\u003Cp dir=\"auto\">Изучено. Система хранит точную версию материала, которую прошёл человек. После изменения регламента видно, кому требуется обновление, а кому достаточно прежней версии.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1a97cd229beb910d4eec2fb6886deb25\">\u003Cp dir=\"auto\">Отработано. Сотрудник решает сценарий в тренажёре, выполняет задачу в тестовой среде или проходит практику с наставником. Здесь появляется подтверждение выполненного действия. Одного правильного ответа уже недостаточно.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5715e39e33067d31e6dac5d8a8c12bf0\">\u003Cp dir=\"auto\">Подтверждено. Наставник, эксперт или руководитель проверяет результат по понятным критериям. Решение сохраняется вместе с автором, датой и комментарием.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8ca6ce01b92df71629a3554e216ce1aa\">\u003Cp dir=\"auto\">Допущено. Платформа фиксирует, какую работу человек может выполнять, кто выдал допуск и когда его нужно подтвердить снова. Для критичных процессов этот статус можно передавать в систему управления доступами или рабочее приложение.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp dir=\"auto\">Такая цепочка делает обучение управляемым процессом. В ней видно, где застрял сотрудник, кому пора вмешаться и какое действие действительно завершает программу.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Одна роль «сотрудник» ломается на первом исключении\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-18 13.08.37.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_18_13_08_37_53b2894f53.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_18_13_08_37_53b2894f53.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_18_13_08_37_53b2894f53.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_18_13_08_37_53b2894f53.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_18_13_08_37_53b2894f53.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">На одной платформе сотрудник проходит программу, наставник принимает практику, руководитель подтверждает результат, эксперт отвечает за содержание, HR управляет назначениями, а служба безопасности или качества оформляет допуск. У каждого участника свой экран, данные и набор разрешённых действий.\u003C\u002Fp>\u003Cp dir=\"auto\">Роль описывает набор разрешений независимо от должности в штатном расписании. Два руководителя могут видеть разные программы и подразделения. Один эксперт редактирует материал, второй только согласует. Временный наставник получает доступ к группе на конкретный период.\u003C\u002Fp>\u003Cp dir=\"auto\">В публичном \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">кейсе образовательной платформы «Онлайн-школы №1»\u003C\u002Fa> мы реализовали модульную модель доступа. Она позволила настроить 18 ролей и добавлять новую роль за 15–20 минут без переписывания логики. Это проект для онлайн-образования, однако принцип переносится в корпоративный контур: интерфейс собирается из разрешённых блоков, а действия внутри каждого блока проверяются отдельно.\u003C\u002Fp>\u003Cp dir=\"auto\">Проверка прав нужна и на интерфейсе, и на сервере. Спрятанная кнопка ещё не запрещает действие. Сервер должен убедиться, что пользователь вправе назначить программу, увидеть чужой результат или оформить допуск.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Редкие действия требуют подсказки в момент работы\u003C\u002Fh2>\u003Cp dir=\"auto\">Часть знаний сотрудник использует редко. Загружать их в память через длинный курс бессмысленно. Для таких задач лучше работает подсказка в момент действия: короткая инструкция, чек-лист, поиск по базе знаний или встроенный помощник с проверенными источниками.\u003C\u002Fp>\u003Cp dir=\"auto\">Курс нужен там, где важно заранее понять правило, потренироваться и получить обратную связь. Рабочая подсказка помогает вспомнить последовательность. Платформа должна связать оба формата и не заставлять сотрудника проходить сорок минут теории ради одного шага в интерфейсе.\u003C\u002Fp>\u003Cp dir=\"auto\">Например, практику специалиста поддержки можно проверить на разборе обращения в тренажёре и первых ответах под контролем наставника.\u003C\u002Fp>\u003Cp dir=\"auto\">Событием для повторного обучения становится конкретное изменение: новая версия продукта, обновлённый регламент, рост определённого типа ошибок. Платформа назначает нужный фрагмент тем ролям, которых оно касается. Полный курс при каждом обновлении только учит людей быстрее нажимать «далее».\u003C\u002Fp>\u003Ch2 dir=\"auto\">38,8% компаний связывают обучение с рабочими показателями\u003C\u002Fh2>\u003Cp dir=\"auto\">По \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdigital-learning.ru\u002F10924-2\u002F\">исследованию Digital Learning 2026\u003C\u002Fa>, в котором участвовали 115 представителей российских компаний более чем из 15 отраслей, 75% организаций оценивают знания сотрудников. Связь обучения с KPI отслеживают 38,8%.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-18 13.08.38.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_18_13_08_38_2c4f04fa17.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_18_13_08_38_2c4f04fa17.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_18_13_08_38_2c4f04fa17.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_18_13_08_38_2c4f04fa17.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_18_13_08_38_2c4f04fa17.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Учебная платформа хранит попытки, баллы и завершения, а рабочие показатели распределены по другим системам: продажи — в CRM, ошибки — в контроле качества, обращения — в поддержке, кадровые события — в HR-системе. Без общего идентификатора сотрудника записи не складываются в один маршрут.\u003C\u002Fp>\u003Cp dir=\"auto\">Начинать стоит с одного процесса и одной метрики. Для адаптации продавца это может быть время до самостоятельной консультации. Для оператора — доля обращений, которые наставник вернул на доработку. Для обязательного обучения — срок от назначения до подтверждённого допуска.\u003C\u002Fp>\u003Cp dir=\"auto\">Сравнивать нужно сотрудников на одной версии программы и в сопоставимых условиях. Иначе новый курс легко получает заслугу за сезонный спрос, смену руководителя или обновление продукта.\u003C\u002Fp>\u003Cp dir=\"auto\">Когда практика проходит в нескольких системах, можно использовать \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fopensource.ieee.org\u002Fxapi\u002Fxapi-base-standard-documentation\">xAPI\u003C\u002Fa>. Стандарт описывает учебное событие через связку «кто сделал что» и позволяет сохранять записи в хранилище учебных событий. Он помогает собрать данные из тренажёра, мобильного приложения и LMS. Выбор бизнес-метрики и согласование идентификаторов остаются задачами команды. Сначала проектируют событие и решение, которое будет принято по данным.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Три уровня решения: готовая LMS, интеграционный слой, своя платформа\u003C\u002Fh2>\u003Cp dir=\"auto\">Разработка с нуля требуется далеко не каждому корпоративному обучению. Выбор проще сделать по тому, где именно рвётся маршрут сотрудника.\u003C\u002Fp>\u003Cp dir=\"auto\">Готовая LMS подходит, когда программы назначаются по нескольким стабильным ролям, практика укладывается в тесты и задания, стандартных отчётов достаточно, а данные можно выгружать без постоянных сверок.\u003C\u002Fp>\u003Cp dir=\"auto\">Интеграционный слой нужен, когда учебная часть работает, а назначения и результаты живут отдельно от кадровой системы, CRM или платформы бизнес-аналитики (BI). В этом случае разумнее сохранить LMS и связать данные через программный интерфейс (API), очередь событий или регулярный обмен.\u003C\u002Fp>\u003Cp dir=\"auto\">Собственная платформа или отдельный продуктовый модуль оправданы, когда ценность находится в уникальном маршруте: сложных ролях, тренажёрах, подтверждении практики, допусках, нескольких интерфейсах и правилах, которые регулярно меняются вместе с бизнесом.\u003C\u002Fp>\u003Cp dir=\"auto\">Есть и промежуточный вариант: готовое ядро с доработками. Он сокращает путь до запуска, сохраняя возможность развивать собственную логику. Цена решения включает поддержку, обновления интеграций, безопасность и работу с данными после релиза.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Пилот на одном допуске показывает больше, чем каталог из ста курсов\u003C\u002Fh2>\u003Cp dir=\"auto\">Первый релиз лучше собрать вокруг одного законченного маршрута. Выберите роль и рабочее действие, для которого нужен подтверждённый навык. Затем зафиксируйте пять вещей:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"eec9d3dadbfe2b4796c396f32afcaa7eb\">\u003Cp dir=\"auto\">какое событие назначает обучение;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5232715ff69ec0d1c19f1c4606ea7133\">\u003Cp dir=\"auto\">какую версию материала должен пройти сотрудник;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e149064c872fab6f2c52d818652d27825\">\u003Cp dir=\"auto\">какая практика подтверждает умение;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1b9c66aee7a9b8c0672a40b4c7ad1023\">\u003Cp dir=\"auto\">кто принимает работу и выдаёт допуск;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8d32ea0cac6cbc9ff2c28ff235f19af0\">\u003Cp dir=\"auto\">в какой системе лежит показатель после обучения.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Такой пилот сразу проверяет роли, данные, интеграции и аналитику. Каталог можно расширять позже. Ошибка в маршруте обнаружится до того, как компания загрузит сотни материалов и привяжет к ним тысячи сотрудников.\u003C\u002Fp>\u003Cp dir=\"auto\">Руководителю нужен ответ на вопрос из начала статьи: сотрудник готов выполнить работу самостоятельно или ему ещё нужна помощь. Для этого после изучения материала нужны практика, подтверждение наставника и допуск.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы начинаем такие проекты с карты ролей, событий и данных. По ней видно, какие задачи закроет готовая LMS, что потребует интеграций, а что — собственной разработки. Если вы выбираете решение для онлайн-школы или корпоративного обучения, посмотрите, как мы подходим к\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\"> разработке EdTech-платформ\u003C\u002Fa>.\u003C\u002Fp>",[573,574],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"order":6,"id":577,"documentId":578,"title":579,"date":580,"description":11,"slug":581,"showOnMainPage":13,"createdAt":582,"updatedAt":583,"publishedAt":584,"locale":17,"cover":585,"content":619,"media_event":11,"media_areas":623,"seo":11,"localizations":625},360,"idkoix18t80we76tz6g5li5g","Как проектировать редкие пользовательские сценарии в цифровом продукте","2026-09-21","redkie-polzovatelskie-scenarii-v-cifrovom-produkte","2026-09-21T11:15:59.442Z","2026-09-21T14:12:59.342Z","2026-09-21T14:12:59.415Z",{"id":586,"documentId":587,"name":588,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":589,"hash":614,"ext":379,"mime":382,"size":615,"url":616,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":617,"updatedAt":617,"publishedAt":618},856,"a8lo28pvxqq7yj8qcqho4x60","photo_2026-09-21 14.42.04.jpeg",{"large":590,"small":596,"medium":602,"thumbnail":608},{"ext":379,"url":591,"hash":592,"mime":382,"name":593,"path":11,"size":594,"width":32,"height":33,"sizeInBytes":595},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_14_42_04_5b28ec9142.jpeg","large_photo_2026_09_21_14_42_04_5b28ec9142","large_photo_2026-09-21 14.42.04.jpeg",60.7,60695,{"ext":379,"url":597,"hash":598,"mime":382,"name":599,"path":11,"size":600,"width":40,"height":41,"sizeInBytes":601},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_14_42_04_5b28ec9142.jpeg","small_photo_2026_09_21_14_42_04_5b28ec9142","small_photo_2026-09-21 14.42.04.jpeg",20.96,20957,{"ext":379,"url":603,"hash":604,"mime":382,"name":605,"path":11,"size":606,"width":48,"height":40,"sizeInBytes":607},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_14_42_04_5b28ec9142.jpeg","medium_photo_2026_09_21_14_42_04_5b28ec9142","medium_photo_2026-09-21 14.42.04.jpeg",38.96,38957,{"ext":379,"url":609,"hash":610,"mime":382,"name":611,"path":11,"size":612,"width":55,"height":56,"sizeInBytes":613},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_14_42_04_5b28ec9142.jpeg","thumbnail_photo_2026_09_21_14_42_04_5b28ec9142","thumbnail_photo_2026-09-21 14.42.04.jpeg",6.84,6842,"photo_2026_09_21_14_42_04_5b28ec9142",141.69,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_14_42_04_5b28ec9142.jpeg","2026-09-21T11:43:54.800Z","2026-09-21T11:43:54.801Z",[620],{"__component":66,"id":621,"text":622},324,"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Первое число месяца. Бухгалтер открывает сервис, чтобы закрыть отчётность. Данные, сроки и порядок проверки он знает. На экране десять равноправных карточек. Прошлый черновик и следующий шаг среди них не выделены. Вместо работы приходится восстанавливать маршрут по меню.\u003C\u002Fp>\u003Cp dir=\"auto\">Специалист не обязан хранить в голове карту продукта, которым пользуется раз в месяц. Редкий сценарий проверяет сам интерфейс: показывает ли он прошлый статус, нужный объект и следующее действие. Повторный онбординг здесь только добавит экран, который хочется закрыть.\u003C\u002Fp>\u003Ch2 dir=\"auto\">За 30 дней интерфейс успевает стать чужим\u003C\u002Fh2>\u003Cp dir=\"auto\">При ежедневной работе человек запоминает маршрут. Редкий сценарий живёт по другим правилам. Между двумя визитами меняются задачи, документы и обстоятельства, а детали интерфейса уходят из памяти.\u003C\u002Fp>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.nngroup.com\u002Farticles\u002Frecognition-and-recall\u002F\">Nielsen Norman Group\u003C\u002Fa> объясняет это через три фактора: частоту, давность и контекст. Чем реже и дальше по времени использовалась информация, тем труднее её воспроизвести. Узнать знакомый вариант в меню проще, чем вспомнить название команды с нуля.\u003C\u002Fp>\u003Cp dir=\"auto\">Про триггеры возврата и сохранённую корзину мы уже писали в \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fvc.ru\u002Flife\u002F3111464-duolingo-pribavil-23-ezhednevnoi-auditorii-chto-internet-magazin-mozhet-zabrat-u-sovy\">статье про Duolingo\u003C\u002Fa>. Здесь другая половина маршрута: человек уже вернулся. Теперь сервис должен помочь ему продолжить задачу.\u003C\u002Fp>\u003Cp dir=\"auto\">Дата регистрации ничего не говорит о знании конкретного сценария. Аккаунту может быть три года, а операцию человек выполнял дважды. Это нормальная частота использования, поэтому интерфейс должен быстро возвращать контекст.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Тур показали в январе, кнопка понадобилась в марте\u003C\u002Fh2>\u003Cp dir=\"auto\">Большой тур при первом входе плохо решает эту задачу. Пользователь видит подсказку в январе, а нужная кнопка понадобится в марте. К тому моменту от тура остаётся смутное ощущение, что где-то всё уже объясняли.\u003C\u002Fp>\u003Cp dir=\"auto\">Подсказка сильнее работает рядом с действием: короткая расшифровка поля, пример формата, подпись у редкой иконки, история последней операции. Человеку не нужно заново изучать продукт. Ему нужен контекст в тот момент, когда возник вопрос.\u003C\u002Fp>\u003Cp dir=\"auto\">Я бы проверял каждую подсказку простым вопросом: помогает ли она сделать следующий шаг прямо сейчас. Обзор возможностей, приветствие и рассказ о пользе сервиса этот тест обычно не проходят.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Первый экран должен вернуть три вещи\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 14.42.19.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_14_42_19_8b578a220a.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_14_42_19_8b578a220a.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_14_42_19_8b578a220a.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_14_42_19_8b578a220a.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_14_42_19_8b578a220a.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Возвращение начинается с восстановления позиции. На входе нужны три ответа:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e3fffab17408524f6058cb611f82583dc\">\u003Cp dir=\"auto\">Где я? Название операции должно совпадать с языком пользователя, письма или документа, который привёл его в сервис.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e450e455eb01b24f9a165e5e8dfbb5375\">\u003Cp dir=\"auto\">Что уже сделано? Нужны сохранённый прогресс, выбранные параметры, статус и дата последнего действия.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec2b292db7a7ab8c2468f4e4e852c10dd\">\u003Cp dir=\"auto\">Что делать дальше? Одна заметная кнопка с понятным результатом полезнее набора равноправных действий.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdesign-system.service.gov.uk\u002Fcomponents\u002Ftask-list\u002F\">GOV.UK Design System\u003C\u002Fa> для длинных процессов рекомендуют сохранять прогресс и возвращать человека к месту остановки. Этот приём нужен не каждому продукту, но принцип точный: сервис продолжает прерванный разговор.\u003C\u002Fp>\u003Cp dir=\"auto\">Плохой вариант встречает пользователя дашбордом из десяти карточек. Хороший показывает, что декларация заполнена на четыре шага из пяти, черновик сохранён две недели назад, а сейчас нужно проверить итог и отправить.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Лишние функции лучше оставить на втором слое\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 14.42.21.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_14_42_21_f23914b172.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_14_42_21_f23914b172.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_14_42_21_f23914b172.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_14_42_21_f23914b172.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_14_42_21_f23914b172.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">У редкого пользователя есть конкретная цель и мало терпения к устройству системы. На первом слое ему нужны основные действия. Настройки, исключения и расширенные параметры можно раскрывать по запросу.\u003C\u002Fp>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fjournals.sagepub.com\u002Fdoi\u002F10.1177\u002F10648046241273291\">исследовании 2024 года\u003C\u002Fa> послойное раскрытие функций рассматривают как подход для нерегулярных пользователей и повторного освоения после перерыва. Выводы там предварительные: в эксперименте участвовали 42 начинающих военных специалиста, работавших со сложным интерфейсом планирования миссий. Переносить стоит сам принцип, без обещаний универсального эффекта.\u003C\u002Fp>\u003Cp dir=\"auto\">У подхода есть обратная сторона. Пять уровней «Показать ещё» превращают простоту в раскопки. Критичное действие, статус и последствия решения остаются на поверхности. Второй слой подходит для того, что требуется части пользователей или возникает в особом случае.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Тест 30-го дня: пять вопросов вместо общего «понятно?»\u003C\u002Fh2>\u003Cp dir=\"auto\">Обычный тест сразу после знакомства показывает, насколько быстро человек учится. Редкий сценарий требует другой проверки. Дайте участнику выполнить задачу, выдержите паузу или пригласите человека, который давно не открывал этот раздел, и смотрите на первое возвращение.\u003C\u002Fp>\u003Cp dir=\"auto\">Пять вопросов:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e0c0e3b93d520b8ea57aeba25e95e9510\">\u003Cp dir=\"auto\">Понимает ли человек, где оказался, без объяснения модератора?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"efce060d7ccafd26b6bcd266d0ddbad64\">\u003Cp dir=\"auto\">Видит ли он результат прошлого визита и актуальный статус?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee7bbfc22d3f0f9bb87347ddeca86ae83\">\u003Cp dir=\"auto\">Находит ли следующее действие по формулировке, а не методом перебора?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e54f3145239205ad96d73ae65b22d1ded\">\u003Cp dir=\"auto\">Понимает ли, что произойдёт после нажатия?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e49ff89856f1ceec34b6ffd803cf0ba4a\">\u003Cp dir=\"auto\">Может ли самостоятельно исправить ошибку или отменить действие?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Вместо общего вопроса «всё понятно?» полезнее измерять время до первого правильного действия, возвраты на предыдущие экраны, открытия справки, незавершённые попытки и обращения в поддержку. Эти сигналы показывают, где интерфейс переложил память о процессе на человека.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Редкая операция иногда должна идти медленнее\u003C\u002Fh2>\u003Cp dir=\"auto\">Ускорять любой редкий сценарий опасно. Ежемесячный повторный платёж можно подготовить заранее: подставить прошлые реквизиты, показать сумму и дать подтвердить. Годовое изменение прав доступа требует другого темпа: явного списка затронутых ролей, предпросмотра и отдельного подтверждения.\u003C\u002Fp>\u003Cp dir=\"auto\">Частота определяет объём помощи, а цена ошибки — объём проверки. Чем реже действие и серьёзнее последствия, тем больше контекста интерфейс должен показать перед финальной кнопкой.\u003C\u002Fp>\u003Cp dir=\"auto\">Вернёмся к бухгалтеру. Его задача не изменилась: проверить прошлый период и отправить отчёт. Хороший экран сразу покажет черновик, статус и следующий шаг. Через месяц тот же интерфейс вернёт контекст за несколько секунд.\u003C\u002Fp>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fproduct-support\">Разбираете редкий сценарий в действующем продукте?\u003C\u002Fa> Мы можем пройти его глазами вернувшегося пользователя, найти места, где интерфейс требует лишней памяти, и собрать план UX-доработок.\u003C\u002Fp>",[624],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"order":6,"id":627,"documentId":628,"title":629,"date":530,"description":11,"slug":630,"showOnMainPage":13,"createdAt":631,"updatedAt":632,"publishedAt":633,"locale":17,"cover":634,"content":667,"media_event":11,"media_areas":671,"seo":11,"localizations":673},361,"fbzwk8k4u0jwlm6l2b9o2jr3","Как превращать результаты пользовательских интервью в задачи для бэклога","rezultaty-polzovatelskih-intervyu-v-zadachi-backloga","2026-09-18T13:05:14.859Z","2026-09-21T14:42:31.491Z","2026-09-21T14:42:31.557Z",{"id":635,"documentId":636,"name":637,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":638,"hash":663,"ext":379,"mime":382,"size":664,"url":665,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":666,"updatedAt":666,"publishedAt":666},826,"s101yfs31hbnltw3zdj4nbz7","photo_2026-09-18 16.43.16.jpeg",{"large":639,"small":645,"medium":651,"thumbnail":657},{"ext":379,"url":640,"hash":641,"mime":382,"name":642,"path":11,"size":643,"width":32,"height":33,"sizeInBytes":644},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_18_16_43_16_df3d2dc989.jpeg","large_photo_2026_09_18_16_43_16_df3d2dc989","large_photo_2026-09-18 16.43.16.jpeg",50.26,50260,{"ext":379,"url":646,"hash":647,"mime":382,"name":648,"path":11,"size":649,"width":40,"height":41,"sizeInBytes":650},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_18_16_43_16_df3d2dc989.jpeg","small_photo_2026_09_18_16_43_16_df3d2dc989","small_photo_2026-09-18 16.43.16.jpeg",19.16,19161,{"ext":379,"url":652,"hash":653,"mime":382,"name":654,"path":11,"size":655,"width":48,"height":40,"sizeInBytes":656},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_18_16_43_16_df3d2dc989.jpeg","medium_photo_2026_09_18_16_43_16_df3d2dc989","medium_photo_2026-09-18 16.43.16.jpeg",33.87,33870,{"ext":379,"url":658,"hash":659,"mime":382,"name":660,"path":11,"size":661,"width":55,"height":56,"sizeInBytes":662},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_18_16_43_16_df3d2dc989.jpeg","thumbnail_photo_2026_09_18_16_43_16_df3d2dc989","thumbnail_photo_2026-09-18 16.43.16.jpeg",6.72,6721,"photo_2026_09_18_16_43_16_df3d2dc989",111.37,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_18_16_43_16_df3d2dc989.jpeg","2026-09-18T13:44:02.209Z",[668],{"__component":66,"id":669,"text":670},325,"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">На интервью пользователь говорит: «Добавьте фильтр по сроку». Для команды это звучит почти как готовая задача: понятно, что нарисовать, разработать и оценить.\u003C\u002Fp>\u003Cp dir=\"auto\">Такую задачу рано ставить в бэклог.\u003C\u002Fp>\u003Cp dir=\"auto\">Просьбу сохраняем вместе с записью разговора. Затем разбираем, что человек пытался сделать, где застрял и почему предложил именно фильтр. Иначе команда начинает с интерфейса и может аккуратно решить не ту проблему.\u003C\u002Fp>\u003Cp dir=\"auto\">В Qtim мы начинаем аналитику с разговоров с бизнесом и пользователями, а затем переводим услышанное в гипотезы, требования и риски. Между цитатой и задачей у нас пять проверок. Они занимают меньше времени, чем разработка функции, которая никому не помогла.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Jira любит существительные. Нам нужно действие\u003C\u002Fh2>\u003Cp dir=\"auto\">Фильтр, кнопка, таблица, новый раздел — такие формулировки удобно переносить в трекер. Они называют элемент интерфейса. Работа пользователя остаётся за пределами карточки.\u003C\u002Fp>\u003Cp dir=\"auto\">Представим, что человек вернулся к списку, чтобы сравнить два варианта по сроку. Это наблюдение. Фраза «ему не хватает сравнения на одном экране» описывает проблему. Фильтр, сортировка или таблица — варианты решения.\u003C\u002Fp>\u003Cp dir=\"auto\">Смешать эти три уровня легко. В карточке появляется «добавить фильтр», разработчик оценивает поле и логику, а исходное действие исчезает. Позже уже никто не помнит, зачем пользователь хотел сокращать список и какие варианты он пытался сопоставить.\u003C\u002Fp>\u003Cp dir=\"auto\">Даже фраза «пятеро попросили фильтр» оставляет нас на уровне ответов. Для задачи полезнее другая формулировка: «пользователи не могут быстро оставить в списке варианты, подходящие по сроку». Теперь команда может обсуждать несколько решений и сравнивать их.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Gallery: два фильтра, у каждого есть причина\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 17.41.32.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_17_41_32_d4de757560.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_17_41_32_d4de757560.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_17_41_32_d4de757560.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_17_41_32_d4de757560.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_17_41_32_d4de757560.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fdroneshow-gallery\">кейсе Gallery\u003C\u002Fa> пользователь подбирает готовое дрон-шоу под конкретную площадку. Чтобы сузить каталог, мы заложили два параметра: размер флота и площадку. У каждого поля есть связь со сценарием запуска.\u003C\u002Fp>\u003Cp dir=\"auto\">До разработки команда зафиксировала цели, аудиторию и ключевые метрики, затем собрала роадмап на 2,5 месяца. После брифа задача звучала так: «помочь подобрать шоу под условия запуска». Уже из неё появились параметры фильтра. Формулировка чуть длиннее. Зато разработчику не приходится угадывать смысл по названию поля — талант полезный, но в смету его обычно не закладывают.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Пять ответов, после которых появляется задача\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 17.41.34.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_17_41_34_9f3fdb881e.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_17_41_34_9f3fdb881e.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_17_41_34_9f3fdb881e.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_17_41_34_9f3fdb881e.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_17_41_34_9f3fdb881e.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Перед оценкой в карточке должны появиться пять ответов:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"ebe8e1f1d9d867981eae068f8a63ea5f1\">\u003Cp dir=\"auto\">Ситуация. Кто и в каком сценарии столкнулся с трудностью?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e333c9a183071913018f8e56406cca355\">\u003Cp dir=\"auto\">Наблюдение. Что человек сделал, сказал и получил в результате?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1e36ff08b033e5010f5ed51d3442e714\">\u003Cp dir=\"auto\">Связь с целью. Какое изменение в поведении или показателе мы ожидаем?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ea5cabfb89ed6f709a53078ea14a3bdbe\">\u003Cp dir=\"auto\">Выбор. Какие варианты рассмотрели и почему остановились на этом?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5208112013cc341aa0a9117c11568a61\">\u003Cp dir=\"auto\">Проверка. Какой сигнал после релиза подтвердит или опровергнет решение?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Пустое поле показывает неопределённость. Команда может принять её ради дешёвого и обратимого теста. Дорогая интеграция, новый платёжный сценарий или переработка ролей требуют более сильной опоры.\u003C\u002Fp>\u003Cp dir=\"auto\">Карточка ограничивает и бесконечный анализ. Сила проверки должна соответствовать цене ошибки. Небольшое изменение можно выпустить быстро. Решение, которое затрагивает оплату, безопасность или потерю данных, требует больше подтверждений.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Быстрый тикет переносит спор в разработку\u003C\u002Fh2>\u003Cp dir=\"auto\">Когда просьба о функции сразу становится задачей, вопросы никуда не исчезают. Они возвращаются на дизайне или уже внутри спринта: зачем нужно это поле, почему выбран фильтр, какой результат ждём после релиза. Команда идёт обратно к интервью, когда часть работы уже сделана.\u003C\u002Fp>\u003Cp dir=\"auto\">Громкая цитата создаёт ещё одну ловушку. Один человек уверенно называет функцию, и его формулировка получает вес рынка. Поэтому рядом с цитатой мы сохраняем сегмент, контекст, частоту и тяжесть проблемы. Таблица наблюдений делает основания видимыми. Приоритет всё равно выбирает продакт.\u003C\u002Fp>\u003Cp dir=\"auto\">Через несколько месяцев от задачи часто остаётся только название. Ссылка на разговор потерялась, сегмент забыли, ожидаемый эффект никто не записал. Тикет жив, а человек, который «вроде помнит контекст», как назло, в отпуске.\u003C\u002Fp>\u003Cp dir=\"auto\">Цена такого сокращения пути — переделка дизайна, разработки и тестирования. Команда всё равно отвечает на пропущенные вопросы, только делает это после оценки или реализации.\u003C\u002Fp>\u003Ch2 dir=\"auto\">После релиза фильтр должен доказать, что был нужен\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 17.41.35.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_17_41_35_d368a70c89.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_17_41_35_d368a70c89.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_17_41_35_d368a70c89.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_17_41_35_d368a70c89.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_17_41_35_d368a70c89.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Статус «готово» не завершает исследование. Мы возвращаемся к ожидаемому результату и смотрим, изменилось ли поведение: люди быстрее находят подходящие варианты, чаще доходят до сравнения или завершают заявку.\u003C\u002Fp>\u003Cp dir=\"auto\">Фильтр может сработать. Может выясниться, что пользователи по-прежнему не понимают названия, не видят сроки или теряются в слишком длинном списке. Тогда команда обновляет вывод и выбирает следующую реакцию.\u003C\u002Fp>\u003Cp dir=\"auto\">Вернёмся к просьбе «добавить фильтр». Задача готова к бэклогу, когда команда может показать путь от исходного наблюдения до цели продукта, выбранного решения и проверки после релиза.\u003C\u002Fp>\u003Cp dir=\"auto\">Перед оценкой следующего тикета восстановите этот путь. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fcontacts\">Разобрать один ключевой сценарий\u003C\u002Fa> можно вместе с нами.\u003C\u002Fp>",[672],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],69,[676,3729,3784,3915,4156,4391,4524,4594,4676,4782,4823,4917],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17,"media":677},[678,736,789,841,892,944,997,1049,1106,1158,1210,1262,1313,1358,1414,1465,1510,1556,1602,1654,1667,1719,1765,1816,1867,1880,1926,1972,2018,2062,2113,2160,2207,2252,2265,2278,2330,2344,2396,2446,2498,2511,2524,2573,2623,2673,2722,2771,2819,2870,2915,2964,3014,3064,3114,3165,3213,3255,3268,3317,3366,3379,3392,3404,3453,3465,3532,3580,3630,3680],{"id":679,"documentId":680,"title":681,"date":682,"description":683,"order":684,"slug":685,"showOnMainPage":13,"createdAt":686,"updatedAt":687,"publishedAt":688,"locale":17,"cover":689,"content":722,"media_event":11,"media_areas":725,"seo":11,"localizations":735},194,"ogd13ylii6xd51tsg0yg5vjm","Мы регулярно участвуем в премиях \u2028и рейтингах ","2025-12-12","В этом году мы не «надеялись на победу» — мы за ней поехали",600,"my-regulyarno-uchastvuem-v-premiyah-i-rejtingah-1","2026-02-27T13:43:43.450Z","2026-07-30T14:49:41.482Z","2026-07-30T14:49:41.550Z",{"id":690,"documentId":691,"name":692,"alternativeText":11,"caption":11,"width":23,"height":23,"formats":693,"hash":718,"ext":26,"mime":29,"size":719,"url":720,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":721,"updatedAt":721,"publishedAt":721},357,"y1u2go2yspxdduip3wzzt80o","Frame 2131330479.png",{"large":694,"small":700,"medium":706,"thumbnail":712},{"ext":26,"url":695,"hash":696,"mime":29,"name":697,"path":11,"size":698,"width":32,"height":32,"sizeInBytes":699},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Frame_2131330479_ac135060ac.png","large_Frame_2131330479_ac135060ac","large_Frame 2131330479.png",420.08,420077,{"ext":26,"url":701,"hash":702,"mime":29,"name":703,"path":11,"size":704,"width":40,"height":40,"sizeInBytes":705},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Frame_2131330479_ac135060ac.png","small_Frame_2131330479_ac135060ac","small_Frame 2131330479.png",128.24,128237,{"ext":26,"url":707,"hash":708,"mime":29,"name":709,"path":11,"size":710,"width":48,"height":48,"sizeInBytes":711},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Frame_2131330479_ac135060ac.png","medium_Frame_2131330479_ac135060ac","medium_Frame 2131330479.png",254.87,254874,{"ext":26,"url":713,"hash":714,"mime":29,"name":715,"path":11,"size":716,"width":56,"height":56,"sizeInBytes":717},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Frame_2131330479_ac135060ac.png","thumbnail_Frame_2131330479_ac135060ac","thumbnail_Frame 2131330479.png",21.05,21054,"Frame_2131330479_ac135060ac",126.02,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FFrame_2131330479_ac135060ac.png","2026-02-27T13:42:07.255Z",[723],{"__component":66,"id":56,"text":724},"\u003Cp class=\"p1\">Проект ВКС для «Онлайн-Школы №1» взял первое место на премии Tagline Awards.&nbsp;\u003C\u002Fp>\u003Cp class=\"p1\">Мы несколько лет подряд отправляем кейсы на премии. В какой-то момент стало понятно: с таким продуктом, как ВКС мы обязаны быть в топе.\u003C\u002Fp>\u003Cp class=\"p1\">Спасибо команде «Онлайн-Школы №1» за то, что пришли к нам не за «ещё одним сервисом для видеосвязи», а за рабочей инфраструктурой для обучения.\u003C\u002Fp>\u003Cp class=\"p1\">Команде Qtim — за то, что сделали продукт, с которым на премии уже не волнуешься, «дадут или нет», а просто забираешь своё первое место.\u003C\u002Fp>",[726,727],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},7,"or8kyxbsn133djndoz8b81h7","Награды ","media-area","2026-05-27T08:31:35.077Z","2026-05-27T09:05:26.042Z","2026-05-27T09:05:26.063Z",[],{"id":737,"documentId":738,"title":739,"date":740,"description":741,"order":684,"slug":742,"showOnMainPage":13,"createdAt":743,"updatedAt":744,"publishedAt":745,"locale":17,"cover":746,"content":781,"media_event":11,"media_areas":785,"seo":11,"localizations":788},188,"ydsmydf287a3yxdji1i4r5z1","еще одна победа!","2025-12-04","Проект Qtim — приложение «Дневник» для «Онлайн-школы №1» — занял третье место в Рейтинге Рунета.","eshhe-odna-pobeda","2026-03-04T07:03:38.855Z","2026-07-30T14:47:13.394Z","2026-07-30T14:47:13.435Z",{"id":747,"documentId":748,"name":749,"alternativeText":11,"caption":11,"width":23,"height":23,"formats":750,"hash":776,"ext":752,"mime":382,"size":777,"url":778,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":779,"updatedAt":779,"publishedAt":780},362,"ehwt5943gnwimn6xr9o2xhic","2026-03-04 09.42.54.jpg",{"large":751,"small":758,"medium":764,"thumbnail":770},{"ext":752,"url":753,"hash":754,"mime":382,"name":755,"path":11,"size":756,"width":32,"height":32,"sizeInBytes":757},".jpg","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_2026_03_04_09_42_54_6201469c67.jpg","large_2026_03_04_09_42_54_6201469c67","large_2026-03-04 09.42.54.jpg",78.04,78037,{"ext":752,"url":759,"hash":760,"mime":382,"name":761,"path":11,"size":762,"width":40,"height":40,"sizeInBytes":763},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_2026_03_04_09_42_54_6201469c67.jpg","small_2026_03_04_09_42_54_6201469c67","small_2026-03-04 09.42.54.jpg",30.29,30286,{"ext":752,"url":765,"hash":766,"mime":382,"name":767,"path":11,"size":768,"width":48,"height":48,"sizeInBytes":769},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_2026_03_04_09_42_54_6201469c67.jpg","medium_2026_03_04_09_42_54_6201469c67","medium_2026-03-04 09.42.54.jpg",53.16,53158,{"ext":752,"url":771,"hash":772,"mime":382,"name":773,"path":11,"size":774,"width":56,"height":56,"sizeInBytes":775},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_2026_03_04_09_42_54_6201469c67.jpg","thumbnail_2026_03_04_09_42_54_6201469c67","thumbnail_2026-03-04 09.42.54.jpg",5.88,5878,"2026_03_04_09_42_54_6201469c67",98.97,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F2026_03_04_09_42_54_6201469c67.jpg","2026-03-04T07:01:29.021Z","2026-03-04T07:01:29.022Z",[782],{"__component":66,"id":783,"text":784},149,"\u003Cp class=\"p1\">&nbsp;\u003C\u002Fp>\u003Cp class=\"p2\">Для нас это заметный результат: продукт, который мы долго и аккуратно делали вместе с командой «Онлайн-школы №1», отметили на профессиональной премии. Радуемся за проект, за команду и за партнеров, с которыми у нас получается двигаться вперёд.\u003C\u002Fp>\u003Cp class=\"p2\">Историю «Дневника» и путь к этому результату собрали в кейсе — с ним можно ознакомиться по \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ft.me\u002Fqtim_pro\u002F645\">\u003Cspan class=\"s1\">ссылке\u003C\u002Fspan>\u003C\u002Fa>\u003Cspan class=\"s2\">.\u003C\u002Fspan>\u003C\u002Fp>",[786,787],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":790,"documentId":791,"title":792,"date":793,"description":794,"order":684,"slug":795,"showOnMainPage":13,"createdAt":796,"updatedAt":797,"publishedAt":798,"locale":17,"cover":799,"content":833,"media_event":11,"media_areas":837,"seo":11,"localizations":840},193,"r3pwx014em719gtwicw9p36t"," церемония награждения премии «Золотой сайт»","2024-12-20","Онлайн-школа №1 забирает все награды","czeremoniya-nagrazhdeniya-premii-zolotoj-sajt","2026-03-04T10:16:10.453Z","2026-07-30T14:49:27.733Z","2026-07-30T14:49:27.815Z",{"id":800,"documentId":801,"name":802,"alternativeText":11,"caption":11,"width":23,"height":23,"formats":803,"hash":828,"ext":752,"mime":382,"size":829,"url":830,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":831,"updatedAt":831,"publishedAt":832},366,"b9uz45671smy7yilco8m5cck","2026-03-04 13.10.41.jpg",{"large":804,"small":810,"medium":816,"thumbnail":822},{"ext":752,"url":805,"hash":806,"mime":382,"name":807,"path":11,"size":808,"width":32,"height":32,"sizeInBytes":809},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_2026_03_04_13_10_41_c01983fa6c.jpg","large_2026_03_04_13_10_41_c01983fa6c","large_2026-03-04 13.10.41.jpg",115.8,115801,{"ext":752,"url":811,"hash":812,"mime":382,"name":813,"path":11,"size":814,"width":40,"height":40,"sizeInBytes":815},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_2026_03_04_13_10_41_c01983fa6c.jpg","small_2026_03_04_13_10_41_c01983fa6c","small_2026-03-04 13.10.41.jpg",46.74,46736,{"ext":752,"url":817,"hash":818,"mime":382,"name":819,"path":11,"size":820,"width":48,"height":48,"sizeInBytes":821},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_2026_03_04_13_10_41_c01983fa6c.jpg","medium_2026_03_04_13_10_41_c01983fa6c","medium_2026-03-04 13.10.41.jpg",80.24,80235,{"ext":752,"url":823,"hash":824,"mime":382,"name":825,"path":11,"size":826,"width":56,"height":56,"sizeInBytes":827},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_2026_03_04_13_10_41_c01983fa6c.jpg","thumbnail_2026_03_04_13_10_41_c01983fa6c","thumbnail_2026-03-04 13.10.41.jpg",8.35,8347,"2026_03_04_13_10_41_c01983fa6c",145.59,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F2026_03_04_13_10_41_c01983fa6c.jpg","2026-03-04T10:14:39.631Z","2026-03-04T10:14:39.632Z",[834],{"__component":66,"id":835,"text":836},155,"\u003Cp class=\"p1\">Команда Qtim с гордостью представила проект Онлайн-Школа №1 и завоевала сразу две награды\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>— 2 место в номинации «Лучший сайт для потребителей B2C»\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>— 3 место в номинации «Сайт образовательного учреждения»\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Онлайн-Школа №1 бьет все рекорды по победам в этом году: они забрали призовые награды уже в трех премиях.\u003C\u002Fp>",[838,839],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":842,"documentId":843,"title":844,"date":845,"description":11,"order":40,"slug":846,"showOnMainPage":13,"createdAt":847,"updatedAt":848,"publishedAt":849,"locale":17,"cover":850,"content":884,"media_event":11,"media_areas":888,"seo":11,"localizations":891},136,"ej9r23ghy5qy8etbvuujvhun","ФНС проверяет реальность ИТ-разработок","2026-03-25","fns-proveryaet-realnost-it-razrabotok-chto-mozhno-uspet-za-30-dnej","2026-03-25T09:35:43.649Z","2026-05-27T09:11:19.129Z","2026-05-27T09:11:19.211Z",{"id":851,"documentId":852,"name":853,"alternativeText":11,"caption":11,"width":854,"height":854,"formats":855,"hash":880,"ext":26,"mime":29,"size":881,"url":882,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":883,"updatedAt":883,"publishedAt":883},436,"emnrbp929ouv4eiew156rf95","image.png",1067,{"large":856,"small":862,"medium":868,"thumbnail":874},{"ext":26,"url":857,"hash":858,"mime":29,"name":859,"path":11,"size":860,"width":32,"height":32,"sizeInBytes":861},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_image_7ca57ab526.png","large_image_7ca57ab526","large_image.png",1558.92,1558924,{"ext":26,"url":863,"hash":864,"mime":29,"name":865,"path":11,"size":866,"width":40,"height":40,"sizeInBytes":867},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_image_7ca57ab526.png","small_image_7ca57ab526","small_image.png",406.17,406171,{"ext":26,"url":869,"hash":870,"mime":29,"name":871,"path":11,"size":872,"width":48,"height":48,"sizeInBytes":873},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_image_7ca57ab526.png","medium_image_7ca57ab526","medium_image.png",902.14,902141,{"ext":26,"url":875,"hash":876,"mime":29,"name":877,"path":11,"size":878,"width":56,"height":56,"sizeInBytes":879},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_image_7ca57ab526.png","thumbnail_image_7ca57ab526","thumbnail_image.png",51.87,51872,"image_7ca57ab526",303.32,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fimage_7ca57ab526.png","2026-03-27T15:48:20.235Z",[885],{"__component":66,"id":886,"text":887},99,"\u003Cp class=\"p1\">20 марта 2026 года РБК \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fra.rbc.ru\u002Fm\u002F8auAtMvNYe\">написали \u003C\u002Fa>о том, как ФНС будет оценивать разработки ИТ-компаний, получивших льготы. Для рынка это сигнал: теперь смотрят не на цифровую оболочку, а на то, есть ли у бизнеса собственный продукт. Риск в том, что часть компаний получала статус и льготы на базе зависимых решений, собранных из внешних сервисов, подрядной разработки и ручных операций.\u003C\u002Fp>\u003Cp>Я – Антон Фокин, CEO Qtim, считаю, что это уже не теоретический сюжет, а практическая проблема для бизнеса, которую мы можем решить. У компании может быть сайт, личный кабинет, оплата и продажи, но при проверке выясняется, что ключевая логика находится вне ее контура, права на код оформлены не до конца, а архитектура не описана. В такой ситуации вопрос уже не в маркетинге, а в том, как доказать, что продукт действительно свой и избежать штрафов.\u003Cbr>\u003Cbr>За 30 дней невозможно создать зрелую платформу с нуля. За это время можно сделать главное: убрать размытость, собрать понятную позицию по продукту и запустить переработку решения там, где бизнес до сих пор зависит от внешней платформы или чужого кода. Именно с такими задачами компании и приходят в Qtim — когда нужно не просто провести аудит, а пересобрать продуктовую основу и перевести критические части системы в собственный контур.\u003C\u002Fp>\u003Ch2>Почему этот вопрос встал именно сейчас и кто попадает в риск\u003C\u002Fh2>\u003Cp class=\"p1\">После новости РБК стало ясно, что проверять будут не обещание и не презентацию, а фактическую конструкцию продукта. В зоне риска не только компании, у которых разработки нет вовсе. Туда же попадают бизнесы, где ядро решения стоит на чужой платформе, критические модули написаны подрядчиком без чисто оформленной передачи прав, а собственный вклад ограничивается интерфейсом, настройкой или витриной продаж.\u003C\u002Fp>\u003Cp class=\"p1\">Отдельно рискуют компании, которые долго жили в режиме быстрых компромиссов. Личный кабинет есть, а расчеты ведутся в таблицах. Административная панель есть, а управление тарифами и доступами идет вручную через сотрудников. Сервис выглядит как единый продукт, а на деле ключевая логика вынесена во внешние инструменты, к которым у бизнеса нет полного контроля. Формально этого могло хватать для роста. В ситуации, когда нужно доказывать реальность собственной разработки, такой конструкции уже недостаточно.\u003C\u002Fp>\u003Cp class=\"p1\">Хорошая новость в том, что месяц — достаточный срок, чтобы собрать ясную картину и навести порядок.\u003C\u002Fp>\u003Ch2>Провести аудит текущего решения\u003C\u002Fh2>\u003Cp class=\"p1\">Первое, что стоит сделать, — перестать описывать продукт общими словами и разобрать, из чего он реально состоит. На старте нужен полный список исходного кода, репозиториев, серверов, доменов, баз данных, внешних интеграций, библиотек, доступов, технической документации и договоров с разработчиками или подрядчиками. Такой аудит быстро показывает разницу между тем, что бизнес считает продуктом, и тем, что у него действительно находится под контролем.\u003C\u002Fp>\u003Cp class=\"p1\">На практике в этом месте вскрываются самые неприятные и самые полезные вещи. Например, клиентский путь автоматизирован, а вся настройка сценариев делается вручную через менеджера. Или заявленная платформа на самом деле держится на стороннем сервисе, который выполняет ключевую часть работы.\u003C\u002Fp>\u003Cp class=\"p1\">Итогом первой недели должна стать карта текущего решения: где находится ядро, какие модули уже работают как собственный продукт, какие узлы критично зависят от внешних решений и где именно находятся риски, из-за которых позиция компании выглядит уязвимой.\u003C\u002Fp>\u003Ch2>\u003Cbr>Зафиксировать, что именно является собственным продуктом\u003C\u002Fh2>\u003Cp class=\"p1\">После аудита почти всегда выясняется, что продукт у компании описан слишком широко. В одно понятие часто сводят сайт, приложение, административную панель, службу поддержки, ручные операции сотрудников, подключенные сервисы и даже рекламные материалы. Для разговора о реальности ИТ-продукта это опасно, потому что размывает границы и делает любую проверку болезненной.\u003C\u002Fp>\u003Cp class=\"p1\">Дальше нужна фиксация ядра. Собственным продуктом может быть расчетный модуль, система обработки заявок, механизм маршрутизации, движок рекомендаций, библиотека правил, контур управления данными или отраслевая административная логика. Внешние сервисы при этом тоже могут оставаться в схеме, если бизнес ясно показывает их роль и не пытается выдать подключенный компонент за свою разработку.\u003C\u002Fp>\u003Cp class=\"p1\">Если компания разработала сильный прикладной модуль внутри большей цифровой среды, именно это и нужно доказывать при проверке. Слабость начинается в тот момент, когда бизнес называет собственным продуктом все целиком и не может отделить свое от арендованного, подключенного или временно собранного на ручном управлении.\u003C\u002Fp>\u003Ch2>Проверить права на код и архитектуру\u003Cbr>&nbsp;\u003C\u002Fh2>\u003Cp>\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fimage_dd5e6e8f11.png\" alt=\"image.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_image_dd5e6e8f11.png 234w,https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_image_dd5e6e8f11.png 500w,https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_image_dd5e6e8f11.png 750w,https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_image_dd5e6e8f11.png 1000w,\" sizes=\"100vw\" width=\"1600\" height=\"1065\">\u003Cbr>Следующий шаг напрямую связан с тем, что РБК вынесло в повестку вместе с темой льгот: недостаточно показать интерфейс и работающий сценарий, если неясно, кому принадлежат исходные тексты программы и кто контролирует саму конструкцию решения. Поэтому после фиксации ядра нужно проверить права на код, доступ к инфраструктуре и базовую оформленность архитектуры.\u003C\u002Fp>\u003Cp class=\"p1\">Здесь смотрят на договоры и акты передачи исключительных прав, на лицензии сторонних библиотек, на учетные записи, к которым привязаны репозитории, серверы и домены, на права доступа внутри команды и на историю разработки по подрядчикам. Если продукт собирался в несколько этапов разными исполнителями, слабые места обычно находятся быстро: часть кода писалась без закрывающих документов, часть зависимостей оформлена на подрядчика, часть сервисов живет на личных учетных записях.\u003C\u002Fp>\u003Cp class=\"p1\">Параллельно нужна рабочая архитектурная схема: понятное описание модулей, потоков данных, зон хранения, механики доступа, интеграций и критических зависимостей. Пока архитектура существует только в голове технического руководителя, бизнесу трудно доказать, что перед ним самостоятельный продукт, а не набор фрагментов.\u003C\u002Fp>\u003Ch2>\u003Cbr>Выделить, какие модули нужно разработать или переработать\u003C\u002Fh2>\u003Cp class=\"p1\">За месяц не получится перестроить всю систему, но можно усилить те части, без которых продукт не выглядит самостоятельным. Обычно это административный контур, роли и права доступа, ключевая бизнес-логика, модель данных и те участки, где пока слишком много ручной работы.\u003C\u002Fp>\u003Cp class=\"p1\">Часто ситуация выглядит так: сервис работает, продажи идут, но значимая часть функциональности собрана как набор исключений под отдельных клиентов. Внешне это похоже на продукт, внутри это серия разовых доработок. Тогда за 30 дней имеет смысл вытащить общую логику наружу, собрать из нее устойчивые модули и убрать участки, где система держится на ручном вмешательстве команды.\u003C\u002Fp>\u003Cp class=\"p1\">Если критическое ядро находится во внешнем решении и быстро перенести его нельзя, лучше честно сузить контур собственного продукта. Это лучше, чем делать вид, что проблема уже решена: бизнесу проще показать, что уже является его разработкой, а что еще только предстоит перевести в собственный контур.\u003C\u002Fp>\u003Ch2>\u003Cbr>Что в итоге можно успеть за 30 дней\u003C\u002Fh2>\u003Cp class=\"p1\">К концу такого цикла часто хочется ограничиться новой презентацией. Этого недостаточно. Когда ФНС смотрит на реальность разработки, важна не упаковка, а продуктовая логика: кто работает в системе, как устроены роли, данные, автоматические сценарии и за что отвечает каждый модуль.\u003C\u002Fp>\u003Cp class=\"p1\">За 30 дней у бизнеса должен появиться набор материалов для предметного разговора о продукте. После этого его можно объяснить без общих слов: какую задачу он решает, как устроен и в чем его собственная ценность.\u003C\u002Fp>\u003Cp>\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fimage_47b32e6167.png\" alt=\"image.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_image_47b32e6167.png 234w,https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_image_47b32e6167.png 500w,https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_image_47b32e6167.png 750w,https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_image_47b32e6167.png 1000w,\" sizes=\"100vw\" width=\"1600\" height=\"1066\">\u003C\u002Fp>\u003Cp class=\"p1\">После новости о том, как ФНС оценит разработки ИТ-компаний, получивших льготы, бизнесу не стоит уходить ни в панику, ни в защитные формулировки. Если у компании уже есть основа продукта, за месяц реально провести аудит, отделить собственную разработку от внешней обвязки, проверить права на код, оформить архитектуру, переработать критические модули и собрать набор материалов, который выдерживает предметный разговор.\u003C\u002Fp>\u003Cp class=\"p1\">Если бизнес понимает, что продукт собран на внешних решениях, права на код размыты, архитектура не оформлена, а логика продукта описана только на словах, это можно быстро разобрать и собрать в рабочую конструкцию. За такой работой можно приходить в Qtim: здесь помогают пройти путь от аудита текущего решения до доработки продукта. Посмотреть наши кейсы можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\">тут\u003C\u002Fa>, а связаться с вопросами по своей платформе \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ft.me\u002Fqtim71\">здесь.\u003C\u002Fa>\u003C\u002Fp>",[889,890],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":893,"documentId":894,"title":895,"date":896,"description":11,"order":40,"slug":897,"showOnMainPage":13,"createdAt":898,"updatedAt":899,"publishedAt":900,"locale":17,"cover":901,"content":936,"media_event":11,"media_areas":940,"seo":11,"localizations":943},135,"px232j10z8907syoldwzbqnw","Почему рынку в 2026 году нужен не статус ИТ-компании, а доказуемый продукт","2026-03-27","pochemu-v-2026-godu-vazhen-ne-status-it-kompanii-a-realnyj-produkt","2026-03-27T15:41:14.276Z","2026-05-27T09:11:04.501Z","2026-05-27T09:11:04.562Z",{"id":902,"documentId":903,"name":904,"alternativeText":11,"caption":11,"width":905,"height":905,"formats":906,"hash":931,"ext":752,"mime":382,"size":932,"url":933,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":934,"updatedAt":935,"publishedAt":934},435,"nlw44t8cvlka3d8fd89cyebz","vitaly-gariev-cX62K66gMUk-unsplash.jpg",1729,{"large":907,"small":913,"medium":919,"thumbnail":925},{"ext":752,"url":908,"hash":909,"mime":382,"name":910,"path":11,"size":911,"width":32,"height":32,"sizeInBytes":912},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802.jpg","large_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802","large_vitaly-gariev-cX62K66gMUk-unsplash.jpg",101.46,101458,{"ext":752,"url":914,"hash":915,"mime":382,"name":916,"path":11,"size":917,"width":40,"height":40,"sizeInBytes":918},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802.jpg","small_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802","small_vitaly-gariev-cX62K66gMUk-unsplash.jpg",32.01,32006,{"ext":752,"url":920,"hash":921,"mime":382,"name":922,"path":11,"size":923,"width":48,"height":48,"sizeInBytes":924},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802.jpg","medium_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802","medium_vitaly-gariev-cX62K66gMUk-unsplash.jpg",61.8,61801,{"ext":752,"url":926,"hash":927,"mime":382,"name":928,"path":11,"size":929,"width":56,"height":56,"sizeInBytes":930},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802.jpg","thumbnail_vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802","thumbnail_vitaly-gariev-cX62K66gMUk-unsplash.jpg",5.65,5650,"vitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802",255.24,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fvitaly_gariev_c_X62_K66g_M_Uk_unsplash_7d2170a802.jpg","2026-03-27T15:45:54.517Z","2026-03-27T15:46:41.281Z",[937],{"__component":66,"id":938,"text":939},98,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. В последние недели тема статуса ИТ-компании снова стала предметной. После публикации РБК о том, как ФНС будет оценивать разработки ИТ-компаний, получивших льготы, стало понятно: в 2026 году бизнесу уже недостаточно просто иметь аккредитацию, цифровой сервис и привычный набор формальных признаков. Разговор смещается в другую плоскость — что именно компания разработала сама и может ли она это доказать по существу.\u003Cbr>\u003Cbr>Если бизнесу нужно сначала понять, является ли его решение полноценным ИТ-продуктом и где у него слабые места, этот путь уже подробно разобран в предыдущей статье — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fvc.ru\u002Flegal\u002F2811114-fns-proverka-it-razrabotok\">«30 дней на доказательство: как показать, что у бизнеса есть настоящий ИТ-продукт»\u003C\u002Fa>. Там собран именно практический маршрут: как провести аудит, как отделить собственную разработку от внешней обвязки, что проверить в правах на код и как зафиксировать ядро продукта. В этом материале важнее другое: почему сам статус в 2026 году уже перестает быть достаточной опорой.\u003C\u002Fp>\u003Ch2>\u003Cbr>Что изменилось в логике рынка и государства\u003C\u002Fh2>\u003Cp>Предыдущие несколько лет рынок жил в режиме ускоренной сборки. Государству нужно было поддержать отрасль, бизнесу — быстро запускать цифровые продукты, поэтому многие компании строили решения из готовых платформ, внешних модулей, подрядной разработки и ручных операций. Эта модель позволяла расти, тестировать спрос и занимать нишу. Для части компаний ее было достаточно, пока разговор шел о формальном соответствии условиям аккредитации и получения льгот.\u003Cbr>\u003Cbr>Сама система поддержки при этом осталась значимой. ФНС прямо \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.nalog.gov.ru\u002Frn27\u002Fnews\u002Ftax_doc_news\u002F15617353\u002F#:~:text=%D0%9F%D0%BE%20%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%20%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0%D0%BC%20%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%20%D0%BD%D0%B0,%D0%B7%D0%B0%20%D0%BF%D0%B5%D1%80%D0%B8%D0%BE%D0%B4%D1%8B%202025%20%2D%202030%20%D0%B3%D0%B3.\">разъяснила\u003C\u002Fa>, что с 2025 года для ИТ-компаний действует ставка налога на прибыль 5% на период 2025–2030 годов. Именно поэтому требования к статусу не могут оставаться декоративными: если у компании есть существенные преференции, государство закономерно смотрит глубже, чем на витрину и формальные признаки.\u003C\u002Fp>\u003Cp>Сдвиг хорошо виден и по самим правилам. Весной 2025 года при ежегодном подтверждении аккредитации компании \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdigital.gov.ru\u002Fnews\u002Fuspejte-podtverdit-akkreditacziyu-it-kompanii-do-1-iyunya\">должны были\u003C\u002Fa> не просто подать заявление, а раскрыть долю ИТ-выручки, показать официальный сайт, а правообладатели программного обеспечения — указать продукт в реестре российского ПО и доход от его реализации. С 1 января 2026 года \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.consultant.ru\u002Fdocument\u002Fcons_doc_LAW_520190\u002Fe9bd344cfbe05765fddcb4b1eeef5a3df91b409c\u002F\">вступили\u003C\u002Fa> в силу изменения в правила аккредитации, которые дополнительно уточнили требования к выручке, выплатам сотрудникам, структуре владения и отдельным условиям сохранения статуса. Это уже не логика формальной галочки. Это логика проверки основания, на котором компания заявляет себя как ИТ-бизнес.\u003C\u002Fp>\u003Ch2>\u003Cbr>Почему формальный статус не равен собственному продукту\u003Cbr>\u003Cbr>&nbsp;\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pexels-jakubzerdzicki-16098005.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_jakubzerdzicki_16098005_4c3deee4c0.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_jakubzerdzicki_16098005_4c3deee4c0.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_jakubzerdzicki_16098005_4c3deee4c0.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_jakubzerdzicki_16098005_4c3deee4c0.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_jakubzerdzicki_16098005_4c3deee4c0.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Аккредитация и наличие цифрового сервиса еще не означают, что у бизнеса есть собственный продукт. Компания может продавать удобный интерфейс, собрать хороший путь пользователя и автоматизировать часть операций, но при этом оставаться зависимой от чужого ядра. Если расчетный модуль находится у внешнего поставщика, правила маршрутизации живут в стороннем сервисе, а административная логика собрана из таблиц и ручных действий, у бизнеса есть цифровая оболочка, а не полноценный собственный продукт.\u003C\u002Fp>\u003Cp>Показательно, что и официальная логика учета программного обеспечения устроена вокруг права и содержания. В карточках и заявлениях реестра российского ПО Минцифры отдельно фиксируются правообладатель, основания возникновения исключительного права, документация на продукт и его функциональные характеристики. Это важный ориентир для всего рынка: значим не только факт существования системы, но и то, кто владеет разработкой, как она описана и за счет чего работает.\u003C\u002Fp>\u003Cp>Именно поэтому в 2026 году формальный статус перестает быть самодостаточным доказательством зрелости. Он может открывать доступ к преференциям, но уже не закрывает вопрос о том, где находится продуктовая основа бизнеса. Если компания не может ясно отделить собственную разработку от внешней обвязки, статус начинает работать против нее. Он создает ожидание зрелости, которое потом приходится подтверждать по существу.\u003C\u002Fp>\u003Ch2>\u003Cbr>Какие компании попадают в зону риска\u003C\u002Fh2>\u003Cp>В слабую позицию попадают не только те, у кого разработки нет вовсе. Туда же входят компании, которые долго росли на быстрых компромиссах. Снаружи это может выглядеть как полноценный сервис. Внутри оказывается, что клиентский сценарий работает, а важные операции выполняются вручную, ключевые модули стоят на чужой платформе, а своя часть ограничивается интерфейсом, настройкой и продажей доступа.\u003C\u002Fp>\u003Cp>Отдельный риск возникает там, где продукт создавался несколькими подрядчиками в разное время. В таких историях быстро обнаруживаются фрагменты кода без чистой передачи исключительных прав, репозитории на чужих учетных записях, инфраструктура, привязанная к бывшим сотрудникам, и зависимость от внешних команд, без которых система не поддерживается. До тех пор пока бизнес рос, такие швы можно было не замечать. В этом году они становятся главной зоной уязвимости.\u003C\u002Fp>\u003Cp>Еще одна уязвимая категория — компании, которые называют продуктом все сразу: сайт, приложение, службу поддержки, административную работу сотрудников, подключенные сервисы и ручные процессы. Такая размытая конструкция удобна для презентации. Для доказательства реальности собственного решения она опасна, потому что размывает границы и мешает показать ядро продукта.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>Что теперь придется делать бизнесу\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pexels-yankrukov-7640794.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_yankrukov_7640794_ef16e11687.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_yankrukov_7640794_ef16e11687.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_yankrukov_7640794_ef16e11687.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_yankrukov_7640794_ef16e11687.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_yankrukov_7640794_ef16e11687.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Первое, что стоит сделать бизнесу, — перестать смотреть на продукт только как на работающий сервис. В 2026 году этого уже мало. Важно понять, что именно в решении принадлежит компании, где проходит граница собственной разработки, какие элементы завязаны на внешние сервисы и насколько вся конструкция вообще устойчива.\u003Cbr>Именно на этом этапе у многих возникает главный вопрос: можно ли вообще считать текущее решение полноценным ИТ-продуктом или пока речь идет только о цифровой оболочке, собранной из разных зависимостей.\u003C\u002Fp>\u003Cp>\u003Cbr>Если вы не уверены в этом, сначала стоит прочитать предыдущую статью — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fvc.ru\u002Flegal\u002F2811114-fns-proverka-it-razrabotok\">«30 дней на доказательство: как показать, что у бизнеса есть настоящий ИТ-продукт»\u003C\u002Fa>. Там собран практический разбор: как оценить продуктовую базу, где искать слабые места и что именно проверять в первую очередь. А если времени на самостоятельный разбор нет, с такой задачей можно прийти сразу в \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002F\">Qtim\u003C\u002Fa> — здесь как раз помогают быстро понять реальную конструкцию продукта и его уязвимые места.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Статус без продукта становится слабой опорой\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"daniil-komov-GQOylIn892U-unsplash.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fdaniil_komov_GQ_Oyl_In892_U_unsplash_727c53c389.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_daniil_komov_GQ_Oyl_In892_U_unsplash_727c53c389.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_daniil_komov_GQ_Oyl_In892_U_unsplash_727c53c389.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_daniil_komov_GQ_Oyl_In892_U_unsplash_727c53c389.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_daniil_komov_GQ_Oyl_In892_U_unsplash_727c53c389.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>В 2026 году рынок уходит от логики, в которой достаточно было собрать цифровую витрину и закрепить формальный статус. Аккредитация, льготы и отраслевые признаки остаются важными, но перестают быть главным доказательством. На первый план выходит содержание продукта: права на код, собственная архитектура, управляемая логика, прозрачные границы между своим и внешним.\u003C\u002Fp>\u003Cp>Для бизнеса это означает простую вещь. Статус ИТ-компании без собственного продукта становится слабой опорой. Собственное решение, наоборот, превращается в новую точку устойчивости. Оно помогает спокойнее проходить проверку, увереннее вести переговоры, точнее понимать ценность компании и меньше зависеть от чужой платформы, подрядчика или временной сборки, которая когда-то помогла быстро выйти на рынок. Если этот вопрос уже актуален для вашего бизнеса или хотите проверить это — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ft.me\u002Fqtim71\">пишите сюда\u003C\u002Fa>.\u003C\u002Fp>",[941,942],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":783,"documentId":945,"title":946,"date":947,"description":11,"order":40,"slug":948,"showOnMainPage":13,"createdAt":949,"updatedAt":950,"publishedAt":951,"locale":17,"cover":952,"content":989,"media_event":11,"media_areas":993,"seo":11,"localizations":996},"gbefdj7617jkuhdg2uiw6ifn","Сколько стоит разработка MVP в 2026","2026-03-26","stoimost-razrabotki-mvp-v-2026-godu","2026-03-27T16:29:20.000Z","2026-05-27T09:17:03.014Z","2026-05-27T09:17:03.107Z",{"id":953,"documentId":954,"name":955,"alternativeText":11,"caption":11,"width":956,"height":957,"formats":958,"hash":983,"ext":752,"mime":382,"size":984,"url":985,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":986,"updatedAt":987,"publishedAt":988},438,"ztx50krj29xhsry9b8fux63s","Обложка.jpg",2162,2161,{"large":959,"small":965,"medium":971,"thumbnail":977},{"ext":752,"url":960,"hash":961,"mime":382,"name":962,"path":11,"size":963,"width":32,"height":32,"sizeInBytes":964},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Oblozhka_ad99485a2b.jpg","large_Oblozhka_ad99485a2b","large_Обложка.jpg",79.3,79300,{"ext":752,"url":966,"hash":967,"mime":382,"name":968,"path":11,"size":969,"width":40,"height":40,"sizeInBytes":970},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Oblozhka_ad99485a2b.jpg","small_Oblozhka_ad99485a2b","small_Обложка.jpg",17.92,17918,{"ext":752,"url":972,"hash":973,"mime":382,"name":974,"path":11,"size":975,"width":48,"height":48,"sizeInBytes":976},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Oblozhka_ad99485a2b.jpg","medium_Oblozhka_ad99485a2b","medium_Обложка.jpg",42.06,42058,{"ext":752,"url":978,"hash":979,"mime":382,"name":980,"path":11,"size":981,"width":56,"height":56,"sizeInBytes":982},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Oblozhka_ad99485a2b.jpg","thumbnail_Oblozhka_ad99485a2b","thumbnail_Обложка.jpg",2.59,2594,"Oblozhka_ad99485a2b",373.66,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FOblozhka_ad99485a2b.jpg","2026-03-27T16:05:32.729Z","2026-03-27T16:05:53.164Z","2026-03-27T16:05:32.730Z",[990],{"__component":66,"id":991,"text":992},110,"\u003Cp>Привет, я — Антон Фокин, CEO студии Qtim. Через нас прошло больше 280 проектов, и за это время я провёл, наверное, тысячу встреч, которые начинались одинаково: «Антон, сколько стоит сделать приложение?»\u003Cbr>\u003Cbr>Я не буду отвечать «зависит от задачи» — вы это и сами знаете. Вместо этого расскажу, как устроено ценообразование изнутри: откуда берутся цифры в коммерческих предложениях, почему два «одинаковых» приложения могут стоить в три раза по-разному и на каких развилках вы теряете (или экономите) миллионы. Это статья для тех, кто принимает решения о бюджете — и хочет понимать, за что именно платит.\u003C\u002Fp>\u003Ch2>Как формируется стоимость разработки приложения в 2026 году\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FKartinka_8_5c679fb472.jpg\" alt=\"Картинка 8.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Kartinka_8_5c679fb472.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Kartinka_8_5c679fb472.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Kartinka_8_5c679fb472.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Kartinka_8_5c679fb472.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>Когда клиент спрашивает «сколько стоит разработка приложения в 2026», он обычно имеет в виду стоимость кода. Но код — это \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ftechjdi.com\u002Fblog\u002Fsoftware-development-cost-breakdown\">50–60% бюджета\u003C\u002Fa>. Остальное — аналитика, дизайн, тестирование, инфраструктура, управление проектом и неизбежные итерации, когда выясняется, что первоначальное видение не совсем совпадает с реальностью.\u003Cbr>Поэтому первое, что стоит принять: стоимость MVP — это стоимость не продукта, а проверки гипотезы. И чем точнее сформулирована гипотеза, тем дешевле её проверить.\u003Cbr>Мы в Qtim оцениваем проекты по трём осям: тип продукта (определяет базовую архитектуру), глубина кастомизации (насколько далеко вы уходите от типовых решений) и количество неизвестных (сколько технических рисков нужно закладывать в бюджет). Именно третья ось чаще всего удваивает смету — и именно о ней реже всего говорят.\u003C\u002Fp>\u003Ch2>Диапазоны бюджетов: что за ними стоит\u003C\u002Fh2>\u003Cp>Я намеренно даю широкие вилки — потому что узкая оценка без понимания контекста вводит в заблуждение. Если кто-то называет вам точную цифру после 15-минутного созвона — это повод насторожиться, а не обрадоваться.\u003Cbr>\u003Cbr>\u003Cstrong>Мобильные приложения: от 2 до 15+ млн руб.\u003C\u002Fstrong>\u003Cbr>Цена разработки мобильного приложения на нижней границе — это утилитарное приложение с авторизацией, 8–12 экранами и одной core-функцией без сложных интеграций. Типичный пример — внутренний справочник компании, простой каталог с избранным или приложение-визитка с формой заявки.\u003Cbr>\u003Cbr>На верхней границе — продукт с собственной экосистемой: несколько ролей, платежи, real-time взаимодействие, AI-компоненты, развитая админ-панель. Это уже не «приложение», а платформа, которую дистрибутируют через мобильный интерфейс.\u003Cbr>\u003Cbr>Между ними — основная масса проектов на 4–8 млн, и именно здесь происходят самые важные решения о скоупе. Каждая «маленькая» фича типа push-уведомлений с сегментацией или офлайн-режима — это не пара дней работы, а отдельный контур архитектуры, тестирования и поддержки.\u003Cbr>\u003Cbr>Кроссплатформа на Flutter закрывает нам 80% сценариев и экономит 30–40% бюджета по сравнению с двумя нативными приложениями. Мы перевели на Flutter мобильную разработку ещё три года назад и за 20+ проектов убедились: для абсолютного большинства бизнес-приложений разница с нативом уже неощутима. Вопрос не в том, «справится ли Flutter», а в том, есть ли у вашего подрядчика команда, которая умеет на нём строить production-продукты.\u003Cbr>\u003Cbr>\u003Cstrong>Веб-приложения и SaaS: от 1,5 до 15 млн руб.\u003C\u002Fstrong>\u003Cbr>Личный кабинет с авторизацией и пятью страницами — это 1,5–3 млн. Полноценный SaaS с биллингом, мультитенантностью и API — от 6 до 15 млн, потому что SaaS — это не фича, а бизнес-модель, зашитая в архитектуру. Мультитенантность, изоляция данных, тарифные планы — всё это пронизывает каждый слой приложения.\u003Cbr>Самая частая ловушка здесь — недооценка админ-панели. Клиенты воспринимают её как «ну, таблички с данными», а в реальности это 25–35% от бюджета проекта. Контент-менеджеру нужны формы с валидацией, модерация, статистика, экспорт, логи действий — и каждый из этих компонентов тянет за собой backend-логику.\u003Cbr>\u003Cbr>\u003Cstrong>Маркетплейсы: от 5 до 20+ млн руб.\u003C\u002Fstrong>\u003Cbr>Маркетплейс — это по определению два продукта в одном: интерфейс покупателя и интерфейс продавца. Плюс система модерации, платежи с эскроу или сплитом, поиск с фильтрацией, рейтинги и отзывы. MVP маркетплейса начинается там, где MVP обычного приложения уже считается зрелым продуктом.\u003Cbr>\u003Cbr>Когда мы строили ScanWow — маркетплейс 3D-моделей — стоимость ушла в верхнюю вилку не из-за количества экранов, а из-за одной функции: 3D-превью в браузере. Это потребовало отдельной инфраструктуры для рендеринга, конвертации форматов и оптимизации загрузки. Одна фича, которая выглядит как «ну, покрутить модельку», на практике съела больше ресурсов, чем вся платёжная система. Семь месяцев разработки — и большая часть нетривиальности была именно в этом.\u003Cbr>\u003Cbr>\u003Cstrong>EdTech: от 3 до 25+ млн руб.\u003C\u002Fstrong>\u003Cbr>Образовательные платформы — наш суперсегмент, и мы видим, как рынок изменился. Если в 2023-м заказчики приходили за «LMS с видеоуроками», то в 2026-м запрос звучит иначе: адаптивное обучение, AI-проверка заданий, собственная система видеоконференций, аналитика вовлечённости.\u003Cbr>\u003Cbr>Когда Онлайн-Школа №1 пришла к нам с задачей построить собственную ВКС-платформу, мы понимали, что это 8+ месяцев и верхняя вилка бюджета. Но бизнес-логика была железная: платить за Zoom при их масштабе было дороже, чем построить своё. В первую неделю после запуска совпали дедлайны по домашним заданиям — тысячи учеников отправляли работы одновременно. Платформа выдержала. Это к вопросу о том, что разница между «дешёвым MVP» и «правильно спроектированным MVP» проявляется не на демо, а в первый пиковый вечер.\u003C\u002Fp>\u003Ch2>Где на самом деле лежат деньги\u003C\u002Fh2>\u003Cp>Таблицы бюджетов — штука полезная, но они не объясняют главного: почему два приложения с похожим набором экранов могут стоить 3 млн и 9 млн. Разница — в нескольких ключевых решениях.\u003Cbr>\u003Cbr>\u003Cstrong>Интеграции — главный генератор непредсказуемости\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"Картинка 2-2.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FKartinka_2_2_6b0a48583d.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Kartinka_2_2_6b0a48583d.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Kartinka_2_2_6b0a48583d.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Kartinka_2_2_6b0a48583d.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Kartinka_2_2_6b0a48583d.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>Подключить Stripe — это задача с прогнозируемой трудоёмкостью, потому что у Stripe отличная документация и SDK. Интегрироваться с ERP клиента, которую писали в 2014 году и у которой API возвращает HTML вместо JSON при ошибках — это совершенно другая история. Мы видели проекты, где одна интеграция с legacy-системой стоила больше, чем весь фронтенд. И предугадать это на этапе предпродажной оценки почти невозможно — только на discovery.\u003Cbr>\u003Cbr>\u003Cstrong>AI-фичи: инвестиция или дань моде\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"Картинка 3.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FKartinka_3_2afa33d9f5.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Kartinka_3_2afa33d9f5.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Kartinka_3_2afa33d9f5.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Kartinka_3_2afa33d9f5.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Kartinka_3_2afa33d9f5.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>Каждый второй клиент сейчас приходит с запросом «хочу чтобы там был AI». Это понятно — рынок перегрет, конкуренты пишут про AI в каждом пресс-релизе. Но давайте честно: чат-бот с GPT, подключённый к базе знаний через RAG — это от 1,5–2 млн дополнительных затрат. И это имеет смысл, если AI закрывает конкретную бизнес-задачу: автоматизация саппорта, интеллектуальный поиск, генерация контента. А если единственный ответ на вопрос «зачем вам AI» — «ну, все делают» — лучше эти 2 млн направить на улучшение core-продукта.\u003Cbr>Мы в Qtim строим AI-интеграции регулярно, и наш подход прагматичный: сначала докажите ценность с помощью PoC за 2–3 недели, потом масштабируйте. Не наоборот.\u003Cbr>\u003Cbr>\u003Cstrong>Технологические решения, которые не видны, но стоят дорого\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Real-time функции (чаты, уведомления, совместное редактирование) — это не просто «добавить WebSocket». Это отдельная инфраструктура, которая работает параллельно с основным backend и требует собственного масштабирования. Если в вашем MVP нет жёсткой потребности в real-time — перенесите это в v2. Серьёзно.\u003Cbr>\u003Cbr>То же касается мультиязычности (выглядит как «перевести текст», а на деле — перестройка всего UI-слоя), сложной ролевой модели (каждая роль — это отдельный набор экранов, пермишенов и тест-кейсов) и кастомного дизайна. Готовые UI-киты позволяют сэкономить 500K–1,5M без видимой потери в качестве — и это решение, которое мы рекомендуем для 70% MVP.\u003C\u002Fp>\u003Ch2>Кейсы: как бюджет связан с решениями\u003C\u002Fh2>\u003Cp>Цифры в таблице становятся осмысленными, когда за ними стоит контекст. Вот три проекта из портфолио Qtim, которые хорошо иллюстрируют разную экономику MVP.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"Картинка 4.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FKartinka_4_2e03a38e54.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Kartinka_4_2e03a38e54.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Kartinka_4_2e03a38e54.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Kartinka_4_2e03a38e54.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Kartinka_4_2e03a38e54.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>\u003Cstrong>Бакки: MVP за 2 месяца в нижней вилке\u003C\u002Fstrong>\u003Cbr>Задача — мобильное приложение для адаптации новых сотрудников в HoReCa. Заказчик прошёл все круги ада в общепите: от официанта до управляющего — и понимал проблему на физическом уровне. Это сильно упростило discovery-фазу: не нужно было гадать, что строить.\u003Cbr>Мы сознательно оставили минимальный скоуп: интерактивные курсы, тесты, прогресс-бар, push-уведомления, админ-панель для управляющих. Никаких видео, геймификации, интеграций с HR-системами — всё это было в бэклоге, но не в MVP. Flutter, NestJS, два месяца — запуск. Нижняя вилка бюджета для мобильного приложения.\u003Cbr>\u003Cbr>Урок: чем точнее заказчик понимает свою аудиторию, тем дешевле MVP. Не потому что студия делает скидку, а потому что меньше итераций, меньше «а давайте ещё вот это добавим» и меньше переделок.\u003Cbr>\u003Cbr>\u003Cstrong>ScanWow: когда одна фича определяет бюджет\u003C\u002Fstrong>\u003Cbr>Маркетплейс 3D-моделей. На бумаге — стандартный набор: каталог, карточки товаров, оплата, кабинет продавца. В реальности — проект на 7 месяцев, потому что ключевой дифференциатор продукта (3D-превью в браузере) потребовал нестандартной инженерии: конвертация форматов, оптимизация рендеринга на слабых устройствах, кэширование тяжёлых моделей.\u003Cbr>\u003Cbr>Урок: MVP — это не «всё по чуть-чуть», а одна вещь, которая делается хорошо. В ScanWow мы потратили непропорционально много ресурсов на 3D-превью — потому что без него маркетплейс 3D-моделей превращается в обычный каталог с файлами. И это было правильным решением.\u003Cbr>\u003Cbr>\u003Cstrong>Онлайн-Школа №1: когда MVP стоит как зрелый продукт\u003C\u002Fstrong>\u003Cbr>Собственная ВКС-система для онлайн-школы с тысячами одновременных пользователей. Верхняя вилка, 8 месяцев, серьёзная команда. Почему так дорого? Потому что «видеозвонок в браузере» и «платформа, которая держит 3000 одновременных конференций с записью и аналитикой» — это продукты из разных вселенных.\u003Cbr>Но ROI был понятен ещё на старте: ежемесячные расходы школы на сторонние ВКС-решения при их масштабе были сопоставимы с ежемесячным бюджетом разработки. За 10–12 месяцев инвестиция отбивалась, а дальше — чистая экономия плюс контроль над продуктом.\u003Cbr>\u003Cbr>Урок: дорогой MVP — не всегда неоправданный MVP. Иногда задача просто требует определённого уровня инженерии, и пытаться «сделать дешевле» — значит сделать продукт, который не выдержит первого реального теста.\u003C\u002Fp>\u003Ch2>Экономика рынка: почему в 2026-м дороже\u003C\u002Fh2>\u003Cp>Если ваши представления о стоимости разработки сформировались в 2023–2024 годах — пересмотрите их.\u003Cbr>\u003Cbr>\u003Cstrong>Дефицит кадров стал структурным.\u003C\u002Fstrong> 700 000 \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fhightech.plus\u002F2025\u002F04\u002F09\u002Fchislo-aitishnikov-v-rossii-viroslo-do-1-mln-no-ih-nuzhno-v-2-raza-bolshe\">незакрытых\u003C\u002Fa> IT-позиций в России — это не временная аномалия, а новая норма. Senior-разработчик в штате \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fcareer.hh.ru\u002Farticle\u002Fskolko-zarabatyvayut-programmisty-razbor-ot-a-do-ya\">обходится\u003C\u002Fa> в 350–500 тыс. руб.\u002Fмес., и это без учёта 2–4 месяцев поиска и онбординга. Аутсорс-команда с сопоставимой экспертизой нередко выходит дешевле, особенно на проектах длительностью 3–6 месяцев, где формировать собственный отдел экономически абсурдно.\u003Cbr>\u003Cbr>\u003Cstrong>Ожидания пользователей выросли непропорционально.\u003C\u002Fstrong> MVP образца 2023 года — это кривая вёрстка и «работает, и ладно». MVP в 2026-м — это приложение, которое должно ощущаться как готовый продукт, просто с ограниченным функционалом. Анимации, скорость, UX-паттерны — всё это вошло в базовую стоимость. Минимальная планка качества поднялась, и вместе с ней — минимальный бюджет.\u003Cbr>\u003Cbr>\u003Cstrong>AI \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.baytechconsulting.com\u002Fblog\u002Fcustom-software-budgeting-2026-playbook\">\u003Cstrong>поднял\u003C\u002Fstrong>\u003C\u002Fa>\u003Cstrong> среднюю стоимость проекта на 20–30%.\u003C\u002Fstrong> Не потому что AI обязательно нужен каждому MVP, а потому что клиенты его запрашивают — и подрядчики закладывают. Это рыночный тренд, с которым нужно работать осознанно: понимать, где AI даёт реальную ценность, а где это просто строка в смете ради галочки.\u003Cbr>\u003Cbr>При этом контрвекторы тоже работают: Flutter сократил стоимость мобильной разработки на треть, open-source LLM-модели сделали AI-интеграции доступнее, а зрелость инфраструктурных сервисов (платежи, авторизация, аналитика) позволяет не строить половину функционала с нуля.\u003C\u002Fp>\u003Ch2>Как не переплатить: принципы, а не чек-листы\u003C\u002Fh2>\u003Cp>Я не буду давать список из «7 советов» — вы уже достаточно их видели. Вместо этого — три вещи, которые мы наблюдаем в каждом успешном проекте:\u003Cbr>\u003Cbr>\u003Cstrong>Discovery-фаза экономит больше, чем любая оптимизация кода.\u003C\u002Fstrong> 2–3 недели на аналитику, прототипы и техпроектирование стоят 300–500K. Переделка продукта после 3 месяцев разработки «не в ту сторону» стоит 3–5 млн. Математика простая, но удивительное количество заказчиков хотят «сразу писать код». Мы таких проектов берём всё меньше — потому что знаем, чем это заканчивается.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"Картинка 5.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FKartinka_5_c8f64c9510.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Kartinka_5_c8f64c9510.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Kartinka_5_c8f64c9510.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Kartinka_5_c8f64c9510.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Kartinka_5_c8f64c9510.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>\u003Cstrong>Скоуп определяет бюджет, а не наоборот.\u003C\u002Fstrong> «У нас 5 млн — что можно сделать?» — неправильный вопрос. Правильный: «Какая минимальная версия продукта проверяет нашу ключевую гипотезу — и сколько она стоит?» Бывает, что ответ — 2 млн, и у вас остаётся бюджет на итерации. Бывает, что 8 млн, и нужно либо пересматривать гипотезу, либо искать дополнительное финансирование.\u003Cbr>\u003Cbr>\u003Cstrong>Выбор подрядчика — это выбор операционной модели, а не ценника.\u003C\u002Fstrong> Студия с низкими рейтами и текучкой джуниоров обойдётся дешевле на бумаге и дороже в реальности. Мы это видели десятки раз: клиент приходит с проектом, который «почти готов», — а по факту нужно переписывать 60–70% кодовой базы, потому что предыдущая команда схалтурила на архитектуре. Стоимость переделки обычно равна стоимости нормальной разработки с нуля. Только время потеряно.\u003C\u002Fp>\u003Ch2>Итого\u003C\u002Fh2>\u003Cp>Сколько стоит разработка приложения в 2026 году? От 2 до 20+ млн руб. за MVP — в зависимости от типа продукта, глубины кастомизации и количества технических рисков.\u003Cbr>Но цена — это не главный вопрос. Главный вопрос — какую гипотезу вы проверяете и какой минимальный продукт для этого нужен. Если ответ на него чёткий, бюджет становится инструментом, а не ограничением.\u003C\u002Fp>\u003Cp>В Qtim мы начинаем каждый проект с бесплатной экспресс-оценки: вы описываете задачу, мы за 2–3 рабочих дня присылаем вилку бюджета, рекомендацию по стеку и предварительный таймлайн. Не обязательство — точка отсчёта для принятия решения.\u003C\u002Fp>",[994,995],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":998,"documentId":999,"title":1000,"date":1001,"description":11,"order":40,"slug":1002,"showOnMainPage":13,"createdAt":1003,"updatedAt":1004,"publishedAt":1005,"locale":17,"cover":1006,"content":1041,"media_event":11,"media_areas":1045,"seo":11,"localizations":1048},134,"rl2huy6muohp1clo4cvg00zz","Рынок готовых платформ попадает в зону давления","2026-03-31","rynok-gotovyh-platform-pod-davleniem","2026-03-31T16:00:40.688Z","2026-05-27T09:10:09.516Z","2026-05-27T09:10:09.576Z",{"id":1007,"documentId":1008,"name":1009,"alternativeText":11,"caption":11,"width":1010,"height":1011,"formats":1012,"hash":1037,"ext":752,"mime":382,"size":1038,"url":1039,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1040,"updatedAt":1040,"publishedAt":1040},457,"u6b5teeh40qqnytqdw334wlr","pexels-mikhail-nilov-8297362.jpg",4004,4005,{"large":1013,"small":1019,"medium":1025,"thumbnail":1031},{"ext":752,"url":1014,"hash":1015,"mime":382,"name":1016,"path":11,"size":1017,"width":32,"height":32,"sizeInBytes":1018},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_mikhail_nilov_8297362_5118a0156e.jpg","large_pexels_mikhail_nilov_8297362_5118a0156e","large_pexels-mikhail-nilov-8297362.jpg",102.48,102481,{"ext":752,"url":1020,"hash":1021,"mime":382,"name":1022,"path":11,"size":1023,"width":40,"height":40,"sizeInBytes":1024},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_mikhail_nilov_8297362_5118a0156e.jpg","small_pexels_mikhail_nilov_8297362_5118a0156e","small_pexels-mikhail-nilov-8297362.jpg",36.08,36082,{"ext":752,"url":1026,"hash":1027,"mime":382,"name":1028,"path":11,"size":1029,"width":48,"height":48,"sizeInBytes":1030},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_mikhail_nilov_8297362_5118a0156e.jpg","medium_pexels_mikhail_nilov_8297362_5118a0156e","medium_pexels-mikhail-nilov-8297362.jpg",65.58,65579,{"ext":752,"url":1032,"hash":1033,"mime":382,"name":1034,"path":11,"size":1035,"width":56,"height":56,"sizeInBytes":1036},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_mikhail_nilov_8297362_5118a0156e.jpg","thumbnail_pexels_mikhail_nilov_8297362_5118a0156e","thumbnail_pexels-mikhail-nilov-8297362.jpg",6.23,6226,"pexels_mikhail_nilov_8297362_5118a0156e",959.21,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_mikhail_nilov_8297362_5118a0156e.jpg","2026-03-31T15:45:27.665Z",[1042],{"__component":66,"id":1043,"text":1044},97,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. После новости о том, что налоговая будет \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fpro.rbc.ru\u002Fdemo\u002F69b6ff619a79470d060084f3\">оценивать\u003C\u002Fa> разработки ИТ-компаний, стало понятно: в 2026 году бизнесу уже недостаточно просто запуститься на готовой платформе. Теперь важно, что именно было разработано самостоятельно и можно ли назвать это собственным продуктом.\u003Cbr>\u003Cbr>Готовая платформа сама по себе не проблема. На старте это часто самый разумный путь: так быстрее выйти на рынок, проверить спрос и не брать на себя серьезные затраты до момента, когда жизнеспособность идеи еще не подтверждена. Проблема начинается позже — когда компания по-прежнему держится на чужой технологической базе, а снаружи говорит о своем продукте как о самостоятельном решении. Именно поэтому рынок готовых сервисов попадает в зону давления сейчас: требования смещаются с быстрого запуска на реальное владение логикой продукта.\u003C\u002Fp>\u003Ch2>Где заканчивается удобный старт и начинается слабость\u003C\u002Fh2>\u003Cp>Граница проходит не по факту лицензии и не по количеству интеграций. Она проходит там, где внешняя платформа начинает управлять критическими частями бизнеса. Если в «чужом» решении живут тарифы, маршруты, роли, доступы, правила обработки, модель данных и другие ключевые сценарии, компания уже контролирует не продукт, а только его верхний слой. В этой точке платформа перестает быть удобным инструментом запуска и становится чужим фундаментом.\u003Cbr>\u003Cbr>Снаружи такая конструкция может выглядеть убедительно: сервис работает, клиенты платят, интерфейс собран, процессы идут. Внутри у бизнеса нет главного — права менять продукт в собственном темпе и по собственной логике. Любая серьезная переработка упирается в поставщика платформы, его ограничения, его приоритеты и его экономику.\u003C\u002Fp>\u003Ch2>Почему такая зависимость ослабляет позицию бизнеса\u003C\u002Fh2>\u003Cp>\u003Cstrong>Сначала слабеет переговорная позиция.\u003C\u002Fstrong> Пока критическая логика живет во внешней системе, поставщик платформы влияет на сроки, доработки и границы развития.\u003C\u002Fp>\u003Cp>\u003Cstrong>Затем проседает экономика:\u003C\u002Fstrong> бизнесу трудно защищать маржу, если стоимость и устройство ключевых функций зависят не от его решения, а от чужой модели лицензирования и доработок.\u003C\u002Fp>\u003Cp>\u003Cstrong>После этого слабеет и продуктовая позиция.\u003C\u002Fstrong> Нельзя уверенно говорить о собственном продукте, если при любом важном изменении выясняется, что компания не управляет его несущей конструкцией.\u003Cbr>\u003Cbr>Это уже не только технический вопрос. Такая зависимость мешает точнее оценивать бизнес, слабее выглядит в переговорах, тормозит развитие и делает компанию уязвимой в любой ситуации, где нужно показать, чем она реально владеет. Пока рынок ценил только скорость запуска, это можно было терпеть. Когда на первый план выходит зрелость, зависимая модель начинает проигрывать.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>По каким признакам это видно:\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pexels-divinetechygirl-1181345.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_divinetechygirl_1181345_4a83b447d9.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_divinetechygirl_1181345_4a83b447d9.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_divinetechygirl_1181345_4a83b447d9.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_divinetechygirl_1181345_4a83b447d9.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_divinetechygirl_1181345_4a83b447d9.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Обычно все очень приземленное.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e866eaf3872c6916ed2c7364aed2b7914\">Важный сценарий нельзя изменить без участия поставщика.\u003C\u002Fli>\u003Cli data-list-item-id=\"ee3c36b6be0ba206306d8d6ff2de84d36\">Внутренняя команда не управляет релизами.\u003C\u002Fli>\u003Cli data-list-item-id=\"ef241b65bfbf1cfb41f6efc6c3b0a9905\">Данные можно получить только частично или в неудобном виде.\u003C\u002Fli>\u003Cli data-list-item-id=\"ede826ebaa811903ec8653f80357e3433\">Тарифы, роли, маршруты и правила постоянно обходят ручными операциями.&nbsp;\u003C\u002Fli>\u003Cli data-list-item-id=\"e3f6b263c46abd1a881f6bb306e6a5501\">Описание продукта распадается на интерфейс, лицензию на чужое решение, набор интеграций и доработки под отдельных клиентов.\u003C\u002Fli>\u003Cli data-list-item-id=\"ec05dfaf1262a2f077f272516b52939fb\">\u003Cp>Если компания не может коротко объяснить, где именно находится ее собственная ценность, у нее не самостоятельный продукт, а зависимая сборка.\u003C\u002Fp>\u003Ch2>\u003Cbr>Что делать на практике\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pexels-mikael-blomkvist-6476577.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_mikael_blomkvist_6476577_3e3f401155.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_mikael_blomkvist_6476577_3e3f401155.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_mikael_blomkvist_6476577_3e3f401155.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_mikael_blomkvist_6476577_3e3f401155.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_mikael_blomkvist_6476577_3e3f401155.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Начинать полезно не с полного отказа от платформы, а с честного разложения системы по слоям. Что в ней является стандартной инфраструктурой и может оставаться внешним. Что относится к критической логике, без которой бизнес не контролирует продукт. После этого уже видно, какие части нужно выносить в собственное решение: расчетные модули, административный контур, роли и права, маршрутизацию, правила работы с данными, ключевые сценарии принятия решений.\u003Cbr>\u003Cbr>Главная задача здесь не в том, чтобы срочно переписать все. Главная задача — вернуть компании контроль над теми узлами, которые определяют ценность продукта и устойчивость бизнеса. Когда критическая логика переезжает в собственный технологический контур, роль платформы меняется: она остается там, где удобна как обслуживающий слой, и перестает определять судьбу всего решения.\u003Cbr>\u003Cbr>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002F\">Qtim\u003C\u002Fa> полезен в такой задаче не только как сторона, которая помогает увидеть проблему. Здесь важнее следующий шаг: переработать текущее решение, вынести критические части из внешней платформы и собрать более устойчивую архитектуру без разрушения работающего сервиса.\u003C\u002Fp>\u003Ch2>Устойчивость дает только собственный технологический контур\u003C\u002Fh2>\u003Cp>Готовая платформа может быть хорошим стартом. Для части компаний это действительно лучший способ быстро запуститься. Слабость начинается в тот момент, когда чужая база подменяет собой собственное решение. В 2026 году такая модель уже выглядит хуже, чем раньше, потому что рынок стал внимательнее к содержанию продукта, а не только к его внешнему виду.\u003Cbr>\u003Cbr>Если бизнес понимает, что его решение до сих пор держится на чужой базе, эту ситуацию уже нельзя оставлять как есть. Ее нужно разбирать и перерабатывать: выделять собственное ядро, переносить критические модули и собирать систему, которую компания действительно контролирует. Именно с такими задачами и работает Qtim — когда нужно не просто запустить сервис, а помочь бизнесу перейти от зависимой конструкции к собственному решению. Если это ваш случай — напишите, все можно обсудить.\u003C\u002Fp>",[1046,1047],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1050,"documentId":1051,"title":1052,"date":1053,"description":1054,"order":684,"slug":1055,"showOnMainPage":13,"createdAt":1056,"updatedAt":1057,"publishedAt":1058,"locale":17,"cover":1059,"content":1095,"media_event":11,"media_areas":1102,"seo":11,"localizations":1105},192,"slc42o5s3klmtwkvvzyjfji5","Забрали сразу две награды на премии «Золотое приложение»","2026-04-01","Две награды. Два разных проекта. Два сильных результата.\n","media-3","2026-04-03T07:26:17.360Z","2026-07-30T14:49:14.439Z","2026-07-30T14:49:14.576Z",{"id":1060,"documentId":1061,"name":1062,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":1064,"hash":1090,"ext":1066,"mime":29,"size":1091,"url":1092,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1093,"updatedAt":1093,"publishedAt":1094},463,"mu7cfzf7w6cwmy7sfulg35qm","IMG_4968.PNG",1200,{"large":1065,"small":1072,"medium":1078,"thumbnail":1084},{"ext":1066,"url":1067,"hash":1068,"mime":29,"name":1069,"path":11,"size":1070,"width":32,"height":32,"sizeInBytes":1071},".PNG","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_IMG_4968_7b27253ee1.PNG","large_IMG_4968_7b27253ee1","large_IMG_4968.PNG",574.06,574060,{"ext":1066,"url":1073,"hash":1074,"mime":29,"name":1075,"path":11,"size":1076,"width":40,"height":40,"sizeInBytes":1077},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_IMG_4968_7b27253ee1.PNG","small_IMG_4968_7b27253ee1","small_IMG_4968.PNG",187.5,187500,{"ext":1066,"url":1079,"hash":1080,"mime":29,"name":1081,"path":11,"size":1082,"width":48,"height":48,"sizeInBytes":1083},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_IMG_4968_7b27253ee1.PNG","medium_IMG_4968_7b27253ee1","medium_IMG_4968.PNG",358.33,358332,{"ext":1066,"url":1085,"hash":1086,"mime":29,"name":1087,"path":11,"size":1088,"width":56,"height":56,"sizeInBytes":1089},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_IMG_4968_7b27253ee1.PNG","thumbnail_IMG_4968_7b27253ee1","thumbnail_IMG_4968.PNG",36.83,36834,"IMG_4968_7b27253ee1",172.07,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIMG_4968_7b27253ee1.PNG","2026-04-03T07:44:45.150Z","2026-04-03T07:44:45.151Z",[1096,1099],{"__component":66,"id":1097,"text":1098},154,"\u003Cp class=\"p1\">Приложение для родителей «Онлайн-школы №1» заняло \u003Cstrong>2 место\u003C\u002Fstrong> в номинации \u003Cstrong>«Образовательный сервис»\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp class=\"p1\">Для Qtim это уже не первая награда, связанная с этим проектом. Тем приятнее видеть, что сотрудничество с командой школы снова получает высокую оценку.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Cofftan\u003C\u002Fstrong> занял \u003Cstrong>3 место\u003C\u002Fstrong> в номинации \u003Cstrong>«Доставка продуктов и фудтех»\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp class=\"p1\">И это отдельный повод для гордости, потому что Cofftan — наш собственный продукт. Особенно приятно, когда сервис, который вырос внутри компании, берет призовое место на такой премии.\u003C\u002Fp>",{"__component":1100,"id":1101},"media.image",10,[1103,1104],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":56,"documentId":1107,"title":1108,"date":1109,"description":11,"order":40,"slug":1110,"showOnMainPage":13,"createdAt":1111,"updatedAt":1112,"publishedAt":1113,"locale":17,"cover":1114,"content":1150,"media_event":11,"media_areas":1154,"seo":11,"localizations":1157},"qu6e4sgiy5zjcz548x1mija8","Почему EdTech-проектам рискованно строиться на чужой платформе","2026-04-10","riski-edtech-proektov-na-chuzhikh-platformakh","2026-04-10T14:54:48.320Z","2026-05-27T11:20:55.448Z","2026-05-27T11:20:55.519Z",{"id":1115,"documentId":1116,"name":1117,"alternativeText":11,"caption":11,"width":1118,"height":1118,"formats":1119,"hash":1144,"ext":752,"mime":382,"size":1145,"url":1146,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1147,"updatedAt":1148,"publishedAt":1149},466,"ynay2ysyoepr0v9g1f87ckd2","pexels-julia-m-cameron-4144221.jpg",4903,{"large":1120,"small":1126,"medium":1132,"thumbnail":1138},{"ext":752,"url":1121,"hash":1122,"mime":382,"name":1123,"path":11,"size":1124,"width":32,"height":32,"sizeInBytes":1125},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_julia_m_cameron_4144221_d5b3b1a445.jpg","large_pexels_julia_m_cameron_4144221_d5b3b1a445","large_pexels-julia-m-cameron-4144221.jpg",134.5,134499,{"ext":752,"url":1127,"hash":1128,"mime":382,"name":1129,"path":11,"size":1130,"width":40,"height":40,"sizeInBytes":1131},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_julia_m_cameron_4144221_d5b3b1a445.jpg","small_pexels_julia_m_cameron_4144221_d5b3b1a445","small_pexels-julia-m-cameron-4144221.jpg",42.53,42528,{"ext":752,"url":1133,"hash":1134,"mime":382,"name":1135,"path":11,"size":1136,"width":48,"height":48,"sizeInBytes":1137},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_julia_m_cameron_4144221_d5b3b1a445.jpg","medium_pexels_julia_m_cameron_4144221_d5b3b1a445","medium_pexels-julia-m-cameron-4144221.jpg",83.28,83279,{"ext":752,"url":1139,"hash":1140,"mime":382,"name":1141,"path":11,"size":1142,"width":56,"height":56,"sizeInBytes":1143},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_julia_m_cameron_4144221_d5b3b1a445.jpg","thumbnail_pexels_julia_m_cameron_4144221_d5b3b1a445","thumbnail_pexels-julia-m-cameron-4144221.jpg",6.77,6774,"pexels_julia_m_cameron_4144221_d5b3b1a445",1877.35,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_julia_m_cameron_4144221_d5b3b1a445.jpg","2026-04-10T14:46:20.809Z","2026-04-10T14:46:32.621Z","2026-04-10T14:46:20.810Z",[1151],{"__component":66,"id":1152,"text":1153},117,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. После публикации РБК Pro о том, как ФНС собирается \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fpro.rbc.ru\u002Fdemo\u002F69b6ff619a79470d060084f3?from=newsfeed\">оценивать\u003C\u002Fa> разработки ИТ-компаний, EdTech проекту уже мало показать кабинет ученика, кабинет преподавателя, каталог курсов, оплату и вебинары под своим брендом. Если вся эта цифровая инфраструктура онлайн-школы собрана на арендованной системе управления обучением или конструкторе, сервис может выглядеть аккуратно, но не доказать, что у него есть собственный ИТ-продукт.\u003C\u002Fp>\u003Cp>Для EdTech такая модель долго была нормальной. На старте ценность школы чаще лежит в методике, преподавателях, кураторах, контенте и личном бренде, а готовая платформа быстро закрывает доступы, уроки, домашние задания и базовую аналитику. Проблема начинается позже, когда в этой же внешней системе остаются роли, учебные траектории, прогресс, правила проверки работ, группы и ключевые данные учеников.\u003C\u002Fp>\u003Ch2>Почему в EdTech риск выше, чем в других нишах\u003C\u002Fh2>\u003Cp>Сама новость РБК не про онлайн-школы как отдельную отрасль. Ее смысл в другом: государство собирается смотреть не на фасад, а на реальную разработку. Для EdTech это болезненно, потому что именно здесь годами было принято строить школу на арендованной учебной системе, а свою ценность собирать вокруг контента, сопровождения и бренда. Такая модель может быть сильной с точки зрения бизнеса, удержания и выручки. Для разговора о собственном ИТ-продукте этого уже недостаточно.\u003Cbr>\u003Cbr>Связь с новостью здесь прямая. Если предметом проверки становится сама разработка, школе уже мало показать курсы, оплату и кабинеты. Нужно объяснить, какая часть системы действительно создана внутри бизнеса. Это видно и по официальным требованиям. ФНС отдельно напоминает, что ставка налога на прибыль 5% для ИТ-компаний \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.nalog.gov.ru\u002Frn07\u002Fnews\u002Ftax_doc_news\u002F16253837\u002F\">действует\u003C\u002Fa> в 2025–2030 годах. При ежегодном подтверждении аккредитации правообладателям ПО нужно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fbase.garant.ru\u002F411904972\u002F\">указывать\u003C\u002Fa> продукт в реестре российского ПО и доход от его реализации. С 1 января 2026 года \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fpublication.pravo.gov.ru\u002Fdocument\u002F0001202511290031\">вступили\u003C\u002Fa> в силу и новые изменения в правила аккредитации. Логика простая: важен не сам цифровой сервис, а то, чем компания действительно владеет.\u003C\u002Fp>\u003Ch2>Почему кабинета и курсов недостаточно\u003C\u002Fh2>\u003Cp>Понять, есть ли у онлайн-школы свой продукт или только арендованная оболочка, можно по простому признаку: кто управляет ключевой логикой обучения. Если внешняя платформа хранит роли учеников и преподавателей, правила доступа, траектории, дедлайны, прогресс, проверку домашних заданий и работу кураторов, значит школа контролирует в основном витрину, продажи и контент. Сама механика обучения при этом остается на чужой стороне.\u003Cbr>\u003Cbr>Поэтому кабинет ученика сам по себе ничего не доказывает. Курсы показывают, что школа умеет учить. Личный бренд показывает, что она умеет привлекать аудиторию. Для собственного ИТ-продукта важнее другое: где лежат данные, кому принадлежат права на код, кто управляет логикой системы и может развивать ее без оглядки на владельца платформы. Это хорошо видно и по логике реестра российского ПО: там отдельно указывают правообладателя, основания исключительного права, документацию и функции решения (\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Freestr.digital.gov.ru\u002Frequest\u002F461323\u002F\">пример карточки\u003C\u002Fa>). Для EdTech вывод простой: красивый интерфейс еще не означает, что технология у школы своя.\u003C\u002Fp>\u003Ch2>Как риск выглядит на практике\u003C\u002Fh2>\u003Cp>По моей практике слабая позиция у школы обычно видна по очень простым признакам:\u003Cbr>— Нельзя без поставщика изменить правила доступа.\u003Cbr>— Нельзя нормально перестроить логику групп и потоков.\u003Cbr>— Нельзя выгрузить полную историю действий ученика и преподавателя.&nbsp;\u003Cbr>— Нельзя по-своему развивать кабинет куратора, систему проверки работ или аналитику учебных событий.\u003Cbr>\u003Cbr>Внешне это выглядит как работающий сервис. По сути это означает, что ключевая образовательная база находится вне контроля бизнеса.\u003Cbr>\u003Cbr>Для EdTech такая зависимость опаснее, чем для многих других ниш. Здесь продукт держится не только на оплате и выдаче контента, а на сложной связке ролей, сценариев и данных: кто чему учится, кто проверяет, кто дает обратную связь, как открываются модули, как считается прогресс, как устроены дедлайны и продление обучения. Если школа работает на чужой платформе, она растет в условиях ограниченного контроля.\u003Cbr>\u003Cbr>Сейчас это стало заметнее еще и потому, что сам рынок меняется. EdTech-рынок в 2025 году \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fsmartranking.ru\u002Fru\u002Fanalytics\u002Fedtechs\u002Fedtech-rynok-vyros-v-2025-godu-na-12\u002F\">вырос\u003C\u002Fa> до 154 млрд рублей, но темпы роста снизились до 12%, а сегмент «разработчики и платформы» замедлился, в том числе из-за снижения выручки GetCourse. В такой ситуации зависимость от внешней учебной базы начинает бить не только по статусу продукта, но и по скорости изменений, экономике и управляемости школы.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"13780.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F13780_786f23ce21.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_13780_786f23ce21.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_13780_786f23ce21.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_13780_786f23ce21.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_13780_786f23ce21.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>Что делать на практике\u003C\u002Fh2>\u003Cp>Срочно отказываться от арендованной платформы не нужно. Полезнее сначала честно разделить слои. Видеохостинг, платежи, вебинарную комнату, рассылки и часть типовой инфраструктуры можно оставлять внешними. В собственный контур стоит забирать то, без чего школа не выглядит владельцем продукта: учет учеников, роли и права, учебные траектории, прогресс, проверку домашних заданий, инструменты преподавателя и куратора, аналитику по учебным событиям.\u003Cbr>\u003Cbr>Для одной школы отправной точкой станет своя административная панель. Для другой — своя база учебных событий. Для третьей — собственная логика доступов, проверок и дедлайнов. Смысл не в том, чтобы все переписать сразу. Смысл в том, чтобы вынести из аренды те части, без которых EdTech-проект не может подтвердить, что его технология действительно находится под его контролем.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"pexels-negativespace-34069.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_negativespace_34069_e8117c7121.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_negativespace_34069_e8117c7121.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_negativespace_34069_e8117c7121.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_negativespace_34069_e8117c7121.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_negativespace_34069_e8117c7121.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Qtim здесь может быть полезен не только диагностикой. На практике чаще нужна следующая часть работы: спокойно переработать решение, вынести критическую логику из конструктора или учебной платформы и собрать свой контур без поломки действующего учебного процесса. Если вы столкнусь с такой проблемой, у вас есть желание узнать подробности, провести диагностику или доработать свою платформу, напишите мне.\u003C\u002Fp>",[1155,1156],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1159,"documentId":1160,"title":1161,"date":1162,"description":11,"order":520,"slug":1163,"showOnMainPage":13,"createdAt":1164,"updatedAt":1165,"publishedAt":1166,"locale":17,"cover":1167,"content":1202,"media_event":11,"media_areas":1206,"seo":11,"localizations":1209},195,"ersgie5e85wpniq47fuqbstp","Почему дешевые обходные схемы становятся дорогими","2026-04-14","pochemu-deshevye-shemy-obkhoda-privodyat-k-vysokim-zatratam","2026-04-14T13:00:12.314Z","2026-07-30T14:50:35.406Z","2026-07-30T14:50:35.453Z",{"id":1168,"documentId":1169,"name":1170,"alternativeText":11,"caption":11,"width":1171,"height":1171,"formats":1172,"hash":1197,"ext":752,"mime":382,"size":1198,"url":1199,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1200,"updatedAt":1201,"publishedAt":1200},474,"ot4pin5af9trliuqv5bzqhq9","unnamed.jpg",1638,{"large":1173,"small":1179,"medium":1185,"thumbnail":1191},{"ext":752,"url":1174,"hash":1175,"mime":382,"name":1176,"path":11,"size":1177,"width":32,"height":32,"sizeInBytes":1178},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_unnamed_5252fe1d97.jpg","large_unnamed_5252fe1d97","large_unnamed.jpg",191.6,191603,{"ext":752,"url":1180,"hash":1181,"mime":382,"name":1182,"path":11,"size":1183,"width":40,"height":40,"sizeInBytes":1184},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_unnamed_5252fe1d97.jpg","small_unnamed_5252fe1d97","small_unnamed.jpg",45.16,45160,{"ext":752,"url":1186,"hash":1187,"mime":382,"name":1188,"path":11,"size":1189,"width":48,"height":48,"sizeInBytes":1190},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_unnamed_5252fe1d97.jpg","medium_unnamed_5252fe1d97","medium_unnamed.jpg",104.38,104381,{"ext":752,"url":1192,"hash":1193,"mime":382,"name":1194,"path":11,"size":1195,"width":56,"height":56,"sizeInBytes":1196},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_unnamed_5252fe1d97.jpg","thumbnail_unnamed_5252fe1d97","thumbnail_unnamed.jpg",6.6,6595,"unnamed_5252fe1d97",571.78,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Funnamed_5252fe1d97.jpg","2026-04-14T12:51:36.318Z","2026-04-14T12:52:05.537Z",[1203],{"__component":66,"id":1204,"text":1205},157,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. Долгое время обходной путь выглядел разумной экономией. Быстро собрать минимальную конструкцию ради статуса ИТ-компании, льгот или ускоренного запуска, не лезть сразу в создание собственной технологической базы, закрыть недостающее внешними сервисами и ручными операциями, а дорогие вопросы отложить на потом. На старте это действительно снижает затраты. Денег нужно меньше, команда компактнее, путь до выручки быстрее. В этом и ловушка: экономия видна сразу, стоимость ошибки приходит с задержкой. Например, сейчас, ведь ФНС собирается \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fpro.rbc.ru\u002Fdemo\u002F69b6ff619a79470d060084f3?from=newsfeed\">оценивать\u003C\u002Fa> разработки ИТ-компаний.\u003C\u002Fp>\u003Ch2>Почему короткий путь казался разумным\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"unnamed (1).jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Funnamed_1_3969a158b3.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_unnamed_1_3969a158b3.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_unnamed_1_3969a158b3.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_unnamed_1_3969a158b3.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_unnamed_1_3969a158b3.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Несколько лет рынок поощрял скорость. Нужно было успеть занять нишу, собрать работающий сценарий и не закопаться в архитектуре раньше срока. Поэтому бизнес спокойно жил на временных сборках: ключевой модуль у подрядчика, часть логики во внешнем сервисе, права на код оформлены кусками, важные операции держатся на таблицах и людях. Снаружи все выглядит вполне прилично. Для первого этапа этого часто хватало.\u003C\u002Fp>\u003Cp>Проблема появляется позже. Временная схема редко остается таковой. Она обрастает клиентами, деньгами, новыми требованиями и внутренними привычками. В какой-то момент бизнес уже не может быстро отказаться от нее, хотя именно она начинает тормозить развитие.\u003C\u002Fp>\u003Ch2>Что меняется сейчас\u003C\u002Fh2>\u003Cp>У такой конструкции заканчивается период безнаказанности. Предметнее становятся и разговоры о льготах, и обсуждения с партнерами, и оценка зрелости самого бизнеса. Пока компания растет на инерции, слабая база почти не видна. Когда начинается диалог о правах на код, о критической логике, о зависимости от внешнего поставщика и о том, кто вообще управляет продуктом, прежняя экономия резко теряет блеск.\u003C\u002Fp>\u003Cp>Раньше можно было сказать: сначала быстро взлетим, потом спокойно пересоберем. На практике «потом» почти всегда наступает в худший момент. В тот, когда уже есть клиенты, обязательства, чувствительная выручка и нет права на длинную остановку.\u003C\u002Fp>\u003Ch2>Во что выливается мнимая экономия\u003C\u002Fh2>\u003Cp>Сначала приходят доработки. Любое нормальное изменение внезапно требует обхода ограничений, ручных операций и срочных костылей. Потом приходят юридические проблемы: не до конца переданные права, спорные договоры, доступы на чужих учетных записях, зависимость от команды, которой уже нет рядом. Следом могут прийти доначисления, если льгота держалась на конструкции, которая убедительно выглядит только в презентации. Финальный счет почти всегда больше стартовой экономии, потому что бизнес платит сразу в нескольких местах: деньгами, сроками, нервом команды и потерей управляемости.\u003C\u002Fp>\u003Cp>Отдельно бьет пересборка архитектуры в аварийном режиме. Когда критическая логика размазана по внешним решениям, нельзя просто взять и аккуратно заменить один блок. Приходится одновременно чинить права, переносить данные, вынимать важные сценарии из чужой системы и держать в рабочем состоянии то, что уже продается клиентам.\u003C\u002Fp>\u003Ch2>Почему срочная пересборка всегда дороже\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"unnamed (2).jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Funnamed_2_0b3f747f03.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_unnamed_2_0b3f747f03.jpg 196w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_unnamed_2_0b3f747f03.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_unnamed_2_0b3f747f03.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_unnamed_2_0b3f747f03.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Пересобирать систему заранее и под давлением — две разные экономики. В спокойном режиме можно по слоям вернуть контроль над расчетами, ролями, данными, правилами и ключевыми сценариями. В авральном режиме приходится платить за скорость, за параллельную поддержку старой схемы, за ошибки миграции и за каждое решение, которое принимается без нормального запаса по времени. За спешку всегда платят больше. Поэтому дешевый старт нередко заканчивается самым дорогим этапом проекта.\u003C\u002Fp>\u003Cp>Когда обходная схема начинает определять маржу, сроки изменений, устойчивость льготы и силу переговорной позиции, это перестает быть вопросом разработки. Это ошибка в экономике решения. Бизнесу кажется, что он сэкономил на входе. На деле просто перенес расход в будущее и сделал его намного неприятнее.\u003C\u002Fp>\u003Cp>Именно поэтому тема касается не только статуса ИТ-компании. Она — о зрелости бизнеса вообще. Если компания не контролирует критическую логику продукта, она хуже управляет собственной скоростью и защищает свою ценность. А еще в любой сложный момент платит дороже, чем планировала.\u003C\u002Fp>\u003Ch2>Что делать, если компания уже сидит на такой конструкции\u003C\u002Fh2>\u003Cp>Сносить все сразу обычно вредно. Полезнее разобрать устройство системы: что можно оставить внешним, а что пора забирать под свой контроль. Обычно это расчетная логика, роли, данные, правила, ключевые сценарии и те части, без которых продуктом управляет уже не компания, а чужая инфраструктура. Такие конструкции можно не только диагностировать, но и спокойно перерабатывать в нормальное решение без разрушения рабочего процесса.\u003C\u002Fp>\u003Cp>Если у вас сейчас что-то похожее, пишите. Возможно, сэкономлю вам пару неправильных решений.\u003C\u002Fp>",[1207,1208],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1211,"documentId":1212,"title":1213,"date":1214,"description":11,"order":40,"slug":1215,"showOnMainPage":13,"createdAt":1216,"updatedAt":1217,"publishedAt":1218,"locale":17,"cover":1219,"content":1254,"media_event":11,"media_areas":1258,"seo":11,"localizations":1261},153,"g5b2wxj7re10lyayjsqbpd9j","Как понять, чем компания реально управляет в своем ИТ-продукте","2026-04-15","kak-proverit-upravlenie-it-produktom-v-kompanii","2026-04-15T15:10:47.274Z","2026-05-27T11:14:52.446Z","2026-05-27T11:14:52.512Z",{"id":1220,"documentId":1221,"name":1222,"alternativeText":11,"caption":11,"width":1223,"height":1223,"formats":1224,"hash":1249,"ext":752,"mime":382,"size":1250,"url":1251,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1252,"updatedAt":1253,"publishedAt":1252},485,"o493rv3anhkh6c90nl3oq1ur","pexels-jakubzerdzicki-20142092.jpg",1961,{"large":1225,"small":1231,"medium":1237,"thumbnail":1243},{"ext":752,"url":1226,"hash":1227,"mime":382,"name":1228,"path":11,"size":1229,"width":32,"height":32,"sizeInBytes":1230},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_jakubzerdzicki_20142092_6153f93c54.jpg","large_pexels_jakubzerdzicki_20142092_6153f93c54","large_pexels-jakubzerdzicki-20142092.jpg",63.99,63989,{"ext":752,"url":1232,"hash":1233,"mime":382,"name":1234,"path":11,"size":1235,"width":40,"height":40,"sizeInBytes":1236},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_jakubzerdzicki_20142092_6153f93c54.jpg","small_pexels_jakubzerdzicki_20142092_6153f93c54","small_pexels-jakubzerdzicki-20142092.jpg",22.96,22956,{"ext":752,"url":1238,"hash":1239,"mime":382,"name":1240,"path":11,"size":1241,"width":48,"height":48,"sizeInBytes":1242},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_jakubzerdzicki_20142092_6153f93c54.jpg","medium_pexels_jakubzerdzicki_20142092_6153f93c54","medium_pexels-jakubzerdzicki-20142092.jpg",41.4,41401,{"ext":752,"url":1244,"hash":1245,"mime":382,"name":1246,"path":11,"size":1247,"width":56,"height":56,"sizeInBytes":1248},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_jakubzerdzicki_20142092_6153f93c54.jpg","thumbnail_pexels_jakubzerdzicki_20142092_6153f93c54","thumbnail_pexels-jakubzerdzicki-20142092.jpg",4.57,4566,"pexels_jakubzerdzicki_20142092_6153f93c54",184.57,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_jakubzerdzicki_20142092_6153f93c54.jpg","2026-04-15T20:50:14.547Z","2026-04-15T20:56:53.909Z",[1255],{"__component":66,"id":1256,"text":1257},114,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. Для ИТ-бизнеса сейчас важно понимать, насколько хорошо сама компания собрала свой продукт как систему. Когда возникает любой внешний запрос, быстро становится видно, есть ли у бизнеса четкое понимание того, какие модули разработаны внутри компании, где находится критическая логика, кому принадлежат права на код и кто управляет инфраструктурой. Именно такие вещи и определяют, насколько продукт действительно контролируется бизнесом, а не держится на наборе внешних зависимостей.\u003C\u002Fp>\u003Ch2>Почему сейчас важнее проверять себя\u003C\u002Fh2>\u003Cp>Риск почти всегда рождается не снаружи, а внутри. Проверка становится болезненной, когда у бизнеса нет собранной картины по продукту:\u003C\u002Fp>\u003Cp>— код лежит в нескольких репозиториях;\u003Cbr>— права на часть разработки переданы не до конца;\u003Cbr>— критический модуль живет на стороне подрядчика;\u003Cbr>— доступ к инфраструктуре завязан на личные аккаунты;\u003Cbr>— половина заявленной автоматизации держится на ручной работе операционной команды;\u003Cbr>— в работе это может выглядеть как устоявшаяся система, а при проверке быстро оказывается набором слабых мест, которые бизнесу сложно подтвердить документами и доступами.\u003Cbr>\u003Cbr>Поэтому сейчас полезнее всего провести короткий внутренний аудит. Его задача простая: отделить факты от самоописания. Не то, что компания считает своим продуктом, а то, чем она реально управляет. Не то, что красиво выглядит на витрине, а то, где находится логика, данные, права и возможность развивать систему без чужого разрешения.\u003Cbr>\u003Cbr>Проблема обычно вскрывается в трех местах:\u003C\u002Fp>\u003Cp>Первое — права. Если нельзя быстро показать цепочку передачи полномочий на код, разговор о продукте останавливается еще на базовом уровне.\u003C\u002Fp>\u003Cp>Второе — зависимость от внешней базы. Если ключевой сценарий нельзя изменить без подрядчика, платформы или чужого сервиса, у бизнеса слабее контроль над продуктом, чем кажется.\u003C\u002Fp>\u003Cp>Третье — ручные операции. Если важная часть результата каждый день дособирается людьми в таблицах, чатах и админках, это не полноценный модуль, а временный костыль, который слишком долго работал.\u003C\u002Fp>\u003Ch2>Где бизнес обычно слабее, чем думает\u003C\u002Fh2>\u003Cp>Отдельно стоит смотреть на границы продукта. Здесь бизнес часто завышает собственную самостоятельность. Удобный интерфейс, личный кабинет, оплата и поток клиентов еще не доказывают, что решение действительно свое. Доказательство начинается там, где компания может показать собственное ядро: правила, расчеты, модель данных, роли, доступы, внутреннюю логику обработки и управляемый технический контур.\u003Cbr>\u003Cbr>На практике короткий аудит стоит строить вокруг нескольких жестких вопросов:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eda06a3b90b1f4bef01e80743b23abb6e\">Чей это код по документам?\u003C\u002Fli>\u003Cli data-list-item-id=\"e038cb0201478f52e2dd903a80b9ada19\">Где живет основная логика?\u003C\u002Fli>\u003Cli data-list-item-id=\"e807237ccc253c15a6d8ddeb70dcc97e7\">Кто может выкатывать изменения без участия внешней стороны?\u003C\u002Fli>\u003Cli data-list-item-id=\"e9cd130cd1a06a13a777500cfc3c9de1e\">Где хранятся данные и кто ими управляет?\u003C\u002Fli>\u003Cli data-list-item-id=\"e34ec1e019f7dd3e42fcfcccc23e4d630\">Какие модули действительно разработаны внутри компании?\u003C\u002Fli>\u003Cli data-list-item-id=\"eefd89288fff78e82d153fbbe73f6e65e\">\u003Cp>Какие операции пока маскируются под продукт, хотя фактически выполняются вручную?\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg style=\"aspect-ratio:500\u002F339;\" alt=\"мем.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmem_7ac2d31302.jpeg\" width=\"500\" height=\"339\">\u003C\u002Ffigure>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Такой разбор быстро снимает иллюзии и дает материал для решений.\u003C\u002Fp>\u003Ch2>Что стоит проверить уже сейчас\u003C\u002Fh2>\u003Cp>Самое важное даже не скорость, хотя она тоже имеет значение. Даже за несколько дней можно собрать перечень репозиториев, договоров, доступов, модулей и внешних зависимостей. Уже на этом этапе становится видно, что стоит защищать как ядро, что надо срочно оформлять юридически, что пора выносить из внешнего решения в собственный контур и где компании лучше сузить заявление о продукте, чтобы не обещать лишнего.\u003Cbr>\u003Cbr>Именно поэтому неподготовленность опаснее самой новости. Когда у бизнеса есть ясная картина, любой внешний запрос становится рабочей задачей. Когда ее нет, начинается аварийный режим: искать исходники, восстанавливать документы, вспоминать, кто держит сервер, и на ходу придумывать, как объяснить конструкцию, которую раньше никто честно не описывал. В такой ситуации проверку пройти будет совсем не просто.\u003C\u002Fp>\u003Ch2>Почему даже быстрый аудит полезен бизнесу\u003C\u002Fh2>\u003Cp>Даже краткий разбор может помочь компании. Он дает не отчет ради отчета, а пространство для маневра. Можно закрыть пробелы в правах, отделить свое ядро от арендованной инфраструктуры, перестать продавать ручной процесс как автоматизацию. И понять, какие модули надо пересобрать в первую очередь, чтобы зависимость от внешней платформы перестала быть критической.\u003Cbr>\u003Cbr>Это важно не только из-за льгот. Тот же набор вопросов возникает в переговорах с инвестором, при смене подрядчика, во время комплексной проверки, при продаже бизнеса и в любой ситуации, где нужно быстро понять, чем компания реально владеет. Поэтому тема уже давно вышла за пределы формального статуса. Это разговор про зрелость продукта и управляемость бизнеса.\u003C\u002Fp>\u003Ch2>\u003Cbr>Почему это вопрос не только льгот\u003C\u002Fh2>\u003Cp>Если в таком разборе видно, что конструкция слабая, это не тупик. Это нормальная отправная точка. Слабые места можно не только найти, но и переработать: забрать критическую логику под свой контроль, пересобрать модули, убрать лишнюю зависимость от чужой платформы, навести порядок в правах и данных. В Qtim этим тоже занимаемся, можем провести аудит и довезти ИТ-продукт до ума. Вопрос не в том, как бизнес описывает продукт, а в том, насколько он реально контролирует его ключевые элементы.\u003C\u002Fp>",[1259,1260],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":835,"documentId":1263,"title":1264,"date":1265,"description":11,"order":40,"slug":1266,"showOnMainPage":13,"createdAt":1267,"updatedAt":1268,"publishedAt":1269,"locale":17,"cover":1270,"content":1305,"media_event":11,"media_areas":1309,"seo":11,"localizations":1312},"iemgcvwws2lyzyz8qref9ebq","Где заканчивается внедрение и начинается собственный продукт","2026-04-23","vnedrenie-korobochnyh-resheniy-i-sobstvennyy-produkt-dlya-biznesa","2026-04-23T12:45:27.057Z","2026-05-27T11:20:11.958Z","2026-05-27T11:20:12.051Z",{"id":1271,"documentId":1272,"name":1273,"alternativeText":11,"caption":11,"width":1274,"height":1274,"formats":1275,"hash":1300,"ext":752,"mime":382,"size":1301,"url":1302,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1303,"updatedAt":1304,"publishedAt":1303},491,"hfflvuekfad25tokxd1ccw4u","pexels-nemuel-6424583.jpg",3842,{"large":1276,"small":1282,"medium":1288,"thumbnail":1294},{"ext":752,"url":1277,"hash":1278,"mime":382,"name":1279,"path":11,"size":1280,"width":32,"height":32,"sizeInBytes":1281},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pexels_nemuel_6424583_c0184cc2a7.jpg","large_pexels_nemuel_6424583_c0184cc2a7","large_pexels-nemuel-6424583.jpg",130.78,130778,{"ext":752,"url":1283,"hash":1284,"mime":382,"name":1285,"path":11,"size":1286,"width":40,"height":40,"sizeInBytes":1287},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pexels_nemuel_6424583_c0184cc2a7.jpg","small_pexels_nemuel_6424583_c0184cc2a7","small_pexels-nemuel-6424583.jpg",48.36,48363,{"ext":752,"url":1289,"hash":1290,"mime":382,"name":1291,"path":11,"size":1292,"width":48,"height":48,"sizeInBytes":1293},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pexels_nemuel_6424583_c0184cc2a7.jpg","medium_pexels_nemuel_6424583_c0184cc2a7","medium_pexels-nemuel-6424583.jpg",85.72,85721,{"ext":752,"url":1295,"hash":1296,"mime":382,"name":1297,"path":11,"size":1298,"width":56,"height":56,"sizeInBytes":1299},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pexels_nemuel_6424583_c0184cc2a7.jpg","thumbnail_pexels_nemuel_6424583_c0184cc2a7","thumbnail_pexels-nemuel-6424583.jpg",8.41,8413,"pexels_nemuel_6424583_c0184cc2a7",1577.82,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpexels_nemuel_6424583_c0184cc2a7.jpg","2026-04-23T12:37:16.043Z","2026-04-23T12:37:27.290Z",[1306],{"__component":66,"id":1307,"text":1308},116,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. Рынок предлагает все больше готовых решений: коробки, платформы, конструкторы, отраслевые системы. Для бизнеса это выглядит удобно. Запуск быстрее, входной чек ниже, техническая команда меньше. Такая модель долго казалась самым разумным способом цифровизации.\u003Cbr>\u003Cbr>В 2026 году у нее появилась новая точка проверки. После публикации РБК о том, как ФНС будет \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fpro.rbc.ru\u002Fdemo\u002F69b6ff619a79470d060084f3?from=newsfeed\">оценивать\u003C\u002Fa> разработки ИТ-компаний, стало еще заметнее: вопрос уже не только в том, что дешевле на старте, а в том, чем компания реально владеет и во что ей обходится эта зависимость через несколько лет.\u003C\u002Fp>\u003Ch2>Что считать традиционным запуском\u003C\u002Fh2>\u003Cp>Внедрение в классическом смысле — это коробочный продукт, который подстраивают под процессы конкретной компании:\u003Cbr>— меняют роли и маршруты;&nbsp;\u003Cbr>— добавляют интеграции, отчеты, формы, кабинеты, правила доступа;&nbsp;\u003Cbr>— дописывают отдельные модули вокруг готовой базы.\u003Cbr>В такой модели нет ошибки. Для многих задач он действительно подходит: компания получает рабочий инструмент быстрее и дешевле, чем при разработке с нуля.\u003C\u002Fp>\u003Cp>Проблема начинается не в самом внедрении, а в неверных ожиданиях от него. Коробка почти всегда предполагает ограниченную глубину кастомизации. Она хорошо работает там, где процессы бизнеса укладываются в типовую логику поставщика. Если компания пытается построить на такой основе уникальный продукт, зависимость от внешней системы начинает накапливать цену.\u003C\u002Fp>\u003Ch2>Скрытые издержки «дешевого» внедрения\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"compagnons-Fa9b57hffnM-unsplash.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fcompagnons_Fa9b57hffn_M_unsplash_c54c2adfd7.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_compagnons_Fa9b57hffn_M_unsplash_c54c2adfd7.jpg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_compagnons_Fa9b57hffn_M_unsplash_c54c2adfd7.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_compagnons_Fa9b57hffn_M_unsplash_c54c2adfd7.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_compagnons_Fa9b57hffn_M_unsplash_c54c2adfd7.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>На старте реализация почти всегда выглядит дешевле собственной разработки. Основной счет приходит позже.\u003C\u002Fp>\u003Cp>Одна из скрытых статей расходов — лицензии и постоянные платежи. В первый год они выглядят терпимо. Через три-пять лет превращаются в устойчивый налог на рост, особенно если бизнес уже завязан на конкретного поставщика и не может спокойно сменить базу.\u003C\u002Fp>\u003Cp>Вторая проблема — кастомные доработки поверх чужих релизов. Пока проект небольшой, это можно пережить. Когда система обрастает процессами, каждое обновление вендора начинает ломать то, что когда-то «аккуратно прикрутили сбоку». Бизнес снова платит: за адаптацию, срочные правки, перенос логики и ручное удержание системы в рабочем состоянии.\u003C\u002Fp>\u003Cp>Третья издержка — зависимость от поставщика. Если ключевые данные, правила и ограничения живут внутри чужой платформы, уйти с нее без потерь уже почти невозможно. Это жесткая привязка к вендору. Компания вроде бы управляет сервисом, но критические условия его жизни определяет не она.\u003C\u002Fp>\u003Cp>Четвертая проблема — внутренняя слепая зона. Со временем в таких системах часто не остается внятной документации, карта зависимостей растворяется, а команда внутри компании знает только верхний слой. Пока все работает, это не бросается в глаза. Когда возникает необходимость переделывать архитектуру, интегрировать новую систему, проходить проверку или менять подрядчика, выясняется, что бизнес пользуется решением, устройство которого сам понимает лишь частично.\u003C\u002Fp>\u003Cp>На этом месте новость про ФНС становится уже не внешним сюжетом, а прикладной проблемой. Если компания заявляет собственный ИТ-продукт, а ключевая логика, права на код и критические сценарии размазаны между коробкой, подрядчиком и ручными операциями, доказывать самостоятельность такого решения становится намного сложнее.\u003C\u002Fp>\u003Ch2>Когда разработка с нуля честнее и выгоднее\u003C\u002Fh2>\u003Cp>Собственное решение не всегда требуется на старте. Оно имеет смысл там, где бизнесу с самого начала тесно в чужой логике или где цена зависимости заранее выше стоимости разработки.\u003C\u002Fp>\u003Cp>Первый случай — уникальные процессы, которых нет в коробке. Если продукт держится не на стандартном кабинете и не на типовом маршруте, а на собственной расчетной логике, специфических ролях, сложных сценариях или нестандартных правилах, дешевое внедрение почти всегда превращается в дорогой обходной путь.\u003C\u002Fp>\u003Cp>Второй случай — высокие требования к интеграциям и производительности. Чем больше у бизнеса критических связей между системами, чем выше нагрузка и чем чувствительнее данные, тем опаснее жить на платформе, которую нельзя полноценно контролировать.\u003C\u002Fp>\u003Cp>Третий случай — длинный срок жизни решения. На дистанции в три-пять лет стоимость владения своим решением часто оказывается ниже, чем бесконечные лицензии, доработки, обходы ограничений и аварийная пересборка чужой базы под собственные задачи.\u003C\u002Fp>\u003Cp>Есть и еще один фактор, который обычно недооценивают на старте: контроль над планом развития продукта. Пока ключевые решения принимает вендор, бизнес не управляет своей скоростью по-настоящему. Он ждет, согласует, обходит ограничения и подстраивается под чужой темп. Собственная разработка дороже на входе, зато честнее в момент, когда компании нужен реальный контроль над продуктом, а не только право пользоваться им.\u003C\u002Fp>\u003Ch2>Что делать на практике\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"jakub-zerdzicki-bWVBCDtTRJI-unsplash.jpg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fjakub_zerdzicki_b_WVBC_Dt_TRJI_unsplash_6cace7c4a5.jpg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_jakub_zerdzicki_b_WVBC_Dt_TRJI_unsplash_6cace7c4a5.jpg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_jakub_zerdzicki_b_WVBC_Dt_TRJI_unsplash_6cace7c4a5.jpg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_jakub_zerdzicki_b_WVBC_Dt_TRJI_unsplash_6cace7c4a5.jpg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_jakub_zerdzicki_b_WVBC_Dt_TRJI_unsplash_6cace7c4a5.jpg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Речь не о том, что коробочные решения плохи, а разработка с нуля всегда лучше. Просто эти подходы решают разные задачи, и смешивать их не стоит. Если бизнес уже чувствует, что готовая база стала тормозить развитие, сначала полезно разложить систему по слоям. Нужно понимать, что можно оставить на внешней стороне, а что относится к критической логике продукта. Именно в этой точке и начинается зависимость, которая влияет на экономику, скорость и управляемость.\u003Cbr>\u003Cbr>После такого разбора обычно становится видно, что именно пора забирать под свой контроль: модель данных, роли, расчетную логику, маршрутизацию, административный контур, ключевые интеграции или отраслевой модуль, на котором держится ценность решения. В этот момент внедрение уже перестает быть просто настройкой готовой системы, а собственная разработка становится оправданным шагом.\u003C\u002Fp>\u003Cp>Если в текущем решении уже чувствуется эта зависимость, обычно полезнее не спорить о терминах, а спокойно разобрать конструкцию по слоям и понять, что пора забирать в собственный контур. В Qtim с такими задачами обычно и приходят: когда нужно отделить коробочную часть от критической логики бизнеса, посчитать реальную цену зависимости и собрать более устойчивую архитектуру. Если ситуация знакома, можно обсудить ее предметно.\u003C\u002Fp>",[1310,1311],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1314,"documentId":1315,"title":1316,"date":1317,"description":11,"order":40,"slug":1318,"showOnMainPage":13,"createdAt":1319,"updatedAt":1320,"publishedAt":1321,"locale":17,"cover":1322,"content":1350,"media_event":11,"media_areas":1354,"seo":11,"localizations":1357},151,"ebwajdbr53mo5mno9n9hy44c","AI-агенты в продакшене: экономия или новая статья расходов","2026-04-29","ai-agenty-v-biznese","2026-04-29T15:00:44.149Z","2026-05-27T11:12:37.292Z","2026-05-27T11:12:37.378Z",{"id":1323,"documentId":1324,"name":1325,"alternativeText":11,"caption":11,"width":1326,"height":1326,"formats":1327,"hash":1346,"ext":26,"mime":29,"size":1347,"url":1348,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1349,"updatedAt":1349,"publishedAt":1349},495,"wzov1yviez4kmixpmjqhrwvo","ai_assisted_productivity_square_crop.png",941,{"small":1328,"medium":1334,"thumbnail":1340},{"ext":26,"url":1329,"hash":1330,"mime":29,"name":1331,"path":11,"size":1332,"width":40,"height":40,"sizeInBytes":1333},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_ai_assisted_productivity_square_crop_75d65455ee.png","small_ai_assisted_productivity_square_crop_75d65455ee","small_ai_assisted_productivity_square_crop.png",431.46,431460,{"ext":26,"url":1335,"hash":1336,"mime":29,"name":1337,"path":11,"size":1338,"width":48,"height":48,"sizeInBytes":1339},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_ai_assisted_productivity_square_crop_75d65455ee.png","medium_ai_assisted_productivity_square_crop_75d65455ee","medium_ai_assisted_productivity_square_crop.png",904.96,904959,{"ext":26,"url":1341,"hash":1342,"mime":29,"name":1343,"path":11,"size":1344,"width":56,"height":56,"sizeInBytes":1345},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_ai_assisted_productivity_square_crop_75d65455ee.png","thumbnail_ai_assisted_productivity_square_crop_75d65455ee","thumbnail_ai_assisted_productivity_square_crop.png",55.36,55355,"ai_assisted_productivity_square_crop_75d65455ee",281.59,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fai_assisted_productivity_square_crop_75d65455ee.png","2026-04-29T14:36:27.803Z",[1351],{"__component":66,"id":1352,"text":1353},112,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. За последний год запрос «хотим AI-агента» стал для бизнеса почти таким же типовым, как раньше «хотим приложение» или «можно нам личный кабинет». На презентации все выглядит просто: модель подключают к CRM, базе знаний, почте и нескольким сервисам, после чего она якобы сама начинает закрывать поддержку, разбирать документы и двигать процессы быстрее.\u003Cbr>\u003Cbr>На практике всплывает другой вопрос: что именно агент должен делать, где у него граница полномочий, кто проверяет результат и сколько стоит поддерживать такую схему после запуска.\u003Cbr>\u003Cbr>Интерес к теме при этом большой. Microsoft пишет, что 82% руководителей считают этот момент поворотным для пересмотра стратегии, а 81% ждут заметной интеграции агентов в контур компании в ближайшие 12–18 месяцев. Однако Deloitte \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fapi.vc.ru\u002Fv2.8\u002Fredirect?to=https%3A%2F%2Fwww.deloitte.com%2Flu%2Fen%2Ffeatured-topics%2Fgenerative-ai%2Fstate-of-ai-in-enterprise.html&amp;postId=2890489\">показывает\u003C\u002Fa> другую сторону: доступ сотрудников к GenAI растет, но лишь около 20% организаций действительно готовы управлять автономными агентными системами. Иначе говоря, денег и интереса уже много, а зрелых процессов вокруг технологии пока заметно меньше.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Откуда у бизнеса берутся ложные ожидания\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp>Главная ошибка начинается в формулировке задачи. Компания хочет не сократить конкретную ручную операцию, не ускорить понятный сценарий и не убрать узкое место, а просто «внедрить AI». Такая формулировка тз плохо годится для продакшена.\u003Cbr>\u003Cbr>Рабочая постановка звучит иначе, например:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e52b70de77403ef10b375098b1d9a79ba\">обработка первой линии поддержки: проверить статус запроса, свериться с регламентом, запросить недостающие данные и передать сотруднику уже собранный кейс;\u003C\u002Fli>\u003Cli data-list-item-id=\"eb0446ba667fcf8f954b0f8d1f47d7506\">первичный разбор потока договоров, заявок или обращений: классифицировать документ, извлечь ключевые поля, проверить комплектность и отправить дальше по нужному маршруту;\u003C\u002Fli>\u003Cli data-list-item-id=\"e3e07222de4ffc4ce3f0fb97be7d65b65\">внутренний операционный сценарий, в котором сотруднику приходится собирать данные из CRM, ERP и тикетной системы, чтобы сделать один следующий шаг.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Вот с такими задачами уже можно работать.\u003Cbr>\u003Cbr>OpenAI в практическом гайде \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fopenai.com\u002Fbusiness\u002Fguides-and-resources\u002Fa-practical-guide-to-building-ai-agents\u002F\">пишет\u003C\u002Fa> об этом так: агентный подход нужен там, где обычная автоматизация уже перестает справляться из-за количества правил, исключений и неструктурированной информации. Поэтому, если задачу можно надежно закрыть обычной логикой, интерфейсом и интеграциями, так и нужно делать. Агент не должен подменять систему там, где она и так работает лучше.\u003C\u002Fp>\u003Ch2>Где AI-ассистент действительно может дать экономию\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FChat_GPT_Image_28_apr_2026_g_16_42_18_0d00ff2609.png\" alt=\"ChatGPT Image 28 апр. 2026 г., 16_42_18.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Chat_GPT_Image_28_apr_2026_g_16_42_18_0d00ff2609.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Chat_GPT_Image_28_apr_2026_g_16_42_18_0d00ff2609.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Chat_GPT_Image_28_apr_2026_g_16_42_18_0d00ff2609.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Chat_GPT_Image_28_apr_2026_g_16_42_18_0d00ff2609.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Лучше всего AI функционирует там, где у бизнеса уже есть понятный процесс, большой поток однотипной работы и дорогой ручной труд.\u003Cbr>\u003Cbr>Первая сильная зона — поддержка. Не вся целиком, а именно повторяемый участок: проверить статус, свериться с регламентом, запросить недостающие данные, передать человеку уже собранный кейс. Здесь экономия появляется не потому, что агент стал умнее команды, а потому, что он снимает мелкие действия, на которых человек раньше терял часы.\u003Cbr>\u003Cbr>Вторая зона — документы и заявки. Счета, договоры, анкеты, обращения, внутренние запросы. Там, где сотрудник тратит время не на решение по существу, а на классификацию, извлечение данных, проверку комплектности, сверку с регламентом и подготовку следующего шага, агент может заметно сократить нагрузку.\u003Cbr>\u003Cbr>Третья зона — внутренние операционные сценарии, где данные лежат в нескольких системах. Например, когда нужно собрать контекст по клиенту, подготовить черновик ответа, проверить комплектность кейса. Эффект здесь возникает за счет того, что агент сокращает и объем ручных действий, и паузы между ними: быстрее собирает контекст и передает задачу дальше без лишних переключений.\u003Cbr>\u003Cbr>LangChain в отчете по агентной инженерии \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fapi.vc.ru\u002Fv2.8\u002Fredirect?to=https%3A%2F%2Fwww.langchain.com%2Fstateofaiagents&amp;postId=2890489\">пишет\u003C\u002Fa>, что команды чаще всего спотыкаются о качество, надежность и наблюдаемость, а 89% респондентов прямо связывают успех агентных систем с нормальной трассировкой и контролем работы. Это хороший маркер зрелости темы: рынок уже обсуждает не «умеет ли ИИ отвечать», а «можно ли встроить его в рабочий процесс без потери контроля».\u003C\u002Fp>\u003Ch2>Где агент чаще не работает\u003C\u002Fh2>\u003Cp>AI-ассистент обычно ошибается в одной и той же конфигурации:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eab09241eaf552bdf4f88d905de2aaa55\">процесс внутри компании сам по себе не описан;\u003C\u002Fli>\u003Cli data-list-item-id=\"eebada10b22e9d952ba13f6b6234fb253\">правила держатся в головах опытных сотрудников, а не в регламентах;\u003C\u002Fli>\u003Cli data-list-item-id=\"e3ca606f90d685dc3f72ce8b62636a604\">спорные случаи и отклонения от стандартного маршрута нигде не зафиксированы;\u003C\u002Fli>\u003Cli data-list-item-id=\"eb3f3ad5450f17df8180420cf4ef0deea\">данные о клиенте, заказе, оплате и предыдущих обращениях разбросаны между CRM, ERP, почтой и тикетной системой;\u003C\u002Fli>\u003Cli data-list-item-id=\"ec4707b8b009c72580ddf438a4903d4f6\">критерий качества формулируется как «ну, чтобы отвечал нормально».\u003C\u002Fli>\u003C\u002Ful>\u003Cp>В такой конструкции агент почти всегда начинает не экономить деньги, а создавать новую дорогую прослойку ручного контроля.\u003Cbr>\u003Cbr>Anthropic в Economic Index \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.anthropic.com\u002Fresearch\u002Fanthropic-economic-index-september-2025-report\u002F\">пишет\u003C\u002Fa>, что для сложных задач узким местом часто оказывается не сама модель, а доступ к нужному контексту. Для бизнеса это означает неприятный факт: слабая зона проекта часто находится не в AI-части, а в устройстве самой компании. Пока знания живут в переписке, а правила разбросаны по документам и людям, агенту просто не на что опереться.\u003Cbr>\u003Cbr>Отдельная зона риска — попытка поручить агенту работу эксперта, который принимает решение в условиях неполной информации и высокой цены ошибки. Например, довести до конца сложную сделку, урегулировать спорную претензию, согласовать нестандартную скидку или одобрить финансовую операцию вне обычного маршрута. В таких ситуациях агент чаще повышает вероятность ошибки, убытка или нарушения регламента, после чего команда все равно вводит обязательное подтверждение со стороны человека.\u003C\u002Fp>\u003Ch2>Какие затраты обычно недооценивают\u003C\u002Fh2>\u003Cp>Самая частая ошибка — считать только стоимость модели, токенов и пилота. Это логика демо, продакшен живет по другой математике.\u003Cbr>\u003Cbr>Первая статья расходов — качество. Нужно собрать реальные кейсы, описать хороший и плохой результат, прогонять проверку после каждого изменения модели, промпта, инструмента или базы знаний. В Anthropic называют отсутствие такой системы состоянием, когда приходится действовать вслепую после завершения раннего прототипирования. Если нельзя понять, стало решение лучше или хуже, значит им невозможно управлять.\u003Cbr>\u003Cbr>Вторая статья — наблюдаемость. Google Cloud отдельно подчеркивает, что в агентных сервисах недостаточно смотреть только на финальный ответ: нужно проверять и промежуточные шаги, обращения к инструментам, срывы ограничений и ошибки маршрутизации. Иначе проблемы копятся незаметно и проявляются уже в бизнес-результате.\u003Cbr>\u003Cbr>Третья статья — права доступа и безопасность. Чем ближе агент к CRM, финансам, документам и внутренним действиям, тем меньше он похож на «умный чат» и тем больше — на сотрудника с доступами. Значит, появляются подтверждения действий, ограничения по инструментам, журналы событий, сценарии отката и отдельная работа по политике доступа. Именно этот слой расходов нельзя забыть в первом расчете.\u003Cbr>\u003Cbr>Четвертая статья — поддержка самой логики. Меняются документы, регламенты, продукты, статусы, интерфейсы систем, структура знаний. Если не обновлять правила, маршруты, источники знаний и подсказки для модели, качество будет снижаться постепенно: без явного сбоя, но с ростом неточных ответов, лишних эскалаций и доработок. Поэтому экономику нельзя оценивать по первым неделям после запуска: систему еще предстоит поддерживать, и это отдельная строка затрат.\u003C\u002Fp>\u003Ch2>Что на самом деле означает LLM-интеграция в бизнесе\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FChat_GPT_Image_28_apr_2026_g_17_19_34_360cff8033.png\" alt=\"ChatGPT Image 28 апр. 2026 г., 17_19_34.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Chat_GPT_Image_28_apr_2026_g_17_19_34_360cff8033.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Chat_GPT_Image_28_apr_2026_g_17_19_34_360cff8033.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Chat_GPT_Image_28_apr_2026_g_17_19_34_360cff8033.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Chat_GPT_Image_28_apr_2026_g_17_19_34_360cff8033.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>В рабочем смысле это не «подключить модель». Это перестроить кусок операционной логики так, чтобы он мог работать с LLM эффективнее.\u003Cbr>\u003Cbr>Нужно описать сценарий по шагам:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"edfb4274d20f5c3bb11462c5322353ad1\">определить, из каких источников агент получает контекст и какие данные считаются достоверными;\u003C\u002Fli>\u003Cli data-list-item-id=\"eba7b25665fd68229c3ea9db42cab6fae\">настроить инструменты, через которые он ищет информацию и выполняет разрешенные действия: поиск по базе знаний, обращения к CRM и ERP, создание черновиков, маршрутизацию задач;\u003C\u002Fli>\u003Cli data-list-item-id=\"eea4f0007e66048a764841e83bec0012d\">развести зоны ответственности между агентом и человеком: что система делает сама, где готовит проект решения, а где обязана остановиться и передать задачу сотруднику;\u003C\u002Fli>\u003Cli data-list-item-id=\"e1ed5879afe9977422946d8e2b4cbfd26\">собрать систему оценки качества: тестовый набор кейсов, эталонные результаты, пороги приемки, выборочную ревизию человеком, мониторинг ошибок и деградации;\u003C\u002Fli>\u003Cli data-list-item-id=\"eb228bb243caa5e9fd5b955e0dbe1ee77\">и только после этого считать эффект по времени обработки, доле успешно завершенных сценариев, снижению числа ошибок и полной стоимости одного кейса.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>LLM-интеграция — не надстройка над существующим процессом. На практике приходится пересобирать роли, маршруты, правила, исключения и ответственность. Поэтому агент в продакшене — не демонстрация возможностей модели, а часть операционной схемы бизнеса.\u003C\u002Fp>\u003Cp>Если у вас сейчас что-то похожее, задумываетесь о внедрении агента, пишите. Возможно, сэкономлю вам пару неправильных решений.\u003C\u002Fp>",[1355,1356],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1359,"documentId":1360,"title":1361,"date":1362,"description":11,"order":40,"slug":1363,"showOnMainPage":13,"createdAt":1364,"updatedAt":1365,"publishedAt":1366,"locale":17,"cover":1367,"content":1400,"media_event":11,"media_areas":1404,"seo":11,"localizations":1413},415,"h713429nv5nf42hksety3udo","Как выбрать подрядчика по разработке: чек-лист от компании с 280+ проектами","2026-05-12","kak-vybrat-podryadchika-po-razrabotke","2026-05-12T14:27:43.934Z","2026-09-23T20:19:18.515Z","2026-09-23T20:19:18.584Z",{"id":1368,"documentId":1369,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1371,"hash":1396,"ext":26,"mime":29,"size":1397,"url":1398,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1399,"updatedAt":1399,"publishedAt":1399},908,"nchjf1xo98blvvmu5moilyez","01-cover.png",{"large":1372,"small":1378,"medium":1384,"thumbnail":1390},{"ext":26,"url":1373,"hash":1374,"mime":29,"name":1375,"path":11,"size":1376,"width":32,"height":33,"sizeInBytes":1377},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_768e97dcf6.png","large_01_cover_768e97dcf6","large_01-cover.png",602.36,602362,{"ext":26,"url":1379,"hash":1380,"mime":29,"name":1381,"path":11,"size":1382,"width":40,"height":41,"sizeInBytes":1383},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_768e97dcf6.png","small_01_cover_768e97dcf6","small_01-cover.png",169.89,169890,{"ext":26,"url":1385,"hash":1386,"mime":29,"name":1387,"path":11,"size":1388,"width":48,"height":40,"sizeInBytes":1389},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_768e97dcf6.png","medium_01_cover_768e97dcf6","medium_01-cover.png",364.39,364393,{"ext":26,"url":1391,"hash":1392,"mime":29,"name":1393,"path":11,"size":1394,"width":55,"height":56,"sizeInBytes":1395},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_768e97dcf6.png","thumbnail_01_cover_768e97dcf6","thumbnail_01-cover.png",42.57,42572,"01_cover_768e97dcf6",643.85,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_768e97dcf6.png","2026-09-23T20:18:36.386Z",[1401],{"__component":66,"id":1402,"text":1403},378,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. Через компанию прошло больше 280 проектов: от MVP до крупных цифровых продуктов с интеграциями, ролями, отдельным мобильным приложением и долгим циклом развития. В сильных продуктах разработка редко заканчивается первым релизом. После запуска бизнес проверяет гипотезы, добавляет новые сценарии, подключает сервисы, масштабирует архитектуру и развивает продукт под реальные данные. Поэтому долгий цикл работы — это не история про бесконечные мелкие доработки, а нормальный путь продукта, который продолжает расти. За это время хорошо видно одну закономерность: ошибка в выборе подрядчика почти никогда не выглядит как просчет в момент сделки. На старте все обычно звучит разумно. Проблемы проявляются позже, когда сроки едут, смета расползается, а бизнес узнает о рисках уже после того, как потерял время.\u003C\u002Fp>\u003Cp>Именно поэтому выбор команды для разработки — не вопрос симпатии к портфолио и не соревнование по самой низкой ставке. Это управленческое решение. Нужно понять, кто умеет не только писать код, но и вести проект через неопределенность, уточнять слабые места заранее и объяснять бизнесу логику решений, а не просто закрывать задачи в трекере. Если упростить, вопрос «как выбрать студию разработки» сводится к одному: кто способен превратить идею в управляемый процесс, а не в дорогую импровизацию.\u003C\u002Fp>\u003Cp>Ошибки закладываются еще до первой итерации. У бизнеса есть цель, у исполнителя — обещание, а между ними не хватает ясности по ролям, границам, критическим зависимостям и критериям результата. В этот зазор потом и проваливаются сроки, бюджет и доверие. Собрал десять показателей, по которым удобнее оценивать студию до подписания договора, а не после первого кризиса.\u003C\u002Fp>\u003Ch2>10 критериев выбора подрядчика\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_inline_f48950ba1a.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_inline_f48950ba1a.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_inline_f48950ba1a.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_inline_f48950ba1a.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_inline_f48950ba1a.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>1. Понимание бизнес-задачи, а не только списка функций\u003Cbr>Опытная команда сначала выясняет, что должно измениться после запуска: выручка, скорость операции, снижение ручного труда, удержание, средний чек, точность данных. Если обсуждение с первой встречи уходит в экраны, стек и количество часов, проект останется без опорной логики. В таком случае позже будет сложно оценить, какие функции действительно нужны, а какие только увеличивают бюджет и сроки.\u003C\u002Fp>\u003Cp>2. Качество вопросов на старте\u003Cbr>Хороший признак — точность задачи. Подрядчик должен разбирать аудиторию, сценарии, внутренние процессы, ограничения по срокам, сложность интеграций, состав вашей команды и зону ответственности каждой стороны. Поверхностный старт почти всегда означает малосодержательную оценку.\u003C\u002Fp>\u003Cp>3. Прозрачность расчета\u003Cbr>Недостаточно получить сумму и срок. Нужна структура оценки: что уже входит в объем, какие этапы обязательны, какие блоки зависят от внешних систем, что может изменить план. Такая детализация полезнее красивого фиксированного числа, которое появилось после короткого звонка.\u003C\u002Fp>\u003Cp>4. Реальный состав команды\u003Cbr>Имеет значение не название студии, а люди, которые действительно поведут проект. До сделки полезно понимать, кто отвечает за аналитику, архитектуру, дизайн и качество. Если продает один состав, а после старта приходит другой, это уже риск. Еще хуже, когда команды под проект фактически нет: подрядчик заключает сделку, а затем передает разработку третьим лицам или срочно добирает людей через аутстафф. В такой модели клиент не может заранее оценить уровень исполнителей и понять, кто несет ответственность за результат. К тому же сильных специалистов редко выводят в аутстафф: они обычно нужны внутри компании, на ключевых проектах и в развитии собственной экспертизы. Поэтому вместо управляемой команды заказчик получает набор людей, которые могут не понимать контекст, продуктовую задачу и последствия своих решений. Особенно опасно, когда ключевые технические или продуктовые решения принимает человек, с которым клиент познакомится уже в процессе работы. В такой ситуации сложнее заранее оценить, насколько команда понимает задачу и способна отвечать за результат.\u003C\u002Fp>\u003Cp>5. Продуктовый подход\u003Cbr>Подрядчик не должен автоматически соглашаться на каждую идею из бэклога. Его задача — помогать отделять обязательное от желательного, сокращать лишнее и удерживать первый релиз в понятном объеме. Такой подход не ограничивает продукт. Он уменьшает цену ошибок, которые потом стоят дороже любой сэкономленной недели.\u003C\u002Fp>\u003Cp>6. Опыт с похожим контуром сложности\u003Cbr>Лучше смотреть не только на отрасль, а на тип задач. Личные кабинеты, роли, платежи, тяжелые интеграции, мобильное приложение, высокая нагрузка, админ-панель, контентные сценарии, доступы и права — все это влияет на проект сильнее, чем похожая тематика кейса. Команда может не иметь разработок именно в вашей нише, но обязана понимать инженерную цену таких решений.\u003Cbr>\u003Cbr>7. Работа с рисками без замалчивания\u003Cbr>На старте не все риски можно предсказать. Проблемы с API, документацией, доступами, данными или согласованиями часто становятся видны только после погружения в проект. Поэтому важно, чтобы подрядчик не обещал идеальный сценарий, а показывал зоны неопределенности: что нужно проверить, от каких внешних факторов зависит срок и какие решения со стороны бизнеса могут изменить план.\u003Cbr>Если команда сразу дает точный срок и бюджет без вопросов к требованиям, интеграциям и зонам ответственности, это тревожный сигнал. Скорее всего, риски не исчезли — их просто не посчитали.\u003C\u002Fp>\u003Cp>8. Понятная коммуникация\u003Cbr>До запуска стоит зафиксировать ритм встреч, формат статусов, способ эскалации, правила принятия решений, сроки обратной связи и круг ответственных. Проекты чаще ломаются не на коде, а на потере контекста между заказчиком и исполнителем. Когда у сторон разные темп, глубина погружения и представление о статусе, напряжение накапливается очень быстро.\u003C\u002Fp>\u003Cp>9. Кейсы, которые показывают процесс, а не только результат\u003Cbr>Логотипы и красивые интерфейсы полезны, но они не объясняют, как команда ведет проект в сложных местах. Намного важнее услышать, как компания проходила через смену требований, конфликт приоритетов, тяжелую интеграцию, перенос сроков или пересборку объема и успешно со всем этим справлялась. Реальный уровень подрядчика виден не в портфолио, а в том, как он управляет проектом, когда все идет не по плану.\u003C\u002Fp>\u003Cp>10. Условия после релиза\u003Cbr>Еще до сделки полезно понять, что произойдет после запуска: кто ведет продукт дальше, как оформляются доработки, что входит в гарантию, как передаются доступы, документация и права на код, остается ли та же команда в контуре поддержки. Переход в пострелизную фазу без ясных правил быстро создает новый слой хаоса.\u003C\u002Fp>\u003Ch2>Зачем бизнесу нужен RFP\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_inline_5e2ab0bf89.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_inline_5e2ab0bf89.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_inline_5e2ab0bf89.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_inline_5e2ab0bf89.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_inline_5e2ab0bf89.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>RFP, или тендерное приглашение — это документ, который позволяет сравнивать предложения по одной логике. Без него бизнес получает три красивых коммерческих оферты, которые невозможно сопоставить между собой: в одном учтена аналитика, в другом нет, где-то заложены интеграции или, наоборот, они вынесены за скобки. Одна команда считает первую версию, другая уже мысленно продает почти готовый продукт.\u003C\u002Fp>\u003Cp>Хороший RFP экономит время обеим сторонам. Бизнес получает сопоставимые ответы и быстрее видит, кто действительно понял задачу. Исполнитель работает в режиме предметной оценки. Это снижает число ложных ожиданий еще до старта.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_inline_90fc4580dd.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_inline_90fc4580dd.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_inline_90fc4580dd.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_inline_90fc4580dd.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_inline_90fc4580dd.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>В рабочий шаблон RFP стоит включить:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e4a73bfa413894f494a00f4837aa904f4\">краткое описание компании и контекста запуска;\u003C\u002Fli>\u003Cli data-list-item-id=\"e42f17ca88f262fcf22b43e8f922ba863\">цель проекта и метрики, на которые он должен повлиять;\u003C\u002Fli>\u003Cli data-list-item-id=\"e628cffa3285e2bea44385c31b831d7e6\">ключевые пользовательские сценарии и роли;\u003C\u002Fli>\u003Cli data-list-item-id=\"eb674780590b877d8a3a46d1c90d01ed5\">границы первой версии: что входит, что остается за рамкой;\u003C\u002Fli>\u003Cli data-list-item-id=\"ecd59ee89e3c413295ae46bb668b11122\">список интеграций, зависимостей и текущих систем;\u003C\u002Fli>\u003Cli data-list-item-id=\"e5cf85642167a1596097d0df40887ffea\">ограничения по срокам, бюджету, безопасности и регуляторным требованиям;\u003C\u002Fli>\u003Cli data-list-item-id=\"e6f945419a83b993389aa2c60d7ebf0c2\">ожидания к составу команды, этапам, артефактам и формату оценки;\u003C\u002Fli>\u003Cli data-list-item-id=\"e06cfc2d7b66360b649eb4766bec5379e\">критерии выбора и порядок принятия решения.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Если RFP собран внятно, он сразу отсекает часть проблем. Команда не прячет слабые места за общими словами. Бизнес не выбирает по впечатлению от созвона. Переговоры становятся короче, а сравнение предложений — честнее.\u003C\u002Fp>\u003Cp>Выигрывает тот, с кем проект становится предсказуемее: понятнее границы, прозрачнее ответственность, раньше видны слабые места, спокойнее принимаются решения. Если после первых встреч появилась ясность, это хороший сигнал. В ином случае — поиск лучше продолжить. Если у вас сейчас похожая ситуация и не знаете что делать, пишите. Возможно, сэкономлю вам пару неправильных решений.\u003C\u002Fp>",[1405,1406],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},15,"w2syds6h6g6w4q901gfyrw0j","Экспертиза ","media-area-3","2026-05-27T09:11:34.563Z","2026-05-27T09:11:34.578Z",[],{"id":1415,"documentId":1416,"title":1417,"date":1418,"description":11,"order":40,"slug":1419,"showOnMainPage":13,"createdAt":1420,"updatedAt":1421,"publishedAt":1422,"locale":17,"cover":1423,"content":1451,"media_event":11,"media_areas":1455,"seo":11,"localizations":1464},406,"fleu8iabwalh7dwbfkxuew4p","Flutter в продакшене: где появляется экономия","2026-06-23","flutter-v-razrabotke-ekonomiya-na-mobilnykh-prilozheniyakh","2026-06-23T13:14:39.410Z","2026-09-23T19:23:35.643Z","2026-09-23T19:23:35.716Z",{"id":1424,"documentId":1425,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1426,"hash":1447,"ext":26,"mime":29,"size":1448,"url":1449,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1450,"updatedAt":1450,"publishedAt":1450},880,"hsnsxf3i3kyd69of31w49cis",{"large":1427,"small":1432,"medium":1437,"thumbnail":1442},{"ext":26,"url":1428,"hash":1429,"mime":29,"name":1375,"path":11,"size":1430,"width":32,"height":33,"sizeInBytes":1431},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_402b72c97d.png","large_01_cover_402b72c97d",611.12,611118,{"ext":26,"url":1433,"hash":1434,"mime":29,"name":1381,"path":11,"size":1435,"width":40,"height":41,"sizeInBytes":1436},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_402b72c97d.png","small_01_cover_402b72c97d",167.91,167914,{"ext":26,"url":1438,"hash":1439,"mime":29,"name":1387,"path":11,"size":1440,"width":48,"height":40,"sizeInBytes":1441},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_402b72c97d.png","medium_01_cover_402b72c97d",363.57,363569,{"ext":26,"url":1443,"hash":1444,"mime":29,"name":1393,"path":11,"size":1445,"width":55,"height":56,"sizeInBytes":1446},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_402b72c97d.png","thumbnail_01_cover_402b72c97d",44.22,44222,"01_cover_402b72c97d",587.01,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_402b72c97d.png","2026-09-23T19:23:22.488Z",[1452],{"__component":66,"id":1453,"text":1454},369,"\u003Cp>Привет, я — Антон Фокин, CEO Qtim. За время работы Qtim мы сделали больше 280 проектов, и на старте мобильной разработки почти всегда встает один вопрос: делать приложение нативно или выбрать кроссплатформу?\u003C\u002Fp>\u003Cp>Flutter — это технология для мультиплатформенной разработки: на ней одну мобильную основу собирают сразу для iOS и Android. Для бизнеса такой выбор обычно означает меньшую стоимость первой версии, более быстрый запуск и меньше параллельной работы после релиза. Он подходит не каждому продукту, поэтому дальше важны детали.\u003C\u002Fp>\u003Cp>В Qtim мы часто рекомендуем Flutter для прикладных сервисов, когда он дает хороший баланс по срокам, бюджету и дальнейшей поддержке. Дальше разберу, в каких проектах кроссплатформа действительно помогает сэкономить, где деньги уходят совсем в другие части системы и когда нативная разработка оказывается разумнее.\u003C\u002Fp>\u003Ch2>Сначала — что сравниваем\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"ChatGPT Image 28 мая 2026 г., 11_08_13.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FChat_GPT_Image_28_maya_2026_g_11_08_13_ccb8046158.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Chat_GPT_Image_28_maya_2026_g_11_08_13_ccb8046158.png 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Chat_GPT_Image_28_maya_2026_g_11_08_13_ccb8046158.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Chat_GPT_Image_28_maya_2026_g_11_08_13_ccb8046158.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Chat_GPT_Image_28_maya_2026_g_11_08_13_ccb8046158.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Нативная разработка означает отдельную работу под каждую мобильную платформу. Команды пишут разные приложения, отдельно ведут релизы, проверяют поведение и синхронизируют изменения. Зато бизнес получает максимум контроля над инструментами платформы, производительностью, системными функциями и правилами интерфейса.\u003C\u002Fp>\u003Cp>Flutter и React Native — кроссплатформа. В обоих случаях команда может вести один общий мобильный проект вместо двух независимых. Подходы отличаются тем, как работают с интерфейсом. Flutter использует Dart и сам отрисовывает экраны, поэтому проще держать одинаковый внешний вид и поведение. React Native строится вокруг JavaScript\u002FTypeScript и нативных компонентов платформ, поэтому подходит продуктам, тесно связанным с вебом.\u003C\u002Fp>\u003Cp>Мы обычно начинаем с продукта: что входит в первый релиз, как часто будут правки, какие функции завязаны на устройство и где понадобится отдельная поддержка. После этого проще выбрать стек под задачу.\u003C\u002Fp>\u003Ch2>Где Flutter снижает смету\u003C\u002Fh2>\u003Cp>Сначала экономия видна в первой версии. Команда один раз делает экраны, навигацию, формы, проверки и часть логики. Платформенные особенности остаются, но базовый сценарий не приходится собирать дважды.\u003C\u002Fp>\u003Cp>На тестировании эффект тоже заметен. Общий сценарий проходит один основной цикл проверки, а потом команда смотрит платформенные места: уведомления, платежи, разрешения, карту, работу в фоне. Так меньше шансов, что одна версия уже готова, а вторая еще догоняет.\u003C\u002Fp>\u003Cp>После запуска выгода не исчезает. В сервисах быстро появляются мелкие правки: новый экран, измененная форма, другой текст ошибки, дополнительный статус, уточненная аналитика. Когда команда ведет один проект для обеих платформ, такие изменения проще довести до релиза.\u003C\u002Fp>\u003Cp>Поэтому я смотрю на Flutter не только как на способ быстрее выпустить первую версию. Для живого продукта важно, что будет через месяц, полгода и год, когда начнут приходить правки от пользователей.\u003C\u002Fp>\u003Cp>Публичные кейсы Flutter хорошо показывают именно темп после запуска. NotebookLM \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fflutter.dev\u002Fshowcase\u002Fnotebooklm\">выпустил\u003C\u002Fa> мобильное приложение за семь месяцев, а команда Atlas Associates \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fflutter.dev\u002Fshowcase\u002Fatlas\">развивала\u003C\u002Fa> мессенджер Arc на Flutter и Firebase и выпустила 144 обновления за 34 месяца. В обоих случаях главный вывод связан с темпом команды после первого релиза.\u003C\u002Fp>\u003Ch2>Где стек уже не главный фактор стоимости\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"ChatGPT Image 28 мая 2026 г., 11_07_39.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FChat_GPT_Image_28_maya_2026_g_11_07_39_253f59d1a1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Chat_GPT_Image_28_maya_2026_g_11_07_39_253f59d1a1.png 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Chat_GPT_Image_28_maya_2026_g_11_07_39_253f59d1a1.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Chat_GPT_Image_28_maya_2026_g_11_07_39_253f59d1a1.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Chat_GPT_Image_28_maya_2026_g_11_07_39_253f59d1a1.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Flutter снижает бюджет там, где работа связана с самим приложением: экранами, формами, навигацией, уведомлениями и статусами. Но стоимость продукта на этом не заканчивается. В проекте появляются роли, панель управления, платежи, интеграции, аналитика, работа без интернета, права доступа и ошибки, которые нужно корректно обработать.\u003C\u002Fp>\u003Cp>Здесь уже нельзя сказать: выбрали Flutter, значит все стало дешевле. Для работы без интернета нужны синхронизация и правила конфликтов. Для платежей — сценарии успеха, отказа и возврата. Для панели управления — права, формы, проверки и история изменений. Для интеграций — разбор чужой документации, лимиты и сбои на стороне внешней системы.\u003C\u002Fp>\u003Cp>Поэтому перед оценкой мы смотрим на весь продукт: кто им пользуется, какие данные меняются, где могут возникать ошибки, кто будет управлять системой и что придется поддерживать через полгода. После такого разбора видно, где Flutter снижает бюджет, а где деньги уходят в данные, роли, интеграции и процессы.\u003C\u002Fp>\u003Ch2>Бакки: скорость проверки гипотезы\u003C\u002Fh2>\u003Cp>Бакки — приложение для адаптации и обучения сотрудников кафе и ресторанов, которое мы сделали в Qtim. В этом проекте Flutter помог быстро собрать первую версию и проверить, ускоряет ли цифровой продукт обучение новичков и дает ли заведению контроль над процессом.\u003C\u002Fp>\u003Cp>Новый сотрудник в первые смены учит меню, стандарты обслуживания, правила работы и проходит проверку знаний. Управляющий в это же время объясняет базовые вещи, выдает материалы, следит за прогрессом и пытается понять, где у человека пробелы. Когда обучение держится на устных инструкциях и разрозненных документах, процесс зависит от конкретных людей и плохо масштабируется.\u003C\u002Fp>\u003Cp>Мы выбрали Flutter, потому что ценность Бакки была в структуре обучения, контенте, тестах и управлении материалами. Эти сценарии должны были работать одинаково для всех пользователей. Уникальные возможности конкретной платформы здесь не решали задачу, а две отдельные мобильные разработки увеличили бы срок проверки гипотезы.\u003C\u002Fp>\u003Cp>В первую версию вошли база знаний, карточки меню, тесты, аттестация, прогресс и панель управления. Видео, расширенную геймификацию и HR-интеграции оставили на следующие этапы: они могли усилить продукт позже, но для старта увеличивали бы срок и смету.\u003C\u002Fp>\u003Cp>Бакки вышел за два месяца. Команда сосредоточила бюджет на модели обучения и проверке идеи. На синхронизацию между мобильными версиями ушло меньше времени.\u003C\u002Fp>\u003Ch2>Cofftan: много функций в первом релизе\u003C\u002Fh2>\u003Cp>Cofftan — сервис предзаказа кофе и еды с самовывозом. Мобильное приложение для гостей мы сделали на Flutter. В первом релизе должны были работать карта кофеен, заказ, оплата через СБП, push-уведомления, лайв-активность, статусы готовности и работа без сети.\u003C\u002Fp>\u003Cp>Для гостя это один простой путь: выбрать кофейню на карте, собрать заказ, оплатить, увидеть статус готовности и забрать напиток без очереди. Для команды это набор системных функций, которые нужно было выпустить сразу на обеих платформах.\u003C\u002Fp>\u003Cp>Преимущество Flutter здесь было в единой логике продукта. Команда не писала отдельные версии под iOS и Android: общими оставались экраны, путь заказа и основная бизнес-логика. На уровне платформ отдельно проверяли только то, что действительно могло вести себя по-разному: уведомления, оплату картами, лайв-активность и работу без сети.\u003C\u002Fp>\u003Cp>Если в Бакки Flutter помог уложиться в сроки, то в Cofftan он решил другую задачу — позволил сразу запустить сложный набор функций на разных платформах без двух параллельных разработок.\u003C\u002Fp>\u003Ch2>Где в итоге появляется экономия\u003C\u002Fh2>\u003Cp>Flutter снижает смету там, где один и тот же пользовательский путь не нужно собирать двумя командами. В первой версии это видно в сроках запуска. После релиза — в стоимости правок, тестирования и согласований.\u003C\u002Fp>\u003Cp>Поэтому хороший выбор стека начинается с подробного разбора продукта. Если основная ценность лежит в общем пути пользователя, Flutter часто дает лучший баланс бюджета, срока и дальнейшей поддержки. Если главная сложность в платформенных возможностях или операционных процессах, смету сильнее определяют эти ограничения.\u003C\u002Fp>",[1456,1457],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},23,"fngm3hdw5r8umq0w9lscnfro","Мобильная разработка","mobilnaya-razrabotka","2026-07-30T14:29:48.502Z","2026-07-30T14:29:48.526Z",[],{"id":1466,"documentId":1467,"title":1468,"date":1469,"description":11,"order":40,"slug":1470,"showOnMainPage":13,"createdAt":1471,"updatedAt":1472,"publishedAt":1473,"locale":17,"cover":1474,"content":1502,"media_event":11,"media_areas":1506,"seo":11,"localizations":1509},414,"g0rbfiyvtlpoh0wlalq8dsyp","Когда бизнесу пора переходить от идеи к MVP","2026-07-03","kogda-biznesu-stoit-perehodit-ot-idei-k-mvp","2026-07-03T14:26:20.648Z","2026-09-23T20:03:09.528Z","2026-09-23T20:03:09.600Z",{"id":1475,"documentId":1476,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1477,"hash":1498,"ext":26,"mime":29,"size":1499,"url":1500,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1501,"updatedAt":1501,"publishedAt":1501},907,"eq8wwbec1971mbta5p1h1tl4",{"large":1478,"small":1483,"medium":1488,"thumbnail":1493},{"ext":26,"url":1479,"hash":1480,"mime":29,"name":1375,"path":11,"size":1481,"width":32,"height":33,"sizeInBytes":1482},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_15a3700b40.png","large_01_cover_15a3700b40",644.31,644311,{"ext":26,"url":1484,"hash":1485,"mime":29,"name":1381,"path":11,"size":1486,"width":40,"height":41,"sizeInBytes":1487},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_15a3700b40.png","small_01_cover_15a3700b40",187.03,187030,{"ext":26,"url":1489,"hash":1490,"mime":29,"name":1387,"path":11,"size":1491,"width":48,"height":40,"sizeInBytes":1492},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_15a3700b40.png","medium_01_cover_15a3700b40",395,395000,{"ext":26,"url":1494,"hash":1495,"mime":29,"name":1393,"path":11,"size":1496,"width":55,"height":56,"sizeInBytes":1497},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_15a3700b40.png","thumbnail_01_cover_15a3700b40",49.72,49722,"01_cover_15a3700b40",619.37,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_15a3700b40.png","2026-09-23T20:02:56.897Z",[1503],{"__component":66,"id":1504,"text":1505},377,"\u003Cp>Недавно у нас \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fblog\u002Fstoimost-razrabotki-mvp-v-2026-godu\">выходила\u003C\u002Fa> статья: сколько стоит разработка MVP в 2026 году. Но перед сметой почти всегда возникает другой вопрос: идти в разработку сейчас или ещё рано?\u003Cbr>\u003Cbr>Поводом часто становится внешнее давление: инвестор просит рабочий прототип, впереди встреча с партнёром, на рынке появляется похожее решение. В такой ситуации хочется ускориться. Быстрый прототип для встречи часто остаётся набором экранов: сценарий показали, но не проверили. После демонстрации всё равно нужно понять, какие действия пользователя считать подтверждением спроса и что делать дальше.\u003C\u002Fp>\u003Cp>Есть и обратная крайность: проект месяцами обсуждают в презентациях, макетах, таблицах, звонках и переписках, хотя спрос и сценарий можно проверить только в работающем продукте. Ниже — признаки, по которым обычно видно: пора собирать рабочий MVP.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-signals.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_signals_65226402df.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_signals_65226402df.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_signals_65226402df.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_signals_65226402df.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_signals_65226402df.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Команда заранее выбирает действие, которое будет считаться подтверждением. Фраза «рынку нужен такой сервис» слишком общая: по ней нельзя измерить спрос. Нужен конкретный сигнал: пользователь оставил заявку, оплатил, прошёл урок, вернулся в сервис или отправил ссылку коллеге.\u003C\u002Fp>\u003Cp>Пока этого нет, команда обсуждает впечатления: понятен ли экран, не путает ли форма, не мешает ли текст. Эти вопросы пригодятся позже. Сначала фиксируют метрику, иначе после запуска спор снова уйдёт в ощущения.\u003C\u002Fp>\u003Cp>Если формулировка звучит как «сервис для ресторанов» или «платформа для обучения», в MVP быстро попадут личный кабинет, роли, уведомления, аналитика и ещё десять функций. Её сужают до трёх пунктов: кто пользуется продуктом, какую задачу решает и какой результат покажет, что идею стоит развивать.\u003C\u002Fp>\u003Cp>Интервью, страница с описанием продукта и макет показывают, как люди объясняют задачу и на какие обещания реагируют. Но они не отвечают на главный вопрос: дойдёт ли человек до результата сам.\u003C\u002Fp>\u003Cp>Во время демонстрации человек почти всегда проходит «правильный» маршрут. В живой системе он забывает пароль, нажимает не туда, бросает форму, возвращается через три дня или пишет в поддержку вопрос, которого никто не ожидал. По таким деталям видно, может ли он пройти сценарий без помощи команды.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fbakki\">«Бакки»\u003C\u002Fa> проверяли, как обучение работает на смене. Приложение помогает новым сотрудникам в общепите быстрее освоить ассортимент и пройти стартовые учебные задания. Демонстрация экрана с курсами не показала бы, изучает ли сотрудник материалы, как управляющий смотрит прогресс и какие задания вызывают затруднения. Поэтому MVP сразу собирался как инструмент для первых пользователей.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-cut-scope.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_cut_scope_5f2489b8b9.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_cut_scope_5f2489b8b9.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_cut_scope_5f2489b8b9.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_cut_scope_5f2489b8b9.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_cut_scope_5f2489b8b9.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Когда обсуждают первую версию, в список быстро попадает всё, что может понадобиться когда-нибудь: личный кабинет, панель управления, мобильное приложение, уведомления, аналитика, роли, платежи, внешние подключения, загрузка данных. Потом добавляют ещё несколько пунктов «позже», которые почему-то тоже оказываются внутри MVP.\u003C\u002Fp>\u003Cp>На встрече почти любую функцию легко защитить. В смете и календаре каждая превращается в недели разработки. После выхода приходится разбирать, что сработало: основной путь, помощь менеджера, скидка, интерфейс или интерес к новому сервису.\u003C\u002Fp>\u003Cp>До разработки фиксируют, что входит в MVP и что переносится на следующий этап. За 1–2 недели определяют пользовательские пути, предварительные сроки, бюджет и ограничения первой версии. Спорный экран убирают сразу, чтобы через два месяца он не задержал проверку гипотезы.\u003C\u002Fp>\u003Ch2>Что заложить на старте, чтобы первую версию можно было развивать\u003C\u002Fh2>\u003Cp>Если продукт собирают только ради скорости, через несколько недель его уже трудно развивать. Приходится переписывать авторизацию, структуру данных, внешние подключения или то, как обновления попадают к пользователям.\u003C\u002Fp>\u003Cp>Даже в первой версии нужны интерфейс, серверная логика, роли, права доступа, внешние сервисы, тестовая среда, контроль ошибок и понятный порядок публикации. На реальных задачах слабые места всплывают быстро: часть действий открыта лишним людям, сбои остаются незамеченными, обновление сервиса зависит от одного разработчика.\u003C\u002Fp>\u003Cp>Аналитику подключают до выхода к пользователям. Нужно видеть, на каком шаге человек получает результат, где останавливается и какие действия повторяет чаще всего. Интерес подтверждают конкретные события: повторный вход, заявка, оплата или приглашение коллеги. Без этих данных через месяц непонятно, что менять: экран, сценарий, предложение или саму гипотезу.\u003C\u002Fp>\u003Ch2>Как следить за разработкой до выхода к пользователям\u003C\u002Fh2>\u003Cp>Иногда подрядчик или внутренняя команда приносит результат работы только перед запуском. В таком формате спорные решения всплывают поздно: часть бюджета уже потрачена, а отдельные элементы приходится переделывать.\u003C\u002Fp>\u003Cp>Работу делят на короткие циклы: каждые две недели можно открыть продукт в текущем состоянии и проверить его самостоятельно. После этого может измениться одна кнопка или исчезнуть целый лишний шаг.\u003C\u002Fp>\u003Cp>Заказчику без технического опыта такой ритм помогает держать процесс под контролем. На каждом цикле видно, за что платит бизнес и почему одни функции занимают больше времени, чем казалось при оценке. Разработчикам тоже легче: решения не копятся в голове у отдельных людей.\u003C\u002Fp>\u003Cp>После выхода у заказчика должны быть код, макеты экранов, документация, доступы, показатели и план следующего этапа. Иначе каждое изменение начинается с поиска файлов, паролей и людей, которые помнят старые договорённости.\u003C\u002Fp>\u003Cp>Если проект позже перейдет к команде заказчика, передачу готовят заранее. Код оставляют читаемым, среды настраивают, права на результат передают, документацию доводят до уровня, с которым новые разработчики смогут продолжить работу. Тогда продукт можно развивать своими силами или менять формат поддержки без долгого разбора прошлых решений.\u003C\u002Fp>\u003Ch2>Когда сначала нужна проверка без разработки\u003C\u002Fh2>\u003Cp>Не каждую идею стоит сразу превращать в продукт. Если аудитория слишком широкая, подтверждений мало, а целевое действие не сформулировано, сначала проводят интервью, исследование или запускают страницу с описанием продукта.\u003C\u002Fp>\u003Cp>Иногда спрос можно проверить без разработки. Команда сама подбирает экспертов, проводит первые сделки, собирает заявки в таблице, отправляет письма или делает тестовый запуск для нескольких клиентов. На таком этапе видно, какие операции повторяются, где люди путаются и за что готовы платить.\u003C\u002Fp>\u003Cp>Если весь бюджет уходит на MVP, разработку лучше отложить. После выхода почти всегда нужны изменения: упростить путь, поправить экран, добавить показатель, подключить внешнюю систему. Данные для следующих решений появляются после того, как первые пользователи попробовали продукт.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-three-months.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_three_months_88974e0f9e.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_three_months_88974e0f9e.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_three_months_88974e0f9e.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_three_months_88974e0f9e.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_three_months_88974e0f9e.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Если гипотеза уже сформулирована, работу делят на несколько коротких этапов. В Qtim работа над MVP и новыми цифровыми продуктами обычно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fstartup\">устроена\u003C\u002Fa> так.\u003C\u002Fp>\u003Cp>За 1–2 недели сужают фокус: фиксируют гипотезу, основные пользовательские пути, рамки, сроки и бюджет.\u003C\u002Fp>\u003Cp>Следующие 2–3 недели команда собирает основу продукта: ключевые экраны, схему сервиса и план внешних подключений. Здесь смотрят, хватит ли выбранной архитектуры для первых клиентов и не придётся ли переписывать её через полгода.\u003C\u002Fp>\u003Cp>Затем 7–9 недель занимает основная разработка. Каждые две недели заказчик получает результат этапа: его можно открыть, показать внутри бизнеса и проверить на реальных задачах.\u003C\u002Fp>\u003Cp>Финальная неделя обычно уходит на запуск для пользователей и передачу проекта. Команда подключает контроль ошибок и продуктовые показатели, а затем отдаёт заказчику код и документацию.\u003C\u002Fp>\u003Cp>Чаще всего всё упирается в рамки первой версии. Если команда не расширяет MVP, продукт выходит к пользователям примерно за три месяца. Если список задач растёт за счёт «маленьких» функций, срок расползается, а выводы снова откладываются.\u003C\u002Fp>\u003Ch2>Что должно остаться у бизнеса после запуска\u003C\u002Fh2>\u003Cp>К концу работы у заказчика должно быть понятно: какие пути сохранять, где люди застряли и что проверять в следующей версии. Видно, пользуются ли люди основным сценарием и можно ли развивать архитектуру дальше.\u003C\u002Fp>\u003Cp>Сроки у проектов Qtim были разными. На «Бакки» ушло 8 недель: сначала это был инструмент адаптации сотрудников, а дальше его можно было развивать как полноценную систему обучения. На «Конату», сервис персонализированных электронных визиток, — 4 месяца. На «Субу», мобильное приложение для управления подписками, — семь месяцев.\u003C\u002Fp>\u003Cp>Рынки и задачи разные, после запуска в каждом случае становилось ясно, что проверили, какие данные получили и как строить следующую версию.\u003C\u002Fp>\u003Chr>\u003Cp>Бюджет считают после фокусировки. Предварительную оценку можно дать по короткому описанию, но точную сумму называют, когда известны пользовательские пути, платформы, внешние подключения, требования к запуску и состав MVP. Разбор бюджета я уже делал отдельно. Здесь логика та же: чем точнее границы первой версии, тем понятнее сроки и бюджет.\u003C\u002Fp>\u003Cp>Если у вас есть идея продукта и нужно определить состав первой версии, сроки и данные для проверки спроса, можно обсудить MVP с нами.\u003C\u002Fp>",[1507,1508],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},[],{"id":1511,"documentId":1512,"title":1513,"date":1514,"description":11,"order":520,"slug":1515,"showOnMainPage":13,"createdAt":1516,"updatedAt":1517,"publishedAt":1518,"locale":17,"cover":1519,"content":1548,"media_event":11,"media_areas":1552,"seo":11,"localizations":1555},410,"txt60k65mnql530q38z0path","Когда онлайн-школе пора менять стандартную LMS\n","2026-07-13","kogda-onlajn-shkole-stoit-smenit-standartnuyu-lms","2026-07-13T14:45:31.490Z","2026-09-23T19:36:56.631Z","2026-09-23T19:36:56.693Z",{"id":1520,"documentId":1521,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1522,"hash":1543,"ext":26,"mime":29,"size":1544,"url":1545,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1546,"updatedAt":1546,"publishedAt":1547},890,"l9x5lbkecxs1ofml2k3sh7dc",{"large":1523,"small":1528,"medium":1533,"thumbnail":1538},{"ext":26,"url":1524,"hash":1525,"mime":29,"name":1375,"path":11,"size":1526,"width":32,"height":33,"sizeInBytes":1527},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_e6bb91f973.png","large_01_cover_e6bb91f973",771.92,771923,{"ext":26,"url":1529,"hash":1530,"mime":29,"name":1381,"path":11,"size":1531,"width":40,"height":41,"sizeInBytes":1532},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_e6bb91f973.png","small_01_cover_e6bb91f973",221.12,221121,{"ext":26,"url":1534,"hash":1535,"mime":29,"name":1387,"path":11,"size":1536,"width":48,"height":40,"sizeInBytes":1537},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_e6bb91f973.png","medium_01_cover_e6bb91f973",467.57,467568,{"ext":26,"url":1539,"hash":1540,"mime":29,"name":1393,"path":11,"size":1541,"width":55,"height":56,"sizeInBytes":1542},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_e6bb91f973.png","thumbnail_01_cover_e6bb91f973",53.46,53459,"01_cover_e6bb91f973",788.58,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_e6bb91f973.png","2026-09-23T19:36:42.159Z","2026-09-23T19:36:42.160Z",[1549],{"__component":66,"id":1550,"text":1551},373,"\u003Cp>Стандартная LMS хорошо закрывает стартовые задачи онлайн-школы: в ней можно собрать первые курсы, принять оплату, открыть доступ к материалам, запустить рассылки и посмотреть базовую статистику. Если у проекта пока немного продуктов, обучение идет по простой логике, а встроенных отчетов хватает команде, коробочное решение часто оказывается самым разумным вариантом.\u003Cbr>\u003Cbr>Так начинают многие сильные проекты. Например, «Стадикэтс» сначала работали на GetCourse — на том этапе сервис помогал быстро запускать обучение без лишних затрат на разработку. Дальше поговорим о ситуациях, где базового набора LMS уже недостаточно: школе нужны связные данные, более точная аналитика, сложная методика, гибкие права доступа и управляемые живые занятия.\u003C\u002Fp>\u003Ch2>Данные приходится собирать вручную\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"1920x1080_1.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1920x1080_1_579802c1d2.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1920x1080_1_579802c1d2.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1920x1080_1_579802c1d2.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1920x1080_1_579802c1d2.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1920x1080_1_579802c1d2.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Первый сигнал обычно кажется самым незначительным. Ученики живут в LMS, оплаты — в CRM, посещаемость — в Zoom, домашние задания — в одном модуле, а отчеты для руководителя команда собирает в таблицах. Пока проект небольшой, такую схему еще можно удерживать руками. При росте сотрудники начинают регулярно выгружать данные, сверять файлы и переносить значения из одной системы в другую.\u003Cbr>\u003Cbr>Если менеджеры регулярно сводят цифры вручную, значит решение уже не помогает управлять бизнесом. Она только хранит отдельные фрагменты информации, между которыми приходится строить временные переходы.\u003Cbr>\u003Cbr>На проекте «Стадикэтс» часть процессов до того, как мы запустили собственное решение была вынесена в GetCourse. Когда заказчику понадобились единая админка, сквозная аналитика и более гибкая кастомизация, разрозненный контур стал ограничением. Переход на собственную EdTech-платформу позволил собрать витрину, курсы, домашние задания, пробники, статистику и роли в одном месте.\u003C\u002Fp>\u003Ch2>Отчёты показывают цифры, но не помогают принимать решения\u003C\u002Fh2>\u003Cp>Базовой статистики по оплатам и прохождению уроков хватает, пока продукт устроен просто. Но как только появляются разные тарифы, несколько направлений, живые занятия и кураторское сопровождение, руководству нужны ответы другого уровня:\u003Cbr>— на каком этапе чаще всего теряются ученики;\u003Cbr>— какие задания дают непропорционально много ошибок;\u003Cbr>— у каких преподавателей перегружены группы;\u003Cbr>— какие вебинары влияют на продление подписки.\u003Cbr>\u003Cbr>В такой аналитике онлайн-обучения в центре находится поведение ученика, формальный статус «урок открыт» дает слишком мало. В «Стадикэтс» рядом с итоговым баллом сделали динамику по темам, время на выполнение, процент верных ответов и подсказки, что повторить сегодня. Для команды этот механизм полезен еще сильнее: он показывает и факт прохождения курса, и слабые места в методике, и сценарии удержания.\u003C\u002Fp>\u003Cp>В Geekz, например, внутри платформы связали онлайн-занятия с отчетами по посещаемости и активности учеников. Такой слой данных помогает видеть не только результат, но и сам учебный процесс.\u003C\u002Fp>\u003Ch2>Ролей стало больше, чем предусмотрено в коробке\u003C\u002Fh2>\u003Cp>Даже если роли были у школы с первого потока, со временем внутри них появляется больше вариантов работы. Учителям нужны одни инструменты, кураторам — другие, родителям — третьи, администраторам и поддержке — свои. Чем больше учеников и программ, тем важнее аккуратно разделить доступы и действия для каждой группы.\u003Cbr>\u003Cbr>У «Онлайн-школы №1» эта логика выросла в целую экосистему: основная платформа с расписанием, заданиями, чатом и инструментами для учителей, отдельное приложение с учебными материалами и дневник для родителей с оценками, посещаемостью и комментариями преподавателей. Такой набор уже невозможно удобно обслуживать одним общим интерфейсом.\u003C\u002Fp>\u003Ch2>Методика уже сложнее линейного курса\u003C\u002Fh2>\u003Cp>Чем сильнее школа развивает продукт, тем чаще ей тесно в логике «модуль — урок — тест». Возникают адаптивные траектории, банк заданий, автопроверка, дедлайны, SCORM, разные типы материалов, рекомендации по повторению и собственные правила обратной связи.\u003Cbr>Здесь влияние стандартной LMS уже выходит за пределы операционки и затрагивает саму методику. Если преподаватели упрощают программу только потому, что решение не поддерживает нужный сценарий, бизнес теряет часть своей образовательной ценности.\u003Cbr>\u003Cbr>В сервисе «3 место» понадобились персональные траектории, подбор преподавателей и отслеживание прогресса. В «Стадикэтс» для подготовки к ОГЭ и ЕГЭ понадобились карточки для повторения, тренировочные варианты, база заданий, автоматическая проверка тестовой части и ручная работа с сочинениями и голосовыми ответами. Такой набор сложно качественно уместить в шаблонный курс без заметных компромиссов.\u003C\u002Fp>\u003Ch2>Интеграции стали частью самого сервиса\u003C\u002Fh2>\u003Cp>Проблема редко упирается в количество подключений. Важнее, как они связаны между собой. Ученик оплатил курс, попал в нужную группу, получил расписание, пришёл на занятие, выполнил домашнюю работу, а сведения без задержек ушли в отчёт. Если хотя бы один этап работает вне общей логики интеграции, цепочка становится хрупкой.\u003Cbr>\u003Cbr>На раннем этапе это терпимо. Позже каждая несшитая связка превращается в лишний риск: неверный доступ, пропущенное уведомление, рассинхрон в оплатах, неполную статистику по группе. На этом уровне интеграции уже становятся частью образовательного сервиса.\u003C\u002Fp>\u003Ch2>\u003Cbr>Когда ВКС становится частью продукта\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"1920x1080_2.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1920x1080_2_245f98bdd8.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1920x1080_2_245f98bdd8.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1920x1080_2_245f98bdd8.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1920x1080_2_245f98bdd8.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1920x1080_2_245f98bdd8.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Для небольшой школы ссылка на Zoom в расписании может быть вполне рабочим решением. У растущего бизнеса требования меняются. Нужны расписание, группы, записи, доступы, посещаемость, трансляции, отчёты по участию и связь этих данных с прогрессом ученика.\u003Cbr>\u003Cbr>Если качество живых занятий влияет на удержание и продление оплаты, видеосвязь уже становится частью продукта. В одном из проектов Qtim для «Онлайн-Школы №1» собственная ВКС оказалась оправданной именно из-за масштаба: расходы на внешние решения были сопоставимы с бюджетом разработки, а школе требовался больший контроль над нагрузкой, аналитикой и пользовательским сценарием.\u003Cbr>\u003Cbr>При этом универсального правила нет. В «Стадикэтс» лекции и вебинары оставили в Kinescope, потому что отдельный кабинет преподавателя внутри платформы на той стадии был не нужен. Это хороший ориентир: собственная разработка имеет смысл там, где она усиливает продукт. Сам по себе расширенный список функций ничего не доказывает.\u003C\u002Fp>\u003Ch2>Как проходит переход без остановки обучения\u003C\u002Fh2>\u003Cp>Если сразу совпали несколько признаков — данные приходится собирать отдельно, учебная логика упирается в шаблон, роли и живые занятия требуют более тонкой настройки, — следующий вопрос уже практический: как переехать без паузы в обучении.\u003Cbr>\u003Cbr>1. Аудит текущей LMS. Команда фиксирует, какие процессы уже работают, где возникают ручные обходы и какие данные критичны для бизнеса.\u003Cbr>2. Карта сущностей и связей. Отдельно описываются пользователи, курсы, группы, прогресс, оплаты, роли, задания и интеграции.\u003Cbr>3. Проектирование новой логики. На этом этапе собирают целевую модель и сразу убирают накопившиеся костыли.\u003Cbr>4. Перенос контента и истории. Курсы, пользователи, статусы, оценки и прогресс должны переехать без потери смыслов.\u003Cbr>5. Подключение внешних сервисов. CRM, платежи, рассылки, календари, мессенджеры и BI связываются с новой архитектурой.\u003Cbr>6. Тестовый запуск. Часть аудитории проходит по основным сценариям до полноценного релиза.\u003Cbr>7. Обучение команды и поддержка после запуска. Даже хорошая система требует времени на привыкание и корректировки по реальной работе.\u003Cbr>\u003Cbr>На практике самый чувствительный участок — сохранение контекста: кто где остановился, какие задания уже сдал, к какой группе относится, какие права должен получить после релиза. Поэтому миграцию полезно вести как продуктовый проект, а не как техническую выгрузку.\u003C\u002Fp>\u003Ch2>Платформа должна успевать за ростом школы\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"1920x1080_3.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1920x1080_3_3b54c9ce19.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1920x1080_3_3b54c9ce19.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1920x1080_3_3b54c9ce19.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1920x1080_3_3b54c9ce19.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1920x1080_3_3b54c9ce19.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Стандартная LMS часто помогает пройти первый этап быстрее и дешевле. Затем появляются задачи, которые нельзя закрыть ещё одной таблицей, очередной интеграцией или новым обходным сценарием.\u003Cbr>\u003Cbr>Если сведения уже распались по разным системам, аналитика запаздывает, ролей стало больше, чем умеет текущий сервис, а учебная логика постоянно упирается в шаблон, стоит оценить следующий шаг. Система должна снова поддерживать рост, а не сдерживать его.\u003Cbr>\u003Cbr>Ограничения LMS редко заканчиваются только неудобным интерфейсом: со временем они начинают влиять на аналитику, удержание и масштабирование школы. Qtim \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech?utm_source=qtim_site&amp;utm_medium=article&amp;utm_campaign=edtech_service\">разрабатывает\u003C\u002Fa> EdTech-платформы, которые растут вместе с продуктом.\u003C\u002Fp>",[1553,1554],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":1557,"documentId":1558,"title":1559,"date":1560,"description":11,"order":71,"slug":1561,"showOnMainPage":13,"createdAt":1562,"updatedAt":1563,"publishedAt":1564,"locale":17,"cover":1565,"content":1594,"media_event":11,"media_areas":1598,"seo":11,"localizations":1601},338,"b82vt0dmoot3vi0yo5y3j435","Как посчитать бюджет RAG и не переплатить за модель","2026-07-14","kak-rasschitat-byudzet-rag-i-izbezhat-lishnikh-zatrat","2026-07-14T12:01:48.568Z","2026-09-17T22:42:53.015Z","2026-09-17T22:42:53.076Z",{"id":1566,"documentId":1567,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1568,"hash":1589,"ext":26,"mime":29,"size":1590,"url":1591,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1592,"updatedAt":1592,"publishedAt":1593},811,"je8dqfs70lq9s0hf8xtq3atk",{"large":1569,"small":1574,"medium":1579,"thumbnail":1584},{"ext":26,"url":1570,"hash":1571,"mime":29,"name":1375,"path":11,"size":1572,"width":32,"height":33,"sizeInBytes":1573},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_362d5c81ff.png","large_01_cover_362d5c81ff",652.24,652243,{"ext":26,"url":1575,"hash":1576,"mime":29,"name":1381,"path":11,"size":1577,"width":40,"height":41,"sizeInBytes":1578},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_362d5c81ff.png","small_01_cover_362d5c81ff",184.5,184501,{"ext":26,"url":1580,"hash":1581,"mime":29,"name":1387,"path":11,"size":1582,"width":48,"height":40,"sizeInBytes":1583},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_362d5c81ff.png","medium_01_cover_362d5c81ff",389.78,389775,{"ext":26,"url":1585,"hash":1586,"mime":29,"name":1393,"path":11,"size":1587,"width":55,"height":56,"sizeInBytes":1588},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_362d5c81ff.png","thumbnail_01_cover_362d5c81ff",48.32,48320,"01_cover_362d5c81ff",669.59,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_362d5c81ff.png","2026-09-17T22:41:54.007Z","2026-09-17T22:41:54.009Z",[1595],{"__component":66,"id":1596,"text":1597},302,"\u003Cp>Рабочая информация редко хранится в одном месте: регламенты лежат в wiki, шаблоны — в папках отделов, а последние уточнения остаются в чатах. Сотрудники продолжают отвлекать коллег, хотя нужный файл формально уже есть.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fapi.vc.ru\u002Fv2.8\u002Fredirect?to=https%3A%2F%2Fproceedings.neurips.cc%2Fpaper%2F2020%2Fhash%2F6b493230205f780e1bc26945df7481e5-Abstract.html&amp;postId=3026926\">Retrieval-Augmented Generation\u003C\u002Fa> (RAG) соединяет поиск по внутренним материалам с языковой моделью. Система находит подходящий фрагмент, формирует ответ и прикладывает ссылку. Если в архиве нет порядка, помощник будет так же аккуратно цитировать устаревшие сведения.\u003C\u002Fp>\u003Cp>Поэтому до выбора архитектуры стоит оценить две вещи: сколько времени уходит на консультации коллег и можно ли доверять исходным данным. Первое определяет экономику, второе — объём подготовки к пилоту.\u003C\u002Fp>\u003Ch2>Когда RAG оправдан и когда окупается\u003C\u002Fh2>\u003Cp>Я бы начал с одной темы, по которой регулярно повторяются запросы: например, про отпуска, компенсации или выдачу доступов. При 100 обращениях за 30 дней и семи минутах на каждое процесс забирает почти 12 часов специалиста.\u003C\u002Fp>\u003Cp>Дальше считаем окупаемость: сэкономленные часы умножаем на полную стоимость часа. При ставке 2500 ₽ получаем около 30 000 ₽ в месяц. Пилот за 1,5 млн ₽ в таком сценарии будет окупаться более четырёх лет даже без учёта поддержки. Для проекта это слишком долгий срок возврата инвестиций.\u003C\u002Fp>\u003Cp>Экономика сходится, когда один помощник закрывает несколько похожих тем, обращений значительно больше или время эксперта обходится дороже. Пять сравнимых потоков из нашего примера дадут годовой эффект 1,8 млн ₽ и окупят запуск примерно за 10–13 месяцев. С учётом сопровождения этот период ещё немного увеличится.\u003C\u002Fp>\u003Cp>Ради одного типового вопроса в день отдельный RAG, скорее всего, не нужен: дешевле привести в порядок wiki или обычный поиск. Пилоту нужны частые запросы, согласованные инструкции и владелец, который следит за их актуальность.\u003C\u002Fp>\u003Ch2>Из чего складывается бюджет\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_inline_55b9a32631.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_inline_55b9a32631.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_inline_55b9a32631.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_inline_55b9a32631.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_inline_55b9a32631.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>По рабочей оценке Qtim, RAG-пилот для одного процесса через внешний API стоит от 1,5–2 млн ₽. Это ориентир для ограниченного набора источников, простого интерфейса и базовых ролей. Сумму уточняют после разбора архива, интеграций и требований к безопасности.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FRAG_tablicza_byudzhet_vc_1920x1080_22830b4238.png\" alt=\"RAG_таблица_бюджет_vc_1920x1080.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_RAG_tablicza_byudzhet_vc_1920x1080_22830b4238.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_RAG_tablicza_byudzhet_vc_1920x1080_22830b4238.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_RAG_tablicza_byudzhet_vc_1920x1080_22830b4238.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_RAG_tablicza_byudzhet_vc_1920x1080_22830b4238.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Для локальной установки того же масштаба нижняя граница обычно составляет около 3 млн ₽ без закупки серверов и последующей эксплуатации. Точная вилка зависит от числа пользователей, SLA и правил защиты данных. Например, моделям gpt-oss \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fapi.vc.ru\u002Fv2.8\u002Fredirect?to=https%3A%2F%2Fopenai.com%2Findex%2Fintroducing-gpt-oss%2F&amp;postId=3026926\">требуется\u003C\u002Fa> от 16 до 80 ГБ памяти ещё до учёта резерва и пикового трафика.\u003C\u002Fp>\u003Cp>Для расчёта окупаемости нужны четыре цифры: затраты на старт, ежемесячное сопровождение, сэкономленное время и стоимость одного обращения. В смете также учитывают подготовку источников и работу владельцев разделов. Так бюджет связывается с реальной нагрузкой на команду.\u003C\u002Fp>\u003Ch2>Как подготовить данные к поиску\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_inline_9d7ff74dfd.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_inline_9d7ff74dfd.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_inline_9d7ff74dfd.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_inline_9d7ff74dfd.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_inline_9d7ff74dfd.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Даже крупную и аккуратную библиотеку нельзя целиком передать модели при каждом запросе. Поисковый слой должен быстро выбрать несколько подходящих фрагментов. Качество этого отбора зависит от структуры материалов, их актуальности и разметки.\u003C\u002Fp>\u003Cp>Длинную инструкцию лучше разбивать по завершенным шагам и правилам, оставляя вместе тему раздела, действие, условие и исключение. При автоматической нарезке по 1000 символов связанные пункты могут разойтись, и система вернет только один из них.\u003C\u002Fp>\u003Cp>Перед загрузкой отдельно разбирают структуру таблиц и содержимое скриншотов. Сохраняют название, заголовки столбцов и подписи строк, а при разделении большого массива повторяют шапку в каждой части. Текст на изображении распознают и добавляют в поисковую базу, иначе значения и даты не найдутся по запросу.\u003C\u002Fp>\u003Cp>Каждый фрагмент снабжают метаданными: указывают отдел, статус, дату вступления в силу, срок следующей проверки и владельца. Когда выходит новый регламент, прежнюю редакцию переносят в архив, а индекс обновляют. Если за эту работу никто не отвечает, база постепенно перестанет совпадать с реальными процессами компании.\u003C\u002Fp>\u003Ch2>Права доступа: что проверить до запуска\u003C\u002Fh2>\u003Cp>Разграничение прав настраивают до запуска векторного поиска по внутренним документам. Группы присваивают при индексации, а данные о пользователе получают из SSO или корпоративного каталога. Перед отбором отрывков система уже знает, какие материалы доступны конкретному сотруднику.\u003C\u002Fp>\u003Cp>Так подрядчик увидит проектные файлы, а служебные заметки не будут переданы модели. Попытка скрыть конфиденциальный текст после формирования ответа опаздывает: к этому моменту такие сведения могли оказаться в контексте, логах или кэше.\u003C\u002Fp>\u003Cp>На пилоте проверяют качество ответов и корректную изоляцию ролей. Для этого один и тот же вопрос задают от имени рядового сотрудника, руководителя и внешнего исполнителя, после чего сверяют найденные источники. Такая проверка быстро показывает ошибку в настройках фильтрации.\u003C\u002Fp>\u003Ch2>Как выбирать модель по цене ошибки\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_inline_9946db3225.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_inline_9946db3225.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_inline_9946db3225.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_inline_9946db3225.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_inline_9946db3225.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Если поиск поставил прошлогоднюю презентацию выше действующего регламента, она попадёт в контекст и будет пересказана со ссылкой. Доплата за более высокий класс здесь даст лишь более уверенную формулировку неверных сведений. Сначала команда исправляет выдачу и только потом усложняет генерацию.\u003C\u002Fp>\u003Cp>Способ обработки определяют по цене ошибки и аудитории ответа. Типовые внутренние вопросы берёт быстрая и экономичная модель. Спорные случаи отправляют на второй проход или передают юристу, финансисту или владельцу процесса.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FRAG_tablicza_czena_oshibki_vc_1920x1080_ee0cb86d16.png\" alt=\"RAG_таблица_цена_ошибки_vc_1920x1080.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_RAG_tablicza_czena_oshibki_vc_1920x1080_ee0cb86d16.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_RAG_tablicza_czena_oshibki_vc_1920x1080_ee0cb86d16.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_RAG_tablicza_czena_oshibki_vc_1920x1080_ee0cb86d16.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_RAG_tablicza_czena_oshibki_vc_1920x1080_ee0cb86d16.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Команда заранее решает, когда нужна дополнительная проверка: тема касается денег или договора, в базе есть противоречия либо текст предназначен для клиента. Такая схема снижает риск и не требует дорогой модели для каждого бытового вопроса.\u003C\u002Fp>\u003Cp>Более сильная модель пригодится для сопоставления нескольких источников и точной формулировки вывода. Для отпусков, статуса заявки или ссылки на регламент её возможности избыточны, а стоимость обращения к ней будет выше.\u003C\u002Fp>\u003Ch2>Как провести пилот и понять результат\u003C\u002Fh2>\u003Cp>Для первого запуска я бы выбрал адаптацию сотрудников, правила возврата или базу отдела продаж. В этих процессах людям часто нужна одна и та же информация, а за содержание отвечает конкретный человек. Подключение всего корпоративного архива сразу усложнит оценку результатов.\u003C\u002Fp>\u003Cp>На старте нужны 50–100 настоящих рабочих вопросов. Для каждого примера записывают ожидаемый ответ, допустимый источник и ситуацию, в которой нужен эксперт. Такой набор позволяет понять, нашелся ли нужный файл, выбрана ли действующая версия и распознала ли система отсутствие данных.\u003C\u002Fp>\u003Cp>Первые результаты лучше показывать сотруднику вместе со ссылкой на исходный документ. Команда смотрит, где механизм выбрал неверный фрагмент, что модель добавила от себя и какие файлы противоречат друг другу. Каждый такой случай сохраняют в тестовом наборе для следующих проверок.\u003C\u002Fp>\u003Cp>До запуска фиксируют число входящих вопросов, среднее время реакции и долю ответов по устаревшим материалам. После старта считают точность отбора источников, долю корректных ссылок, сэкономленные часы и стоимость одной обработки. Пилот расширяют, если он проходит проверку и экономит больше, чем стоит его сопровождение.\u003C\u002Fp>\u003Cp>В одном из проектов Qtim мы \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots?utm_source=qtim_blog&amp;utm_medium=article&amp;utm_campaign=rag-ru&amp;utm_content=case\">добавили\u003C\u002Fa> RAG к корпоративной базе знаний. Разработка заняла три месяца, а скорость поиска выросла в пять раз: сотрудники находили нужные сведения за секунды вместо часов. Результат дали подготовка корпуса и настройка выдачи под рабочие запросы.\u003C\u002Fp>\u003Cp>В кейсе Morgan Stanley внутренний помощник \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fapi.vc.ru\u002Fv2.8\u002Fredirect?to=https%3A%2F%2Fopenai.com%2Findex%2Fmorgan-stanley%2F&amp;postId=3026926\">искал\u003C\u002Fa> ответы в базе из 100 000 документов, а им пользовались более 98% команд финансовых консультантов. До масштабирования эксперты задавали реальные вопросы и проверяли, нашла ли система нужный источник и точно ли передала его смысл.\u003C\u002Fp>\u003Cp>Если хотите понять, нужен ли вам RAG и какой процесс выбрать первым, можно начать с разбора базы и сценариев. В Qtim \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots?utm_source=qtim_blog&amp;utm_medium=article&amp;utm_campaign=rag-ru&amp;utm_content=bottom\">оценим\u003C\u002Fa> состояние материалов, права, нагрузку и метрики, а затем скажем, оправдан ли пилот или задачу дешевле закрыть обычным поиском.\u003C\u002Fp>",[1599,1600],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":1603,"documentId":1604,"title":1605,"date":1606,"description":11,"order":40,"slug":1607,"showOnMainPage":13,"createdAt":1608,"updatedAt":1609,"publishedAt":1610,"locale":17,"cover":1611,"content":1646,"media_event":11,"media_areas":1650,"seo":11,"localizations":1653},418,"jknljxwtbcr6umo95k5onfcq","Мы выбрали для EdTech ту же технологию, что и Pornhub. Потому что тормоза всем мешают","2026-07-17","-tekhnologiya-pornhub-dlya-edtech","2026-07-17T13:13:00.710Z","2026-09-23T20:26:19.640Z","2026-09-23T20:26:19.703Z",{"id":1612,"documentId":1613,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":1615,"hash":1641,"ext":26,"mime":29,"size":1642,"url":1643,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1644,"updatedAt":1644,"publishedAt":1645},917,"ysirb8r7qsoxzpazzqd19053",1080,{"large":1616,"small":1622,"medium":1628,"thumbnail":1634},{"ext":26,"url":1617,"hash":1618,"mime":29,"name":1375,"path":11,"size":1619,"width":32,"height":1620,"sizeInBytes":1621},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_559dc3727e.png","large_01_cover_559dc3727e",783.3,563,783297,{"ext":26,"url":1623,"hash":1624,"mime":29,"name":1381,"path":11,"size":1625,"width":40,"height":1626,"sizeInBytes":1627},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_559dc3727e.png","small_01_cover_559dc3727e",216.85,281,216851,{"ext":26,"url":1629,"hash":1630,"mime":29,"name":1387,"path":11,"size":1631,"width":48,"height":1632,"sizeInBytes":1633},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_559dc3727e.png","medium_01_cover_559dc3727e",460.49,422,460487,{"ext":26,"url":1635,"hash":1636,"mime":29,"name":1393,"path":11,"size":1637,"width":1638,"height":1639,"sizeInBytes":1640},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_559dc3727e.png","thumbnail_01_cover_559dc3727e",60.84,245,138,60844,"01_cover_559dc3727e",683.49,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_559dc3727e.png","2026-09-23T20:25:33.940Z","2026-09-23T20:25:33.941Z",[1647],{"__component":66,"id":1648,"text":1649},381,"\u003Cp>У онлайн-урока и контента 18+ есть кое-что общее: когда все уже готовы, а видео еще грузится, настроение падает быстрее, чем полоска загрузки двигается вправо. В обоих случаях тормоза мешают процессу. Разница только в реакции: ученик напишет «меня не пускает», а пользователь Pornhub просто закроет вкладку. Без объяснений, без скриншотов, без «а у вас точно Chrome?». Был зритель — и нет зрителя.\u003Cbr>\u003Cbr>Эта история началась с образовательной платформы, название которой мы держим в секрете. Мы пришли сделать нормальный вход в онлайн-урок, а в рабочих вкладках внезапно появился Pornhub. Не самый очевидный сосед для LMS, зато отличный повод поговорить о видео, которое должно запускаться без драматической паузы. Заодно расскажу, как мы теперь ищем референсы для любых продуктов. Способ переносится на что угодно — не только на видео и не только на образование.\u003C\u002Fp>\u003Ch2>Все началось с кнопки «Войти в урок»\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-enter-lesson.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_enter_lesson_172b998d44.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_enter_lesson_172b998d44.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_enter_lesson_172b998d44.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_enter_lesson_172b998d44.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_enter_lesson_172b998d44.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Сценарий выглядел безобидно. Ученик открывает расписание, нажимает кнопку и сразу попадает на занятие. Без ссылки, потерявшейся в чате две недели назад. Без квеста «вспомни, под каким аккаунтом ты вошел в Zoom». Без традиционного сообщения преподавателю: «А урок сегодня здесь или где-то еще?»\u003Cbr>\u003Cbr>Для видеосвязи мы выбрали mediasoup — основу, вокруг которой команда собирает вход, роли и интерфейс под нужный сценарий. Ученику оставалась одна кнопка; вся техническая кухня работала за ней и не просилась в кадр.\u003Cbr>\u003Cbr>На этой «технической кухне» как раз и было больше всего работы, потому что кнопка «Войти в урок» — это четыре системы, которые договорились между собой. Оплата прошла — занятие открывается без письма администратору. Преподаватель перенес эфир — у ученика само меняется расписание, и кнопка ведет на новое время, а не в пустую комнату. Запись готова — она появляется в кабинете у тех, кому доступен курс.\u003Cbr>\u003Cbr>Самым капризным оказался обрыв связи. Отвалился Wi-Fi, уснул ноутбук, ребенок закрыл вкладку — раньше такой ученик шел искать ссылку заново и писать преподавателю. Теперь он нажимает ту же кнопку и возвращается в ту же комнату, в той же роли. Скучная функция, которая экономит больше нервов, чем любая красивая анимация.\u003Cbr>\u003Cbr>Готовый Zoom или встраиваемый SDK были бы быстрее на старте. Но тогда вход принадлежал бы чужому продукту: его экраны, его аккаунты, его лимиты. Вокруг mediasoup все собирается под школу — дороже в начале, зато кнопка ведет туда, куда нужно уроку, а не туда, куда разрешил вендор.\u003Cbr>\u003Cbr>Проект шел своим чередом, пока в сообществе нам не попалось \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fmediasoup.discourse.group\u002Ft\u002Fpornhub-uses-mediasoup\u002F685?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">обсуждение\u003C\u002Fa> той же технологии в Pornhub. Мы сверили название. Потом, вероятно, на всякий случай посмотрели историю браузера. Совпадение было слишком хорошим, чтобы оставить его шуткой для рабочего чата.\u003C\u002Fp>\u003Ch2>И тут все стало неприлично логично\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-two-viewers.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_two_viewers_0bca89e347.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_two_viewers_0bca89e347.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_two_viewers_0bca89e347.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_two_viewers_0bca89e347.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_two_viewers_0bca89e347.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Представим двух людей перед экраном. Один купил курс и пришел на занятие. Второй тоже оплатил доступ, просто сертификат в конце ему не нужен. Оба нажали кнопку и ждут, что сейчас все начнется. Спокойно отнестись к заставке «Подключаемся…» они готовы примерно одинаково.\u003Cbr>\u003Cbr>У сервисов 18+ цена паузы видна сразу. В справке Chaturbate \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fsupport.chaturbate.com\u002Fhc\u002Fen-us\u002Farticles\u002F360048401752-Show-Types?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">описаны\u003C\u002Fa> приватные шоу с поминутной оплатой и закрытые эфиры по билетам. Человек оплатил доступ и хочет перейти к трансляции. Спиннер загрузки в планы на вечер явно не входил. Лишний шаг или зависший экран легко превращают покупателя в бывшего посетителя.\u003Cbr>\u003Cbr>Масштаб добавляет нервозности. По данным годового \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.pornhub.com\u002Finsights\u002F2019-year-in-review?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">отчета\u003C\u002Fa> Pornhub, в 2019 году сайт получил более 42 млрд посещений — в среднем 115 млн в день. При таком трафике даже небольшой процент закрытых из-за задержки вкладок означает миллионы потерянных просмотров. Там плохо запустившееся видео замечает финансовый отчет.\u003Cbr>\u003Cbr>В EdTech последствия приходят в другой упаковке: сорванный урок, обращение в поддержку, раздраженный преподаватель и родитель, который уже набирает сообщение капслоком. Деньги могут потеряться позже, вместе с доверием и продлением курса. Тормозит экран, а неловко всей школе.\u003Cbr>\u003Cbr>Так шутка из рабочего чата превратилась в полезный референс: там путь до видео проверяют люди с очень коротким терпением. Экран завис — никто не пишет эссе «как улучшить сервис». Щелк, и вкладка стала историей.\u003C\u002Fp>\u003Ch2>Так мы стали подсматривать шире\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-reference-desk.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_reference_desk_9b438f70c9.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_reference_desk_9b438f70c9.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_reference_desk_9b438f70c9.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_reference_desk_9b438f70c9.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_reference_desk_9b438f70c9.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Рабочий стол с референсами обычно выглядит предсказуемо. Онлайн-школы открывают другие онлайн-школы, банки изучают банки, доставки сравнивают, у кого симпатичнее едет курьер по карте. Так удобно проверять отраслевой минимум. На десятом похожем продукте кажется, что весь интернет собрал один дизайнер.\u003Cbr>\u003Cbr>Теперь первым делом мы записываем действие человека. Ему нужно быстро попасть в оплаченный эфир? Смотрим, кто теряет деньги при каждой секунде задержки. Нужно перебрать много вариантов? Идем туда, где этот выбор уже сократили до движения пальцем. Нужно возвращать аудиторию каждый день? Открываем игры — там за ежедневную привычку бьются давно и с огоньком.\u003C\u002Fp>\u003Ch2>Как Tinder помог искать работу\u003C\u002Fh2>\u003Cp>В 2014 году сервис Jobr \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ftechcrunch.com\u002F2014\u002F05\u002F05\u002Fjobr\u002F?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">взял\u003C\u002Fa> у Tinder карточки и свайпы. Соискатель видел вакансию, требования и подходящие навыки. Свайп вправо означал интерес, влево — пропуск. Рекрутеры тем же движением разбирали карточки кандидатов. HR наконец получил интерфейс, в котором фраза «мы вам перезвоним» помещалась в один жест.\u003Cbr>\u003Cbr>Собеседование оставалось впереди. Свайп ускорял первый отсев и доводил стороны до взаимного интереса без длинной прогулки по анкетам. Дейтинг и рекрутинг начинались с одной ситуации: вариантов много, времени мало, описание «люблю путешествовать» помогает далеко не всегда.\u003Cbr>\u003Cbr>У нас этот сюжет повторился в миниатюре: когда ученик выбирает время урока в расписании, вариантов тоже может быть много, а решение должно занимать секунды. Экран выбора мы проверяли тем же вопросом, что и Jobr: можно ли решить одним движением.\u003C\u002Fp>\u003Ch2>Зачем Duolingo понадобилась сова с характером\u003C\u002Fh2>\u003Cp>Duolingo решал другую задачу: человек позанимался сегодня — как уговорить его вернуться завтра? Ответ пришел из игр. Очки, лиги и счетчик дней превратили большую цель «выучить язык» в короткий повод зайти сегодня. Занятие закончилось, цифра выросла, сова пока не смотрит с осуждением.\u003Cbr>\u003Cbr>В одном эксперименте компания \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fblog.duolingo.com\u002Fimproving-the-streak\u002F?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">упростила\u003C\u002Fa> продолжение серии: для нее стало достаточно одного урока вместо большого дневного плана. Компания сообщила о росте удержания на 14-й день на 3,3% и ежедневной аудитории на 1%. Серия работает просто: чем дольше она тянется, тем обиднее потерять ее из-за одного вечера на диване.\u003Cbr>\u003Cbr>У школы задача возвращения звучит иначе, но живет там же. Курс состоит из десятков эфиров, и ученик должен доходить до занятия снова и снова. Поэтому путь до урока мы делали одинаково коротким каждый раз: привычка держится на том, что завтра зайти так же легко, как вчера.\u003Cbr>\u003Cbr>Получился странный набор вкладок: Jobr забрал у дейтинга быстрый выбор, Duolingo поддержал привычку игровым прогрессом, Pornhub напомнил о цене паузы перед оплаченным видео. Зато правило сложилось простое: знакомое действие стоит искать в отрасли, где его уже довели до рефлекса.\u003C\u002Fp>\u003Ch2>Возвращаемся на онлайн-урок\u003C\u002Fh2>\u003Cp>В образовательной платформе мы связали видеосвязь с расписанием, ролями и доступом к оплаченному курсу. Ученик входит в занятие из личного кабинета, после сбоя подключается снова, а позже видит запись. Администратор не создает отдельные комнаты и не раздает ссылки. У поддержки становится меньше поводов расследовать загадочное «у меня ничего не работает».\u003Cbr>\u003Cbr>В этом проекте мы собрали онлайн-урок в один маршрут: вход, доступ, переносы, повторное подключение и запись. Референсы из других рынков стали для него краш-тестом, и у каждого мы взяли свое. У сервисов 18+ — цену первой секунды: между кликом и видео не должно быть промежуточных экранов. У дейтинга — скорость выбора: решение на экране расписания занимает одно движение, без анкеты на полстраницы. У игр — правило повторного входа: завтра должно быть так же легко, как вчера.\u003Cbr>\u003Cbr>Внутри школы это стало заметно по поддержке: она перестала вручную выдавать ссылки, а одинаковых сообщений «меня не пускает» стало меньше. Человек уже нажал кнопку. Дальше он либо попадает куда нужно, либо начинает ждать, искать ссылку и писать кому-то в чат. Мы строили первый вариант.\u003Cbr>\u003Cbr>Если важный сценарий рассыпался между ссылками, чатами и отдельными сервисами, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fcontacts?utm_source=blog&amp;utm_medium=article&amp;utm_campaign=pornhub-edtech\">расскажите\u003C\u002Fa> о задаче команде Qtim. Разберем путь пользователя и соберем его в единую цепочку. Желательно до того, как аудитория проведет свою аналитику кнопкой «Закрыть вкладку».\u003C\u002Fp>",[1651,1652],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":7,"documentId":8,"title":9,"date":10,"description":11,"order":6,"slug":12,"showOnMainPage":13,"createdAt":14,"updatedAt":15,"publishedAt":16,"locale":17,"cover":1655,"content":1661,"media_event":11,"media_areas":1663,"seo":11,"localizations":1666},{"id":19,"documentId":20,"name":21,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1656,"hash":58,"ext":26,"mime":29,"size":59,"url":60,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":62,"updatedAt":62,"publishedAt":63},{"large":1657,"small":1658,"medium":1659,"thumbnail":1660},{"ext":26,"url":27,"hash":28,"mime":29,"name":30,"path":11,"size":31,"width":32,"height":33,"sizeInBytes":34},{"ext":26,"url":36,"hash":37,"mime":29,"name":38,"path":11,"size":39,"width":40,"height":41,"sizeInBytes":42},{"ext":26,"url":44,"hash":45,"mime":29,"name":46,"path":11,"size":47,"width":48,"height":40,"sizeInBytes":49},{"ext":26,"url":51,"hash":52,"mime":29,"name":53,"path":11,"size":54,"width":55,"height":56,"sizeInBytes":57},[1662],{"__component":66,"id":67,"text":68},[1664,1665],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":1668,"documentId":1669,"title":1670,"date":1671,"description":11,"order":40,"slug":1672,"showOnMainPage":13,"createdAt":1673,"updatedAt":1674,"publishedAt":1675,"locale":17,"cover":1676,"content":1705,"media_event":11,"media_areas":1709,"seo":11,"localizations":1718},409,"gnlxdx5dl5wgdemt91xm57j9","4 продукта на NestJS: где стек сработал, а где мы ушли на Go\n","2026-07-23","-produkty-na-nestjs-i-go","2026-07-23T15:10:53.621Z","2026-09-23T19:33:13.357Z","2026-09-23T19:33:13.431Z",{"id":1677,"documentId":1678,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":1679,"hash":1700,"ext":26,"mime":29,"size":1701,"url":1702,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1703,"updatedAt":1703,"publishedAt":1704},885,"vopuusgi8dnl5bozwjnst17c",{"large":1680,"small":1685,"medium":1690,"thumbnail":1695},{"ext":26,"url":1681,"hash":1682,"mime":29,"name":1375,"path":11,"size":1683,"width":32,"height":1620,"sizeInBytes":1684},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_9feb9f9e40.png","large_01_cover_9feb9f9e40",878.11,878112,{"ext":26,"url":1686,"hash":1687,"mime":29,"name":1381,"path":11,"size":1688,"width":40,"height":1626,"sizeInBytes":1689},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_9feb9f9e40.png","small_01_cover_9feb9f9e40",240.1,240095,{"ext":26,"url":1691,"hash":1692,"mime":29,"name":1387,"path":11,"size":1693,"width":48,"height":1632,"sizeInBytes":1694},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_9feb9f9e40.png","medium_01_cover_9feb9f9e40",513.09,513091,{"ext":26,"url":1696,"hash":1697,"mime":29,"name":1393,"path":11,"size":1698,"width":1638,"height":1639,"sizeInBytes":1699},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_9feb9f9e40.png","thumbnail_01_cover_9feb9f9e40",66.87,66869,"01_cover_9feb9f9e40",716.83,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_9feb9f9e40.png","2026-09-23T19:30:13.665Z","2026-09-23T19:30:13.666Z",[1706],{"__component":66,"id":1707,"text":1708},372,"\u003Cp>\u003Ci>18 ролей, около 460 кандидатов, фоновые очереди и видеосвязь до 100 человек - на примерах из портфолио Qtim.\u003C\u002Fi>\u003Cbr>\u003Cbr>В портфолио Qtim есть онлайн-школа с 18 ролями, платформа аттестации с видеофиксацией экзамена, Стадикэтс с домашними заданиями и пробниками и ВКС для уроков до 100 участников. В каждом проекте стек упирался в конкретные вещи: права доступа, статусы, очереди задач, файлы, отчеты и поведение системы в пик.\u003Cbr>\u003Cbr>До разработки мы разделяем этот контур на блоки: где настраиваются права, кто меняет статус, какие операции уходят в фон, какие данные нужны отчетам, где нельзя тормозить основной сценарий. После этого становится понятно, где хватает NestJS, а где нужен отдельный инструмент.\u003Cbr>\u003Cbr>NestJS чаще подходит для бизнес-логики с кабинетами, админками, ролями, документами и интеграциями. Go взяли точечно в ВКС: там нагрузка уходит в медиаконтур WebRTC и SFU, где важны обработка потоков, стабильная задержка и контроль соединений.\u003C\u002Fp>\u003Ch2>18 ролей, которые нельзя свести к одному \"администратору\"\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_eighteen_roles_e3f6562e60.png\" alt=\"02-eighteen-roles.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_eighteen_roles_e3f6562e60.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_eighteen_roles_e3f6562e60.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_eighteen_roles_e3f6562e60.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_eighteen_roles_e3f6562e60.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">Онлайн-школе №1\u003C\u002Fa> команда Qtim подключилась после неудачного опыта клиента с предыдущими подрядчиками. Нужно было привести проект в рабочее состояние, запустить первый релиз за 3 месяца и сохранить пространство для дальнейших изменений.\u003Cbr>\u003Cbr>Для ученика это уроки, домашние задания, материалы, чат с дежурными учителями, календарь и успеваемость. Для команды проекта - больше 10 подпроектов и доступы, которые нельзя собрать в одну роль администратора.\u003Cbr>\u003Cbr>Права держатся на guards и policy-модуле: guard проверяет доступ на входе в сценарий, policy описывает действие над конкретным объектом. Для сложных правил такую схему удобно расширять через CASL - например, когда куратор видит одну группу учеников, координатор управляет расписанием, а администратор меняет настройки проекта.\u003Cbr>\u003Cbr>Модульная структура NestJS помогла развивать обучение, проверки, календарь и права отдельно. Новый блок не приходилось протаскивать через все ядро: у него появлялись свой модуль, сервисы и правила доступа.\u003Cbr>\u003Cbr>В системе 18 типов пользователей: учителя, кураторы, координаторы, администраторы и другие специалисты. Новый доступ настраивается за 15-20 минут, поэтому команда может добавлять роли по мере роста продукта.\u003Cbr>\u003Cbr>Позже часть логики вынесли в микросервисы: задания, попытки, календарь и расписание стали самостоятельнее. Связь между сервисами развели через RabbitMQ, чтобы события уходили из основного кабинета и обрабатывались независимо от пользовательского сценария.\u003C\u002Fp>\u003Ch2>460 экзаменов под видеозапись: одна ошибка в статусе рушит всю цепочку\u003C\u002Fh2>\u003Cp>У Университета Льва Толстого аттестация иностранных граждан раньше держалась на звонках, таблицах, бумаге и отдельных файлах. В проекте собрали платформу \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fattestation-platform\">аттестации иностранных граждан\u003C\u002Fa>: запись на экзамен, документы, видеофиксация и отчетность в одном контуре.\u003Cbr>\u003Cbr>Регламент разложили на NestJS-модули и сервисы: заявка проходит запись, проверку документов, сдачу, оценку, протоколы, ведомости, PDF-ответы и выгрузки для федерального реестра. Ошибка в переходе статуса здесь сразу ломает цепочку.\u003Cbr>\u003Cbr>Сотрудники в админке создают сессии, назначают специалистов, сверяют документы и результаты. Кандидат в отдельном приложении тестирует камеру и микрофон, включает запись видео, звука и экрана, сдает письменную или устную часть.\u003Cbr>\u003Cbr>Переходы статусов вынесли из контроллеров в сервисный слой: контроллер принимает действие, сервис проверяет, можно ли перевести заявку дальше, а guards закрывают доступ к медиа еще до входа в обработчик. Так проще удержать регламент, когда в процессе участвуют кандидат, администратор, экзаменатор и супер-администратор.\u003Cbr>\u003Cbr>Доступ к медиафайлам ограничили по ролям. Супер-администратор может открыть видео, администратор работает с документами и результатами, медиа ему недоступны. Через платформу прошли около 460 кандидатов; главная ценность здесь в том, что статус, документ, запись экзамена и право доступа живут в одном проверяемом процессе.\u003C\u002Fp>\u003Ch2>Все сдают ДЗ в ночь перед дедлайном - почему кабинет не ложится\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-homework-queue.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_homework_queue_f8ee665383.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_homework_queue_f8ee665383.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_homework_queue_f8ee665383.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_homework_queue_f8ee665383.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_homework_queue_f8ee665383.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">Стадикэтс\u003C\u002Fa> нужен был полноценный контур подготовки к ЕГЭ и ОГЭ: витрина курсов, расписание, домашние задания, пробники, карточки для повторения, статистика и геймификация. Проект сделали на NestJS и Nuxt.js за 5 месяцев.\u003Cbr>\u003Cbr>В EdTech пики часто приходят перед дедлайном. Ученики массово загружают решения, и проверка файлов может занять ресурсы именно тогда, когда кабинет нужен активнее всего.\u003Cbr>Тяжелые действия вынесли в фон через BullMQ и очереди на Redis. Ученик сдает задание и возвращается к урокам; отдельный воркер разбирает файлы, запускает проверку и обновляет статус результата.\u003Cbr>\u003Cbr>С голосовыми заданиями та же логика: сервер приводит записи к нужному формату в фоне, а плеер одинаково работает на разных устройствах. Куратор быстрее находит нужные фрагменты, ученик получает предсказуемое воспроизведение.\u003Cbr>\u003Cbr>Учебный сценарий при этом не ждет обработки файла. Пик уходит в очередь, кабинет принимает действие, а админка и проверка продолжают жить в своих контурах.\u003C\u002Fp>\u003Ch2>Видеосвязь на 100 человек: где NestJS перестал тянуть и мы взяли Go\u003C\u002Fh2>\u003Cp>С \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-vks\">ВКС Онлайн-школы №1\u003C\u002Fa> задача была другой: собственная видеосвязь внутри образовательной платформы, где расписание, роли, авторизация, записи занятий, массовые уроки и инструменты учителей работают без внешней ссылки.\u003Cbr>\u003Cbr>Здесь стек смешанный: видеоконтур собрали на WebRTC и Go, а API и админку оставили на NestJS. Кабинет ученика и управление уроком живут по одним правилам, ВКС-сессия - по другим.\u003Cbr>\u003Cbr>Node отлично держит тысячи одновременных I\u002FO-операций, но у видеосвязи другой профиль нагрузки. Это CPU-bound участок: WebRTC, SFU, маршрутизация медиапотоков, обработка пакетов, fan-out на десятки участников и контроль задержки. В такой зоне event loop Node может стать горлышком, поэтому медиаконтур вынесли на Go.\u003Cbr>\u003Cbr>NestJS остался там, где он сильнее: роли, авторизация, расписание, записи занятий, админка и связи с основным продуктом. Для пользователя это один интерфейс, а внутри - два разных профиля нагрузки.\u003C\u002Fp>\u003Ch2>Обратная сторона: где стек стоил дороже, чем казалось\u003C\u002Fh2>\u003Cp>Если статья про уроки, честно назвать и те, что дались через боль. Модульность NestJS окупается на больших продуктах, но на маленьком сервисе тот же каркас - лишняя церемония: иногда одного хендлера хватило бы, а мы заводили модуль, провайдер и правила доступа.\u003Cbr>\u003Cbr>Вынос логики в микросервисы, как в Онлайн-школе, дает независимость, но добавляет распределенную отладку и согласованность, которую держишь руками. Это решение под нагрузку, а не по умолчанию.\u003Cbr>\u003Cbr>Go в ВКС тоже не бесплатная кнопка ускорения: появляется отдельный рантайм, сборка, деплой, мониторинг и граница ответственности между продуктовой логикой и медиаконтуром. Все три - осознанные размены, и мы идем на них, когда выгода понятна заранее.\u003C\u002Fp>\u003Ch2>Когда берём NestJS, а когда нет\u003C\u002Fh2>\u003Cp>Перед разработкой команда Qtim смотрит, что в продукте будет меняться после запуска: роли, регламенты, фоновые операции, пиковые нагрузки, мобильный контур и внешние интеграции.\u003Cbr>\u003Cbr>NestJS берем для сервисов, где много бизнес-правил: кабинеты, админки, документы, платежи, отчеты, клиентские приложения. Его удобно использовать там, где важны модули, guards, providers, очереди и понятные границы сценариев.\u003Cbr>\u003Cbr>Go, WebRTC или другой отдельный инструмент используем там, где профиль нагрузки отличается от основной логики: медиапотоки, CPU-bound обработка, отдельный рантайм или жесткие требования к задержке. Для каждого такого решения заранее определяем участок работы.\u003Cbr>\u003Cbr>После релиза продукт быстро меняется: добавляется тип пользователя, обновляется регламент, растет нагрузка, приходит мобильный клиент, нужен отчет или новая интеграция. Поэтому мы оцениваем стек по тому, как система переживет следующие изменения.\u003Cbr>\u003Cbr>Проект с личными кабинетами, ролями, документами, мобильным контуром или нагрузочными участками можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas\">обсудить\u003C\u002Fa> с нашей командой в направлении разработки SaaS-сервисов и PaaS-платформ. Больше кейсов с похожими архитектурными задачами \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\">смотрите\u003C\u002Fa> в портфолио: EdTech, ВКС и внутренние продукты.\u003C\u002Fp>",[1710,1711],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17},29,"yuxcudh09wo6lky0b7ikokmb","Управление проектами","upravlenie-proektami","2026-07-30T14:30:32.907Z","2026-07-30T14:30:32.928Z",[],{"id":1720,"documentId":1721,"title":1722,"date":1723,"description":11,"order":40,"slug":1724,"showOnMainPage":13,"createdAt":1725,"updatedAt":1726,"publishedAt":1727,"locale":17,"cover":1728,"content":1757,"media_event":11,"media_areas":1761,"seo":11,"localizations":1764},352,"nlh8oehrwqcexi2atoqykh3s","Как мы для онлайн-школы выбирали между коробкой, конструктором и стройкой с нуля — и что из этого выходит по деньгам\n","2026-07-27","-vybor-mezhdu-korobkoy-konstruktorom-i-stroykoy-onlayn-shkoly","2026-07-27T15:09:01.113Z","2026-09-20T16:12:21.034Z","2026-09-20T16:12:21.186Z",{"id":1729,"documentId":1730,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1731,"hash":1752,"ext":26,"mime":29,"size":1753,"url":1754,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1755,"updatedAt":1755,"publishedAt":1756},843,"x9bggc2o6loyx4h6gtmzpuyt",{"large":1732,"small":1737,"medium":1742,"thumbnail":1747},{"ext":26,"url":1733,"hash":1734,"mime":29,"name":1375,"path":11,"size":1735,"width":32,"height":33,"sizeInBytes":1736},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_d54f9f41c5.png","large_01_cover_d54f9f41c5",714.63,714632,{"ext":26,"url":1738,"hash":1739,"mime":29,"name":1381,"path":11,"size":1740,"width":40,"height":41,"sizeInBytes":1741},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_d54f9f41c5.png","small_01_cover_d54f9f41c5",204.09,204090,{"ext":26,"url":1743,"hash":1744,"mime":29,"name":1387,"path":11,"size":1745,"width":48,"height":40,"sizeInBytes":1746},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_d54f9f41c5.png","medium_01_cover_d54f9f41c5",430.28,430282,{"ext":26,"url":1748,"hash":1749,"mime":29,"name":1393,"path":11,"size":1750,"width":55,"height":56,"sizeInBytes":1751},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_d54f9f41c5.png","thumbnail_01_cover_d54f9f41c5",54.89,54887,"01_cover_d54f9f41c5",635.07,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_d54f9f41c5.png","2026-09-20T16:09:02.711Z","2026-09-20T16:09:02.712Z",[1758],{"__component":66,"id":1759,"text":1760},316,"\u003Cp>Почти каждый разговор про EdTech-платформу начинается одинаково. «Мы хотим свою онлайн-школу. Сколько стоит и когда будет готово?» И вот тут я всегда беру паузу — не потому что не знаю, а потому что честный ответ звучит невежливо: «Зависит от того, что вы на самом деле собираетесь строить, а этого пока не знаете ни вы, ни я».\u003Cbr>\u003Cbr>Мы делаем образовательные платформы уже несколько лет — от школ на пару тысяч активных учеников до систем видеосвязи, которые заменили школе Zoom. И почти весь бюджет проекта решается не в момент, когда мы называем цифру, а раньше — на одной развилке, которую заказчики обычно проскакивают, не заметив. Про нее и расскажу. Заодно покажу, где смета в EdTech взрывается на пустом месте, а где, наоборот, можно не переплачивать.\u003C\u002Fp>\u003Ch2>Развилка, на которой решается всё\u003C\u002Fh2>\u003Cp>Представьте, что вы хотите открыть кафе. Можно купить франшизу, где всё придумано за вас. Можно взять помещение с готовой кухней и поставить своё меню. А можно запускать кафе с нуля: проектировать вентиляцию, закупать оборудование, выбирать посуду. Три разных бюджета, три разных срока, три разных уровня свободы. И ни один из вариантов не «правильный» — правильный тот, что подходит под вашу ситуацию.\u003C\u002Fp>\u003Cp>С EdTech-платформой ровно то же самое, только развилку эту почти никто не проговаривает вслух. А зря — потому что именно она, а не выбор фреймворка и не дизайн кнопок, определяет и деньги, и сроки. У нас в практике три сценария, и я разберу каждый на реальном проекте.\u003C\u002Fp>\u003Ch2>Сценарий первый: не строить то, что уже построено\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-scenariy-pervyy.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_scenariy_pervyy_77a41c1ac9.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_scenariy_pervyy_77a41c1ac9.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_scenariy_pervyy_77a41c1ac9.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_scenariy_pervyy_77a41c1ac9.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_scenariy_pervyy_77a41c1ac9.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Есть соблазн считать, что «своя платформа» обязательно значит «написанная с нуля». Это дорогая иллюзия. Если базовая механика вашей школы стандартна — расписание, вебинары, тесты, — то строить под неё инфраструктуру заново примерно так же разумно, как отливать собственные кирпичи перед постройкой дома.\u003C\u002Fp>\u003Cp>Для \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fmayak-study\">Mayak.study\u003C\u002Fa> мы взяли готовое LMS-решение как фундамент. Не потому что поленились, а потому что ценность проекта была не в базе, а в надстройке: отчетность, онлайн-трансляции, пробные экзамены, контроль посещаемости, аналитика. Именно эти модули отличали Mayak.study от типовой онлайн-школы. Команда не потратила ни месяца на изобретение расписания — и вложила это время туда, где оно давало отдачу.\u003C\u002Fp>\u003Cp>Плата за скорость — жесткость. Вы живёте в рамках чужой архитектуры, и когда захотите что-то, чего коробка не умеет, упритесь в стену. Но если ваши хотелки в эту стену пока не упираются — это самый быстрый и дешевый путь на рынок.\u003C\u002Fp>\u003Cblockquote>\u003Cp>Перед выбором коробки стоит описать будущие сценарии школы: роли через полгода, нужные отчеты, правила проверки и коммуникации, которые придется менять без вендора. Если уже на этом этапе видны исключения, завязанные на обходные настройки и переписку с поддержкой, готовая LMS быстро начнет тормозить развитие. При стандартном ближайшем росте решение с надстройкой обычно дешевле и быстрее.\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>Сценарий второй: собрать разбросанное в одно\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-scenariy-vtoroy.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_scenariy_vtoroy_e085322786.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_scenariy_vtoroy_e085322786.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_scenariy_vtoroy_e085322786.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_scenariy_vtoroy_e085322786.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_scenariy_vtoroy_e085322786.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Другая частая история: у школы уже что-то работает, но живет по кусочкам. Один курс на одной платформе, второй — на другой, аналитика в третьем месте, а общей картины по ученику нет ни у кого.\u003C\u002Fp>\u003Cp>С этим мы столкнулись на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">Studycats\u003C\u002Fa>. Было шесть отдельных курсов — история, русский, обществознание, английский, литература, математика, — и каждый жил своей жизнью: свои ученики, своя аналитика, своё расписание. Для школы это значит, что ни один вопрос вида «сколько у нас всего активных учеников» или «где проседает вовлеченность» не имеет быстрого ответа — данные приходится сшивать вручную.\u003C\u002Fp>\u003Cp>Мы собрали шесть курсов в одну платформу с общей базой пользователей и сквозной аналитикой. Сверху достроили то, что и делает её продуктом, а не просто складом уроков:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e37f00a3f4ea27919af2016d10660fb45\">Единый вход и витрина курсов — ученик видит всё в одном кабинете, а не логинится в шесть разных мест.\u003C\u002Fli>\u003Cli data-list-item-id=\"e2e548a51e95cd34f7fdf9d9c9d2be61d\">Учебный контур — расписание, домашки с проверкой (автоматической, ручной и даже аудио — под разные типы заданий), пробные экзамены.\u003C\u002Fli>\u003Cli data-list-item-id=\"e82717c7eefd25f9a9bf1089af487e68d\">Механики удержания, подсмотренные у игр. Стрики, уровни, питомец-маскот, который растёт вместе с прогрессом. Интервальное повторение через карточки — чтобы пройденное не выветривалось. И внутренняя валюта, котокоины, которую можно получать за занятия и тратить, — на ней же построена реферальная программа: ученики приводят учеников.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Смысл всей этой геймификации не в «сделать помилее». Онлайн-обучение проваливается не там, где плохой контент, а там, где человек перестаёт заходить. Стрики и маскот дают повод вернуться сегодня, а не «когда-нибудь домучаю курс». Запустили к 1 сентября — специально к началу учебного года, — и на старте платформа держала больше тысячи учеников. Вся сборка заняла пять месяцев.\u003C\u002Fp>\u003Cp>Это не стройка с нуля и не коробка, а промежуточный режим: вы связываете существующее в целое и достраиваете общий слой сверху. Дешевле полного цикла, гибче коробки — но требует, чтобы у вас уже было что связывать.\u003C\u002Fp>\u003Ch2>Сценарий третий: когда платформа и есть ваш продукт\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-scenariy-tretiy.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_scenariy_tretiy_278f9abc0c.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_scenariy_tretiy_278f9abc0c.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_scenariy_tretiy_278f9abc0c.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_scenariy_tretiy_278f9abc0c.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_scenariy_tretiy_278f9abc0c.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>И только теперь — тот самый полный цикл с нуля, ради которого обычно и приходят. Он оправдан, когда платформа не обслуживает бизнес, а сама им является: когда нагрузка, роли и логика уникальны, а конкурентное преимущество зашито именно в том, как всё устроено внутри.\u003C\u002Fp>\u003Cp>Так мы делали \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">Онлайн-Школу №1\u003C\u002Fa>. Масштаб, ради которого вообще стоило городить полный цикл: 2 840 активных учеников за 30 дней, 24 предмета, 11 факультативов, отдельный поток подготовки к ЕГЭ. На таком объёме коробка и конструктор уже трещат по швам — и вот почему.\u003C\u002Fp>\u003Cp>Учебное ядро мы собрали как веб-платформу на микросервисах: Node.js, NestJS, Nuxt.js, PostgreSQL, Redis, RabbitMQ. Сразу оговорюсь про частую путаницу — учебная часть живёт в вебе (расписание, ДЗ, материалы, мониторинг, коммуникация), а мобильные приложения закрывают узкие сценарии, а не дублируют платформу. Строить мобильную копию всего — это удвоить бюджет ради удобства, которое веб и так даёт.\u003C\u002Fp>\u003Cp>Что этот выбор дал на практике:\u003C\u002Fp>\u003Cp>Ролевая модель под рост. Восемнадцать ролей, и новая заводится за 15–20 минут. Звучит скучно, пока школа не начинает еженедельно придумывать новые типы сотрудников — кураторов, тьюторов, проверяющих. В коробке каждая такая роль превратилась бы в переписку с поддержкой вендора; у нас это движение на пару минут.\u003C\u002Fp>\u003Cp>Автоматизация рутины. Около 80% проверок домашних заданий ушло в автомат, тестирование держит 14 типов вопросов. В переводе на человеческий — примерно 25 часов в неделю, которые преподаватели больше не тратят на ручную проверку.\u003Cbr>\u003Cbr>И честно про обратную сторону, потому что микросервисы — это не бесплатный обед. Распределённая отладка, согласованность данных между сервисами, инфраструктура — всё это стоит времени команды. На маленьком проекте такая архитектура была бы дорогим украшением. Она отбивается там, где заложен рост. Онлайн-Школа №1 — ровно этот случай, и результат виден в цифрах: конверсия в оплату выросла с 12% до 27%, удержание — с 48% до 64%.\u003C\u002Fp>\u003Cblockquote>\u003Cp>Раньше система школы жила в головах сотрудников — кто где что смотрит и как свести отчет. У куратора это была ссылка на Zoom в одном месте, чат — в другом, расписание — в гугл-таблице, а отчет по классу собирался вручную из трех источников. Любая нестыковка становилась личной проблемой конкретного человека: потерялась ссылка, разъехались цифры, кто-то забыл обновить таблицу. Теперь система живет в платформе, а не в чьей-то голове или переписке в чате. Отчет по классу — это не ручное сведение, а один экран, которому можно доверять. Вот в этом и есть разница между набором сервисов и продуктом: сервисы работают каждый сам по себе, а продукт держит в себе весь процесс школы целиком\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>Отдельная глава: когда дешевле построить свой Zoom, чем платить за чужой\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"05-sobstvennaya-vks.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F05_sobstvennaya_vks_fad85e0e7b.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_05_sobstvennaya_vks_fad85e0e7b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_05_sobstvennaya_vks_fad85e0e7b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_05_sobstvennaya_vks_fad85e0e7b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_05_sobstvennaya_vks_fad85e0e7b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Самое контринтуитивное решение на этом проекте — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-vks\">собственная видеосвязь\u003C\u002Fa> вместо Zoom или Teams. На первый взгляд чистое переусложнение: готовые сервисы же есть, бери и подключай. Но давайте посмотрим не на технологию, а на то, как выглядит обычный будний вечер в онлайн-школе на чужом видеосервисе.\u003C\u002Fp>\u003Cp>Ученик ищет ссылку на урок, потерявшуюся в чате две недели назад. Преподаватель отвечает на пятое сообщение «а урок сегодня здесь или где?». Куратор вручную сверяет, кто был на занятии, выгружая список из стороннего сервиса. Родитель просит запись, а её надо где-то отдельно найти и переслать. Ничего не сломалось — просто каждый вечер школа теряет по чуть-чуть времени и нервов на ровном месте.\u003C\u002Fp>\u003Cp>Своя видеосвязь убирает этот вечер целиком. Ученик заходит на урок одной кнопкой из личного кабинета — без ссылок, паролей и «точно здесь?». Отвалился Wi-Fi или закрылась вкладка — нажал ту же кнопку, вернулся в ту же комнату. Посещаемость считается сама и сразу лежит в системе. Записи автоматически появляются у тех, кому положено — ученикам, кураторам, родителям. И, что для образовательного бизнеса в России стало уже операционным риском, а не гипотетическим, — никакой зависимости от зарубежных вендоров, которые могут в любой момент передумать.\u003C\u002Fp>\u003Cp>Технически под капотом WebRTC и десктоп-приложение для учителя с демонстрацией экрана и управлением вниманием класса, но ученику всей этой кухни не видно — ему видна одна кнопка. Собрали за восемь месяцев, нагрузку массовых уроков держит стабильно, проект взял первое место в номинации «Цифровая трансформация». Готовый SDK был бы быстрее на старте — но тогда вход в урок принадлежал бы чужому продукту, с его экранами, лимитами и правилами, а не школе.\u003C\u002Fp>\u003Ch2>Так во что же это обходится\u003C\u002Fh2>\u003Cp>Теперь про деньги, ради которых вы, скорее всего, и открыли эту статью. Назвать цену EdTech-платформы «в среднем» так же осмысленно, как назвать среднюю стоимость дома: землянка и особняк формально оба дома. Но факторы, которые двигают смету, всегда одни и те же — и по ним вы сможете прикинуть свой случай ещё до разговора с любым подрядчиком.\u003C\u002Fp>\u003Cp>Первый и главный — тот самый сценарий: коробка, конструктор или стройка с нуля. Разница между ними не в процентах, а в разах: коробка с надстройкой (как Mayak.study) и полный цикл под масштаб (как Онлайн-Школа №1) — это два разных финансовых мира, а сборка из фрагментов (Studycats) лежит где-то между. Это решение стоит принять осознанно, а не по инерции «хотим всё своё».\u003C\u002Fp>\u003Cp>Дальше — число и сложность модулей. Расписание, домашки с автопроверкой, пробники, геймификация, аналитика, оплаты: каждый добавляет не только разработку, но и вечную поддержку. Сложность ролевой модели: чем тоньше права доступа, тем дороже логика — зато заложенная гибкость потом экономит. Собственная инфраструктура вроде видеосвязи или прокторинга — это отдельные подпроекты, оправданные, когда аренда упирается в риски, а не «чтобы было». И горизонт роста: платформа «на сейчас» и платформа «под трехкратный рост» — это два разных бюджета уже на старте, потому что закладываются в архитектуру с первого дня.\u003C\u002Fp>\u003Cp>Чтобы не оставлять вас совсем без ориентиров, вот как это ложится в порядки величин:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e4d4508767704c69e993e8a1654cf07d9\">Коробка с надстройкой — ориентировочно от 1,5 до 4 млн ₽. Самый предсказуемый бюджет: базу не пишем, платим за настройку и надстройку под вашу операционку.\u003C\u002Fli>\u003Cli data-list-item-id=\"e61b9b4b8df8897029474a81ecbb89939\">Сборка из фрагментов — примерно 4–8 млн ₽. Зависит от того, сколько всего сшиваем и в каком состоянии то, что уже есть.\u003C\u002Fli>\u003Cli data-list-item-id=\"e11ee4a4117048586dd7a4c328e00b987\">Полный цикл под масштаб — от 8–10 млн ₽ и вверх. Верхней границы, по сути, нет — она определяется тем, сколько модулей и какой рост вы закладываете; крупные платформы уходят и за 20 млн.\u003C\u002Fli>\u003C\u002Ful>\u003Cblockquote>\u003Cp>Сильнее всего смета растет на связности: ролях, интеграциях, правах доступа и данных. На встрече это звучит просто: подключим CRM, оплаты и аналитику. Потом выясняется, что у маркетинга одна логика сегментов, у методистов другая, у кураторов третья. Когда эти зависимости пропускают до старта, команда платит дважды: сначала за быстрый запуск, затем за миграцию, перенастройку ролей и пересборку связей между сервисами. Экономия на проектировании быстро превращается в отдельный бюджет на исправления\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>И про сроки — та же история\u003C\u002Fh2>\u003Cp>«Когда будет готово» — вопрос-близнец вопроса про деньги, и ответ у него такой же честный и такой же неудобный: смотря что считать готовым. Первый работающий релиз и завершенная платформа — это разные горизонты, и путать их — верный способ разочароваться.\u003C\u002Fp>\u003Cp>Реальные ориентиры из наших проектов:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ed8c6b376fff2a8442c9f6d5933f5c555\">Коробка с надстройкой — около полугода. Столько заняла Mayak.study: базовую инфраструктуру не строили, время ушло на отчётность, вебинары и пробники.\u003C\u002Fli>\u003Cli data-list-item-id=\"ea50ee00578e56a7a3191f49ec66aa25b\">Сборка из фрагментов — порядка пяти месяцев. Studycats собрали ровно к 1 сентября, с жёстким дедлайном под учебный год.\u003C\u002Fli>\u003Cli data-list-item-id=\"eb75107de1eb528d15ca594d4c728c2b0\">Полный цикл, первый релиз ядра — от трёх месяцев. Именно за три мы подняли работающее ядро Онлайн-Школы №1. Но важная оговорка: это MVP, а не «вся платформа». Сотрудничаем с 2021 года, и всё это время она растёт итерациями.\u003C\u002Fli>\u003Cli data-list-item-id=\"ee0884843b0ce9d23595e6bde3fa300c7\">Отдельная сложная подсистема (например, своя видеосвязь) — около восьми месяцев поверх основного проекта, потому что реальное время и нагрузка массовых уроков прощают меньше, чем обычный веб.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Отсюда простое правило планирования: закладывайтесь на то, что полный цикл стартует с MVP-ядра за несколько месяцев, а дальше живёт и достраивается. Образовательный продукт вообще редко бывает «доделан» — и это не баг, а нормальная его жизнь.\u003C\u002Fp>\u003Ch2>Что со всем этим делать\u003C\u002Fh2>\u003Cp>Если свести всё к одному совету, он будет не про технологии, а про порядок вопросов. Начинать не с «сколько стоит», а с двух других: насколько уникальна ваша учебная механика и на какой рост вы закладываетесь. Ответы на них определят сценарий, сценарий определит сроки и смету, а не наоборот. Заказчики, которые проходят эту развилку осознанно, почти никогда потом не переплачивают за переделки — а именно переделки, а не разработка, обычно и взрывают бюджет.\u003C\u002Fp>\u003Cp>Если вы как раз стоите перед этой развилкой и не уверены, что выбрать — коробку, конструктор или полный цикл, — расскажите о задаче нашей команде. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\">Разберём\u003C\u002Fa> ваш сценарий и честно скажем, где не надо строить с нуля. В том числе если выяснится, что вам и правда хватит коробки — такое тоже бывает, и говорить об этом мы не стесняемся.\u003C\u002Fp>",[1762,1763],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":1766,"documentId":1767,"title":1768,"date":1769,"description":11,"order":40,"slug":1770,"showOnMainPage":13,"createdAt":1771,"updatedAt":1772,"publishedAt":1773,"locale":17,"cover":1774,"content":1808,"media_event":11,"media_areas":1812,"seo":11,"localizations":1815},353,"u6ilvydbctqytrf7heo2scno","Кнопка «Войти» за миллионы: когда бизнесу правда нужна своя ВКС\n","2026-07-28","-knopka-voiti-za-milliony-kogda-biznesu-pravda-nuzhna-svoya-vks","2026-07-28T13:47:41.153Z","2026-09-20T19:43:08.311Z","2026-09-20T19:43:08.377Z",{"id":1775,"documentId":1776,"name":1777,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1778,"hash":1803,"ext":26,"mime":29,"size":1804,"url":1805,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1806,"updatedAt":1806,"publishedAt":1807},829,"udo3oy290qdqe1qxfzq2dx0h","01-cover-v3.png",{"large":1779,"small":1785,"medium":1791,"thumbnail":1797},{"ext":26,"url":1780,"hash":1781,"mime":29,"name":1782,"path":11,"size":1783,"width":32,"height":33,"sizeInBytes":1784},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_v3_8e4746a819.png","large_01_cover_v3_8e4746a819","large_01-cover-v3.png",496.14,496135,{"ext":26,"url":1786,"hash":1787,"mime":29,"name":1788,"path":11,"size":1789,"width":40,"height":41,"sizeInBytes":1790},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_v3_8e4746a819.png","small_01_cover_v3_8e4746a819","small_01-cover-v3.png",131.84,131844,{"ext":26,"url":1792,"hash":1793,"mime":29,"name":1794,"path":11,"size":1795,"width":48,"height":40,"sizeInBytes":1796},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_v3_8e4746a819.png","medium_01_cover_v3_8e4746a819","medium_01-cover-v3.png",289.23,289227,{"ext":26,"url":1798,"hash":1799,"mime":29,"name":1800,"path":11,"size":1801,"width":55,"height":56,"sizeInBytes":1802},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_v3_8e4746a819.png","thumbnail_01_cover_v3_8e4746a819","thumbnail_01-cover-v3.png",33.48,33475,"01_cover_v3_8e4746a819",459.2,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_v3_8e4746a819.png","2026-09-20T15:29:31.962Z","2026-09-20T15:29:31.963Z",[1809],{"__component":66,"id":1810,"text":1811},317,"\u003Cp>Пользователь оплатил урок, открыл расписание и нажал «Войти». Через секунду он рассчитывает увидеть преподавателя. Искать ссылку в чате и вспоминать аккаунт Zoom он не планировал.\u003Cbr>\u003Cbr>Кнопка «Войти» за миллионы — короткое название всей системы вокруг звонка. За ней стоят проверка доступа, нужная комната и данные, которые вернутся в учебную платформу после урока. В этот момент видеосвязь уже управляет частью услуги. Ее нужно проектировать вместе с расписанием, оплатой и личным кабинетом.\u003Cbr>\u003Cbr>Такую задачу мы решали для \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-vks\">Онлайн-Школы №1\u003C\u002Fa>: урок должен был открываться из расписания, а данные до и после занятия — оставаться внутри платформы. На этом проекте хорошо видно, в какой момент внешней ссылки уже мало и видеосвязь приходится встраивать в продукт.\u003C\u002Fp>\u003Ch2>Внешняя ссылка справляется, пока встреч мало\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-external-link-v2.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_external_link_v2_342d896499.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_external_link_v2_342d896499.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_external_link_v2_342d896499.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_external_link_v2_342d896499.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_external_link_v2_342d896499.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Для первых встреч готовый сервис видеосвязи решает задачу. Он дешевле, быстрее и не требует отдельной команды под качество связи, записи, устройства, модерацию и поддержку.\u003Cbr>Если групп, преподавателей или экспертов немного, администратор успевает сам отправить ссылку, после занятия забрать запись и помочь пользователю, который потерял приглашение. Для проверки гипотезы этого хватает.\u003Cbr>\u003Cbr>Так можно жить долго, если встреча остается второстепенной. Отдел продаж иногда проводит демо, куратор раз в месяц собирает группу, поддержка подключается к клиенту только в сложных случаях. Здесь своя ВКС превращается в дорогую игрушку.\u003C\u002Fp>\u003Ch2>После оплаты лишняя ссылка ломает путь\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_broken_journey_v2_f80314f4aa.png\" alt=\"03-broken-journey-v2.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_broken_journey_v2_f80314f4aa.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_broken_journey_v2_f80314f4aa.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_broken_journey_v2_f80314f4aa.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_broken_journey_v2_f80314f4aa.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Пользователь уже записался, выбрал слот, получил доступ и открыл личный кабинет. Теперь он ждет одну кнопку и понятное продолжение. Новая вкладка прерывает сценарий: приходится снова разбираться со входом и интерфейсом.\u003Cbr>\u003Cbr>В онлайн-школе ученик открывает расписание и нажимает на занятие. В этот момент система должна проверить оплату, группу, срок доступа, преподавателя, материалы к уроку и право на запись после занятия.\u003Cbr>\u003Cbr>В медицине та же проблема возникает на приеме: пациент записался, врач видит карточку, консультация попадает в историю, доступ к записи регулируется ролью. В поддержке созвон связан с обращением, SLA, ответственным сотрудником и итогом разбора.\u003Cbr>Когда таких связей много, внешняя ссылка рвет сценарий. Пользователь уходит в другое окно, повторно проходит доступ, путается в приглашениях и пишет в поддержку. Команда тем временем склеивает события в таблицах, чатах, CRM и админке.\u003C\u002Fp>\u003Ch2>Звонок закончился. Данные остались\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_data_after_call_v2_base_eb1d4438e3.png\" alt=\"04-data-after-call-v2-base.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_data_after_call_v2_base_eb1d4438e3.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_data_after_call_v2_base_eb1d4438e3.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_data_after_call_v2_base_eb1d4438e3.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_data_after_call_v2_base_eb1d4438e3.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>После урока или консультации команде нужно понять, что произошло: кто пришел, кто опоздал, сколько времени каждый провел в комнате, когда пропала связь, сохранилась ли запись и какие встречи требуют проверки качества.\u003Cbr>\u003Cbr>Пока встреч мало, картину можно восстановить из сообщений: кто-то помнит время сбоя, кто-то прислал скриншот, преподаватель написал администратору. С ростом сервиса такой способ разваливается. Нужны события, статусы, логи, записи, расшифровки и аналитика рядом с продуктом.\u003Cbr>\u003Cbr>Иногда решающим становится контур хранения. Если внутренние требования безопасности или договор ограничивают место хранения, записи консультаций и данные учеников должны оставаться в согласованной инфраструктуре. Внешний провайдер подходит, если у него можно выбрать нужное размещение, сроки хранения и правила доступа.\u003Cbr>\u003Cbr>Для SaaS-продукта это особенно чувствительно. Если видеозвонок входит в платный сценарий, сбой в комнате становится проблемой всего сервиса: растут обращения в поддержку, появляются возвраты, падает доверие к продукту. Пользователь не делит опыт на «платформу» и «внешнюю ВКС».\u003C\u002Fp>\u003Ch2>Чужая ВКС живет по своим правилам\u003C\u002Fh2>\u003Cp>Готовый сервис умеет звонить, записывать и приглашать участников. Бизнес-логику конкретного продукта он не знает. У провайдера свои роли, модель комнат, настройки доступа, события, аналитика и планы развития.\u003Cbr>\u003Cbr>Между внешней ссылкой и разработкой собственной ВКС есть промежуточный вариант: встроить Zoom Meeting SDK или взять платформу вроде Jitsi или LiveKit. Zoom оставляет звонок на стороне провайдера, но показывает его внутри вашего интерфейса. Jitsi и LiveKit можно развернуть на своей инфраструктуре и получить больше контроля.\u003Cbr>\u003Cbr>Встраиваемого решения хватает, когда продукту нужны вход из кабинета, базовые события и записи, а модель ролей, лимиты и условия хранения подходят бизнесу. При самостоятельном размещении команда берет на себя медиаинфраструктуру и ее поддержку. Когда SDK не передает нужное событие или чужие лимиты начинают менять продуктовую логику, команда упирается в тот же потолок внешнего инструмента.\u003C\u002Fp>\u003Ch2>Когда сбой в звонке начинает стоить денег\u003C\u002Fh2>\u003Cp>В онлайн-школе цена сбоя возникает сразу: ученик оплатил конкретный модуль, а кнопка должна открыть именно его урок. Если доступ не сработал, проблема видеосвязи превращается в сорванную оплаченную услугу.\u003Cbr>\u003Cbr>В поддержке звонок привязан к обращению. После разговора в карточке должны остаться запись и итог разбора. Если они теряются между сервисами, сотрудник восстанавливает ход встречи по чатам и скриншотам, а клиент ждет.\u003C\u002Fp>\u003Ch2>Один клик из расписания: кейс Онлайн-Школы №1\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F05_one_click_case_base_b7f6fd8d98.png\" alt=\"05-one-click-case-base.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_05_one_click_case_base_b7f6fd8d98.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_05_one_click_case_base_b7f6fd8d98.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_05_one_click_case_base_b7f6fd8d98.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_05_one_click_case_base_b7f6fd8d98.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>В Онлайн-Школе №1 живые занятия — один из главных процессов. Мы спроектировали собственную ВКС на базе WebRTC и напрямую связали ее с учебной платформой.\u003Cbr>Ученик входит в комнату из расписания без дополнительных логинов и паролей. Для учителя сделали отдельное приложение на Electron: в нем можно показывать экран и материалы, работать с доской, следить за поднятыми руками и реакциями. Записи после урока доступны ученику и куратору.\u003Cbr>\u003Cbr>Посещение засчитывается после заданного школой порога — примерно 15–20 минут. Так факт входа в комнату еще не равен факту участия в уроке. ВКС работает по правилам учебного процесса, а данные о занятии остаются в LMS.\u003Cbr>\u003Cbr>На нагрузочных прогонах моделировали несколько одновременных уроков. В параллельных комнатах суммарно было около 100 подключений «ботов-учеников»; сессии оставались стабильными, без падений. Перед релизами отдельно проверяли работу камеры, микрофона и захвата экрана в актуальных браузерах.\u003Cbr>\u003Cbr>Подробно архитектуру, сценарии и тестирование показали в \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-vks\">кейсе ВКС\u003C\u002Fa> для Онлайн-Школы №1.\u003C\u002Fp>\u003Ch2>Своя ВКС дороже на старте. Когда она оправдана\u003C\u002Fh2>\u003Cp>Основные статьи расходов — инфраструктура, контроль качества связи, нагрузочные тесты, хранение записей и безопасность. После запуска понадобится бюджет на восстановление после сбоев, поддержку устройств и развитие интерфейса.\u003Cbr>\u003Cbr>Перед разработкой стоит решить, какую часть пользовательского пути бизнес хочет контролировать сам. Для этого достаточно пройти несколько вопросов.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eb81f9736d2d14067b173e6144f74f538\">Встреча связана с оплатой, расписанием или правами доступа?\u003C\u002Fli>\u003Cli data-list-item-id=\"e8c1b83e62ac7ce1af6075fc8f2d698a1\">Есть ли разные роли с разными возможностями внутри звонка?\u003C\u002Fli>\u003Cli data-list-item-id=\"e8d47538390a4419fd4590a2846a074f8\">Нужны ли записи, расшифровки, посещаемость, логи и аналитика в продукте?\u003C\u002Fli>\u003Cli data-list-item-id=\"ef920ed24923416477e15877a3e0e4697\">Есть ли требования к тому, где хранятся записи и данные участников?\u003C\u002Fli>\u003Cli data-list-item-id=\"e86c125faf6fbe974ad3cd9a83e0ba904\">Влияет ли качество встречи на возвраты, поддержку, удержание или оценку услуги\u003C\u002Fli>\u003Cli data-list-item-id=\"e6d0f795eb2e2290bd9ac5b2bd7be2b57\">Приходится ли команде регулярно переносить данные между ВКС, CRM, LMS, МИС или личным кабинетом?\u003C\u002Fli>\u003Cli data-list-item-id=\"e45683e07bbdb53aad6d93164d55531a6\">Мешают ли ограничения внешнего сервиса менять основной сценарий?\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Считать ответы механически не стоит. Один критичный пункт — например, доступ к оплаченной услуге или возврат данных в продукт — может перевесить несколько нейтральных.\u003Cbr>\u003Cbr>\u003Cstrong>Если сбой во встрече ломает оплаченную услугу или оставляет сервис без нужных данных, ВКС нужно проектировать как часть продукта.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Когда встреча остается второстепенной и ничего не меняет в сервисе после звонка, готового инструмента достаточно.\u003Cbr>\u003Cbr>Если видеовстреча уже определяет, получил ли клиент услугу, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fvks\">можем разобрать\u003C\u002Fa> архитектуру: где хватит интеграции с готовым сервисом и что потребуется для собственной ВКС.\u003C\u002Fp>",[1813,1814],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":1817,"documentId":1818,"title":1819,"date":1820,"description":11,"order":1821,"slug":1822,"showOnMainPage":13,"createdAt":1823,"updatedAt":1824,"publishedAt":1825,"locale":17,"cover":1826,"content":1859,"media_event":11,"media_areas":1863,"seo":11,"localizations":1866},407,"dcenjtj61ta9j4xssc9be8n4","AI-чатбот за 2 недели: что проверить до сметы на 2 млн","2026-07-30",3,"-ai-chatbot-chto-proverit-pered-razrabotkoy","2026-07-30T13:23:01.866Z","2026-09-23T19:27:11.722Z","2026-09-23T19:27:11.796Z",{"id":1827,"documentId":1828,"name":1829,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1830,"hash":1855,"ext":26,"mime":29,"size":1856,"url":1857,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1858,"updatedAt":1858,"publishedAt":1858},881,"v2otn2l3r9ur5d1zn4zcr3in","01-cover-v2.png",{"large":1831,"small":1837,"medium":1843,"thumbnail":1849},{"ext":26,"url":1832,"hash":1833,"mime":29,"name":1834,"path":11,"size":1835,"width":32,"height":33,"sizeInBytes":1836},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_v2_61c46e406c.png","large_01_cover_v2_61c46e406c","large_01-cover-v2.png",581.79,581786,{"ext":26,"url":1838,"hash":1839,"mime":29,"name":1840,"path":11,"size":1841,"width":40,"height":41,"sizeInBytes":1842},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_v2_61c46e406c.png","small_01_cover_v2_61c46e406c","small_01-cover-v2.png",163.74,163743,{"ext":26,"url":1844,"hash":1845,"mime":29,"name":1846,"path":11,"size":1847,"width":48,"height":40,"sizeInBytes":1848},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_v2_61c46e406c.png","medium_01_cover_v2_61c46e406c","medium_01-cover-v2.png",345.74,345736,{"ext":26,"url":1850,"hash":1851,"mime":29,"name":1852,"path":11,"size":1853,"width":55,"height":56,"sizeInBytes":1854},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_v2_61c46e406c.png","thumbnail_01_cover_v2_61c46e406c","thumbnail_01-cover-v2.png",44.45,44447,"01_cover_v2_61c46e406c",543.84,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_v2_61c46e406c.png","2026-09-23T19:25:56.258Z",[1860],{"__component":66,"id":1861,"text":1862},370,"\u003Cp>Самый опасный AI-чатбот не падает. Он отвечает не тем регламентом, путает старую инструкцию с новой или ведёт клиента в сценарий, который давно закрыли. На демо это выглядит как «поправим базу». В продакшене это тикеты, потерянные заявки и вопрос от юриста: «а кто дал ему доступ к этим данным?»\u003C\u002Fp>\u003Cp>Мы делаем \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots\">AI-чатботы и RAG-системы\u003C\u002Fa>, и почти каждый разговор начинается с фразы: «Хотим бот с GPT. Сколько стоит?» Я бы начинал с другого вопроса: какой один процесс бот должен улучшить за первые две недели?\u003C\u002Fp>\u003Cp>Если на него нет ясного ответа, большой продакшен считать рано. Сначала нужен короткий PoC.\u003C\u002Fp>\u003Ch2>Бизнес приходит, когда вопросы уже накопились\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"inline-02-prepared.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Finline_02_prepared_8bdab4be66.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_inline_02_prepared_8bdab4be66.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_inline_02_prepared_8bdab4be66.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_inline_02_prepared_8bdab4be66.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_inline_02_prepared_8bdab4be66.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Запрос на AI-чатбота обычно появляется после вполне приземлённых симптомов. Поддержка отвечает на одно и то же. Сотрудники ищут регламент дольше, чем выполняют задачу. Новичок спрашивает у пяти людей, где отпуск, бонусы и заявка на технику. Клиент пишет вечером, а менеджер видит обращение только утром.\u003C\u002Fp>\u003Cp>В таких случаях бот нужен не для красивого окна с текстом. Он должен снизить нагрузку на поддержку, ускорить поиск по базе знаний, автоматизировать онбординг, консультировать клиентов и не терять обращения вне рабочего времени.\u003C\u002Fp>\u003Cp>Звучит просто, пока не начинаешь смотреть на данные. Где лежат актуальные инструкции? Кто отвечает за обновление базы? Какие вопросы бот имеет право закрывать сам, а где обязан передать диалог человеку? Вот это и стоит проверить до большой разработки.\u003C\u002Fp>\u003Ch2>За две недели проверяется один сценарий\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-inline-v3.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_inline_v3_ac5696f66b.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_inline_v3_ac5696f66b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_inline_v3_ac5696f66b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_inline_v3_ac5696f66b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_inline_v3_ac5696f66b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>У PoC узкая задача: проверить одну гипотезу на рабочем прототипе. Например, «бот отвечает на типовые HR-вопросы», «бот ищет ответы по базе знаний для отдела продаж» или «бот помогает клиенту выбрать товар по каталогу».\u003C\u002Fp>\u003Cp>За две недели можно подключить ограниченную базу знаний, настроить один-два сценария, прогнать тестовые диалоги и показать команде живой прототип. В хорошем PoC видно, где ответ подтверждён найденными источниками, где контекста недостаточно, а где система должна запросить уточнение или передать диалог оператору.\u003C\u002Fp>\u003Cp>Это ещё не полноценный продукт с CRM, правами доступа, аналитикой и мониторингом качества. Зато у команды появляется материал для решения: развивать идею, менять сценарий или закрывать гипотезу до того, как она съела бюджет.\u003C\u002Fp>\u003Ch2>Слабое место чаще в базе, а не в модели\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"inline-04-v8-prepared.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Finline_04_v8_prepared_760dd920c8.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_inline_04_v8_prepared_760dd920c8.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_inline_04_v8_prepared_760dd920c8.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_inline_04_v8_prepared_760dd920c8.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_inline_04_v8_prepared_760dd920c8.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>На пресейле полезнее просить AI-разработчика назвать риски, чем подтверждать очевидное «GPT прикрутим». Модель можно подключить быстро. Дальше начинаются менее эффектные, зато более дорогие вопросы.\u003C\u002Fp>\u003Cp>Первое слабое место — база знаний. Если в ней лежат старые инструкции, дубли и документы без владельца, бот будет доставать из неё такой же беспорядок.\u003C\u002Fp>\u003Cp>Второе — интеграции. На словах нужно «просто подтянуть данные из CRM». На практике выясняется, что CRM, ERP, 1С или Битрикс24 живут по своим правилам, а API не всегда отдаёт данные в удобном виде.\u003C\u002Fp>\u003Cp>Третье — права доступа. Бот не должен показывать сотруднику документ, который тот не увидел бы в обычной системе. Это надо проектировать, а не добавлять в последний день.\u003C\u002Fp>\u003Cp>Четвёртое — нетипичные вопросы. Пользователь не обязан спрашивать так, как написано в тестовом сценарии. Он ошибается, сокращает, злится, присылает кусок переписки и ждёт ответа.\u003C\u002Fp>\u003Cp>Пятое — стоимость запросов к модели. Чем больше каналов, пользователей и длинных документов, тем важнее считать не только разработку, но и эксплуатацию.\u003C\u002Fp>\u003Cp>Шестое — тестирование ответов. AI-бота нельзя проверять одной демонстрацией. Нужны тестовые диалоги, набор ожидаемых ответов, логирование ошибок и регулярная оценка качества.\u003C\u002Fp>\u003Ch2>Первым клиентом бота стали мы сами\u003C\u002Fh2>\u003Cp>У нас уже был близкий опыт до нынешней волны AI-проектов. На vc.ru мы рассказывали историю \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fvc.ru\u002Flife\u002F1176245-istoriya-o-tom-kak-my-pilili-svoi-startap-vnutri-it-kompanii\">Wombot\u003C\u002Fa> — конструктора Telegram-ботов, который помогает собирать сценарии, принимать оплату, работать с курсами, поддержкой и онбордингом.\u003C\u002Fp>\u003Cp>Первыми пользователями стали мы сами. В отдельном материале про \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fvc.ru\u002Fdev\u002F1239802-onbording-v-it\">онбординг в IT\u003C\u002Fa> мы писали, как собрали в боте регламенты, графики отпусков, корпоративные бонусы и заявки. Для команды 60+ сотрудников это стало единым входом в типовые HR-вопросы: где посмотреть правила, как оформить отпуск, какие бонусы есть в компании, что нужно новичку на старте.\u003C\u002Fp>\u003Cp>По внутренней оценке, за год через HR-бота прошли около 50 сотрудников. Он забрал на себя часть типового онбординга и повторяющихся HR-вопросов: это экономило команде примерно 3-4 часа в день, или около 80 часов в месяц. Ещё около 20 часов в месяц удавалось сохранять за счёт того, что регламенты и инструкции были собраны в одном месте.\u003C\u002Fp>\u003Cp>Ценность бота появляется там, где он помогает с конкретными действиями.Он отвечает, ведёт к следующему шагу, находит документ, а для заявки или статуса заказа запускает отдельную интеграцию с бизнес-системой. Один пересказ базы знаний быстро перестает давать эффект.\u003C\u002Fp>\u003Ch2>На реальном проекте RAG помогал подбирать двери и комплектующие\u003C\u002Fh2>\u003Cp>Один из практических кейсов Qtim — AI-консультант для магазина дверей. Его задача была вести клиента через первичный подбор: определить тип двери, условия установки, размеры, требования к материалу, тепло- и шумоизоляции, внешнему виду и комплектации.\u003C\u002Fp>\u003Cp>Пользователь писал обычными словами: «подберите входную дверь для загородного дома», «нужна межкомнатная модель в светлом цвете», «нужен комплект с фурнитурой». Если запроса не хватало, бот задавал уточняющие вопросы: где будет стоять дверь, какие размеры нужны, для какого помещения подбирается модель, что важно по материалу, изоляции, виду и комплектующим.\u003C\u002Fp>\u003Cp>Ответы клиента превращались в поисковый контекст. RAG в этом сценарии не сводился к векторному поиску: система брала данные из каталога и правил подбора, а затем передавала найденный контекст языковой модели. Поиск помогал находить позиции с буквальным совпадением и близкие по смыслу варианты, когда клиент не знал точное название модели или характеристики.\u003C\u002Fp>\u003Cp>После поиска бот проверял варианты по правилам подбора: учитывал ограничения, совместимость характеристик и неполные данные в карточках. Неподходящие позиции отсекались, а клиент получал список товаров с объяснением: почему эти двери и комплектующие подходят, чем они отличаются и какие параметры ещё нужно уточнить перед заказом.\u003C\u002Fp>\u003Cp>Фактически это был диалоговый подбор: запрос клиента → уточняющие вопросы → требования → поиск по каталогу и связанным данным → проверка правил → рекомендация.\u003C\u002Fp>\u003Cp>Важно разделять RAG и другие функции бота. RAG отвечает за поиск и передачу модели релевантного контекста из каталога, документов или других источников. Информацию о статусе заказа бот получает напрямую из базы, а оформление заявки — это отдельное действие или интеграция. В одном чат-боте эти элементы могут работать рядом, но бюджет и риски у них разные.\u003C\u002Fp>\u003Cp>В результате бот закрывал часть первичных консультаций: клиент заранее сужал выбор, а менеджер подключался к диалогу с уже собранными вводными и предварительно подобранными позициями. Нестандартные случаи, сложные комплекты и финальные расчёты всё равно уходили человеку: неполные карточки, неоднозначные запросы и совместимость комплектующих нельзя оставлять без контроля.\u003C\u002Fp>\u003Ch2>Продакшен начинается там, где бот получает доступы\u003C\u002Fh2>\u003Cp>Прототип можно показать быстро. Продакшен начинается в момент, когда бот выходит из песочницы и получает доступ к реальным данным, каналам и пользователям.\u003C\u002Fp>\u003Cp>После PoC к продукту добавляются источники данных, правила извлечения и актуализации контекста, интеграции с CRM, ERP, 1С или Битрикс24, интерфейсы для Telegram, WhatsApp или веба, логирование, аналитика, сценарий передачи оператору, мониторинг качества, роли и доступы, защита данных и регулярное обновление базы знаний. RAG здесь не равен векторному поиску: система может брать контекст из файлов, каталогов, баз данных, сайтов и других источников, если они удобны для конкретного сценария.\u003C\u002Fp>\u003Cp>Именно здесь становится понятно, что AI-чатбот — это продуктовая система, а не отдельная кнопка «спросить у GPT». Чем больше бот делает внутри бизнеса, тем важнее архитектура вокруг него.\u003C\u002Fp>\u003Ch2>Где в бюджете появляются 1,5–2 млн\u003C\u002Fh2>\u003Cp>В статье про \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fblog\u002Fstoimost-razrabotki-mvp-v-2026-godu\">стоимость разработки MVP\u003C\u002Fa> в 2026 году я уже разбирал, как AI влияет на смету. Чат-бот с GPT, подключённый к базе знаний через RAG, может добавлять к бюджету примерно 1,5–2 млн рублей.\u003C\u002Fp>\u003Cp>Эта цифра не описывает «цену любого бота». Она про полноценный слой вокруг языковой модели: подготовку данных, поиск по базе, промпты, сценарии, тестирование, логирование, интеграции и контроль качества.\u003C\u002Fp>\u003Cp>Простую AI-интеграцию разумно начинать с PoC. Полноценный продукт считают после него: когда понятны каналы, объём данных, сложность интеграций, требования к безопасности и ожидаемая нагрузка.\u003C\u002Fp>\u003Ch2>С чего я бы начал вместо сметы\u003C\u002Fh2>\u003Cp>Перед разработкой я бы задал один вопрос: какой один процесс бот должен улучшить за первые две недели?\u003C\u002Fp>\u003Cp>Сократить типовые обращения в поддержку. Ускорить поиск по внутренним документам. Помочь новичкам пройти онбординг. Ответить клиенту ночью и передать контекст менеджеру утром.\u003C\u002Fp>\u003Cp>Если процесс измерим, проект проще оценить и довести до результата. Если сценарий уже есть, можно принести его на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots\">обсуждение AI-проекта\u003C\u002Fa>. За первые две недели станет понятно, где у идеи рабочее ядро, а где начинается продакшен с интеграциями, безопасностью и настоящей экономикой.\u003C\u002Fp>",[1864,1865],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":86,"documentId":87,"title":88,"date":89,"description":11,"order":6,"slug":90,"showOnMainPage":13,"createdAt":91,"updatedAt":92,"publishedAt":93,"locale":17,"cover":1868,"content":1874,"media_event":11,"media_areas":1876,"seo":11,"localizations":1879},{"id":95,"documentId":96,"name":97,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":1869,"hash":125,"ext":26,"mime":29,"size":126,"url":127,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":128,"updatedAt":128,"publishedAt":129},{"large":1870,"small":1871,"medium":1872,"thumbnail":1873},{"ext":26,"url":102,"hash":103,"mime":29,"name":104,"path":11,"size":105,"width":32,"height":33,"sizeInBytes":106},{"ext":26,"url":108,"hash":109,"mime":29,"name":110,"path":11,"size":111,"width":40,"height":41,"sizeInBytes":112},{"ext":26,"url":114,"hash":115,"mime":29,"name":116,"path":11,"size":117,"width":48,"height":40,"sizeInBytes":118},{"ext":26,"url":120,"hash":121,"mime":29,"name":122,"path":11,"size":123,"width":55,"height":56,"sizeInBytes":124},[1875],{"__component":66,"id":132,"text":133},[1877,1878],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":1881,"documentId":1882,"title":1883,"date":1884,"description":11,"order":40,"slug":1885,"showOnMainPage":13,"createdAt":1886,"updatedAt":1887,"publishedAt":1888,"locale":17,"cover":1889,"content":1918,"media_event":11,"media_areas":1922,"seo":11,"localizations":1925},416,"myvt92baeeu5v8avnec7dqxv","Кнопка стала красивее, товара всё равно нет: почему редизайн не спасает продажи в e-commerce","2026-08-03","-redizayn-interfeysa-v-e-commerce","2026-08-03T15:04:24.695Z","2026-09-23T20:21:32.170Z","2026-09-23T20:21:32.245Z",{"id":1890,"documentId":1891,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":1892,"hash":1913,"ext":26,"mime":29,"size":1914,"url":1915,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1916,"updatedAt":1916,"publishedAt":1917},912,"s8z39p2lpog250nrbvqrhsxd",{"large":1893,"small":1898,"medium":1903,"thumbnail":1908},{"ext":26,"url":1894,"hash":1895,"mime":29,"name":1375,"path":11,"size":1896,"width":32,"height":1620,"sizeInBytes":1897},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_b12b8d9474.png","large_01_cover_b12b8d9474",921.33,921332,{"ext":26,"url":1899,"hash":1900,"mime":29,"name":1381,"path":11,"size":1901,"width":40,"height":1626,"sizeInBytes":1902},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_b12b8d9474.png","small_01_cover_b12b8d9474",255.75,255745,{"ext":26,"url":1904,"hash":1905,"mime":29,"name":1387,"path":11,"size":1906,"width":48,"height":1632,"sizeInBytes":1907},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_b12b8d9474.png","medium_01_cover_b12b8d9474",545.12,545122,{"ext":26,"url":1909,"hash":1910,"mime":29,"name":1393,"path":11,"size":1911,"width":1638,"height":1639,"sizeInBytes":1912},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_b12b8d9474.png","thumbnail_01_cover_b12b8d9474",69.41,69408,"01_cover_b12b8d9474",750.03,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_b12b8d9474.png","2026-09-23T20:20:49.621Z","2026-09-23T20:20:49.622Z",[1919],{"__component":66,"id":1920,"text":1921},379,"\u003Cp>Представьте обычный заказ. На карточке товар есть в наличии. В корзине доставка «завтра» меняется на «через пять дней». Ближайший ПВЗ пропадает после ввода адреса. После оплаты заказ делится на две посылки, а магазин толком не объясняет почему.\u003C\u002Fp>\u003Cp>Интерфейс на каждом шаге может выглядеть аккуратно. У покупателя остаётся другое впечатление: магазин меняет условия по ходу покупки.\u003C\u002Fp>\u003Cp>Поэтому некоторые редизайны проходят без проблем и почти не влияют на продажи. Команда упрощает корзину, обновляет карточки и делает кнопку заметнее, а заказ продолжает ломаться в остатках, резерве, расчёте доставки и статусах. Экран становится местом, где покупатель видит сбой.\u003C\u002Fp>\u003Ch2>После редизайна заказ всё равно ломается\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-after-redesign.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_after_redesign_96c3f5b381.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_after_redesign_96c3f5b381.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_after_redesign_96c3f5b381.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_after_redesign_96c3f5b381.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_after_redesign_96c3f5b381.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Российский e-commerce уже слишком большой, чтобы считать доставку и наличие второстепенными деталями. По данным \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdatainsight.ru\u002FDI_eCommerce_2026\">Data Insight\u003C\u002Fa>, в 2025 году рынок розничной интернет-торговли в России достиг 13,4 трлн рублей. Маркетплейсы забрали 81% заказов и 62% объёма продаж. Поэтому карточку, корзину и доставку оценивают по стандарту платформ, через которые проходит большинство заказов.\u003C\u002Fp>\u003Cp>Этот стандарт уже привычен: пользователь хочет заранее видеть срок, ближайший ПВЗ, статус, условия возврата и уведомления. Скидка и знакомый бренд могут привести его на карточку товара. Решение об оплате зависит от того, насколько понятным и выполнимым выглядит весь заказ.\u003C\u002Fp>\u003Cp>Логистика уже стала частью этого решения. В исследовании Data Insight о \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdatainsight.ru\u002FRussian_online_shopping_market_with_delivery_2025\">последней миле e-commerce\u003C\u002Fa> рынок онлайн-торговли с доставкой в России за 2025 год оценивается в 7,7 млрд посылок. На собственные службы магазинов и платформ приходится 91,2% посылок, причём почти весь этот объём — Wildberries и Ozon: 84,1% рынка доставки. Значит, ожидания покупателя формируются внутри крупных платформ, где витрина и доставка работают как один сервис.\u003C\u002Fp>\u003Cp>Отдельный магазин сравнивают с этим опытом, хотя его заказ часто проходит через несколько отдельных систем: склад, платёжный сервис, службу доставки и поддержку. Несогласованность между ними проявляется в самый дорогой момент — когда человек уже выбрал товар и готов заплатить.\u003C\u002Fp>\u003Ch2>Корзина стала черновиком покупки\u003C\u002Fh2>\u003Cp>По данным RetailCRM, которые приводил \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fnew-retail.ru\u002Fnovosti\u002Fretail\u002Fretailcrm_88_korzin_v_rossiyskikh_internet_magazinakh_ostayutsya_broshennymi\u002F\">New Retail\u003C\u002Fa>, в первом квартале 2026 года 88% корзин в российских интернет-магазинах остались незавершёнными. При этом 46% таких корзин позже всё же превратились в заказ. Значит, часть отказов остаётся паузой: второй шанс сохраняется, пока товар доступен и срок не изменился.\u003C\u002Fp>\u003Cp>Корзина всё чаще работает как черновик. Пользователь сравнивает цены, читает отзывы, ждёт зарплату, выбирает пункт выдачи и проверяет, когда сможет забрать покупку. Вернуться к оформлению проще, если выбранные товары доступны, а расчёт доставки остался прежним.\u003C\u002Fp>\u003Cp>Если товар исчезает без объяснения или доставка становится неудобной, напоминание вернёт пользователя к той же причине отказа. Новый дизайн тоже не устранит этот разрыв.\u003C\u002Fp>\u003Ch2>ПВЗ и срок решают судьбу заказа ещё до оплаты\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-pickup.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_pickup_e8f8e6d51f.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_pickup_e8f8e6d51f.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_pickup_e8f8e6d51f.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_pickup_e8f8e6d51f.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_pickup_e8f8e6d51f.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>К 1 января 2026 года в России работало 226,4 тыс. пунктов выдачи заказов, на 44,7% больше, чем годом ранее. Это данные «Яндекс Карт», которые приводил «\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.kommersant.ru\u002Fdoc\u002F8361680\">Коммерсантъ\u003C\u002Fa>». ПВЗ стал привычной частью покупки. Для магазина без собственной сети отсутствие удобной точки теперь ощущается так же остро, как отсутствие нужного способа оплаты.\u003C\u002Fp>\u003Cp>СДЭК в исследовании о том, как россияне забирают заказы, отмечал, что \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.retail.ru\u002Fnews\u002Fsdek-kak-rossiyane-zabirayut-zakazy-v-2025-godu-22-aprelya-2025-263841\u002F\">93% опрошенных выбирают самовывоз\u003C\u002Fa>. Цифра относится к аудитории исследования, но хорошо показывает приоритеты покупателя: близость, понятный срок и контроль над получением.\u003C\u002Fp>\u003Cp>Если магазин обещает доставку завтра, а после выбора ПВЗ переносит её на следующую неделю, человек оценивает уже другой заказ. Чем позже меняются условия, тем больше потраченного времени и раздражения.\u003C\u002Fp>\u003Cp>Если похожие сбои уже видны в магазине, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">на нашей странице разработки e-commerce-систем\u003C\u002Fa> можно посмотреть, какие системы мы связываем: витрину, админку, оплату, доставку и интеграции.\u003C\u002Fp>\u003Ch2>Пять причин, из-за которых новый интерфейс не поднимает продажи\u003C\u002Fh2>\u003Cp>1. Витрина предлагает товар, который уже продан\u003C\u002Fp>\u003Cp>Один и тот же ассортимент может продаваться на сайте, маркетплейсах и в офлайн-точках, а храниться на нескольких складах. Если каналы обновляются с разной скоростью, карточка показывает вчерашний остаток. Покупатель узнаёт об этом в корзине или уже после оплаты.\u003C\u002Fp>\u003Cp>Здесь полезно считать отмены и изменения заказа из-за неверного наличия. Эта цифра показывает цену сбоя точнее, чем общая конверсия карточки.\u003C\u002Fp>\u003Cp>2. Последнюю единицу обещают нескольким покупателям\u003C\u002Fp>\u003Cp>Товар может лежать в одной корзине, ждать оплаты в другом заказе и оставаться доступным на маркетплейсе. Без понятных правил резерва несколько человек получают одно обещание.\u003C\u002Fp>\u003Cp>Магазину нужно определить, в какой момент товар закрепляется за заказом, сколько действует резерв и когда остаток возвращается в продажу после неуспешной оплаты. Покупателю достаточно одного результата: товар не исчезает, пока он завершает оформление.\u003C\u002Fp>\u003Cp>3. Срок доставки ухудшается по ходу оформления\u003C\u002Fp>\u003Cp>Товар со склада в Подмосковье может приехать завтра, со склада в Казани — через несколько дней. На срок влияют время заказа, габариты, загрузка службы доставки и разделение корзины на несколько отправлений.\u003C\u002Fp>\u003Cp>Реальный диапазон лучше показать на карточке или в корзине и сразу объяснить, что на него влияет. Покупатель может согласиться подождать. Необъяснимый перенос воспринимается как подмена условий.\u003C\u002Fp>\u003Cp>4. ПВЗ и возврат становятся понятны слишком поздно\u003C\u002Fp>\u003Cp>Пользователю важны пункт у дома, режим работы, примерка, срок хранения, постамат и порядок возврата. Когда эти данные появляются только в конце, покупку приходится оценивать заново.\u003C\u002Fp>\u003Cp>Интерфейс помогает, когда получает полный список доступных вариантов заранее. Если удобного ПВЗ или нужного способа возврата нет, дизайн не сможет его создать.\u003C\u002Fp>\u003Cp>5. Поддержка не может быстро объяснить, что случилось\u003C\u002Fp>\u003Cp>После оплаты доверие держится на понятном статусе и внятном ответе. Когда менеджер отдельно проверяет платеж, резерв, склад, трек и историю уведомлений, вопрос «где мой заказ?» превращается в расследование.\u003C\u002Fp>\u003Cp>Покупателю и поддержке нужна одна история заказа: оплата, сборка, доставка, ПВЗ или возврат. Разрыв в этой цепочке снижает шанс на повторную покупку.\u003C\u002Fp>\u003Ch2>Где искать проблему, если новый интерфейс не поднял продажи\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-diagnosis.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_diagnosis_575f85215b.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_diagnosis_575f85215b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_diagnosis_575f85215b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_diagnosis_575f85215b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_diagnosis_575f85215b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Мы проходим один заказ от карточки до получения и отмечаем каждую точку, где меняются условия: наличие, цена, срок, ПВЗ, оплата, отправление и возврат. Затем сравниваем этот путь с тем, что видят витрина, склад и поддержка.\u003C\u002Fp>\u003Cp>Так появляется порядок работ: исправляем остаток у источника, пересобираем расчёт там, где меняется срок, уточняем интерфейс при непонятных условиях и даём поддержке полный контекст после оплаты.\u003C\u002Fp>\u003Cp>Критерий простой: если покупатель уходит после изменения цены, наличия или доставки, нужно разбирать данные и путь заказа. Если условия остаются стабильными, а человек всё равно не завершает покупку, стоит искать проблему в интерфейсе.\u003C\u002Fp>\u003Cp>У маркетплейса есть привычка и кредит доверия, у отдельного магазина — нет. Поэтому та же ошибка со сроком или остатком стоит ему дороже: второй попытки покупатель может не дать.\u003C\u002Fp>\u003Cp>Продажи растут, когда обещание на экране выдерживает реальный заказ. Если хотите понять, где оно ломается, можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">разобрать путь покупателя и связанные системы вместе с нами\u003C\u002Fa>.\u003C\u002Fp>",[1923,1924],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":1927,"documentId":1928,"title":1929,"date":1930,"description":11,"order":40,"slug":1931,"showOnMainPage":13,"createdAt":1932,"updatedAt":1933,"publishedAt":1934,"locale":17,"cover":1935,"content":1964,"media_event":11,"media_areas":1968,"seo":11,"localizations":1971},417,"a4ckp7tbgmtv0utmia4b808l","Новая роль — новый проект: когда личные кабинеты пора собирать в экосистему","2026-08-04","-lichnye-kabineti-v-ekosisteme-optimizatsiya-protsessov","2026-08-04T14:13:59.695Z","2026-09-23T20:23:40.773Z","2026-09-23T20:23:40.828Z",{"id":1936,"documentId":1937,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":1938,"hash":1959,"ext":26,"mime":29,"size":1960,"url":1961,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1962,"updatedAt":1962,"publishedAt":1963},916,"fu2k1ogvhq4hzmoaih9pghjr",{"large":1939,"small":1944,"medium":1949,"thumbnail":1954},{"ext":26,"url":1940,"hash":1941,"mime":29,"name":1375,"path":11,"size":1942,"width":32,"height":1620,"sizeInBytes":1943},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_92916434c9.png","large_01_cover_92916434c9",502.81,502807,{"ext":26,"url":1945,"hash":1946,"mime":29,"name":1381,"path":11,"size":1947,"width":40,"height":1626,"sizeInBytes":1948},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_92916434c9.png","small_01_cover_92916434c9",144.56,144557,{"ext":26,"url":1950,"hash":1951,"mime":29,"name":1387,"path":11,"size":1952,"width":48,"height":1632,"sizeInBytes":1953},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_92916434c9.png","medium_01_cover_92916434c9",304.8,304799,{"ext":26,"url":1955,"hash":1956,"mime":29,"name":1393,"path":11,"size":1957,"width":1638,"height":1639,"sizeInBytes":1958},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_92916434c9.png","thumbnail_01_cover_92916434c9",42.38,42378,"01_cover_92916434c9",436.15,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_92916434c9.png","2026-09-23T20:23:27.632Z","2026-09-23T20:23:27.633Z",[1965],{"__component":66,"id":1966,"text":1967},380,"\u003Cp>Компания запускает личный кабинет для клиентов: заказы, счета, документы и обращения переходят в одно окно. Через год нужен портал для партнёров, затем — для поставщиков и сотрудников. Каждый интерфейс появляется по понятной причине, но его часто проектируют как отдельный продукт.\u003C\u002Fp>\u003Cp>Снаружи всё выглядит аккуратно: у каждой аудитории свои экраны и сценарии. Внутри накапливаются отдельные учётные записи, справочники, статусы, интеграции и правила доступа. Один контрагент числится под разными названиями, а изменение реквизитов приходится разносить по всей цепочке.\u003C\u002Fp>\u003Cp>Фраза «новая роль — новый проект» точно описывает этот этап роста. Экосистема начинается там, где несколько групп пользователей работают с общими деньгами, документами и процессами. Дальше бизнесу выгоднее развивать единое ядро и подключать к нему разные кабинеты.\u003C\u002Fp>\u003Ch2>Пятый кабинет приносит пятую версию статуса\u003C\u002Fh2>\u003Cp>Количество экранов само по себе не создаёт проблему. Потери возникают на стыках. Поставщик меняет дату отгрузки, менеджер видит обновление в учётной системе, а клиентский кабинет продолжает показывать старый срок. Поддержка проверяет несколько источников, клиент ждёт, команда выясняет, какая версия верна.\u003C\u002Fp>\u003Cp>С доступами происходит то же самое. Партнёр может одновременно представлять несколько юридических лиц, сотрудник — перейти в другой филиал, а клиент — получить права администратора своей организации. Если каждый портал хранит собственную модель пользователей, любое изменение превращается в серию заявок и проверок.\u003C\u002Fp>\u003Cp>Интеграции тоже начинают дублироваться. Кабинет клиента отдельно подключают к 1С, портал поставщика — к той же 1С, админку — к CRM и банку. У каждого обмена появляются свои форматы, расписания и обработка ошибок. Поддержка платит за эту разницу на каждом сбое, а разработка — перед каждым релизом.\u003C\u002Fp>\u003Cp>Главный риск проявляется во времени. Команда добавляет новую роль дольше, потому что заново собирает вход, права, справочники, уведомления, отчётность и историю действий. Бизнес откладывает запуск канала или продолжает вести часть процесса в почте и таблицах.\u003C\u002Fp>\u003Ch2>Четыре числа покажут цену разрозненных кабинетов\u003C\u002Fh2>\u003Cp>Проблему удобно обсуждать через показатели, которые уже видят продукт, поддержка и операционные команды.\u003C\u002Fp>\u003Cp>Срок подключения новой роли. От согласования сценария до первого пользователя в системе. Увеличение периода показывает, сколько базовых функций команда каждый раз собирает заново.\u003C\u002Fp>\u003Cp>Обращения из-за доступов, статусов и документов. Их количество фиксирует цену рассинхронизации. Полезно отделять вопросы по самому процессу от случаев, когда человек не может войти, не видит нужную организацию или получает устаревшие данные.\u003C\u002Fp>\u003Cp>Число систем, которые меняют одну сущность. Если реквизиты контрагента, статус заказа или лимит партнёра редактируют в нескольких местах, источник истины размывается. Чем больше точек записи, тем дороже сверка и выше риск конфликта.\u003C\u002Fp>\u003Cp>Объём проверок перед релизом. Новая функция затрагивает клиента, поставщика, менеджера, биллинг и уведомления. Количество сценариев регресса показывает, насколько роли связаны между собой и умеет ли архитектура держать эту связь.\u003C\u002Fp>\u003Cp>Одновременный рост всех четырёх показателей уже влияет на стоимость владения: релизы замедляются, поддержка тратит больше времени, а запуск следующего кабинета становится отдельной сметой.\u003C\u002Fp>\u003Ch2>Один логин ещё не создаёт экосистему\u003C\u002Fh2>\u003Cp>SSO снимает повторный вход и даёт пользователю одну учётную запись. Экосистема появляется, когда кабинеты работают по общим правилам, а действие одной стороны меняет процесс для остальных.\u003C\u002Fp>\u003Cp>У каждой аудитории остаётся собственный интерфейс: клиент размещает заказ, партнёр ведёт отклики, сотрудник управляет операциями. Платформенный слой проводит заявку через согласование и оплату, проверяет доступ и записывает изменения.\u003C\u002Fp>\u003Cp>Команда может обновлять отдельные экраны, не копируя бизнес-правила в каждый кабинет. Связь между ролями остаётся внутри платформы, а проверки выполняются на сервере.\u003C\u002Fp>\u003Cp>Связность ролей хорошо видна в \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Faltprof\">кейсе «Альтпроф»\u003C\u002Fa>: заказчик публикует задачу и выбирает исполнителя, специалист работает с откликами и заказами, команда бизнеса управляет пользователями, ролями, оплатами и критичными сценариями. Действия трёх сторон влияют на сделки, статусы и администрирование, поэтому их проектировали внутри одной системы.\u003C\u002Fp>\u003Ch2>Один пользователь, три компании и общий профиль\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-8.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_8_822a67fe15.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_8_822a67fe15.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_8_822a67fe15.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_8_822a67fe15.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_8_822a67fe15.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Учётная запись связывает вход с конкретным пользователем, роль задаёт доступные действия, а контекст показывает, от имени какой компании, филиала или команды он действует сейчас.\u003C\u002Fp>\u003Cp>Один пользователь может размещать заказ от одной организации, согласовывать документы для другой и администрировать сотрудников в третьей. Он переключает компанию, а набор доступных действий зависит от роли в ней. Единый профиль сохраняет историю действий и избавляет от дублей.\u003C\u002Fp>\u003Cp>Базовые права удобно собирать через RBAC — наборы разрешений для ролей. Когда доступ зависит от региона, организации, типа объекта, суммы или статуса, к роли добавляют атрибуты и контекст — подход ABAC. Проверка должна работать на сервере: скрытая кнопка в интерфейсе не защищает операцию.\u003C\u002Fp>\u003Cp>Для бизнеса такая модель даёт предсказуемый рост. Новую группу пользователей подключают через правила доступа и существующие сущности. Команда сохраняет единый журнал действий и меньше зависит от исключений, записанных в инструкциях.\u003C\u002Fp>\u003Ch2>Источник истины нужно назначить до первой интеграции\u003C\u002Fh2>\u003Cp>Для каждой ключевой сущности нужен владелец данных. Счёт может формироваться в 1С, сделка — в CRM, статус подписания — в ЭДО, а согласие пользователя и настройки уведомлений — в личном кабинете. Конкретное распределение зависит от контура; важен один ответ на вопрос, где запись считается актуальной.\u003C\u002Fp>\u003Cp>После этого команда описывает направление обмена и реакцию на сбой. Что произойдёт, если 1С недоступна? Повторится ли событие позже? Не создаст ли повторная доставка второй заказ или платёж? Увидит ли менеджер ошибку до обращения клиента? Эти решения входят в интеграцию вместе с API и вебхуками.\u003C\u002Fp>\u003Cp>Очереди помогают пережить временную недоступность внешней системы, идемпотентность защищает от дублей, а журнал событий показывает, где остановился процесс. Пользователь получает согласованный статус, поддержка — понятную историю, разработка — место для диагностики.\u003C\u002Fp>\u003Cp>Та же дисциплина нужна аналитике. Когда кабинеты отправляют события в общей модели, бизнес сравнивает завершённые процессы: заказ, согласование, оплату, отгрузку или обращение.\u003C\u002Fp>\u003Ch2>Общее ядро тоже выставляет счёт\u003C\u002Fh2>\u003Cp>Платформенный слой требует вложений в начале. Команде предстоит описать роли и границы организаций, разобрать источники данных, очистить дубли, спроектировать миграцию, настроить SSO, журнал действий и мониторинг интеграций. Регрессионные тесты охватывают связи между кабинетами, поэтому их тоже планируют заранее.\u003C\u002Fp>\u003Cp>Особенно дорого обходится переход с нескольких действующих систем. Адаптеры позволяют подключать старый контур поэтапно, но каждый адаптер нужно поддерживать, мониторить и обновлять при изменении API. Миграция справочников также не исправляет качество исходных данных автоматически.\u003C\u002Fp>\u003Cp>Для простого кабинета на одну-две роли, без сложных согласований и глубоких интеграций, коробочный портал часто остаётся разумным выбором. Собственная платформа оправдывается, когда кабинет влияет на деньги, документы, права доступа и основной путь клиента, а новые роли уже стоят бизнесу отдельных запусков.\u003C\u002Fp>\u003Ch2>Главный критерий: новая роль подключается модулем\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-9.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_9_a31f5469c8.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_9_a31f5469c8.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_9_a31f5469c8.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_9_a31f5469c8.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_9_a31f5469c8.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Проверка проста: к существующему ядру добавляют только сценарии и интерфейс очередной аудитории.\u003C\u002Fp>\u003Cp>Если при таком запуске приходится копировать базовые функции и заново настраивать обмен данными, архитектура по-прежнему состоит из независимых продуктов. Единый цвет кнопок этого не изменит.\u003C\u002Fp>\u003Cp>Начать можно с карты пересечений. Для каждой роли выпишите ключевые действия, данные, текущую систему и владельца процесса. Совпадающие сущности и правила образуют кандидатов в общее ядро. Уникальные задачи остаются в интерфейсе конкретного кабинета. Такая карта помогает оценить первый модуль и заложить расширение без попытки сразу построить весь будущий контур.\u003C\u002Fp>\u003Cp>Если новая роль уже запускается как отдельный проект, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcabinets\">о разработке личных кабинетов и экосистем\u003C\u002Fa> можно посмотреть на нашем сайте, как мы разделяем интерфейсы, доступы, интеграции и данные. Для оценки достаточно текущей схемы ролей и списка систем: сначала разберём границы общего ядра, затем предложим фазы запуска.\u003C\u002Fp>",[1969,1970],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":1973,"documentId":1974,"title":1975,"date":1976,"description":11,"order":1821,"slug":1977,"showOnMainPage":13,"createdAt":1978,"updatedAt":1979,"publishedAt":1980,"locale":17,"cover":1981,"content":2010,"media_event":11,"media_areas":2014,"seo":11,"localizations":2017},413,"k14jk3d9zgf69tmumdlcoh2f","Сколько стоит AI после релиза: токены, контекст, хранение и контроль качества","2026-08-05","-stoimost-ai-posle-reliza-tokeny-kontekst-khranenie-i-kontrol-kachestva","2026-08-05T17:49:43.277Z","2026-09-23T19:57:02.474Z","2026-09-23T19:57:02.537Z",{"id":1982,"documentId":1983,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":1984,"hash":2005,"ext":26,"mime":29,"size":2006,"url":2007,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2008,"updatedAt":2008,"publishedAt":2009},898,"xymjzu3nq7norbsrcome0r0w",{"large":1985,"small":1990,"medium":1995,"thumbnail":2000},{"ext":26,"url":1986,"hash":1987,"mime":29,"name":1375,"path":11,"size":1988,"width":32,"height":33,"sizeInBytes":1989},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_a626161794.png","large_01_cover_a626161794",479.04,479042,{"ext":26,"url":1991,"hash":1992,"mime":29,"name":1381,"path":11,"size":1993,"width":40,"height":41,"sizeInBytes":1994},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_a626161794.png","small_01_cover_a626161794",137.21,137210,{"ext":26,"url":1996,"hash":1997,"mime":29,"name":1387,"path":11,"size":1998,"width":48,"height":40,"sizeInBytes":1999},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_a626161794.png","medium_01_cover_a626161794",288.76,288757,{"ext":26,"url":2001,"hash":2002,"mime":29,"name":1393,"path":11,"size":2003,"width":55,"height":56,"sizeInBytes":2004},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_a626161794.png","thumbnail_01_cover_a626161794",36.32,36317,"01_cover_a626161794",447.57,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_a626161794.png","2026-09-23T19:56:17.474Z","2026-09-23T19:56:17.475Z",[2011],{"__component":66,"id":2012,"text":2013},376,"\u003Cp>AI-сервис вышел в продакшен, пользователи задают вопросы, ответы приходят вовремя. Через месяц у продукта появляется новый документ — счёт за эксплуатацию. В нём легко заметить цену токенов и пропустить расходы, которые создают длинный контекст, поиск по базе и проверка качества.\u003C\u002Fp>\u003Cp>Мы \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots\">разрабатываем AI-чатботы и RAG-системы\u003C\u002Fa>, а в работе используем Claude и ChatGPT с Codex. После релиза расходы делим по назначению: отдельно пользовательская AI-функция, отдельно инструменты команды. Для продуктового контура я бы считал стоимость одного полезного сценария — ответа с нужным источником, корректного действия в системе или передачи диалога человеку.\u003C\u002Fp>\u003Ch2>Счёт начинается до первого слова модели\u003C\u002Fh2>\u003Cp>Провайдер считает токены — небольшие фрагменты текста, на которые модель разбирает запрос и ответ. Вход оплачивается отдельно от выхода. У кэшированного входа своя ставка, а у Claude отдельно оплачивается и запись префикса в кэш.\u003C\u002Fp>\u003Cp>Вопрос пользователя — только часть входа. Перед ответом модель получает инструкцию, описание доступных инструментов, примеры, историю диалога и фрагменты из базы знаний. В выход входят токены, которые модель потратила на генерацию. Точные значения нужно брать из поля usage в ответе API и сохранять по каждому запросу.\u003C\u002Fp>\u003Cp>Первая рабочая формула выглядит так:\u003C\u002Fp>\u003Cp>Стоимость ответа = обычный вход + чтение кэша + запись в кэш + выход + вызовы инструментов.\u003C\u002Fp>\u003Cp>Чтобы эти строки не смешивались, я свёл их в одну таблицу:\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FAI_posle_reliza_tablicza_kontury_vc_1920x1080_8c2e6f2b4b.png\" alt=\"AI_после_релиза_таблица_контуры_vc_1920x1080.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_AI_posle_reliza_tablicza_kontury_vc_1920x1080_8c2e6f2b4b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_AI_posle_reliza_tablicza_kontury_vc_1920x1080_8c2e6f2b4b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_AI_posle_reliza_tablicza_kontury_vc_1920x1080_8c2e6f2b4b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_AI_posle_reliza_tablicza_kontury_vc_1920x1080_8c2e6f2b4b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>11 000 входных токенов: контекст умножает каждый запрос\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_inline_0252e38d0e.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_inline_0252e38d0e.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_inline_0252e38d0e.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_inline_0252e38d0e.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_inline_0252e38d0e.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Контекст — всё, что модель получает перед ответом. В RAG-системе путь обычно такой: запрос пользователя превращается в поисковый, поиск находит несколько фрагментов, приложение добавляет их к инструкции и отправляет Claude. История чата тоже растёт с каждым сообщением.\u003C\u002Fp>\u003Cp>В расчётном сценарии ниже один вызов несёт 11 000 входных токенов: 8 000 занимает стабильный префикс, ещё 3 000 — вопрос, история и найденные документы. Для провайдера это один входной поток, хотя продукт собирает его из разных частей.\u003C\u002Fp>\u003Cp>Большое контекстное окно показывает технический предел модели. Счёт определяет фактический объём переданных токенов. Если приложение каждый раз прикладывает двадцать страниц регламента, провайдер снова тарифицирует их как обычный или кэшированный вход. Вдобавок лишние фрагменты могут ухудшить ответ: полезный абзац теряется среди похожих инструкций и старых версий.\u003C\u002Fp>\u003Cp>Здесь помогают три ограничения. Первое — лимит на число и размер фрагментов, которые возвращает поиск. Второе — сокращение истории: старые сообщения сворачиваются в краткое состояние диалога. Третье — кэширование стабильного префикса с системной инструкцией и описанием инструментов.\u003C\u002Fp>\u003Cp>У Claude цена кэша зависит от операции и срока жизни записи. Короткий кэш хорошо работает при плотном потоке запросов; при редких обращениях он будет чаще записываться заново. Поэтому в логах нужна фактическая доля чтений из кэша, а в финансовой модели — отдельные ставки на чтение и запись.\u003C\u002Fp>\u003Ch2>Пять гигабайт базы: отдельно хранение, поиск и версии\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"inline-03-prepared.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Finline_03_prepared_2e67ac15f6.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_inline_03_prepared_2e67ac15f6.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_inline_03_prepared_2e67ac15f6.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_inline_03_prepared_2e67ac15f6.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_inline_03_prepared_2e67ac15f6.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>База знаний занимает несколько слоёв. Есть исходные файлы, очищенный текст, фрагменты для поиска, векторные представления, индекс, логи запросов и версии документов. К ним добавляются резервные копии и данные для разбора спорных ответов.\u003C\u002Fp>\u003Cp>Для базы на 5 ГБ нужно учесть тариф векторного хранилища, операции поиска, резервные копии и логи. Найденные фрагменты затем входят в контекст Claude и снова оплачиваются как входные токены.\u003C\u002Fp>\u003Cp>Своя векторная база меняет названия строк, но сохраняет логику расходов: хранилище, вычисления для индексации, поиск, резервирование и наблюдаемость. Частое обновление документов добавляет переиндексацию. Если старые версии остаются активными, поиск может вернуть отменённый регламент.\u003C\u002Fp>\u003Cp>Для каждого источника нужны владелец, версия и срок жизни. После обновления полезно проверять, что новый документ попал в индекс, старый перестал участвовать в выдаче, а права доступа сохранились. Иначе компания оплачивает хранение дублей и получает ответы по отменённым правилам.\u003C\u002Fp>\u003Ch2>10 000 диалогов: считаем $811,20 на Claude\u003C\u002Fh2>\u003Cp>Возьмём условный месяц. Это иллюстрация формулы, а не статистика проекта Qtim. Тарифы Claude Sonnet 4.6 приведены по состоянию на 2026-08-04:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e07b8af9ab5cac9c6ebaf5e17eb4a5d76\">10 000 диалогов по четыре обращения к модели — 40 000 вызовов;\u003C\u002Fli>\u003Cli data-list-item-id=\"ebb2921a0d83d2ab5bbaeddbad103eb1f\">на вызов приходится 8 000 токенов стабильной инструкции, 3 000 переменных входных токенов и 500 выходных;\u003C\u002Fli>\u003Cli data-list-item-id=\"e5459680ffc707e108986efe3808d2ad3\">95% стабильного префикса читается из кэша, 5% записывается заново.\u003C\u002Fli>\u003C\u002Ful>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FAI_posle_reliza_tablicza_raschyot_vc_1920x1080_27a5c7036e.png\" alt=\"AI_после_релиза_таблица_расчёт_vc_1920x1080.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_AI_posle_reliza_tablicza_raschyot_vc_1920x1080_27a5c7036e.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_AI_posle_reliza_tablicza_raschyot_vc_1920x1080_27a5c7036e.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_AI_posle_reliza_tablicza_raschyot_vc_1920x1080_27a5c7036e.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_AI_posle_reliza_tablicza_raschyot_vc_1920x1080_27a5c7036e.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Без кэша тот же объём Claude Sonnet 4.6 обошёлся бы в $1 620. Разница — $808,80. В таблице посчитаны только токены модели: поиск и хранение зависят от выбранной инфраструктуры.\u003C\u002Fp>\u003Cp>Расчёт не включает серверы приложения, базу данных, очереди, мониторинг, резервные копии, платные интеграции и время специалистов. Он также не учитывает налоги, конвертацию валют и особые режимы размещения данных. Затраты на разработку самого контура можно сверить с отдельным \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fblog\u002Fstoimost-razrabotki-mvp-v-2026-godu\">разбором стоимости MVP в 2026 году\u003C\u002Fa>; эксплуатацию после релиза считают по фактическому трафику.\u003C\u002Fp>\u003Ch2>Codex считаем по завершённым задачам команды\u003C\u002Fh2>\u003Cp>Я бы не переводил расход Codex в цену пользовательского диалога. Он читает код, историю задачи, логи и результаты команд, а затем генерирует изменения и объяснения. После релиза эта строка растёт во время исправлений, обновления тестов, разбора инцидентов и код-ревью.\u003C\u002Fp>\u003Cp>Подписки на Claude и ChatGPT с Codex учитываем в расходах команды. Для Codex смотрим четыре метрики: кредиты на завершённую задачу, объём контекста, число повторных запусков и расход автоматизаций. Если агентов несколько, общий пул уходит быстрее — это нормально, пока одновременно сокращается время решения задачи.\u003C\u002Fp>\u003Cp>Так видно причину роста общего счёта. Либо продукт получил больше обращений, либо Claude стал отвечать длиннее, либо инженерной задаче потребовалось больше попыток. Одна общая сумма этого не покажет.\u003C\u002Fp>\u003Ch2>Ошибка в ответе живёт в отдельном бюджете\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-inline-v5.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_inline_v5_35cdeac5b4.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_inline_v5_35cdeac5b4.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_inline_v5_35cdeac5b4.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_inline_v5_35cdeac5b4.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_inline_v5_35cdeac5b4.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>На этом месте легко обрадоваться: 40 000 обращений к Claude обошлись в $811,20. Низкая цена полезна, пока система отвечает по актуальному документу, соблюдает права и вовремя передаёт сложный случай человеку. Ошибка в рекомендации может создать обращение в поддержку, неверную заявку или юридический риск.\u003C\u002Fp>\u003Cp>Контроль качества начинается с тестового набора. В него входят обычные вопросы, редкие случаи, опечатки, конфликтующие документы и попытки вывести систему за разрешённый сценарий. Для каждого примера задают ожидаемый источник, обязательные элементы ответа и условие передачи оператору.\u003C\u002Fp>\u003Cp>После изменения промпта, модели, поиска или базы тесты прогоняют заново. Часть примеров берут из логов, а автоматические оценки сверяют с решениями экспертов.\u003C\u002Fp>\u003Cp>У этой строки бюджета своя формула:\u003C\u002Fp>\u003Cp>Контроль качества = прогоны тестов + экспертная проверка выборки + разбор ошибок + исправления.\u003C\u002Fp>\u003Cp>В универсальный долларовый тариф она не складывается. Один продукт проверяет корректность ссылки на регламент, другой — подбор товара и совместимость характеристик, третий — право выполнить действие в CRM. До релиза нужно определить частоту проверки, объём выборки и ответственного за решение спорных случаев.\u003C\u002Fp>\u003Ch2>Пять лимитов удерживают стоимость после релиза\u003C\u002Fh2>\u003Cp>Я бы зафиксировал пять ограничений ещё до выхода к пользователям.\u003C\u002Fp>\u003Cp>Первое — отдельные бюджеты на продуктовый API и AI-инструменты команды.\u003C\u002Fp>\u003Cp>Второе — стоимость одного завершённого сценария и её 95-й процентиль. Среднее скрывает дорогие длинные диалоги.\u003C\u002Fp>\u003Cp>Третье — лимиты контекста: размер истории, число найденных фрагментов, максимальный выход и доля кэшированных токенов.\u003C\u002Fp>\u003Cp>Четвёртое — маршрутизация. Простые запросы получает компактная модель, сложные — более сильная, действия с высоким риском уходят человеку.\u003C\u002Fp>\u003Cp>Пятое — порог качества. Команда заранее определяет допустимую долю ответов без источника, ошибочных действий и передач оператору, а затем ставит уведомления по расходу и деградации.\u003C\u002Fp>\u003Cp>Главный критерий простой: считайте стоимость полезного результата вместе с ценой его проверки. Если у вас уже есть AI-сценарий и ожидаемый трафик, его можно принести на обсуждение \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots\">нашей команде\u003C\u002Fa>. Разложим маршрут ответа по токенам, поиску, хранению и контролю качества до того, как первый месячный счёт станет сюрпризом.\u003C\u002Fp>",[2015,2016],{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2019,"documentId":2020,"title":2021,"date":2022,"description":11,"order":71,"slug":2023,"showOnMainPage":13,"createdAt":2024,"updatedAt":2025,"publishedAt":2026,"locale":17,"cover":2027,"content":2055,"media_event":11,"media_areas":2058,"seo":11,"localizations":2061},339,"jdz6gl00sz72z0egu84yf8cn","16 млн за полгода: аутсорс или штат в 2026 году","2026-08-06","-autsorsing-ili-shtat-sravnenie-zatrat","2026-08-06T17:30:36.209Z","2026-09-17T22:44:36.382Z","2026-09-17T22:44:36.451Z",{"id":2028,"documentId":2029,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2030,"hash":2051,"ext":26,"mime":29,"size":2052,"url":2053,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2054,"updatedAt":2054,"publishedAt":2054},815,"j134s8pw56oxst4nxti6y7c2",{"large":2031,"small":2036,"medium":2041,"thumbnail":2046},{"ext":26,"url":2032,"hash":2033,"mime":29,"name":1375,"path":11,"size":2034,"width":32,"height":33,"sizeInBytes":2035},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_b46c3f32c5.png","large_01_cover_b46c3f32c5",698.66,698655,{"ext":26,"url":2037,"hash":2038,"mime":29,"name":1381,"path":11,"size":2039,"width":40,"height":41,"sizeInBytes":2040},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_b46c3f32c5.png","small_01_cover_b46c3f32c5",195.67,195667,{"ext":26,"url":2042,"hash":2043,"mime":29,"name":1387,"path":11,"size":2044,"width":48,"height":40,"sizeInBytes":2045},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_b46c3f32c5.png","medium_01_cover_b46c3f32c5",417.37,417370,{"ext":26,"url":2047,"hash":2048,"mime":29,"name":1393,"path":11,"size":2049,"width":55,"height":56,"sizeInBytes":2050},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_b46c3f32c5.png","thumbnail_01_cover_b46c3f32c5",48.05,48050,"01_cover_b46c3f32c5",729.03,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_b46c3f32c5.png","2026-09-17T22:44:19.542Z",[2056],{"__component":66,"id":86,"text":2057},"\u003Cp>Подрядчик присылает счет на 2,5 млн рублей в месяц. Внутренняя команда на тех же ролях просит 1,64 млн фонда оплаты труда. На этом месте штат выглядит выгоднее — пока к зарплатам не добавили страховые взносы, подбор, технику, сервисы и два месяца на сбор состава.\u003C\u002Fp>\u003Cp>При таком выборе я сначала привожу обе модели к одному составу, горизонту и налоговому режиму. Только после этого месячную ставку подрядчика можно сравнивать с расчётной стоимостью штата.\u003C\u002Fp>\u003Cp>Для этой статьи мы собрали калькулятор на семь специалистов и сравнили расходы за 6, 12 и 24 месяца. В базовом сценарии собственная команда стоит 16 млн за полгода, 28,77 млн за год и 54,5 млн за два года. При условном счете на 2,5 млн рублей в месяц подрядчик дешевле на коротком проекте, а штат начинает выигрывать между шестым и двенадцатым месяцами.\u003C\u002Fp>\u003Cp>Расчёт показывает механику сравнения. Оклады и другие расходы взяты для примера и не отражают зарплаты или тарифы Qtim. Подставьте данные своей компании: зарплаты до НДФЛ, налоговый режим, срок найма и сумму коммерческого предложения.\u003C\u002Fp>\u003Ch2>1,64 млн окладов превращаются в 16 млн за полгода\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-23.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_23_0dd015d080.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_23_0dd015d080.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_23_0dd015d080.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_23_0dd015d080.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_23_0dd015d080.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Начнём с состава. Для расчёта я взял команду, с которой можно запустить и развивать веб-продукт: руководитель проекта с функцией аналитика, дизайнер, два бэкенд-разработчика, фронтенд-разработчик, тестировщик и DevOps-инженер.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"Аутсорс_или_штат_таблица_состав_команды_vc_1920x1080.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FAutsors_ili_shtat_tablicza_sostav_komandy_vc_1920x1080_c5f1007fb1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Autsors_ili_shtat_tablicza_sostav_komandy_vc_1920x1080_c5f1007fb1.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Autsors_ili_shtat_tablicza_sostav_komandy_vc_1920x1080_c5f1007fb1.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Autsors_ili_shtat_tablicza_sostav_komandy_vc_1920x1080_c5f1007fb1.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Autsors_ili_shtat_tablicza_sostav_komandy_vc_1920x1080_c5f1007fb1.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fhabr.com\u002Fru\u002Fspecials\u002F1060148\u002F\">Исследование Хабр Карьеры\u003C\u002Fa> за первое полугодие 2026 года охватывает 45 226 зарплат, которые специалисты указали в калькуляторе сервиса. Медиана по ИТ-рынку составила 191 000 рублей: 235 000 в Москве, 200 000 в Санкт-Петербурге и 160 000 в регионах. Для бэкенд-разработчиков медианы по этим трём группам достигли 278 000, 251 000 и 220 000 рублей. Хабр Карьера собирает суммы на руки, а в нашей таблице указаны зарплаты до НДФЛ, поэтому напрямую сравнивать эти значения нельзя. Оклады в таблице взяты для примера; в своём расчёте замените их актуальными вилками до НДФЛ для нужного города и грейда.\u003C\u002Fp>\u003Cp>Оклады дают 9,81 млн рублей за шесть месяцев. Ещё 6,19 млн появляются в четырёх строках:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e159fc2bf802eb79eb0f9a5646e9a6d24\">страховые взносы — 2,94 млн;\u003C\u002Fli>\u003Cli data-list-item-id=\"e034c0ecfbb944492a53d26608e4d95b4\">подбор — 1,64 млн, если заложить один месячный оклад на каждую закрытую позицию;\u003C\u002Fli>\u003Cli data-list-item-id=\"e99ae6d61ebb502ec0cc5a0fed67c023c\">техника — 1,4 млн при бюджете 200 000 рублей на рабочее место;\u003C\u002Fli>\u003Cli data-list-item-id=\"e02059710530a929beda292f1bcfb825f\">лицензии и сервисы — 210 000 рублей при 5 000 рублей на человека в месяц.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Для обычной организации страховые взносы в 2026 году составляют 30% в пределах годовой базы 2 979 000 рублей на сотрудника и 15,1% сверх нее. Предельную базу установило Правительство РФ, тарифы приводит \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.nalog.gov.ru\u002Frn77\u002Ftaxation\u002Finsprem\u002F\">ФНС\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>В модели команда выходит 1 января. На двухлетнем горизонте предельная база обнуляется в начале второго календарного года, поэтому взносы снова считаются по полной ставке. Если запуск приходится на другой месяц, точную сумму следует пересчитать по календарным периодам.\u003C\u002Fp>\u003Cp>НДФЛ сверху не прибавляем: работодатель удерживает его из начисленной зарплаты. Отпускные уже входят в годовой фонд. Повторное добавление учтет одну выплату дважды.\u003C\u002Fp>\u003Cp>Офис, ДМС, премии и страхование от несчастных случаев в расчет не вошли: эти расходы зависят от компании и класса профессионального риска. Их следует добавить отдельными строками.\u003C\u002Fp>\u003Ch2>Порог подрядчика на полгода — 2,67 млн рублей в месяц\u003C\u002Fh2>\u003Cp>Теперь можно ответить на главный вопрос: сколько может стоить подрядчик, чтобы внешняя команда оставалась дешевле. Разделите расчётную стоимость штата на число месяцев — получите порог для сравнения коммерческих предложений.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"Аутсорс_или_штат_таблица_порог_подрядчика_vc_1920x1080.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FAutsors_ili_shtat_tablicza_porog_podryadchika_vc_1920x1080_61ca1fc240.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Autsors_ili_shtat_tablicza_porog_podryadchika_vc_1920x1080_61ca1fc240.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Autsors_ili_shtat_tablicza_porog_podryadchika_vc_1920x1080_61ca1fc240.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Autsors_ili_shtat_tablicza_porog_podryadchika_vc_1920x1080_61ca1fc240.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Autsors_ili_shtat_tablicza_porog_podryadchika_vc_1920x1080_61ca1fc240.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>В таблице 2,5 млн рублей — итоговая сумма к оплате. Если коммерческое предложение дано без НДС, при ставке 22% платёж составит 3,05 млн рублей. Если заказчик применяет общую ставку НДС, входной налог можно принять к вычету при соблюдении установленных условий. Если заказчик освобождён от НДС или применяет специальные ставки 5% или 7% на УСН, права на вычет нет. Сравнивайте предложения с учётом своего налогового режима. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.nalog.gov.ru\u002Frn77\u002Ftaxation\u002Ftaxes\u002Fnds_usn\u002F\">Правила для 2026 года разъясняет ФНС\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>При счёте на 2,5 млн рублей в месяц внешняя команда экономит около миллиона на полугодовом проекте. На годовом горизонте штат дешевле на 1,23 млн, на двухлетнем — уже на 5,5 млн.\u003C\u002Fp>\u003Cp>Цифра 2,5 млн здесь нужна для демонстрации. Подставьте сумму из реального коммерческого предложения и проверьте совпадение состава: аналитика, управление, дизайн, разработка, тестирование, инфраструктура, гарантийный период и передача документации.\u003C\u002Fp>\u003Cp>Налоговый статус способен сдвинуть границу сильнее, чем торг по ставке. Для аккредитованных ИТ-организаций ФНС указывает в 2026 году пониженный тариф: 15% в пределах базы и 7,6% сверх неё. При такой льготе годовой штатный сценарий снижается с 28,77 до 25,92 млн рублей, а месячный порог подрядчика — с 2,40 до 2,16 млн. Льготу можно применять только при выполнении требований Налогового кодекса, поэтому её нельзя автоматически переносить на любую компанию. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.nalog.gov.ru\u002Fnew2026\u002F\">Условия и тариф опубликованы ФНС\u003C\u002Fa>.\u003C\u002Fp>\u003Ch2>Два месяца найма сдвигают календарь без отдельной строки в смете\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-25.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_25_1f5843e736.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_25_1f5843e736.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_25_1f5843e736.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_25_1f5843e736.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_25_1f5843e736.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>После денег я смотрю на дату старта. Семь вакансий редко закрываются одновременно: фронтенд-разработчик уже вышел, второй бэкенд ещё проходит интервью, а DevOps рассматривает оффер и заканчивает дела у прошлого работодателя.\u003C\u002Fp>\u003Cp>В калькуляторе заложено 60 дней до сборки состава как сценарное допущение. Для своей компании стоит проверить ещё 30 и 90 дней. Универсальной цифры для опытных ИТ-специалистов нет: срок зависит от города, удаленного формата, стека, грейда и зарплатной вилки.\u003C\u002Fp>\u003Cp>Задержку можно перевести в деньги только с данными бизнеса. Для интернет-магазина месяц перед высоким сезоном имеет одну цену, для внутреннего кабинета без жёсткой даты — другую. Подставьте свои показатели в формулу:\u003C\u002Fp>\u003Cp>цена задержки = месяцы до выхода команды × маржа или экономия, которую должен дать продукт за месяц.\u003C\u002Fp>\u003Cp>Онбординг влияет на темп тем же способом. Зарплата нового сотрудника уже находится в фонде оплаты труда, но первые недели уходят на предметную область, кодовую базу и правила релиза. Эта цена проявляется в календаре выпуска.\u003C\u002Fp>\u003Ch2>Маркетплейс gallery вышел за 2,5 месяца — штат мог ещё не собраться\u003C\u002Fh2>\u003Cp>Если продукт нужен через два-три месяца, расходы на подбор и технику не успевают распределиться по длинному периоду. В таком проекте дата старта влияет на решение сильнее небольшой разницы в месячной ставке.\u003C\u002Fp>\u003Cp>В кейсе \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fdroneshow-gallery\">gallery\u003C\u002Fa> команда Qtim за 2,5 месяца выпустила маркетплейс готовых шоу дронов. В проект вошли дизайн-система, бэкенд, платежи и доступ к исходному коду. Для такого горизонта отдельный штат пришлось бы искать параллельно с уже идущей разработкой.\u003C\u002Fp>\u003Cp>Часть счёта подрядчика здесь оплачивает ранний старт. После релиза можно оставить поддержку у исполнителя, сократить состав или передать продукт своим специалистам. Условия передачи кода, окружений и документации лучше зафиксировать в договоре до начала работ.\u003C\u002Fp>\u003Ch2>Девять специалистов стали 35 за полтора месяца до релиза\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-26.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_26_0b611ef45b.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_26_0b611ef45b.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_26_0b611ef45b.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_26_0b611ef45b.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_26_0b611ef45b.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Следующий вопрос — что произойдет, если объем вырастет перед релизом. Штат выгоднее при ровной нагрузке, однако резкое расширение проекта меняет расчёт: нанять несколько десятков человек на полтора месяца, а затем без потерь уменьшить отдел практически невозможно.\u003C\u002Fp>\u003Cp>В проекте \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002F4fresh\">4fresh\u003C\u002Fa> за 1,5 месяца до релиза объем работ вырос на 70%. Состав увеличили с 9 до 35 специалистов и выпустили новую платформу в запланированный срок. Разработка шла по четырём направлениям: бэкенд, CMS, веб и мобильные приложения.\u003C\u002Fp>\u003Cp>Этот кейс не даёт основания обещать, что любой подрядчик быстро найдет людей. Он показывает преимущество компании, у которой специалисты уже распределены между проектами и настроено подключение к работающим подгруппам. Проверить такую способность можно до договора: запросить схему масштабирования, сроки замены и список ролей, которые подрядчик держит внутри.\u003C\u002Fp>\u003Ch2>Три месяца Flutter-разработки еще не дают постоянной загрузки\u003C\u002Fh2>\u003Cp>Третий вопрос — будет ли каждая роль занята после пика. Дизайнер сильнее загружен в начале, DevOps — при настройке окружений и релиза, мобильная команда — во время переноса приложения. Внешний состав позволяет менять участие специалистов по этапам. В штате редкого сотрудника нужно переводить на другие продукты или продолжать оплачивать после завершения его блока.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fkit4kid\">KIT 4 KID\u003C\u002Fa> Qtim за три месяца обновила дизайн и перенесла приложение на Flutter. Проекту на этом этапе потребовались мобильная разработка, UX с учётом особенностей восприятия детей с РАС, тестирование двух платформ и настройка выпуска. По данным кейса, единая кодовая база снизила стоимость дальнейшей поддержки примерно на 40%.\u003C\u002Fp>\u003Cp>Считайте загрузку роли по этапам. Если у компании несколько продуктов и DevOps, дизайнер или мобильный разработчик переходят между ними без простоя, преимущество аутсорса уменьшается. Если загрузить их после релиза нечем, постоянный штат увеличивает стоимость следующего года.\u003C\u002Fp>\u003Ch2>На длинной дорожной карте штат начинает отыгрывать стартовые расходы\u003C\u002Fh2>\u003Cp>После первого года расчёт разворачивается в пользу штата: подбор и техника уже оплачены, а знания остаются внутри команды. Разработчики помнят, почему появился спорный бизнес-процесс, аналитик знает историю требований, DevOps понимает слабые места инфраструктуры. На стабильной дорожной карте эта память сокращает число повторных погружений.\u003C\u002Fp>\u003Cp>Штат особенно уместен, когда разработка относится к ядру бизнеса, задачи продолжаются после релиза, загрузка ролей предсказуема, а внутри уже есть сильный руководитель. В нашем сценарии разница видна на цифрах: средняя месячная стоимость опускается с 2,67 млн на полугодовом горизонте до 2,27 млн на двухлетнем.\u003C\u002Fp>\u003Cp>У аутсорса есть обратная сторона. В ставку входят резерв состава, управление, продажи и прибыль подрядчика. При неизменной команде за два-три года эта надбавка может превысить стоимость первоначального найма. Зависимость усиливается, если документация отстаёт, доступы остаются у исполнителя, а архитектурные решения не проходят через внутреннего технического владельца.\u003C\u002Fp>\u003Ch2>Точка равенства — между шестым и двенадцатым месяцем\u003C\u002Fh2>\u003Cp>На шестимесячном горизонте дешевле подрядчик, на годовом — штат. Льготы, собственный рекрутинг и уже купленная техника сдвинут границу в пользу штата.\u003C\u002Fp>\u003Cp>В многолетнем продукте оставьте внутри ответственного за продукт, архитектуру и знания. Внешняя команда закрывает запуск, миграцию, мобильный контур, пиковую нагрузку и временный дефицит.\u003C\u002Fp>\u003Cp>Стабильная загрузка на годы — штат. Короткий проект или скачки нагрузки — аутсорс. Постоянное ядро с временным усилением — гибрид.\u003C\u002Fp>\u003Cp>Если нужно сравнить модели на своих зарплатах, сроках и составе, команда Qtim пересчитает сценарии и предложит варианты подключения. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fconsulting\">Обсудить расчёт с нами\u003C\u002Fa>.\u003C\u002Fp>",[2059,2060],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2063,"documentId":2064,"title":2065,"date":2066,"description":11,"order":40,"slug":2067,"showOnMainPage":13,"createdAt":2068,"updatedAt":2068,"publishedAt":2069,"locale":17,"cover":2070,"content":2105,"media_event":11,"media_areas":2109,"seo":11,"localizations":2112},210,"imbbxnbft75duehba72yjk23","Любая правка — мини-проект: 6 признаков, что корпоративный сайт пора пересобирать","2026-08-10","-priznaki-neobhodimosti-peresborki-korporativnogo-sajta","2026-08-11T23:47:18.300Z","2026-08-11T23:47:18.367Z",{"id":2071,"documentId":2072,"name":2073,"alternativeText":11,"caption":11,"width":2074,"height":2074,"formats":2075,"hash":2100,"ext":26,"mime":29,"size":2101,"url":2102,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2103,"updatedAt":2103,"publishedAt":2104},623,"bgz4zeehy41kkniz5aly0iaq","pic-35.png",3240,{"large":2076,"small":2082,"medium":2088,"thumbnail":2094},{"ext":26,"url":2077,"hash":2078,"mime":29,"name":2079,"path":11,"size":2080,"width":32,"height":32,"sizeInBytes":2081},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_35_d09f647ea8.png","large_pic_35_d09f647ea8","large_pic-35.png",546.07,546070,{"ext":26,"url":2083,"hash":2084,"mime":29,"name":2085,"path":11,"size":2086,"width":40,"height":40,"sizeInBytes":2087},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_35_d09f647ea8.png","small_pic_35_d09f647ea8","small_pic-35.png",164.02,164024,{"ext":26,"url":2089,"hash":2090,"mime":29,"name":2091,"path":11,"size":2092,"width":48,"height":48,"sizeInBytes":2093},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_35_d09f647ea8.png","medium_pic_35_d09f647ea8","medium_pic-35.png",332.07,332068,{"ext":26,"url":2095,"hash":2096,"mime":29,"name":2097,"path":11,"size":2098,"width":56,"height":56,"sizeInBytes":2099},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_35_d09f647ea8.png","thumbnail_pic_35_d09f647ea8","thumbnail_pic-35.png",22.3,22297,"pic_35_d09f647ea8",968.55,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_35_d09f647ea8.png","2026-08-11T23:37:11.931Z","2026-08-11T23:37:11.932Z",[2106],{"__component":66,"id":2107,"text":2108},172,"\u003Cp>Маркетингу нужен лендинг к новой кампании, HR — страница вакансии, PR — свежий кейс. Все три запроса попадают в очередь разработки: поставить задачу, дождаться оценки, найти окно в спринте, проверить сборку и выпустить релиз. Корпоративный сайт открывается и показывает страницы, а любая правка — мини-проект.\u003C\u002Fp>\u003Cp>Цена такой схемы редко видна в бюджете сайта. Она распределяется между ожиданием, согласованиями, повторной передачей контента и упущенными датами запуска. Разберём, по каким признакам сайт уже ограничивает бизнес, что именно стоит менять в его устройстве и когда конструктор остаётся разумным решением.\u003C\u002Fp>\u003Ch2>Новость ждёт релиза, вакансия — свободного разработчика\u003C\u002Fh2>\u003Cp>Зависимость от разработки становится проблемой, когда очередь начинает определять темп маркетинга и найма. Контент готов, дизайн согласован, дата кампании известна, а публикация зависит от специалиста, у которого в приоритете продуктовые задачи и исправление ошибок.\u003C\u002Fp>\u003Cp>В этот момент расходы возникают с двух сторон. Разработчик тратит время на замену текста, изображения или метатега. Маркетолог и HR-специалист ждут, повторно проверяют уже согласованный материал и сдвигают запуск. Небольшая задача проходит через процесс, рассчитанный на изменение кода.\u003C\u002Fp>\u003Cp>Поддержка сама по себе здесь ни при чём. Новые типы страниц, интеграции и сложная логика действительно требуют разработки. Проблема начинается, когда тот же путь проходит каждое типовое изменение: новость, кейс, вакансия, страница мероприятия или локальная версия готового материала.\u003C\u002Fp>\u003Ch2>Шесть признаков, что сайт стал очередью задач\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-33.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_33_ed9e5d5b8d.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_33_ed9e5d5b8d.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_33_ed9e5d5b8d.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_33_ed9e5d5b8d.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_33_ed9e5d5b8d.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Скорость сайта точнее всего показывает рабочий процесс. Дата последнего редизайна здесь мало что объясняет. Ограничение уже влияет на бизнес, если регулярно повторяются такие ситуации:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"ece4df4adb47359c44f032d3574dd08b7\">Новая страница начинается с задачи разработчику, хотя состоит из знакомых блоков.\u003C\u002Fli>\u003Cli data-list-item-id=\"e47e60bcfbcabff971a1f77106602b07c\">Замена текста, изображения или SEO-полей требует сборки и релиза.\u003C\u002Fli>\u003Cli data-list-item-id=\"eb5b55bd5e4ba0e39aee5b9023052d3d1\">Языковые версии копируют вручную, поэтому структура, ссылки и метаданные постепенно расходятся.\u003C\u002Fli>\u003Cli data-list-item-id=\"e240fb716699321cdb6200533d3d0f5e4\">Заявки с форм и отклики на вакансии приходят в почту, а сотрудники переносят данные в CRM или ATS.\u003C\u002Fli>\u003Cli data-list-item-id=\"e78a068e3a884f6217eecdb667e2dc0ae\">События аналитики добавляют после запуска, и одинаковые действия на разных страницах измеряются по-разному.\u003C\u002Fli>\u003Cli data-list-item-id=\"eff5d6fcb31682bafa6860e62560e1906\">Перед публикацией команда опасается сломать старый шаблон, вёрстку или скорость соседних страниц.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Один такой симптом ещё не требует пересборки всей платформы. Системная проблема видна по повторяемости: одни и те же операции снова занимают разработку и замедляют несколько отделов.\u003C\u002Fp>\u003Ch2>Редактор меняет контент, разработчик — правила\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-34.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_34_112a4b9b12.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_34_112a4b9b12.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_34_112a4b9b12.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_34_112a4b9b12.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_34_112a4b9b12.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Рабочая граница проходит просто: редактор управляет содержанием и собирает типовые страницы, разработчик создаёт новые возможности. Для этого контент отделяют от интерфейса и хранят в CMS по понятной модели: заголовок, лид, автор, дата, изображение, SEO-поля, связанные материалы и другие заранее описанные сущности.\u003C\u002Fp>\u003Cp>Headless CMS вроде Strapi или Directus передаёт эти данные сайту через API. Маркетинг публикует новости, кейсы и обновления без изменения кода. Разработка подключается, когда нужен новый вид блока, интеграция, правило доступа или сценарий, которого в системе раньше не было.\u003C\u002Fp>\u003Cp>В проекте \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002F4fresh\">4fresh\u003C\u002Fa> администраторы собирают карточки и страницы из отдельных модулей — фотографий, описаний, отзывов и рекомендаций. Так регулярные публикации отделены от создания новых возможностей.\u003C\u002Fp>\u003Cp>До запуска команда определяет роли, права, работу с черновиками, согласование, предпросмотр и порядок публикации. Тогда типовые изменения не зависят от одного редактора, который знает все исключения и держит структуру в памяти.\u003C\u002Fp>\u003Ch2>Свободная сборка страниц работает только внутри дизайн-системы\u003C\u002Fh2>\u003Cp>Конструктор блоков ускоряет запуск кампаний, если свобода редактора имеет чёткие границы. Команда заранее проектирует типовые секции: обложку, преимущества, цифры, кейсы, вакансии, форму, цитату и призыв к действию. Для каждого блока заданы варианты, отступы, допустимый объём текста и поведение на мобильных устройствах.\u003C\u002Fp>\u003Cp>Тогда лендинг собирают из проверенных элементов и выпускают без новой вёрстки. Бренд остаётся узнаваемым, а интерфейс — предсказуемым.\u003C\u002Fp>\u003Cp>В кейсе \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fdroneshow-gallery\">DroneShow Gallery\u003C\u002Fa> за 2,5 месяца мы разработали платформу, спроектировали больше 120 экранов и 80+ компонентов. Масштаб другой, но принцип для корпоративного сайта тот же: готовые элементы сохраняют целостность большого продукта и ускоряют выпуск только при единых правилах.\u003C\u002Fp>\u003Cp>Через год десятки почти одинаковых секций делают библиотеку блоков трудной в поддержке: редакторы компенсируют ограничения цветами, пустыми строками и случайными размерами изображений. Готовые страницы они публикуют самостоятельно, а новые компоненты проходят общий дизайн- и технический контроль.\u003C\u002Fp>\u003Ch2>Один новый язык не должен запускать второй сайт\u003C\u002Fh2>\u003Cp>Мультиязычность становится дорогой, когда каждую версию ведут как отдельный контур. Команда копирует структуру, вручную меняет ссылки и формы, а после следующего обновления вспоминает, какие языки уже получили новый блок.\u003C\u002Fp>\u003Cp>Управляемая схема связывает версии одной страницы между собой. Для каждого языка остаются собственные тексты и SEO-поля, а общие правила маршрутизации, переключения и отображения блоков задаются на уровне платформы. Маркетинг видит, какие переводы готовы, где остался черновик и какая версия опубликована.\u003C\u002Fp>\u003Cp>Новый язык использует существующие типы контента, дизайн-систему и интеграции. Команде остаются перевод, локальная редактура и контроль полноты — без повторной разработки той же структуры.\u003C\u002Fp>\u003Cp>В кейсе \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">«Стадикэтс»\u003C\u002Fa> видно, к чему ведёт разрозненность: шесть самостоятельных лендингов под разные предметы жили без общей базы пользователей, аналитики и единого центра управления. За пять месяцев мы объединили их в одну платформу. Корпоративный сайт теряет скорость по той же причине, когда языковые версии или направления развиваются как отдельные системы.\u003C\u002Fp>\u003Ch2>Форма отправлена, кандидат потерялся между системами\u003C\u002Fh2>\u003Cp>Корпоративный сайт часто обслуживает два самостоятельных потока: коммерческие обращения и найм. Если формы отправляют письма на общий адрес, каждый новый контакт запускает цепочку копирования: сотрудник переносит данные в CRM или ATS, добавляет источник, прикладывает резюме и назначает ответственного.\u003C\u002Fp>\u003Cp>Интеграция передаёт данные сразу в рабочую систему. В заявке сохраняются страница, кампания, согласие на обработку данных и нужные поля. В отклике на вакансию — позиция, резюме и источник кандидата. Команда продолжает процесс там, где уже ведёт сделки или подбор, а сайт становится входной точкой с едиными правилами.\u003C\u002Fp>\u003Cp>Если CRM или ATS временно недоступна, сайт сохраняет заявку, повторяет отправку и уведомляет ответственного. В журнале остаётся история события: команда видит сбой и контролирует доставку обращения.\u003C\u002Fp>\u003Ch2>Зелёные метрики не остаются зелёными сами\u003C\u002Fh2>\u003Cp>Производительность меняется вместе с контентом. На старте страницы быстрые, затем появляются тяжёлые изображения, видео, новые шрифты, аналитические скрипты и виджеты. Без ограничений в CMS и регулярных измерений каждый релиз понемногу ухудшает загрузку, отзывчивость и стабильность интерфейса.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fweb.dev\u002Farticles\u002Fvitals?hl=ru\">Core Web Vitals\u003C\u002Fa> оценивают эти стороны пользовательского опыта через LCP, INP и CLS. Рекомендуемые пороги — до 2,5 секунды для загрузки основного содержимого, до 200 мс для реакции на взаимодействие и до 0,1 для визуальных сдвигов. Результат считают по 75-му процентилю реальных посещений, поэтому одного быстрого теста на компьютере разработчика недостаточно.\u003C\u002Fp>\u003Cp>Для контентного сайта важен и способ рендеринга. Google \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fjavascript\u002Fdynamic-rendering?hl=ru\">рекомендует\u003C\u002Fa> рендеринг на сервере, статическую генерацию или гидратацию вместо динамического рендеринга как временного обходного решения. На практике это означает, что архитектуру индексации, кеширование и скорость нужно закладывать в платформу, а не возвращаться к ним после просадки трафика.\u003C\u002Fp>\u003Cp>Ограничения на вес медиа в CMS и данные реальных посещений делают метрики рабочим инструментом: команда замечает деградацию до заметной просадки скорости загрузки и поискового трафика.\u003C\u002Fp>\u003Ch2>Переезд начинается с карты URL и заканчивается после релиза\u003C\u002Fh2>\u003Cp>Редизайн корпоративного сайта часто затрагивает структуру адресов, поэтому запуск нельзя сводить к переносу текстов и переключению домена. Сначала команда собирает текущие URL, метаданные, контент, формы и внешние связи. Затем для каждой важной страницы определяет новый адрес и проверяет, куда ведут внутренние ссылки.\u003C\u002Fp>\u003Cp>После переноса старые адреса направляют на соответствующие новые страницы постоянными редиректами. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fsite-move-with-url-changes?hl=ru\">рекомендациях\u003C\u002Fa> по миграции Google советует использовать HTTP-редиректы 301 или 308, отправить новую карту сайта и наблюдать за индексированием и трафиком в Search Console.\u003C\u002Fp>\u003Cp>Даже при аккуратной подготовке видимость может временно колебаться, пока поисковая система сопоставляет адреса. После запуска команда проверяет редиректы, ошибки обхода, формы, события аналитики и страницы, которые теряют показы. Качество переезда определяют полнота карты соответствий и скорость реакции на отклонения.\u003C\u002Fp>\u003Ch2>Когда конструктор всё ещё дешевле\u003C\u002Fh2>\u003Cp>Небольшому корпоративному сайту отдельная платформа может добавить лишние расходы. Если компании нужен один лендинг и несколько стабильных страниц о компании, услугах и контактах, нет мультиязычности, HR-интеграций и постоянных кампаний, Tilda или другой зрелый конструктор закроет задачу быстрее.\u003C\u002Fp>\u003Cp>Кастомная архитектура оправдана, когда сайт регулярно меняют несколько отделов, контент связан с CRM и ATS, важны производительность, языковые версии и новые блоки. Для пяти статичных страниц отдельная платформа останется дорогим запасом возможностей.\u003C\u002Fp>\u003Ch2>Карта изменений покажет проблему раньше нового дизайна\u003C\u002Fh2>\u003Cp>Начните с истории задач за последние несколько месяцев. Выпишите, что просили маркетинг, HR, PR и продажи, сколько ждали публикации и кто участвовал в каждом изменении. Затем разделите запросы на две группы: операции с готовым контентом и новые функции.\u003C\u002Fp>\u003Cp>Если новости, вакансии, кейсы, метатеги и лендинги постоянно проходят через разработку, сначала стоит пересобрать контентную модель, роли и библиотеку блоков. Если задачи редкие и почти всегда требуют новой логики, текущий процесс может быть экономичнее отдельной платформы.\u003C\u002Fp>\u003Cp>В Qtim мы начинаем такой проект с карты страниц и контента, затем проектируем дизайн-систему, headless CMS, интеграции и план переноса. На странице о \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcorporate\">разработке корпоративных сайтов\u003C\u002Fa> можно посмотреть состав работ и этапы запуска.\u003C\u002Fp>\u003Cp>Критерий простой: если типовое изменение контента требует отдельной задачи разработчику и релиза, сайт уже ограничивает скорость бизнеса.\u003C\u002Fp>",[2110,2111],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2114,"documentId":2115,"title":2116,"date":2117,"description":11,"order":2118,"slug":2119,"showOnMainPage":13,"createdAt":2120,"updatedAt":2121,"publishedAt":2122,"locale":17,"cover":2123,"content":2152,"media_event":11,"media_areas":2156,"seo":11,"localizations":2159},351,"heaihqewz8dlu9x3ninbdiqq","GetCourse, iSpring или своя LMS: когда онлайн-школе нужна отдельная платформа","2026-08-11",5,"-getcourse-ispring-ili-svoya-lms-vybor-platformy-dlya-onlayn-shkoly","2026-08-11T23:59:00.384Z","2026-09-20T15:59:44.965Z","2026-09-20T15:59:45.057Z",{"id":2124,"documentId":2125,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2126,"hash":2147,"ext":26,"mime":29,"size":2148,"url":2149,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2150,"updatedAt":2150,"publishedAt":2151},842,"ioywns5r7cj3bynk64jbd22n",{"large":2127,"small":2132,"medium":2137,"thumbnail":2142},{"ext":26,"url":2128,"hash":2129,"mime":29,"name":1375,"path":11,"size":2130,"width":32,"height":33,"sizeInBytes":2131},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_d708dd9284.png","large_01_cover_d708dd9284",725.16,725156,{"ext":26,"url":2133,"hash":2134,"mime":29,"name":1381,"path":11,"size":2135,"width":40,"height":41,"sizeInBytes":2136},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_d708dd9284.png","small_01_cover_d708dd9284",204.7,204698,{"ext":26,"url":2138,"hash":2139,"mime":29,"name":1387,"path":11,"size":2140,"width":48,"height":40,"sizeInBytes":2141},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_d708dd9284.png","medium_01_cover_d708dd9284",429.9,429897,{"ext":26,"url":2143,"hash":2144,"mime":29,"name":1393,"path":11,"size":2145,"width":55,"height":56,"sizeInBytes":2146},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_d708dd9284.png","thumbnail_01_cover_d708dd9284",55.22,55216,"01_cover_d708dd9284",675.24,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_d708dd9284.png","2026-09-20T15:51:54.024Z","2026-09-20T15:51:54.027Z",[2153],{"__component":66,"id":2154,"text":2155},315,"\u003Cp>Каждую пятницу кто-то в онлайн-школе открывает большую таблицу. Уроки приезжают в неё из LMS, оплаты — из CRM, посещаемость — из сервиса видеосвязи, переносы — из чатов. К вечеру цифры сходятся. Через неделю всё сначала.\u003C\u002Fp>\u003Cp>Для ученика школа пока выглядит цельно. Сотрудники уже соединяют несколько систем и помнят, где чаще всего расходятся данные.\u003C\u002Fp>\u003Cp>Мы разрабатываем EdTech-продукты и часто подключаемся именно в такой момент: готовая LMS работает, но каждое изменение требует ещё одной выгрузки, интеграции или инструкции для команды. Тогда выбор платформы сводится к двум вопросам: какой процесс перестал помещаться в готовой системе и сколько школа уже платит за обходы.\u003C\u002Fp>\u003Ch2>Сначала найдите место, где школа начинает скрипеть\u003C\u002Fh2>\u003Cp>В Qtim мы начинаем с процесса, который школа хочет улучшить в ближайший год. Мощная платформа тоже может очень старательно решать чужую задачу.\u003C\u002Fp>\u003Cp>GetCourse подходит, когда нужен единый путь от заявки и рассылки до оплаты и доступа к курсу. iSpring LMS сфокусирована на создании учебных материалов, назначении программ, тестировании и отчётности. Своя LMS оправдана, когда школу отличают особая учебная логика, сложная ролевая модель или связи между несколькими продуктами.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-37.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_37_10341360be.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_37_10341360be.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_37_10341360be.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_37_10341360be.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_37_10341360be.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Это три разных класса задач. Количество учеников само по себе ничего не решает: тысяча человек может спокойно учиться по линейным курсам, а небольшая школа — быстро упереться в особый тренажёр или семейный аккаунт.\u003C\u002Fp>\u003Ch2>GetCourse хорош, пока путь ученика умещается в одну воронку\u003C\u002Fh2>\u003Cp>GetCourse объединяет учебный кабинет с CRM, оплатами, рассылками и автоматизированными процессами. Для школы, которая запускает курсы, собирает базу, прогревает аудиторию и продаёт несколько программ, такой контур снимает большую часть стартовой разработки.\u003C\u002Fp>\u003Cp>Стандартный путь ученика укладывается в понятную цепочку: заявка, оплата, группа, уроки, задания и сообщения. Команда работает в одной системе и быстрее проверяет новые продукты. На этом этапе собственная LMS обычно отвлекает деньги и людей от методики, продаж и контента.\u003C\u002Fp>\u003Cp>Проблема начинается, когда обход становится обязательной частью процесса. Сотрудники регулярно выгружают данные, сопоставляют платежи с прогрессом или поддерживают несколько версий одной схемы для разных программ. Одна такая операция ещё не требует разработки. Когда еженедельная сверка входит в должностные обязанности, школа уже платит за неё постоянно.\u003C\u002Fp>\u003Ch2>iSpring держит учебный контур, а продажи живут по соседству\u003C\u002Fh2>\u003Cp>iSpring LMS подходит проектам, где центр тяжести находится в учебных материалах и управлении обучением. В платформу можно загружать SCORM-курсы, создавать тесты и лонгриды, назначать программы группам, собирать отчёты и давать доступ к материалам через мобильное приложение, в том числе без интернета. Через API и готовые интеграции учебный портал связывается с другими системами.\u003C\u002Fp>\u003Cp>Такой вариант полезен школам и учебным центрам с формализованными программами, сертификацией и подробным контролем прохождения. CRM, продажи и другие процессы могут оставаться во внешнем контуре, а iSpring становится центром учебной части.\u003C\u002Fp>\u003Cp>Порог появляется, когда ученику уже мало получить материал, сдать тест и попасть в отчёт. Персональный подбор преподавателя, нестандартная логика тарифа, семейный аккаунт, собственная система мотивации или особые правила допуска к занятию могут потребовать отдельного продуктового слоя. Сначала проверяем API и настройки. Иногда одна интеграция закрывает вопрос дешевле и быстрее разработки.\u003C\u002Fp>\u003Ch2>Своя LMS начинается там, где методику приходится объяснять платформе\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-38.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_38_8cacabec62.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_38_8cacabec62.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_38_8cacabec62.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_38_8cacabec62.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_38_8cacabec62.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Отдельная платформа оправдана, если важные правила школы приходится реализовывать за пределами готовой системы. Это логика, с которой ученик или преподаватель сталкивается каждый день: как подбирается следующее задание, кто проверяет работу, когда открывается пересдача, как родитель видит прогресс нескольких детей, что происходит после пропуска занятия.\u003C\u002Fp>\u003Cp>Между SaaS-платформой и разработкой с нуля есть open-source LMS, например Moodle. Готовое ядро подходит, если базовая логика курсов устраивает школу, а команда или подрядчик берёт на себя хостинг, обновления, безопасность, плагины и интеграции. Глубокие доработки переносят часть учебной логики в плагины и форки, поэтому расходы на разработку и поддержку остаются, как и зависимость от технической команды.\u003C\u002Fp>\u003Cp>В собственной системе интерфейс, данные и автоматизация повторяют методику школы. Команда меняет сценарий без цепочки выгрузок и временных решений. Вместе с этой свободой бизнес берёт на себя аналитику, безопасность, релизы, поддержку пользователей и работу системы в периоды нагрузки. Свобода приезжает со своим графиком дежурств.\u003C\u002Fp>\u003Cp>Стоимость текущих ограничений складывается из четырёх строк: часы сотрудников на сверки, обращения в поддержку из-за ошибок доступа и оплат, отложенные запуски программ и подписки на сервисы-костыли. Такой расчёт показывает, сколько школа уже тратит на сохранение текущего контура и какой эффект должна дать разработка. Та самая пятничная таблица наконец получает цену.\u003C\u002Fp>\u003Ch2>Пять признаков, что LMS уже управляет школой\u003C\u002Fh2>\u003Cp>\u003Cstrong>Отчёт успевает устареть, пока его собирают.\u003C\u002Fstrong> Данные об оплате, посещаемости, домашних заданиях и продлениях лежат в разных местах. Руководитель видит проблему после сверки, когда на ученика уже нельзя повлиять вовремя.\u003C\u002Fp>\u003Cp>\u003Cstrong>Методисты сначала проектируют сильную программу, затем обрезают её до доступных блоков.\u003C\u002Fstrong> Полезный сценарий не попадает в продукт, потому что его трудно собрать из модулей, уроков и тестов. Со временем школа конкурирует контентом внутри той же механики, что и другие проекты.\u003C\u002Fp>\u003Cp>\u003Cstrong>Права держатся на исключениях. \u003C\u002Fstrong>Учитель видит одно, куратор — другое, родителю нужен отдельный срез, а администраторы отвечают за разные программы. Общая роль с десятками оговорок повышает риск открыть лишние данные или закрыть нужное действие.\u003C\u002Fp>\u003Cp>\u003Cstrong>Живой урок существует отдельно от учебной истории.\u003C\u002Fstrong> Ссылка на внешнюю встречу работает, пока достаточно провести занятие. Когда школе нужны автоматические записи, посещаемость, права на подключение и связь активности с прогрессом, видеосвязь становится частью образовательного контура.\u003C\u002Fp>\u003Cp>\u003Cstrong>Ошибка между системами уже видна ученику.\u003C\u002Fstrong> Оплата прошла, но курс не открылся; занятие перенесли, а уведомление не пришло; домашняя работа загрузилась перед дедлайном, но обработка файла задержала кабинет. В этот момент устройство интеграций становится частью качества услуги, хотя ученик ни разу не произнесёт слово «интеграция».\u003C\u002Fp>\u003Cp>Один симптом редко оправдывает разработку. Повторяющиеся проблемы уже требуют аудита процессов, данных и связей между системами.\u003C\u002Fp>\u003Ch2>У «Стадикэтс» было шесть курсов и ни одного общего кабинета\u003C\u002Fh2>\u003Cp>До отдельной платформы у \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">«Стадикэтс»\u003C\u002Fa> было шесть самостоятельных курсов по подготовке к ЕГЭ и ОГЭ. У каждого направления были свои страницы, тарифы и формат проверки. Ученик собирал подготовку как маршрут по нескольким продуктам, а у команды не было общего центра управления и сквозной статистики.\u003C\u002Fp>\u003Cp>В новой системе появились общий личный кабинет, расписание, домашние задания, пробники, карточки для повторения и геймификация. Платформа связала путь ученика по разным предметам и дала команде одни правила проверки и управления курсами. От старта до релиза прошло 5 месяцев; на запуске в системе занимались 1000+ учеников.\u003C\u002Fp>\u003Cp>Пики перед дедлайнами потребовали отдельного архитектурного решения. Когда ученики массово присылают домашние задания и аудиозаписи, обработка файлов может задержать основной кабинет. Такие операции вынесли в фон через BullMQ и очереди на Redis: платформа фиксирует сдачу, ученик продолжает заниматься, а отдельный процесс обрабатывает файл и обновляет статус.\u003C\u002Fp>\u003Cp>Решающим фактором стала связность продукта: несколько курсов, сквозная статистика, общие механики и нагрузка в конкретные моменты учебного цикла. Число пользователей здесь вторично.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"pic-39.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_39_b1b25645eb.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_39_b1b25645eb.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_39_b1b25645eb.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_39_b1b25645eb.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_39_b1b25645eb.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>В «Онлайн-школе №1» права доступа разделили на 18 ролей\u003C\u002Fh2>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">«Онлайн-школе №1»\u003C\u002Fa> основной учебный путь работает в вебе: расписание, задания, материалы, проверки, календарь и инструменты преподавателей. В системе 18 ролей, среди них учителя, кураторы, координаторы и администраторы. Для каждой настраиваются доступные блоки и действия; новую роль можно добавить без переписывания всей модели доступа.\u003C\u002Fp>\u003Cp>По мере развития вокруг ядра появились отдельные продукты. Собственная ВКС связала уроки с расписанием, авторизацией, записями и управлением участниками. Мобильный дневник закрыл другой сценарий: родитель видит расписание, оценки, посещаемость и задания нескольких детей. Учебное ядро при этом осталось в вебе.\u003C\u002Fp>\u003Cp>Автоматизация охватила около 80% проверок и освободила примерно 25 часов команды в неделю, которые раньше уходили на проверку домашних заданий. В опубликованных результатах проекта конверсия в оплату дополнительных курсов выросла с 12% до 27%, а удержание — с 48% до 64%.\u003C\u002Fp>\u003Cp>Разные пользовательские маршруты опираются на общую модель данных. Ученика, учителя, куратора и родителя развели по интерфейсам с конкретными задачами, а общий серверный контур синхронизирует расписание, статусы, оценки и права.\u003C\u002Fp>\u003Ch2>Релиз прошёл, а счёт за LMS остался\u003C\u002Fh2>\u003Cp>После релиза разработка продолжается. Браузеры и мобильные системы обновляются, интеграции меняют API, растёт объём данных, появляются новые роли и требования к защите информации. Нужны мониторинг, резервное копирование, тестирование и команда, которая принимает продуктовые решения.\u003C\u002Fp>\u003Cp>Опубликованные кейсы дают ориентир по срокам: первый релиз платформы «Онлайн-школы №1» занял 3 месяца, объединение шести курсов «Стадикэтс» — 5 месяцев. Для отдельной LMS это горизонт в несколько месяцев. Планировать такой проект как двухнедельный спринт слишком оптимистично. Точная смета зависит от состава ролей, объёма миграции, количества интеграций, живых занятий, мобильных сценариев, требований к нагрузке и состава команды.\u003C\u002Fp>\u003Cp>Разработка преждевременна, пока школа ищет формат курса, редко меняет стандартный учебный путь и закрывает отчётность готовыми инструментами. Желание получить фирменный интерфейс тоже слабо обосновывает проект: брендинг можно настроить во многих LMS без нового программного продукта.\u003C\u002Fp>\u003Cp>Собранную выше стоимость ограничений сравниваем с созданием платформы и её дальнейшим развитием. Расчёт охватывает весь срок владения, включая поддержку после первого релиза.\u003C\u002Fp>\u003Ch2>Переезд начинают с истории ученика\u003C\u002Fh2>\u003Cp>Переход на отдельную платформу начинается с процессов и данных. Команда фиксирует, где хранятся пользователи, группы, оплаты, прогресс, оценки, задания, записи занятий и права доступа. Затем определяет, какая история нужна в новом контуре с первого дня.\u003C\u002Fp>\u003Cp>Дальше двигаемся поэтапно:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"eaaeb1bed488310cad5539329f86a3ccf\">описать основной путь ученика и действия сотрудников;\u003C\u002Fli>\u003Cli data-list-item-id=\"e76f76d006331692dcac4c2b9e5e8dd3b\">собрать карту данных и интеграций;\u003C\u002Fli>\u003Cli data-list-item-id=\"e7445d7c56fdb6b2644db11e864de1fec\">перенести один законченный сценарий, например курс или поток;\u003C\u002Fli>\u003Cli data-list-item-id=\"e2ac5b9d787eb38811f2024fce9bf5850\">проверить его на ограниченной группе;\u003C\u002Fli>\u003Cli data-list-item-id=\"e221e649adb3da849bb9bbf70a9be7a9f\">сверить доступы, оплаты и прогресс до переключения остальных пользователей.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Самый чувствительный участок — продолжение обучения после миграции. Ученик должен открыть нужный урок, увидеть сданные работы и сохранить доступ по своему тарифу. Пилот на реальном потоке проверяет данные, роли и интеграции в одном маршруте. Скучная сверка до запуска заметно приятнее эффектного письма «мы уже всё починили» после него.\u003C\u002Fp>\u003Ch2>Своя платформа нужна, когда коробка редактирует методику\u003C\u002Fh2>\u003Cp>GetCourse разумно выбирать для быстрого запуска школы и связки обучения с продажами. iSpring подходит, когда основная задача — создавать программы, назначать их группам и контролировать результаты. Собственная LMS оправдана, когда методика, роли, живые занятия, интеграции и поведение системы под нагрузкой определяют качество образовательного продукта.\u003C\u002Fp>\u003Cp>Практический критерий простой: готовая LMS подходит, пока настройки и интеграции сохраняют методику школы. Отдельную платформу стоит оценивать, когда ограничения регулярно меняют продукт и блокируют запланированное развитие.\u003C\u002Fp>\u003Cp>Если несколько признаков из статьи совпали, команда Qtim может провести аудит текущего контура. Мы разделим задачи на настройки готовой LMS, интеграции и продуктовую разработку, а затем соберём состав следующего релиза. Подробнее — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\">на нашей странице EdTech-разработки\u003C\u002Fa>.\u003C\u002Fp>",[2157,2158],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2161,"documentId":2162,"title":2163,"date":2164,"description":11,"order":2165,"slug":2166,"showOnMainPage":13,"createdAt":2167,"updatedAt":2168,"publishedAt":2169,"locale":17,"cover":2170,"content":2199,"media_event":11,"media_areas":2203,"seo":11,"localizations":2206},332,"wcg59mzuex1spvgeegxdhn63","В дашборде план выполнен, в кассе денег нет: почему CRM показывает несколько версий бизнеса","2026-08-12",4,"-pochemu-crm-pokazyvaet-raznye-versii-biznesa","2026-08-12T22:13:44.432Z","2026-09-17T22:01:25.093Z","2026-09-17T22:01:25.160Z",{"id":2171,"documentId":2172,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2173,"hash":2194,"ext":26,"mime":29,"size":2195,"url":2196,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2197,"updatedAt":2197,"publishedAt":2198},798,"ja32migphe5mr2ng3rvb8ocd",{"large":2174,"small":2179,"medium":2184,"thumbnail":2189},{"ext":26,"url":2175,"hash":2176,"mime":29,"name":1375,"path":11,"size":2177,"width":32,"height":33,"sizeInBytes":2178},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_4b245f93e2.png","large_01_cover_4b245f93e2",675.75,675748,{"ext":26,"url":2180,"hash":2181,"mime":29,"name":1381,"path":11,"size":2182,"width":40,"height":41,"sizeInBytes":2183},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_4b245f93e2.png","small_01_cover_4b245f93e2",184.31,184305,{"ext":26,"url":2185,"hash":2186,"mime":29,"name":1387,"path":11,"size":2187,"width":48,"height":40,"sizeInBytes":2188},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_4b245f93e2.png","medium_01_cover_4b245f93e2",395.45,395453,{"ext":26,"url":2190,"hash":2191,"mime":29,"name":1393,"path":11,"size":2192,"width":55,"height":56,"sizeInBytes":2193},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_4b245f93e2.png","thumbnail_01_cover_4b245f93e2",50.56,50559,"01_cover_4b245f93e2",591.73,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_4b245f93e2.png","2026-09-17T22:00:40.815Z","2026-09-17T22:00:40.816Z",[2200],{"__component":66,"id":2201,"text":2202},296,"\u003Cp>На планёрке всё выглядит отлично: в CRM план закрыт, сделки зелёные. Затем финансист открывает свой отчёт. Там часть счетов ещё ждёт оплаты, по нескольким заказам прошли возвраты, а крупный договор пока существует только на бумаге. Переговоры быстро переключаются с результатов на вопрос: чья цифра настоящая?\u003C\u002Fp>\u003Cp>CRM не соврала. Финансовый отчёт тоже. Просто два экрана отвечают на разные вопросы, хотя оба подписаны почти одинаково. Обычно в этот момент начинают проверять формулу или интеграцию. Часто проблема появилась раньше: команда не договорилась, какое событие считать продажей, из какой системы брать дату и что делать с изменениями после закрытия сделки.\u003C\u002Fp>\u003Cp>Ниже — причины, из-за которых CRM показывает несколько версий бизнеса, и короткая проверка для показателя, на который собирается опереться руководитель.\u003C\u002Fp>\u003Ch2>Одна «продажа» скрывает четыре разных события\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-four-events.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_four_events_03681c6889.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_four_events_03681c6889.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_four_events_03681c6889.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_four_events_03681c6889.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_four_events_03681c6889.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>У отдела продаж, финансов и операционной команды разные моменты истины. Для менеджера результатом может быть подписанный договор или статус «успешно». Для финансиста — поступление денег. Операционный отдел смотрит на отгрузку или оказанную услугу, собственник — на выручку с учётом возвратов и отмен.\u003C\u002Fp>\u003Cp>Все определения рабочие. Стадии воронки показывают загрузку менеджеров и вероятность закрытия сделок. Платёжные данные отражают движение денег. Сведения об исполнении подтверждают, что обязательства выполнены. Путаница начинается, когда четыре события получают одну подпись «продажи» и оказываются на соседних виджетах.\u003C\u002Fp>\u003Cp>Технически такой дашборд может быть безупречен. CRM честно суммирует сделки на нужной стадии, учётная система — платежи, сервис доставки — отгруженные заказы. Ошибка сидит в подписи: она делает разные источники и моменты времени похожими.\u003C\u002Fp>\u003Cp>До обсуждения цветов и графиков разложите путь сделки на события. Затем выберите то, которое отвечает на вопрос руководителя.\u003C\u002Fp>\u003Ch2>Статус «успешно» обещает деньги, которых ещё нет\u003C\u002Fh2>\u003Cp>Менеджер переводит карточку в «успешно», когда клиент согласился, подписал договор или выполнил другое принятое условие. На этом коммерческая работа может быть закончена. Платёжный контур в этот момент ещё молчит: деньги придут позже, частями или не придут вовсе.\u003C\u002Fp>\u003Cp>Если дашборд принимает зелёный статус за оплату, прогноз незаметно становится фактом. Руководитель видит выполненный план и увеличивает расходы на найм, закупки или рекламу. Несовпадение обнаруживается позже, когда решение уже принято.\u003C\u002Fp>\u003Cp>Показателям нужны точные названия. «Сумма закрытых сделок» берётся из CRM. «Полученные оплаты» — из платёжной или учётной системы. «Чистая выручка» учитывает возвраты, скидки и частичные платежи. Их можно держать рядом на одном экране, если интерфейс показывает разницу.\u003C\u002Fp>\u003Ch2>Платёж уже пришёл. Дашборд узнает через час\u003C\u002Fh2>\u003Cp>У данных свой распорядок. CRM меняется после действия менеджера, платёжный сервис отправляет событие по API, учётная система проводит документы по расписанию, аналитическая витрина пересобирается через заданный интервал.\u003C\u002Fp>\u003Cp>Поэтому отметка «обновлено сегодня» помогает примерно как часы без минутной стрелки. Платёж мог прийти пять минут назад, а в отчёте появится через час. При тихом сбое вчерашнее значение останется на экране и будет выглядеть вполне бодро.\u003C\u002Fp>\u003Cp>У критичного показателя должны быть время последнего успешного обновления, допустимая задержка и сигнал о её превышении. Для утреннего совещания подойдут данные на начало дня. Для контроля оплат или нагрузки поддержки нужен другой ритм. Частоту задаёт решение, которое команда принимает по цифре.\u003C\u002Fp>\u003Cp>Интеграция также должна отсекать дубли и замечать пропуски. Для этого нужны устойчивый идентификатор события, повторные попытки и журнал ошибок. Иначе один настойчивый сервис способен «продать» один заказ несколько раз.\u003C\u002Fp>\u003Ch2>Статус успели поменять менеджер, робот и интеграция\u003C\u002Fh2>\u003Cp>Одно поле может обновить менеджер, автоматический сценарий, импорт и внешняя система. Сотрудник считает договор согласованным, автоматизация реагирует на выставленный счёт, интеграция получает оплату. Побеждает тот, кто записал значение последним, хотя его версия может быть менее точной. Обратная синхронизация иногда ещё и возвращает старый статус после правки сотрудника.\u003C\u002Fp>\u003Cp>Поэтому ключевым полям нужен владелец. Команда заранее фиксирует, какая система создаёт значение, кто может его менять и какое событие считается окончательным. Журнал хранит прежнее и новое значение, время и автора операции. Тогда спор заканчивается проверкой цепочки событий.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fattestation-platform\">платформе аттестации для Университета Льва Толстого\u003C\u002Fa> эту логику закрепили в модели заявок. Она учитывает переносы, неявки и пересдачи. Супер-администратор видит видеозаписи, администратор работает с документами и результатами без доступа к видео. Через решение прошли около 460 кандидатов. Роли и переходы между состояниями зафиксированы в самой системе, у каждого статуса есть однозначный смысл.\u003C\u002Fp>\u003Ch2>Возврат прошёл, а выручка осталась зелёной\u003C\u002Fh2>\u003Cp>Сделка может включать аванс, окончательный расчёт и частичный возврат. Если модель увидела только первый платёж, хорошая новость останется на экране дольше, чем в деньгах.\u003C\u002Fp>\u003Cp>Сумма оформленных сделок показывает объём договорённостей в CRM. Полученные деньги отражают кассовое движение. Чистый денежный результат учитывает возвраты и отмены по согласованному правилу. У каждого показателя своя дата: сделка, платёж и возврат могут попасть в разные месяцы.\u003C\u002Fp>\u003Cp>Правило пересчёта истории выбирают заранее. Июльский возврат по июньской продаже можно отнести к июню или показать корректировкой в июле. Оба подхода работают. Их смешение ломает сравнение периодов.\u003C\u002Fp>\u003Ch2>Два руководителя открывают один отчёт и видят разные цифры\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-two-versions.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_two_versions_15903576a5.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_two_versions_15903576a5.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_two_versions_15903576a5.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_two_versions_15903576a5.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_two_versions_15903576a5.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Одинаковая страница ещё не означает одинаковую выборку. CRM и аналитические системы ограничивают данные по ролям, подразделениям, регионам и владельцам записей. Руководитель отдела видит свою команду, коммерческий директор — весь контур, партнёр — доступные ему сделки. Дополнительные фильтры могут сохраниться в ссылке, профиле или состоянии отчёта.\u003C\u002Fp>\u003Cp>На встрече оба пользователя честно смотрят в один отчёт. Только один выбрал месяц по дате создания сделки, второй — по дате закрытия. У одного включён регион, у другого скрыты архивные записи. Заголовок страницы совпадает, строки под ним — уже нет.\u003C\u002Fp>\u003Cp>Критичные срезы стоит показывать рядом с показателем: период, подразделение, валюта, тип клиента и используемая дата. Для общих встреч нужен сохранённый эталонный набор фильтров. Экран также должен предупреждать, когда права доступа скрывают часть данных.\u003C\u002Fp>\u003Ch2>Плохая цифра молчит до первого дорогого решения\u003C\u002Fh2>\u003Cp>Ошибочный показатель не выводит предупреждение «по этой цифре пока не нанимайте людей». Он просто остаётся зелёным. Завышенный прогноз позволяет раньше увеличить расходы. Заниженная загрузка откладывает найм и создаёт очередь. Неполные данные по возвратам маскируют проблему продукта.\u003C\u002Fp>\u003Cp>После нескольких расхождений у CRM появляются соседи. Руководитель просит выгрузку, менеджер ведёт параллельный файл, финансист собирает собственный отчёт. Каждая копия приносит ещё одно правило и ещё одну задержку. Совещание уходит на сверку таблиц.\u003C\u002Fp>\u003Cp>Качество дашборда лучше измерять временем от отклонения до действия. Если команда сначала выясняет, какая цифра верна, экран пока показывает проблему, а не помогает её решить.\u003C\u002Fp>\u003Ch2>Шесть подписей под цифрой возвращают ей смысл\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-six-labels.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_six_labels_65fc6e6607.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_six_labels_65fc6e6607.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_six_labels_65fc6e6607.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_six_labels_65fc6e6607.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_six_labels_65fc6e6607.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Возьмите показатель, из-за которого чаще всего спорят отделы, и заполните короткую карточку.\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"e435aae8ab59446b0bcae39c7485eb8f4\">Решение. Что изменит руководитель после роста или падения показателя?\u003C\u002Fli>\u003Cli data-list-item-id=\"e4a6f8e6ac5dffe0473999d9921146c45\">Определение. Какое событие, формула и период входят в расчёт?\u003C\u002Fli>\u003Cli data-list-item-id=\"e63cb82aaae8b67f05486566529fdaeb8\">Источник. Какая система считается основной при расхождении?\u003C\u002Fli>\u003Cli data-list-item-id=\"ec95c37e42831d24025e38b0fe446fbfd\">Свежесть. Как часто обновляются данные и где виден сбой?\u003C\u002Fli>\u003Cli data-list-item-id=\"efed38f0864d9ebb773a1b369a1c577bd\">Ответственный. Кто отвечает за смысл и качество данных?\u003C\u002Fli>\u003Cli data-list-item-id=\"e7e3aae37497aeec2b60a6dd2d0a30928\">Действие. Какое отклонение требует реакции и кто её запускает?\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Пустая строка в этой карточке означает, что показатель ещё рано использовать для решения. Сначала команда договаривается о смысле, источнике и реакции. Затем проектирует график, срезы, предупреждения и переход к конкретной сделке. Так виджеты появляются после правил, а не вместо них.\u003C\u002Fp>\u003Cp>После карточки восстановите путь нескольких сделок до исходной системы. Он покажет точку расхождения: статус подменил оплату, обновление запоздало, возврат выпал из периода или роль скрыла часть строк. Дальше можно менять процесс, настраивать готовую систему, исправлять интеграцию или проектировать собственный контур.\u003C\u002Fp>\u003Ch2>Коробочная CRM держится, пока процесс помещается в настройки\u003C\u002Fh2>\u003Cp>Готовая система подходит, если воронка близка к стандартной, роли укладываются в её модель, а интеграции передают данные с нужной глубиной. Часто достаточно пересобрать стадии, обязательные поля, права, автоматические действия и несколько отчётов. Собственный контур в такой ситуации добавит стоимость и ответственность без заметной пользы.\u003C\u002Fp>\u003Cp>Кастомная логика нужна, когда CRM управляет основным операционным процессом: связывает сайт, личный кабинет, 1С, ERP, склад или хранилище данных; учитывает несколько типов договоров и оплат; разводит сложные права; рассчитывает показатели по правилам компании; хранит историю изменений и работает под высокой нагрузкой.\u003C\u002Fp>\u003Cp>Вместе с собственным контуром компания получает ответственность за архитектуру, интеграции, мониторинг, поддержку и развитие. Выбор проще начинать с карты процессов, ролей, данных и ключевых экранов. Она показывает, где хватит настройки, какие участки останутся во внешних сервисах и что потребуется разрабатывать.\u003C\u002Fp>\u003Cp>Подробнее о подходе Qtim к проектам \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcrm\">CRM и управленческих дашбордов\u003C\u002Fa>.\u003C\u002Fp>",[2204,2205],{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2208,"documentId":2209,"title":2210,"date":2211,"description":11,"order":71,"slug":2212,"showOnMainPage":13,"createdAt":2213,"updatedAt":2214,"publishedAt":2215,"locale":17,"cover":2216,"content":2244,"media_event":11,"media_areas":2248,"seo":11,"localizations":2251},350,"mpxer9aw8jjq44rby7j47pwi","Стоимость разработки интеграции — API, CRM, 1С и внешние сервисы\n","2026-08-13","stoimost-razrabotki-integracii-api-crm-1s-i-vneshnie-servisy","2026-08-18T10:36:53.371Z","2026-09-20T15:45:50.010Z","2026-09-20T15:45:50.144Z",{"id":2217,"documentId":2218,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2219,"hash":2240,"ext":26,"mime":29,"size":2241,"url":2242,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2243,"updatedAt":2243,"publishedAt":2243},837,"hvt62naby3vkjxfmby085y7y",{"large":2220,"small":2225,"medium":2230,"thumbnail":2235},{"ext":26,"url":2221,"hash":2222,"mime":29,"name":1375,"path":11,"size":2223,"width":32,"height":33,"sizeInBytes":2224},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_608706d16f.png","large_01_cover_608706d16f",608.67,608670,{"ext":26,"url":2226,"hash":2227,"mime":29,"name":1381,"path":11,"size":2228,"width":40,"height":41,"sizeInBytes":2229},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_608706d16f.png","small_01_cover_608706d16f",173.86,173860,{"ext":26,"url":2231,"hash":2232,"mime":29,"name":1387,"path":11,"size":2233,"width":48,"height":40,"sizeInBytes":2234},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_608706d16f.png","medium_01_cover_608706d16f",368.46,368463,{"ext":26,"url":2236,"hash":2237,"mime":29,"name":1393,"path":11,"size":2238,"width":55,"height":56,"sizeInBytes":2239},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_608706d16f.png","thumbnail_01_cover_608706d16f",44.85,44849,"01_cover_608706d16f",582.78,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_608706d16f.png","2026-09-20T15:43:08.550Z",[2245],{"__component":66,"id":2246,"text":2247},314,"\u003Cp class=\"p1\">Запрос на оценку часто звучит так: «Нужно связать CRM и 1С. API у них есть. Сколько стоит?» Для трёх типовых сценариев ориентир начинается с 16–28 часов на передачу формы с сайта в CRM. Двусторонний обмен CRM с 1С занимает 80–160 часов при заранее зафиксированном составе работ, подключение внешнего сервиса по API — 28–56 часов.\u003C\u002Fp>\u003Cp class=\"p1\">Если для сценарного расчёта использовать согласованную для этой модели ставку Qtim — 3 150 ₽\u002Fчас, получатся вилки 50 400–88 200 ₽, 252 000–504 000 ₽ и 88 200–176 400 ₽ соответственно. Эта модель нужна для сравнения задач. Итог зависит от систем, данных, правил обмена и требований к надёжности.\u003C\u002Fp>\u003Ch2>100–300 тыс. и 900 тыс. — это разный состав работ\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_9214d511d3.png\" alt=\"pic.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_9214d511d3.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_9214d511d3.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_9214d511d3.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_9214d511d3.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Данные Workspace относятся к категориям целиком, а суммы из брифов — к стартовым бюджетам до получения коммерческих предложений; финальные цены договоров неизвестны. Ориентиры помогают увидеть порядок бюджета, когда рядом описан состав задачи. Сценарные вилки ниже рассчитаны по этой ставке и фиксированным границам работ.\u003C\u002Fp>\u003Ch2>Две системы на схеме — пять процессов в смете\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_inline_78d97645ab.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_inline_78d97645ab.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_inline_78d97645ab.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_inline_78d97645ab.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_inline_78d97645ab.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">В стоимость интеграции входят обследование, проектирование обмена, разработка, проверка на реальных данных и запуск с наблюдением. Даже передача одной формы требует определить поля, момент отправки, правило поиска дублей и действие при ошибке.\u003C\u002Fp>\u003Cp class=\"p1\">Приблизительную сложность можно проверить в два шага:\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>объекты × направления обмена × события = базовые сценарии;\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>базовые сценарии × исключения = проверки.\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Возьмём интернет-магазин: три объекта — клиент, заказ и остаток — умножаем на два направления и четыре события: создание, оплату, отгрузку и отмену. Получаем 24 базовых сценария обмена. Если для каждого проверить дубль, недоступность внешней системы и изменение задним числом, добавится ещё 72 проверки исключений. Именно такой объём скрывается в строке сметы «тестирование».\u003C\u002Fp>\u003Cp class=\"p1\">Сценарий на 80–160 часов ниже рассчитан для двух объектов — клиентов и заказов — и заранее согласованного набора статусов. Контур на три объекта с 24 сценариями и 72 проверками уже требует отдельного обследования. Формула помогает заметить эту границу до запроса коммерческого предложения.\u003C\u002Fp>\u003Cp class=\"p1\">На обследовании команда смотрит версии и доработки конфигураций, документацию API, примеры реальных данных и доступы к тестовым контурам. Если справочник клиентов содержит дубли, а одинаковый статус заказа запускает разные действия в отделах, подготовка данных и согласование правил становятся отдельными строками сметы.\u003C\u002Fp>\u003Ch2>API открыт, а правила обмена ещё нужно определить\u003C\u002Fh2>\u003Cp class=\"p1\">API задаёт способ обращения к системе. Он не объясняет, как связать карточку контрагента в 1С с компанией в CRM или какой статус вернуть после частичной оплаты. Эти правила команда фиксирует до разработки.\u003C\u002Fp>\u003Cp class=\"p1\">В 1С можно публиковать стандартный интерфейс OData и создавать собственные HTTP-сервисы. Выбор зависит от конфигурации, доступных объектов, требований безопасности и логики обмена. Подробное описание полей, кодов ошибок и лимитов сокращает этап исследования. Закрытые объекты, отсутствие событий или тестовой среды увеличивают объём проверок.\u003C\u002Fp>\u003Cp class=\"p1\">Для CRM и сайта действует тот же принцип. Отправить форму обычно проще, чем вернуть результат обработки, сохранить источник обращения и исключить повторное создание лида. Нужные объекты и операции могут отсутствовать в API, поэтому бюджет определяют правила и ограничения конкретного интерфейса.\u003C\u002Fp>\u003Ch2>Обратный путь добавляет статусы, конфликты и проверки\u003C\u002Fh2>\u003Cp class=\"p1\">Односторонний обмен заканчивается после передачи события. В двусторонней связке изменения возвращаются: оплата из 1С попадает в CRM, новый адрес доставки уходит на склад, отмена заказа освобождает остаток. Для каждого поля заранее выбирают исходную систему.\u003C\u002Fp>\u003Cp class=\"p1\">Если остаток хранит 1С, CRM не должна перезаписать его старым значением. Если менеджер объединил два дубля клиента, обмену нужно корректно связать карточки контрагента. Платёжная система, телефония или доставка добавляют свои лимиты и статусы. Каждая развилка требует аналитики, кода и отдельной проверки.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому тестирование считают по потокам. Проверяют первичную загрузку, обычный обмен, изменение задним числом, дубль, недоступный сервис и восстановление. Демонстрация на одном идеальном заказе не показывает, что произойдёт в рабочем контуре.\u003C\u002Fp>\u003Ch2>Повторы, очереди и логи защищают заказы от дублей и потерь\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-inline.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_inline_79d5952840.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_inline_79d5952840.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_inline_79d5952840.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_inline_79d5952840.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_inline_79d5952840.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Внешняя система может не ответить вовремя. Интеграция должна сохранить заказ и не создать его дважды. Для этого в архитектуру закладывают ограниченные повторные попытки с задержкой и ключ, по которому распознаётся уже обработанный запрос.\u003C\u002Fp>\u003Cp class=\"p1\">Очередь позволяет принять событие и вернуться к нему, когда зависимый сервис снова доступен. После исчерпания попыток операцию сохраняют для разбора и повторного запуска. Логи и мониторинг показывают, где остановился процесс и какие данные успели измениться.\u003C\u002Fp>\u003Cp class=\"p1\">Эти механизмы увеличивают первоначальный объём работ, зато сокращают время поиска сбоя и риск потерять оплату, заказ или актуальный остаток. После релиза отдельно оценивают наблюдение, разбор инцидентов и адаптацию к изменениям API, конфигурации 1С, полей CRM и бизнес-правил.\u003C\u002Fp>\u003Cp class=\"p1\">До запуска также решают, кто обновляет токены и сертификаты, следит за лимитами поставщика, разбирает сообщения в очереди и связывается с владельцами внешней системы. Поддержка без назначенного ответственного быстро превращается в общий чат, где никто не владеет инцидентом целиком.\u003C\u002Fp>\u003Ch2>Три частых запроса — три вилки\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_kopiya_1ead58413a.png\" alt=\"pic&nbsp;— копия.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_kopiya_1ead58413a.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_kopiya_1ead58413a.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_kopiya_1ead58413a.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_kopiya_1ead58413a.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>Семь пунктов, которые превращают запрос в оценку\u003C\u002Fh2>\u003Cp class=\"p1\">Для первой оценки хватит карты обмена:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eb9d48ed4fdd4cf1b06b0c80871c31e67\">\u003Cp class=\"p1\">какие системы участвуют и какие у них версии;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef8f9123b8101022fee64a360ee474200\">\u003Cp class=\"p1\">какие объекты и поля передаются;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e2acf570d93bcfdcdb908a4a90ee28f27\">\u003Cp class=\"p1\">в какую сторону идут данные;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e63f2801b86ebb957cb00a6c49de66655\">\u003Cp class=\"p1\">какая система хранит исходное значение;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0da8efdb1ca3cb871552057264968e9f\">\u003Cp class=\"p1\">какие статусы и исключения критичны;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e732821756008294fd6ebb39f89099efd\">\u003Cp class=\"p1\">какая задержка допустима и что произойдёт при сбое;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e80b6cbd93159883a095370ac63923289\">\u003Cp class=\"p1\">кто будет поддерживать обмен после запуска.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">С такой картой подрядчик назовёт вилку для конкретных функций, а вы сможете сравнить предложения с одинаковыми границами проекта. Отдельно проверьте, включены ли обследование, тестовый контур, первичная загрузка данных, мониторинг, запуск и поддержка после релиза.\u003C\u002Fp>\u003Cp class=\"p1\">Если вы планируете \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcrm\">CRM и дашборды\u003C\u002Fa> под процессы бизнеса, можно прийти со схемой на один лист и контактами ответственных за каждую систему. Мы разложим задачу на потоки данных, риски и состав первой версии для точной оценки.\u003C\u002Fp>",[2249,2250],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":139,"documentId":140,"title":141,"date":142,"description":11,"order":6,"slug":143,"showOnMainPage":13,"createdAt":144,"updatedAt":145,"publishedAt":146,"locale":17,"cover":2253,"content":2259,"media_event":11,"media_areas":2261,"seo":11,"localizations":2264},{"id":148,"documentId":149,"name":150,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2254,"hash":176,"ext":26,"mime":29,"size":177,"url":178,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":179,"updatedAt":179,"publishedAt":179},{"large":2255,"small":2256,"medium":2257,"thumbnail":2258},{"ext":26,"url":153,"hash":154,"mime":29,"name":155,"path":11,"size":156,"width":32,"height":33,"sizeInBytes":157},{"ext":26,"url":159,"hash":160,"mime":29,"name":161,"path":11,"size":162,"width":40,"height":41,"sizeInBytes":163},{"ext":26,"url":165,"hash":166,"mime":29,"name":167,"path":11,"size":168,"width":48,"height":40,"sizeInBytes":169},{"ext":26,"url":171,"hash":172,"mime":29,"name":173,"path":11,"size":174,"width":55,"height":56,"sizeInBytes":175},[2260],{"__component":66,"id":182,"text":183},[2262,2263],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":195,"documentId":196,"title":197,"date":198,"description":11,"order":6,"slug":199,"showOnMainPage":13,"createdAt":200,"updatedAt":201,"publishedAt":202,"locale":17,"cover":2266,"content":2272,"media_event":11,"media_areas":2274,"seo":11,"localizations":2277},{"id":204,"documentId":205,"name":206,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2267,"hash":232,"ext":26,"mime":29,"size":233,"url":234,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":235,"updatedAt":235,"publishedAt":235},{"large":2268,"small":2269,"medium":2270,"thumbnail":2271},{"ext":26,"url":209,"hash":210,"mime":29,"name":211,"path":11,"size":212,"width":32,"height":33,"sizeInBytes":213},{"ext":26,"url":215,"hash":216,"mime":29,"name":217,"path":11,"size":218,"width":40,"height":41,"sizeInBytes":219},{"ext":26,"url":221,"hash":222,"mime":29,"name":223,"path":11,"size":224,"width":48,"height":40,"sizeInBytes":225},{"ext":26,"url":227,"hash":228,"mime":29,"name":229,"path":11,"size":230,"width":55,"height":56,"sizeInBytes":231},[2273],{"__component":66,"id":238,"text":239},[2275,2276],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2279,"documentId":2280,"title":2281,"date":2282,"description":11,"order":40,"slug":2283,"showOnMainPage":13,"createdAt":2284,"updatedAt":2285,"publishedAt":2286,"locale":17,"cover":2287,"content":2321,"media_event":11,"media_areas":2325,"seo":11,"localizations":2329},309,"fm5glwnple0jwjkmo8gvldan","Сколько стоит мобильное приложение в 2026 году: почему сметы отличаются втрое\n","2026-08-18","stoimost-razrabotki-mobilnogo-prilozheniya-2026-smeta","2026-08-18T11:31:22.195Z","2026-09-14T12:19:58.030Z","2026-09-14T12:19:58.102Z",{"id":2288,"documentId":2289,"name":2290,"alternativeText":11,"caption":11,"width":1614,"height":1614,"formats":2291,"hash":2316,"ext":26,"mime":29,"size":2317,"url":2318,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2319,"updatedAt":2319,"publishedAt":2320},653,"m3tj7th176v6v31qedctjzw6","magnific_use-the-attached-referenc_rggcPvlxtc 1.png",{"large":2292,"small":2298,"medium":2304,"thumbnail":2310},{"ext":26,"url":2293,"hash":2294,"mime":29,"name":2295,"path":11,"size":2296,"width":32,"height":32,"sizeInBytes":2297},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012.png","large_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012","large_magnific_use-the-attached-referenc_rggcPvlxtc 1.png",1401.38,1401380,{"ext":26,"url":2299,"hash":2300,"mime":29,"name":2301,"path":11,"size":2302,"width":40,"height":40,"sizeInBytes":2303},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012.png","small_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012","small_magnific_use-the-attached-referenc_rggcPvlxtc 1.png",403.32,403318,{"ext":26,"url":2305,"hash":2306,"mime":29,"name":2307,"path":11,"size":2308,"width":48,"height":48,"sizeInBytes":2309},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012.png","medium_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012","medium_magnific_use-the-attached-referenc_rggcPvlxtc 1.png",847.75,847746,{"ext":26,"url":2311,"hash":2312,"mime":29,"name":2313,"path":11,"size":2314,"width":56,"height":56,"sizeInBytes":2315},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012.png","thumbnail_magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012","thumbnail_magnific_use-the-attached-referenc_rggcPvlxtc 1.png",52.01,52007,"magnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012",408.5,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_use_the_attached_referenc_rggc_Pvlxtc_1_17316d0012.png","2026-08-18T12:21:26.980Z","2026-08-18T12:21:26.981Z",[2322],{"__component":66,"id":2323,"text":2324},273,"\u003Cp class=\"p1\">На столе две сметы на одно и то же приложение. В одной 1,6 млн ₽, в другой — 4,65 млн. Бриф общий, обе цифры взяты из реальных проектов, а разница — почти втрое.\u003C\u002Fp>\u003Cp class=\"p1\">Разберем, что прячется за строкой «мобильное приложение», какие работы в неё не входят и как свести два таких предложения к сравнимому виду.\u003C\u002Fp>\u003Cp class=\"p1\">Цифры не из переговоров: летом 2026 года вышли два исследования российского рынка. В выборке AppFox медианная стоимость MVP — 1,6 млн ₽, в анализе 41 коммерческого предложения WhiteTigerSoft медиана — 4,65 млн ₽.\u003C\u002Fp>\u003Cp class=\"p1\">Обе цифры взяты из реальных смет. Для сравнения из первой выборки взяли медиану MVP, а во второй посчитали полный цикл: аналитику, дизайн, разработку, бэкенд, тестирование и стартовую поддержку. Такой разрыв появляется из-за продуктов разного размера, спрятанных за одним словом «приложение»; ставка здесь вторична.\u003C\u002Fp>\u003Cp class=\"p1\">Три строки «личный кабинет, оплата, уведомления» легко разрастаются уже на первом обсуждении. Пользоваться кабинетом будут клиент, курьер и менеджер. Оплата должна учитывать возвраты, а уведомления — работать по двадцати сценариям. Бриф всё ещё занимает три строки. Смета успела заметно подрасти.\u003C\u002Fp>\u003Ch2>Восемь экранов могут стоить дороже двадцати\u003C\u002Fh2>\u003Cp class=\"p1\">Количество экранов помогает оценить дизайн и часть мобильной разработки. Оно почти ничего не говорит о правилах за интерфейсом.\u003C\u002Fp>\u003Cp class=\"p1\">Возьмём кнопку «Оплатить». На макете она занимает несколько сантиметров. В смете за ней появляются эквайринг, статусы платежа, чеки, возвраты, защита от двойного списания и повторная попытка, когда пользователь нажал три раза: лифт ехал, интернет моргнул, терпение закончилось.\u003C\u002Fp>\u003Cp class=\"p1\">С офлайн-режимом та же история. В интерфейсе это плашка «Нет сети». Android Developers описывает offline-first как архитектуру с локальным и сетевым источниками данных и синхронизацией между ними. На практике нужны локальное хранилище, очередь изменений и правила разрешения конфликтов. Поэтому один экран заказа может стоить по-разному для каталога, службы доставки и сервиса, который должен работать в горах без связи.\u003C\u002Fp>\u003Ch2>Из одной строки в смете вырастают четыре блока\u003C\u002Fh2>\u003Cp class=\"p1\">\u003Cstrong>1. Счёт начинается до первой строки кода\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Команда описывает роли, сценарии, данные и ограничения платформ, а затем собирает прототипы и состояния экранов. Здесь решают, что войдёт в первую версию и как приложение поведёт себя при ошибке, возврате или истёкшем коде.\u003C\u002Fp>\u003Cp class=\"p1\">Попытка заменить этот этап созвоном экономит деньги до первого вопроса разработчика: «Что делать с заказом, если оплата прошла, а 1С не ответила?» Если ответа нет, решение всё равно придётся принимать. Позже такая неопределённость обойдётся дороже.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>2. Две платформы остаются даже с одной кодовой базой\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Сюда входят интерфейс, навигация, локальные данные, push-уведомления и работа с камерой, геолокацией или Bluetooth. Flutter позволяет выпускать iOS- и Android-приложения из одной кодовой базы. Где на этом действительно появляется экономия, мы разбирали отдельно. При похожих сценариях это снижает объём дублирующей разработки. Две платформы всё равно требуют отдельных сборок, разрешений и тестирования на устройствах.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>3. «Простая админка» заканчивается на тысяче товаров\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Сервер хранит пользователей, заказы, права и платежи. Админка позволяет сотрудникам управлять ими без обращения к разработчикам. В выборке WhiteTigerSoft серверная часть вместе с API и админкой занимала 30–45% трудозатрат.\u003C\u002Fp>\u003Cp class=\"p1\">«Простая админка» обычно остаётся простой до просьбы изменить цену сразу у тысячи товаров. С интеграциями похожая ситуация: «подключить 1С» может означать отдельный контур обмена данными, тестовый стенд и разбор справочников, которые в двух системах называются одинаково, а работают по-разному.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>4. Экран готов, релиз ещё нет\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">QA проверяет сценарии на разных устройствах, плохую связь и ошибки внешних сервисов. Команда готовит сборки, окружения, мониторинг, карточки приложения и доступы для проверки магазинами. От этого зависит, выйдет ли релиз и кто первым заметит сбой: команда или пользователь в отзывах.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fpic_kopiya_2_6ea490ab07.png\" alt=\"pic&nbsp;— копия 2.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_pic_kopiya_2_6ea490ab07.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_pic_kopiya_2_6ea490ab07.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_pic_kopiya_2_6ea490ab07.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_pic_kopiya_2_6ea490ab07.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>Четыре решения меняют итог сильнее ставки\u003C\u002Fh2>\u003Cp class=\"p1\">\u003Cstrong>Первая причина — роли\u003C\u002Fstrong>. Клиент оплачивает заказ, курьер меняет статус, оператор решает спор, администратор управляет доступами. Формально это одно приложение. По объёму правил и тестов — четыре разных маршрута.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Вторая — интеграции.\u003C\u002Fstrong> С публичным API команда заранее видит методы и ошибки. Внутренняя система десятилетней давности иногда раскрывается только через сотрудника, который «помнит, почему тут так». До оценки стоит запросить документацию, тестовый доступ и владельца интеграции со стороны заказчика.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Третья — офлайн.\u003C\u002Fstrong> В одном из проектов, над которыми мы работали водители выполняют трансферы в Альпах, где связь пропадает на маршруте. Приложение хранит заказы и маршруты на устройстве, а после возвращения сети синхронизирует изменения. Весь мобильный контур сократил обработку заказа и обращения в поддержку.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Четвёртая — срок.\u003C\u002Fstrong> Часть работ можно вести параллельно, но добавление людей не сокращает календарь бесконечно. Ускорение требует больше координации и оставляет меньше запаса на неизвестные. Дату, привязанную к сезону или мероприятию, нужно назвать до оценки. За три недели до релиза она превращается в стресс-тест для команды и бюджета.\u003C\u002Fp>\u003Ch2>Иногда мобильная строка в первой версии не нужна\u003C\u002Fh2>\u003Cp class=\"p1\">Если основной путь работает в браузере, адаптивный веб-сервис или PWA быстрее проверят спрос. Ссылка открывается без установки, обновления выходят без модерации магазина, а команда раньше получает аналитику.\u003C\u002Fp>\u003Cp class=\"p1\">Приложение стоит включать в первую версию, когда телефон участвует в задаче: нужен надёжный офлайн, камера, геолокация, Bluetooth, фоновые процессы или частые возвраты через уведомления. В остальных случаях мобильный релиз можно добавить после проверки веб-версии. Такое решение влияет на стартовый бюджет сильнее торга вокруг нескольких процентов ставки.\u003C\u002Fp>\u003Ch2>Дешёвая смета может считать половину продукта\u003C\u002Fh2>\u003Cp class=\"p1\">В одном предложении подрядчик оценил дизайн, Flutter-клиент и публикацию. Сервер предоставляет заказчик, админки нет, интеграции посчитают после знакомства с API. В другом предложении учтены аналитика, бэкенд, кабинет сотрудников, 1С, тестирование и мониторинг. Суммы закономерно отличаются в несколько раз.\u003C\u002Fp>\u003Cp class=\"p1\">Перед сравнением приведите предложения к одинаковому составу и задайте семь вопросов:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"e1f9c0cc9f3b4e2d8d0621185ab920f0f\">\u003Cp class=\"p1\">Какие роли и пользовательские сценарии включены?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0fd1aed96ce59c016ae67cafbf7ff6d8\">\u003Cp class=\"p1\">Кто разрабатывает бэкенд и админку?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9804fa7e801d20d4239d27c9ceee1724\">\u003Cp class=\"p1\">Какие интеграции уже оценены?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ebe396460a94eb2cea92339222788dd44\">\u003Cp class=\"p1\">Для каких платформ и версий ОС готовится релиз?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e2f30c66f6fa9d799b2da9f193a9a7035\">\u003Cp class=\"p1\">Какие виды тестирования входят в стоимость?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e14d98386737dcdf264231c12de7e9c82\">\u003Cp class=\"p1\">Что команда передаст после запуска: код, документацию, доступы и сборки?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4608d561cf32c482a2b0e03def3af7f2\">\u003Cp class=\"p1\">Как считаются новые требования и поддержка после релиза?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_same_lego_mockup_of_this_huu3_YC_Jvq_L_1_cfe16418ba.png\" alt=\"magnific_same-lego-mockup-of-this-_huu3YCJvqL 1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_same_lego_mockup_of_this_huu3_YC_Jvq_L_1_cfe16418ba.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_same_lego_mockup_of_this_huu3_YC_Jvq_L_1_cfe16418ba.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_same_lego_mockup_of_this_huu3_YC_Jvq_L_1_cfe16418ba.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_same_lego_mockup_of_this_huu3_YC_Jvq_L_1_cfe16418ba.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Если ответы разбросаны по переписке, попросите собрать их в одну смету. Иначе через два месяца придётся восстанавливать сюжет по сообщениям «мы думали, это входит».\u003C\u002Fp>\u003Ch2>Четыре коридора для первого бюджета\u003C\u002Fh2>\u003Cp class=\"p1\">В анализе 41 коммерческого предложения WhiteTigerSoft проекты распределены по четырём диапазонам:\u003C\u002Fp>\u003Cp class=\"p1\">1,1–2 млн ₽ — простой каталог или информационное приложение;\u003C\u002Fp>\u003Cp class=\"p1\">2–4 млн ₽ — бизнес-приложение с заказами, кабинетом и оплатой;\u003C\u002Fp>\u003Cp class=\"p1\">4–6 млн ₽ — сложный продукт с интеграциями, ролями и аналитикой;\u003C\u002Fp>\u003Cp class=\"p1\">6–16 млн ₽ — многосторонняя или корпоративная платформа.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmagnific_a_modern_nearphotorealist_P33m_Wn042_C_1_d4862bf6a4.png\" alt=\"magnific_a-modern-nearphotorealist_P33mWn042C 1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_magnific_a_modern_nearphotorealist_P33m_Wn042_C_1_d4862bf6a4.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_magnific_a_modern_nearphotorealist_P33m_Wn042_C_1_d4862bf6a4.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_magnific_a_modern_nearphotorealist_P33m_Wn042_C_1_d4862bf6a4.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_magnific_a_modern_nearphotorealist_P33m_Wn042_C_1_d4862bf6a4.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Диапазоны отражают одну выборку WhiteTigerSoft. Бюджет конкретного проекта Qtim рассчитывает отдельно.\u003C\u002Fp>\u003Cp class=\"p1\">После релиза понадобятся обновления, мониторинг, инфраструктура и исправления. В исследовании AppFox поддержка первого года в среднем составила 18% первоначального бюджета. Это показатель одной выборки; точный резерв зависит от нагрузки, внешних сервисов и темпа обновлений.\u003C\u002Fp>\u003Cp class=\"p1\">Те же три строки — «личный кабинет, оплата, уведомления» — в двух сметах превращаются в разный продукт. Поэтому сначала считаются сценарии, роли, данные и интеграции, и только потом экраны. Если после семи вопросов предложения всё ещё отличаются втрое, в них посчитан разный состав работ.\u003C\u002Fp>",[2326,2327,2328],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":251,"documentId":252,"title":253,"date":254,"description":11,"order":6,"slug":255,"showOnMainPage":13,"createdAt":256,"updatedAt":257,"publishedAt":258,"locale":17,"cover":2331,"content":2337,"media_event":11,"media_areas":2339,"seo":2342,"localizations":2343},{"id":260,"documentId":261,"name":262,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2332,"hash":288,"ext":26,"mime":29,"size":289,"url":290,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":291,"updatedAt":291,"publishedAt":291},{"large":2333,"small":2334,"medium":2335,"thumbnail":2336},{"ext":26,"url":265,"hash":266,"mime":29,"name":267,"path":11,"size":268,"width":32,"height":33,"sizeInBytes":269},{"ext":26,"url":271,"hash":272,"mime":29,"name":273,"path":11,"size":274,"width":40,"height":41,"sizeInBytes":275},{"ext":26,"url":277,"hash":278,"mime":29,"name":279,"path":11,"size":280,"width":48,"height":40,"sizeInBytes":281},{"ext":26,"url":283,"hash":284,"mime":29,"name":285,"path":11,"size":286,"width":55,"height":56,"sizeInBytes":287},[2338],{"__component":66,"id":294,"text":295},[2340,2341],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},{"id":306,"metaTitle":11,"metaDescription":11},[],{"id":2345,"documentId":2346,"title":2347,"date":2348,"description":11,"order":6,"slug":2349,"showOnMainPage":13,"createdAt":2350,"updatedAt":2351,"publishedAt":2352,"locale":17,"cover":2353,"content":2388,"media_event":11,"media_areas":2392,"seo":11,"localizations":2395},391,"cs2j0db6ed7l2zglni926s05","Как проверить AI-навык кандидата: тестовое, критерии и красные флаги","2026-08-21","proverka-ai-navyka-kandidata-testovoe-kriterii","2026-08-19T13:56:11.468Z","2026-09-23T11:35:54.252Z","2026-09-23T11:35:54.307Z",{"id":2354,"documentId":2355,"name":2356,"alternativeText":11,"caption":11,"width":2357,"height":2358,"formats":2359,"hash":2384,"ext":26,"mime":29,"size":2385,"url":2386,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2387,"updatedAt":2387,"publishedAt":2387},717,"vy2s53fs9s3gwvvy9r9xvt1u","1-3.png",2880,1620,{"large":2360,"small":2366,"medium":2372,"thumbnail":2378},{"ext":26,"url":2361,"hash":2362,"mime":29,"name":2363,"path":11,"size":2364,"width":32,"height":1620,"sizeInBytes":2365},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1_3_f16ef2ccc2.png","large_1_3_f16ef2ccc2","large_1-3.png",632.11,632108,{"ext":26,"url":2367,"hash":2368,"mime":29,"name":2369,"path":11,"size":2370,"width":40,"height":1626,"sizeInBytes":2371},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1_3_f16ef2ccc2.png","small_1_3_f16ef2ccc2","small_1-3.png",179.2,179199,{"ext":26,"url":2373,"hash":2374,"mime":29,"name":2375,"path":11,"size":2376,"width":48,"height":1632,"sizeInBytes":2377},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1_3_f16ef2ccc2.png","medium_1_3_f16ef2ccc2","medium_1-3.png",366.65,366651,{"ext":26,"url":2379,"hash":2380,"mime":29,"name":2381,"path":11,"size":2382,"width":1638,"height":1639,"sizeInBytes":2383},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1_3_f16ef2ccc2.png","thumbnail_1_3_f16ef2ccc2","thumbnail_1-3.png",49.83,49827,"1_3_f16ef2ccc2",1220.23,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1_3_f16ef2ccc2.png","2026-09-09T12:26:19.406Z",[2389],{"__component":66,"id":2390,"text":2391},354,"\u003Cp class=\"p1\">Кандидат показывает AI-помощника. Тот бодро отвечает на вопросы, цитирует документы и даже умеет поддержать беседу. Потом вы спрашиваете: «Что произойдёт, если в базе лежат две версии регламента?» — и уверенность заканчивается раньше, чем демонстрация.\u003C\u002Fp>\u003Cp class=\"p1\">AI-демо сегодня можно собрать за вечер. Навык специалиста виден дальше: как он определяет качество, разбирает ошибки, ограничивает доступ к данным и объясняет, что произойдёт после релиза.\u003C\u002Fp>\u003Cp class=\"p1\">Ниже — тестовое на 3–4 часа, общая матрица оценки и короткая защита решения: этого хватает, чтобы увидеть навык.\u003C\u002Fp>\u003Ch2>Красивое демо заканчивается на втором вопросе\u003C\u002Fh2>\u003Cp class=\"p1\">Портфолио показывает, что человек умеет доводить идею до экрана. Для первого знакомства этого достаточно. При найме остаются вопросы, которые презентация обычно обходит по дуге:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ef691bf50006ce5ac8d806c06b22c93d6\">\u003Cp class=\"p1\">откуда модель взяла ответ;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ed513914338fba29fd803082cc0c3935a\">\u003Cp class=\"p1\">как система ведёт себя при нехватке данных;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec9c487c5687e56273aefd59ff1098fe5\">\u003Cp class=\"p1\">что происходит с противоречивыми документами;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e33c4dcd9d65e27a68868a7a69da9706a\">\u003Cp class=\"p1\">кто увидит закрытую информацию;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ebfc45f55b54ac0e71fa906de1f47ebae\">\u003Cp class=\"p1\">как команда заметит ухудшение качества после смены модели или промпта;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e7f7b815d0d5e14bafadbfd834ae20605\">\u003Cp class=\"p1\">сколько будет стоить тысяча реальных запросов вместо десяти демонстрационных.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">У AI-функции нет одного правильного ответа, который можно сравнить с эталоном посимвольно. Поэтому фраза «вроде отвечает хорошо» быстро превращается в бесконечное обсуждение вкусов. Нужен тестовый набор: типовые запросы, сложные случаи, ожидаемое поведение и понятные критерии.\u003C\u002Fp>\u003Cp class=\"p1\">NIST AI RMF рекомендует тестировать AI-системы до запуска и регулярно после него, документировать наборы проверок и метрики. В документации OpenAI Evals оценка тоже начинается с двух вещей: критериев и набора данных для прогона. На собеседовании важно услышать, опирается ли человек на такую логику.\u003C\u002Fp>\u003Ch2>Тестовое на 3–4 часа: дайте кандидату противоречивую базу\u003C\u002Fh2>\u003Cp class=\"p1\">Подойдёт небольшой AI-помощник по внутренним документам компании. Сценарий близок к реальным RAG-задачам и помещается в компактный прототип.\u003C\u002Fp>\u003Cp class=\"p1\">Я бы дал 10–12 синтетических файлов: правила отпуска, инструкцию по технике, порядок согласования командировки, список льгот. В наборе специально оставил бы несколько ловушек:\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F2_78a21efcc9.png\" alt=\"2.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_2_78a21efcc9.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_2_78a21efcc9.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_2_78a21efcc9.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_2_78a21efcc9.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Задача соискателя — собрать минимальный прототип, который принимает вопрос и роль пользователя, возвращает ответ с указанием источника либо честно сообщает, что данных недостаточно. Подойдёт консольный скрипт, ноутбук или простая веб-страница. Вёрстку можно оставить за скобками: здесь важнее логика работы с моделью и данными. На две версии одного регламента сильный ответ выглядит так: помощник отдаёт актуальную, называет её дату и предупреждает, что есть более ранняя. Выбор наугад и молчание про второй документ — одинаково плохо.\u003C\u002Fp>\u003Cp class=\"p1\">Разрешите любую модель, фреймворк и AI-инструменты для написания кода. Запрет на ассистентов плохо воспроизводит реальную работу. Автор тестового должен понимать получившееся решение, уметь изменить его на защите и объяснить, где генерация помогла, а где её пришлось перепроверять.\u003C\u002Fp>\u003Cp class=\"p1\">Попросите приложить:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eb0b62b08a126c1ae20c2cbf36f58cfbd\">\u003Cp class=\"p1\">репозиторий без ключей, персональных данных и секретов;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e81bc7e3f7febd31980a17c303037cb0a\">\u003Cp class=\"p1\">README с инструкцией запуска и принятыми допущениями;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e85cfaf96046a994b0a959b72b002561b\">\u003Cp class=\"p1\">набор из 10–15 тестовых вопросов;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4d8bacaccde642e904ac91fdc7b667cf\">\u003Cp class=\"p1\">результаты прогона: ответ, источник, статус теста, задержка и расход токенов;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"efe43e5d09dfac6c6d0a6fb7d70951c29\">\u003Cp class=\"p1\">короткий список ограничений и следующий шаг, если на развитие есть ещё один день.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Обязательны первые три пункта. Замеры и ограничения можно описать в README словами: важно, что кандидат знает, что мерить, а не что успел собрать таблицу за отведённое время.\u003C\u002Fp>\u003Cp class=\"p1\">Лимит в 3–4 часа заставляет выбирать главное. Если задание требует полноценной авторизации, дизайна, деплоя и панели аналитики, вы уже отправили кандидату кусок бэклога. Такой объём стоит оплачивать как отдельную работу.\u003C\u002Fp>\u003Cfigure class=\"image image_resized\" style=\"width:91.06%;\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F3_1_d7d6eed2be.png\" alt=\"3 (1).png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_3_1_d7d6eed2be.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_3_1_d7d6eed2be.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_3_1_d7d6eed2be.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_3_1_d7d6eed2be.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Сумма даёт максимум десять баллов, но автоматического проходного порога здесь нет. Для одной роли важнее работа с данными, для другой — инфраструктура или исследование качества. Баллы создают общий язык для интервьюеров: вместо «мне понравилось» появляется «кандидат хорошо проверяет ответы, но пока слабо проектирует права».\u003C\u002Fp>\u003Cp class=\"p1\">Стоп-фактор весит больше итоговой суммы, и список у него короткий: секрет или ключ в публичном репозитории, чужие персональные данные в тестовом наборе. API-ключ в открытом репозитории не превращается в мелочь после красивых восьми баллов. Красные флаги из следующего раздела работают иначе: они не закрывают кандидата, а показывают, куда копать на защите.\u003C\u002Fp>\u003Ch2>Красный флаг: любой сбой лечится новым промптом\u003C\u002Fh2>\u003Cp class=\"p1\">Промпт важен, но он не заменяет архитектуру, авторизацию и тестирование. Если на каждый вопрос человек отвечает «добавим ещё одну инструкцию», уточните, где остановится этот документ. Иногда промпт растёт так быстро, что скоро ему понадобятся оглавление и юрист.\u003C\u002Fp>\u003Cp class=\"p1\">Вот \u003Cstrong>пять сигналов\u003C\u002Fstrong>, после которых стоит копнуть глубже.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>1. Один успешный диалог заменяет тесты.\u003C\u002Fstrong> В демонстрации есть удобный вопрос и правильный ответ, но неудачные примеры нигде не сохранены. Спросите про запрос без ответа, конфликт источников и регрессию после изменения промпта.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>2. Права доступа описаны словами для модели. \u003C\u002Fstrong>Фраза «не показывай зарплаты обычным сотрудникам» внутри системного промпта не создаёт авторизацию. OWASP прямо предупреждает: системный промпт нельзя считать секретом или механизмом контроля доступа. Разрешённые документы и действия должен ограничивать код до обращения к модели.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>3. Инструкции внутри данных остаются незамеченными. \u003C\u002Fstrong>Документ, письмо или веб-страница могут содержать текст, который пытается изменить поведение помощника. Такая атака через инструкции в данных может раскрыть информацию или заставить помощника выполнить нежелательное действие. Сначала ограничивают доступные данные и функции, затем добавляют проверки и тестовые атаки.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>4. Стоимость начинается и заканчивается ценой модели.\u003C\u002Fstrong> В продакшене добавятся эмбеддинги, поиск, хранение, повторные запросы, логи, мониторинг и поддержка — из чего складывается счёт после релиза, мы разбирали отдельно. Финансовый план на три года здесь лишний. Достаточно формулы с допущениями: сколько запросов, какой средний контекст, сколько токенов уходит на ответ и где поставить лимит.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>5. Код работает, пока его не просят изменить.\u003C\u002Fstrong> Использование AI при выполнении тестового допустимо. Проблема появляется, когда автор не может объяснить функцию, заменить модель, добавить новый тип проверки или найти источник странного поведения. Владение инструментом видно по способности управлять результатом.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F4_1_f1590d6ade.png\" alt=\"4 (1).png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_4_1_f1590d6ade.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_4_1_f1590d6ade.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_4_1_f1590d6ade.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_4_1_f1590d6ade.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">\u003Cbr>\u003Cbr>\u003Cstrong>На защите попросите кандидата сломать своего бота\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">На защите откройте решение вместе с кандидатом и задайте вопросы, у которых нет удобного ответа на первом слайде:\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F5_46fed4e4c0.png\" alt=\"5.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_5_46fed4e4c0.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_5_46fed4e4c0.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_5_46fed4e4c0.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_5_46fed4e4c0.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Особенно полезен последний вопрос. Сильный специалист умеет держать границы задачи. Он не обещает одновременно идеальную точность, минимальную задержку, нулевую стоимость и релиз к вечеру. Физика проекта всё равно придёт на встречу, даже если её не добавили в календарь.\u003C\u002Fp>\u003Cp class=\"p1\">Если человек называет слабое место своего решения, это хороший признак. В продакшене ценность приносит раннее обнаружение ограничений: команда успевает выбрать другой подход, добавить проверку или оставить решение человеку.\u003C\u002Fp>\u003Ch2>Кого звать на следующий этап\u003C\u002Fh2>\u003Cp class=\"p1\">На следующий этап я звал бы специалиста, который связывает модель с конкретной задачей, собирает проверяемый набор примеров, показывает ошибки, разделяет права и генерацию, считает эксплуатационные ограничения и предлагает следующий эксперимент. Его прототип может выглядеть скромнее соседнего демо. Зато после разговора понятно, что именно работает и на каких условиях.\u003C\u002Fp>\u003Cp class=\"p1\">Если на интервью остаётся только один вопрос, попросите кандидата показать худший ответ системы и план его проверки. У человека, который готов работать с продакшеном, такой пример обычно есть.\u003C\u002Fp>\u003Cp class=\"p1\">Если вы определяете состав AI-команды, проверяете архитектуру или готовите первый сценарий к запуску, задачу можно обсудить с нашей командой. Разберём требования, риски и границы первой версии до того, как эффектное демо станет дорогим способом познакомиться с реальными данными.\u003C\u002Fp>",[2393,2394],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":2397,"documentId":2398,"title":2399,"date":2400,"description":11,"order":6,"slug":2401,"showOnMainPage":13,"createdAt":2402,"updatedAt":2403,"publishedAt":2404,"locale":17,"cover":2405,"content":2438,"media_event":11,"media_areas":2442,"seo":11,"localizations":2445},392,"qh3qmzfp2ceif4xf3tdoi9ap","Один товар, три цены и очередь согласований: чем B2B-маркетплейс отличается от интернет-магазина","2026-08-26","b2b-marketpleys-otlichiya-ot-internet-magazina","2026-08-26T09:04:07.905Z","2026-09-23T11:38:29.006Z","2026-09-23T11:38:29.066Z",{"id":2406,"documentId":2407,"name":2408,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2409,"hash":2434,"ext":26,"mime":29,"size":2435,"url":2436,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2437,"updatedAt":2437,"publishedAt":2437},746,"d7ggsgqe3tbqh6klorwl2c3r","Изображение Codex 14 сент. 2026 г., 15_13_28.png",{"large":2410,"small":2416,"medium":2422,"thumbnail":2428},{"ext":26,"url":2411,"hash":2412,"mime":29,"name":2413,"path":11,"size":2414,"width":32,"height":33,"sizeInBytes":2415},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c","large_Изображение Codex 14 сент. 2026 г., 15_13_28.png",729.59,729588,{"ext":26,"url":2417,"hash":2418,"mime":29,"name":2419,"path":11,"size":2420,"width":40,"height":41,"sizeInBytes":2421},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c","small_Изображение Codex 14 сент. 2026 г., 15_13_28.png",203.56,203559,{"ext":26,"url":2423,"hash":2424,"mime":29,"name":2425,"path":11,"size":2426,"width":48,"height":40,"sizeInBytes":2427},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c","medium_Изображение Codex 14 сент. 2026 г., 15_13_28.png",433,432999,{"ext":26,"url":2429,"hash":2430,"mime":29,"name":2431,"path":11,"size":2432,"width":55,"height":56,"sizeInBytes":2433},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c","thumbnail_Изображение Codex 14 сент. 2026 г., 15_13_28.png",54.9,54900,"Izobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c",623.42,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_13_28_1099806b3c.png","2026-09-14T12:15:58.688Z",[2439],{"__component":66,"id":2440,"text":2441},355,"\u003Cp class=\"p1\">Закупщик находит нужную позицию, кладёт в корзину 200 упаковок и нажимает «Заказать». Пока он видит одну кнопку, система разбирается с контекстом заказа: какая компания и филиал оформляют закупку, какая цена действует по договору, хватает ли лимита, кто должен согласовать заявку и с какого склада отгружать товар.\u003C\u002Fp>\u003Cp class=\"p1\">Привет, я Антон Фокин, CEO Qtim. Запрос на B2B-платформу часто звучит так: «Нужен интернет-магазин, только для компаний». Снаружи продукты действительно похожи — каталог, карточка, корзина, заказ. В разработке B2B-маркетплейса разница скрыта в устройстве сделки. У корпоративной покупки больше участников, условий, документов и систем, которые имеют своё мнение о цене и остатках. Один товар, три цены и очередь согласований — нормальная картина для такого процесса.\u003C\u002Fp>\u003Cp class=\"p1\">Разберём, что меняется в разработке B2B-маркетплейса и какой функционал стоит включить в первую версию.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Сначала проверьте: у вас маркетплейс или корпоративный интернет-магазин\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_13_33_1d184b03a7.png\" alt=\"Изображение Codex 14 сент. 2026 г., 15_13_33.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_33_1d184b03a7.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_13_33_1d184b03a7.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_13_33_1d184b03a7.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_13_33_1d184b03a7.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Если одна компания продаёт собственный ассортимент корпоративным клиентам, продукт ближе к B2B-магазину или клиентскому порталу. Маркетплейс начинается с нескольких поставщиков: каждый управляет предложениями и отгрузками, а площадка связывает их с покупателями и контролирует общие правила сделки.\u003C\u002Fp>\u003Cp class=\"p1\">Разница влияет на состав продукта. B2B-магазину нужны кабинеты компаний, персональные условия, документы и интеграции с учётным контуром продавца. Маркетплейс добавляет второй операционный контур: подключение поставщиков, модерацию ассортимента, управление предложениями, распределение заказов, контроль исполнения и расчёты по правилам площадки.\u003C\u002Fp>\u003Cp class=\"p1\">Слово «маркетплейс» в брифе поэтому стоит раскрыть до оценки. Иногда за ним скрывается оптовый кабинет одного производителя. Иногда — три кабинета, панель управления и процесс урегулирования спорной поставки. При похожей витрине объём разработки у них разный.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Корзина заканчивается, сделка только начинается\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Розничный покупатель обычно действует от своего имени. В B2B пользователь действует от имени организации, филиала или подразделения. Система сначала определяет контекст сделки и только затем показывает доступный ассортимент, цены, адреса, способы оплаты и доставки.\u003C\u002Fp>\u003Cp class=\"p1\">Так устроены и готовые B2B-модули. В Shopify B2B каталог, цены, платёжные условия и оформление заказа настраиваются для компании или её подразделения. В Adobe Commerce B2B отдельными блоками идут аккаунты компаний, закрытые каталоги, быстрый заказ, закупочные заявки, согласования и запросы коммерческих предложений.\u003C\u002Fp>\u003Cp class=\"p1\">В первой версии мы оставляем только нужное и сначала описываем участников и их решения:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e6df8e6b13b7ecaeab05202758c7424ba\">\u003Cp class=\"p1\">закупщик собирает заказ;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eae80f756662b1158511f0fe1ba32a8dc\">\u003Cp class=\"p1\">руководитель подтверждает сумму или категорию;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e701a69b4ffd4a3bb3a33e3093bd8cbb0\">\u003Cp class=\"p1\">финансовый специалист проверяет лимит и условия оплаты;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e2a5581ab7bf2a7f734f50096cc68d710\">\u003Cp class=\"p1\">поставщик подтверждает наличие и срок;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecd0f747716e995d595cf2a24d1484937\">\u003Cp class=\"p1\">оператор площадки разбирает исключения.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">У корзины появляется начальник, бухгалтер и иногда человек, который помнит, почему именно эту гайку можно покупать только коробками по 48 штук.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Один SKU, три цены и отдельная упаковка для каждого договора\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_13_39_6fcf7e7695.png\" alt=\"Изображение Codex 14 сент. 2026 г., 15_13_39.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_39_6fcf7e7695.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_13_39_6fcf7e7695.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_13_39_6fcf7e7695.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_13_39_6fcf7e7695.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Публичной цены в B2B часто недостаточно. Стоимость зависит от договора, объёма, региона, валюты, категории покупателя и периода действия прайс-листа. Вместе с ней меняются минимальная партия, кратность упаковки, доступный ассортимент и условия доставки.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому модель каталога приходится делить на несколько сущностей. Товар описывает общие характеристики. SKU фиксирует конкретную вариацию. Предложение поставщика связывает SKU с продавцом, складом, остатком, сроком поставки и ценовым правилом. Персональный каталог определяет, какие предложения увидит конкретная компания.\u003C\u002Fp>\u003Cp class=\"p1\">Так один SKU получает три цены без копирования трёх карточек. Договорные условия остаются отдельным слоем, а каталог не превращается в архив дублей. Если один товар предлагают несколько поставщиков, площадка может собрать их предложения в одной карточке и ранжировать по цене, сроку, региону или другим правилам бизнеса.\u003C\u002Fp>\u003Cp class=\"p1\">Есть и сделки без готовой цены. Покупатель отправляет запрос на коммерческое предложение, поставщики отвечают условиями, затем выбранный вариант превращается в заказ. Такой маршрут требует сроков действия предложения, версий, комментариев и истории изменений. Обычного поля «цена по запросу» здесь хватает примерно до первого файла КП_финал_точно_последний_v7.xlsx.\u003C\u002Fp>\u003Ch2>\u003Cstrong>У кнопки «Заказать» появляется маршрут согласования\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В корпоративной закупке доступ к каталогу ещё не означает право оформить сделку. Один сотрудник собирает корзину, другой согласует сумму, третий видит документы, администратор компании назначает роли. Для филиалов, регионов и центров затрат правила могут отличаться.\u003C\u002Fp>\u003Cp class=\"p1\">Ролевую модель лучше описывать через действия и контекст. Пользователь может создавать заявку для своего подразделения, руководитель — подтверждать заказы до установленного лимита, финансовый специалист — видеть счета всех филиалов. Проверка уровня «менеджер или администратор» быстро становится тесной.\u003C\u002Fp>\u003Cp class=\"p1\">Сам заказ проходит цепочку статусов: черновик, отправлен на согласование, возвращён, одобрен, подтверждён поставщиком. Переходы должны быть явными: кто может перевести заявку дальше, при каких условиях и что происходит с ценой и остатком во время ожидания.\u003C\u002Fp>\u003Cp class=\"p1\">Здесь нужен и журнал действий. Для спорной позиции важно восстановить, кто изменил количество, какая цена действовала при согласовании и почему поставщик подтвердил только часть объёма. Без журнала разбор начинается с переписки, а заканчивается археологией по уведомлениям.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Счёт, отсрочка и две отгрузки растягивают оформление заказа\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В рознице оформление заказа обычно заканчивается оплатой. B2B-заказ может пройти через коммерческое предложение, закупочную заявку, счёт, аванс, отсрочку, закрывающие документы и несколько отгрузок. Сделка продолжается после нажатия кнопки.\u003C\u002Fp>\u003Cp class=\"p1\">Эти этапы полезно хранить раздельно. Заказ фиксирует согласованный состав и условия. Отгрузка показывает, какая часть товара уехала со склада. Счёт и платёж отражают финансовое состояние. Документы живут со своими версиями и статусами подписания.\u003C\u002Fp>\u003Cp class=\"p1\">Если собрать всё в одно поле, появляются формулировки вроде «заказ оплачен, частично отгружен, один счёт отменён, акт ждём». Для человека смысл ещё угадывается. Код предпочитает отдельные сущности и определённые переходы.\u003C\u002Fp>\u003Cp class=\"p1\">Платёжный сценарий тоже зависит от компании. Одному клиенту доступна оплата сразу, другому — депозит и остаток после отгрузки, третьему — отсрочка по договору. Платформа должна проверить условия, зафиксировать срок и показать одинаковый статус покупателю, поставщику и оператору.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Поставщик получает отдельный продукт, а площадка — вторую воронку\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Покупательская витрина — только один контур маркетплейса. Поставщику нужны подключение к площадке, проверка реквизитов и договорных условий, загрузка ассортимента, управление предложениями, подтверждение заказов, документы, логистика и расчёты.\u003C\u002Fp>\u003Cp class=\"p1\">Для массового ассортимента поставщик редко обновляет всё через форму по одной позиции. Нужны импорт, обмен через API (программный интерфейс) или интеграция с его учётной системой. Площадка принимает данные, проверяет обязательные поля, сопоставляет категории и характеристики, отправляет спорные позиции на модерацию.\u003C\u002Fp>\u003Cp class=\"p1\">У оператора своя очередь: новый поставщик ждёт проверки, товар — публикации, заказ — подтверждения, отгрузка — документа, расхождение — решения. Панель управления напрямую влияет на скорость сделки: пока оператор разбирает очередь, заказ не двигается дальше.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому у B2B-маркетплейса две воронки. Первая доводит покупателя до заказа. Вторая помогает поставщику разместить качественное предложение и исполнить обязательства. Пустой или неудобный кабинет продавца быстро отражается на витрине: цены устаревают, остатки расходятся, сроки превращаются в догадки.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Цена в витрине ничего не значит, если 1С думает иначе\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg>\u003C\u002Ffigure>\u003Cp class=\"p1\">Кабинет поставщика решает половину задачи — вторая половина в том, откуда система вообще берёт цену и остаток.\u003C\u002Fp>\u003Cp class=\"p1\">B2B-платформу обычно связывают с 1С, ERP для управления ресурсами, WMS для склада, CRM для клиентских данных, ЭДО для документов, банком и сервисами доставки. Состав зависит от процессов компании. До разработки нужно определить источник истины для каждой сущности: где создаётся товар, кто рассчитывает цену, какая система резервирует остаток, откуда приходит статус оплаты и где хранится подписанный документ.\u003C\u002Fp>\u003Cp class=\"p1\">Затем проектируют направление обмена и поведение при ошибке. Заказ мог уйти в ERP, а ответ потеряться. Остаток изменился во время согласования. Поставщик дважды отправил один статус. Интеграционный слой должен распознавать повторные сообщения, вести журнал обмена, повторять безопасные операции и выводить проблему оператору.\u003C\u002Fp>\u003Cp class=\"p1\">Смежный пример из нашей практики — e-commerce-платформа HOTZ. В ней объединили четыре продуктовые линейки, построили сквозной каталог и связали интерфейс с 1С: цены, остатки, варианты фасовки и заказы опираются на данные учётной системы. У нас на сайте этот релиз описан как интернет-магазин, а B2B — как следующее направление развития платформы.\u003C\u002Fp>\u003Cp class=\"p1\">Этот фундамент важнее количества экранов. Красивую карточку можно поправить после запуска. Заказ, который потерялся между площадкой и ERP, обычно замечают раньше — и обсуждают громче.\u003C\u002Fp>\u003Ch2>\u003Cstrong>В первой версии нужен один сквозной заказ\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Мы собираем B2B-маркетплейс вокруг одного приоритетного типа сделки: от авторизованного пользователя до подтверждения поставщиком и записи в учётной системе. Попытка сразу перенести в продукт все исключения отдела продаж растягивает запуск и мешает проверить ядро.\u003C\u002Fp>\u003Cp class=\"p1\">В первую версию обычно входят:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e3efee60e40fe8c02fc2b099dd880089b\">\u003Cp class=\"p1\">организации, пользователи и базовые роли;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"edc807a553ac7b6641cc9570859a80723\">\u003Cp class=\"p1\">один рабочий каталог с предложениями поставщиков;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e268b4f8908ea2766b843ad6a35197720\">\u003Cp class=\"p1\">подтверждённое правило цены и минимальной партии;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecd82c8de79e3bd11e51620d38a95fa62\">\u003Cp class=\"p1\">один маршрут согласования;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee3b5eab379b3d6dbc69c0a5dfacc60b8\">\u003Cp class=\"p1\">один сценарий счёта или оплаты;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5ed90dab6c4257392959e14997abbf75\">\u003Cp class=\"p1\">заказ, статусы и передача в основную учётную систему;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec88899efae6345e770d85311b9820061\">\u003Cp class=\"p1\">кабинет оператора для ошибок и исключений.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Критерий готовности конкретный: уполномоченный сотрудник видит свои условия, собирает заказ, проходит согласование, получает подтверждение поставщика, а заказ появляется в ERP с тем же составом, ценой и идентификатором. Ошибка обмена видна оператору и не создаёт второй заказ при повторной отправке.\u003C\u002Fp>\u003Cp class=\"p1\">Рекомендации, сложная аналитика, мобильное приложение и несколько вариантов торгов можно добавлять после проверки этого пути. Иначе команда автоматизирует редкие сценарии, пока основной заказ продолжает путешествовать через почту и таблицы.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Интернет-магазина достаточно, пока договор помещается в чек\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Формат продукта можно выбрать по устройству сделки.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Интернет-магазин\u003C\u002Fstrong> подходит одному продавцу с общим каталогом, публичными ценами, прямой оплатой и единым процессом исполнения.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>B2B-магазин или клиентский портал\u003C\u002Fstrong> нужен одному продавцу, когда компании получают договорные цены, роли, лимиты, документы и персональные условия.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>B2B-маркетплейс\u003C\u002Fstrong> нужен при нескольких поставщиках и общих правилах для предложений, модерации, заказов, исполнения и расчётов.\u003C\u002Fp>\u003Cp class=\"p1\">Условия покупки могут зависеть от компании, договора, роли пользователя или согласования с другим сотрудником. В таком случае мы начинаем проектирование с B2B-контура и только затем переходим к интерфейсу каталога. Несколько поставщиков добавляют ещё один уровень: кабинет продавца и операционную модель маркетплейса.\u003C\u002Fp>",[2443,2444],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2447,"documentId":2448,"title":2449,"date":2450,"description":11,"order":6,"slug":2451,"showOnMainPage":13,"createdAt":2452,"updatedAt":2453,"publishedAt":2454,"locale":17,"cover":2455,"content":2489,"media_event":11,"media_areas":2493,"seo":11,"localizations":2497},393,"w8n42241rgavwtld0dn1fvcl","Один статус «готовится» запускает цепочку потерь: где ломается экономика приложения доставки","2026-08-27","gde-prilozhenie-sedaet-marzhu","2026-08-26T14:56:30.346Z","2026-09-23T11:40:21.513Z","2026-09-23T11:40:21.581Z",{"id":2456,"documentId":2457,"name":2458,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2459,"hash":2484,"ext":26,"mime":29,"size":2485,"url":2486,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2487,"updatedAt":2487,"publishedAt":2488},749,"pfrhyjqgtuo8xzz543hf5rdt","Изображение Codex 14 сент. 2026 г., 15_13_45.png",{"large":2460,"small":2466,"medium":2472,"thumbnail":2478},{"ext":26,"url":2461,"hash":2462,"mime":29,"name":2463,"path":11,"size":2464,"width":32,"height":33,"sizeInBytes":2465},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5","large_Изображение Codex 14 сент. 2026 г., 15_13_45.png",713.55,713553,{"ext":26,"url":2467,"hash":2468,"mime":29,"name":2469,"path":11,"size":2470,"width":40,"height":41,"sizeInBytes":2471},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5","small_Изображение Codex 14 сент. 2026 г., 15_13_45.png",211.72,211718,{"ext":26,"url":2473,"hash":2474,"mime":29,"name":2475,"path":11,"size":2476,"width":48,"height":40,"sizeInBytes":2477},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5","medium_Изображение Codex 14 сент. 2026 г., 15_13_45.png",438.1,438095,{"ext":26,"url":2479,"hash":2480,"mime":29,"name":2481,"path":11,"size":2482,"width":55,"height":56,"sizeInBytes":2483},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5","thumbnail_Изображение Codex 14 сент. 2026 г., 15_13_45.png",57.09,57086,"Izobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5",630.67,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_13_45_1f38bab0a5.png","2026-09-14T12:17:48.960Z","2026-09-14T12:17:48.961Z",[2490],{"__component":66,"id":2491,"text":2492},356,"\u003Cp class=\"p1\">Клиент оформляет ужин, видит обещание «доставим за 35 минут» и через час всё ещё смотрит на статус «готовится». Для бизнеса такой заказ создаёт возврат, обращение в поддержку, компенсационный промокод и риск потерять следующую покупку.\u003C\u002Fp>\u003Cp class=\"p1\">Мы разрабатываем мобильные продукты и e-commerce-системы. Экономику доставки нужно считать по всей цепочке: меню, кухня, оплата, курьер, поддержка и повторные покупки. От состава MVP зависят стартовый бюджет и переменные потери после запуска.\u003C\u002Fp>\u003Cp class=\"p1\">Разберём, какие решения раздувают постоянные расходы, где появляются переменные потери на каждом заказе и как проверить гипотезу до разработки большого контура.\u003C\u002Fp>\u003Ch2>\u003Cstrong>В смете одно приложение, в работе — четыре продукта\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_13_52_b41b1cbf00.png\" alt=\"Изображение Codex 14 сент. 2026 г., 15_13_52.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_52_b41b1cbf00.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_13_52_b41b1cbf00.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_13_52_b41b1cbf00.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_13_52_b41b1cbf00.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Покупатель видит каталог, корзину, оплату, карту и статусы. Команде проекта приходится собрать ещё три рабочих места.\u003C\u002Fp>\u003Cp class=\"p1\">Заведению нужен интерфейс, где сотрудник принимает заказ, сверяет стоп-лист, меняет время приготовления и подтверждает готовность. Курьеру — адрес, маршрут, связь с получателем и понятный порядок действий при проблеме. Администратору и поддержке — управление точками, меню, зонами, промокодами, возвратами и спорными заказами.\u003C\u002Fp>\u003Cp class=\"p1\">Все четыре продукта опираются на общий серверный контур — по сути, на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">e-commerce-систему\u003C\u002Fa> с каталогом, корзиной, оплатой, заказами и интеграциями. Этот контур хранит актуальную цену, фиксирует оплату, не создаёт второй заказ после повторного нажатия кнопки и проводит заявку по статусам. Здесь полезен идемпотентный запрос: повторная команда с тем же ключом не дублирует оплату или заказ. Термин звучит так, будто его придумали для собеседования, но защищает он вполне понятные деньги.\u003C\u002Fp>\u003Ch2>Первый перекос появляется, когда оценка охватывает приложение покупателя, а операционные интерфейсы записаны одной строкой «админка». Чем короче эта строка в смете, тем чаще после запуска заказ приходится спасать звонками и сообщениями.\u003Cbr>\u003Cbr>\u003Cstrong>Маржа заканчивается раньше, чем едет курьер\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_13_58_40d98042a1.png\" alt=\"Изображение Codex 14 сент. 2026 г., 15_13_58.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_13_58_40d98042a1.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_13_58_40d98042a1.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_13_58_40d98042a1.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_13_58_40d98042a1.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">У цифрового контура есть постоянные расходы: разработка, инфраструктура, мониторинг, обновления iOS и Android, поддержка интеграций. У каждого заказа возникают переменные: эквайринг, упаковка, скидка, последняя миля, компенсация за ошибку и время поддержки.\u003C\u002Fp>\u003Cp class=\"p1\">Для первого расчёта хватает простой модели:\u003C\u002Fp>\u003Cp class=\"p1\">вклад одного дополнительного заказа = выручка минус себестоимость блюда, упаковка, платёжные расходы, скидка, доставка и ожидаемые потери на сбоях.\u003C\u002Fp>\u003Cp class=\"p1\">Свежий пример — «Додо Пицца» вернулась к выбору платформы для расчётов с самозанятыми курьерами. По тендерной документации, которую изучил CNews, через неё планируют проводить 378 млн рублей и почти 1,7 млн транзакций в месяц. Целевая комиссия — до 0,5%; в контур входят документы и интеграции с 1С и ФНС. Предыдущую попытку внедрения отложили в том числе из-за масштаба изменений в «Додо ИС»: они затрагивали много компонентов и могли занять до года. Ещё одно ограничение касалось использования формы курьера как маркетингового элемента.\u003C\u002Fp>\u003Cp class=\"p1\">При заявленном объёме выплат курьерам одна десятая процентного пункта комиссии стоит около 378 тысяч рублей в месяц. Так строка «расчёты с курьерами» превращается в отдельную статью экономики продукта.\u003Cbr>\u003Cbr>Ожидаемые потери считают через частоту проблемы. Например, стоимость одного опоздавшего заказа умножают на долю таких случаев. В стоимость входят возврат, промокод, повторная поездка курьера и время сотрудника, который разбирает обращение. Если данных пока нет, это отдельная причина начать с ограниченного пилота и собрать их.\u003C\u002Fp>\u003Cp class=\"p1\">Маржа заканчивается раньше, чем едет курьер, когда продукт привлекает заказ скидкой, а кухня и логистика обрабатывают его дороже, чем предполагала модель. Рост числа установок в такой ситуации ускоряет проблему. Получается бодрый график, который лучше не показывать финансовому директору без второй оси.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Карта обещает 35 минут, кухня работает по другой карте\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Время на экране складывается из нескольких отрезков: заведение принимает заказ, кухня готовит его, курьер добирается до точки, ждёт выдачу и едет к клиенту. Приложение должно оценивать всю цепочку, учитывать загрузку кухни, зону доставки и доступных исполнителей.\u003C\u002Fp>\u003Cp class=\"p1\">Если система показывает одно фиксированное время, обещание быстро расходится с реальностью. Пятничный вечер, большой заказ и курьер на другом конце района выглядят для таймера одинаково. Для клиента разница обнаруживается уже после оплаты.\u003C\u002Fp>\u003Cp class=\"p1\">Статусы связывают операционную работу с обещанием на экране. Для каждого перехода заранее определяют владельца и допустимое время: кто принимает заказ, когда кухня может увеличить срок, что происходит при недоступной позиции, кто назначает курьера, после какого порога подключается поддержка. Такая статусная модель помогает увидеть задержку до того, как её сформулирует клиент в отзыве.\u003C\u002Fp>\u003Cp class=\"p1\">Тот же принцип действует для меню. Если стоп-лист обновляется с опозданием, приложение продаёт блюдо, которого уже нет. После этого система возвращает деньги и предлагает замену. Бизнес оплачивает лишнюю операцию, а гость выбирает ужин дважды.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Пилот должен проехать один денежный маршрут\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Первая версия проверяет прохождение заказа от оплаты до вручения. На старте задают одну зону, короткое меню, несколько точек, один способ оплаты и понятную схему назначения курьеров. Ограничения делают данные сравнимыми: видно, где теряется время и сколько стоит каждый сбой.\u003C\u002Fp>\u003Cp class=\"p1\">Если бизнес проверяет предзаказ и повторные покупки, первую версию можно начать с самовывоза. Если в центре гипотезы доставка, в неё входят реальные адреса, назначение курьера, ожидание у точки, отмены и повторные попытки. Иначе цифры покажут экономику другого продукта.\u003C\u002Fp>\u003Cp class=\"p1\">У каждой функции в первом релизе должна быть работа: сократить время, уменьшить число ошибок или увеличить вклад заказа. Программа лояльности, рекомендации, чаевые, подписка и десяток способов оплаты могут подождать, пока основной маршрут не проходит без ежедневного спасения в чатах.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Пропущенный заказ дороже отдельного рабочего интерфейса\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Рабочее место заведения и диспетчера влияет на маржу напрямую. Если сотрудник должен заметить новый заказ во вкладке браузера, он может пропустить обновление или звук. Курьер приедет раньше готовности, клиент получит опоздание, а поддержка — обращение. Экономия на отдельном интерфейсе быстро оборачивается возвратами и компенсациями.\u003C\u002Fp>\u003Cp class=\"p1\">Для критических событий задают подтверждение получения, повторную отправку и эскалацию. Заказ не должен молча переходить дальше, пока кухня или диспетчер не взяли его в работу. После заданного таймаута система дублирует сигнал или подключает менеджера. Такой механизм стоит дороже обычного уведомления, но дешевле цепочки «опоздание — возврат — промокод — поддержка».\u003C\u002Fp>\u003Cp class=\"p1\">То же касается курьера: адрес, телефон, маршрут и следующий статус должны оставаться доступны при нестабильной связи. Сбой сети для курьера — штатная ситуация. Поэтому локальный кэш, очередь синхронизации и журнал событий входят в рабочий контур, если без них заказ нельзя завершить.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Пять чисел нужно получить до первого макета\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_14_03_0f8e0ead7e.png\" alt=\"Изображение Codex 14 сент. 2026 г., 15_14_03.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_14_03_0f8e0ead7e.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_14_03_0f8e0ead7e.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_14_03_0f8e0ead7e.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_14_03_0f8e0ead7e.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">До первого макета нужны пять чисел:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"ecbf7a7371fef599808a36b50d3943fb7\">\u003Cp class=\"p1\">Вклад одного дополнительного заказа — ₽. Выручка минус себестоимость блюда, упаковка, платёжные расходы, скидка и доставка. Отдельно учтите каннибализацию: часть заказов может переехать в приложение из другого канала. Вклад создают новые и более частые покупки, а также снижение операционных потерь.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eb998fe536c2d6156adc29f6701786511\">\u003Cp class=\"p1\">Плотность спроса — заказов на зону в час. Общая аудитория города почти ничего не говорит о том, сколько курьер успеет доставить за вечер.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9044fd66b13d87523dde0a0f5ccb122b\">\u003Cp class=\"p1\">Стоимость неуспешного заказа — ₽. Возврат, компенсация, повторная доставка и время поддержки. Сумму разделяют по причинам: кухня, платёж, адрес, курьер, интерфейс.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e6a5a516550787afa26f0a2d4e7c7a59e\">\u003Cp class=\"p1\">Доля повторных заказов — %. Собственный канал окупается быстрее, когда люди возвращаются. Для разовой покупки установка приложения добавляет дорогой шаг перед корзиной.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3ca4993ee5b64eb9d29a58436fa45e45\">\u003Cp class=\"p1\">Постоянная стоимость цифрового контура — ₽ в месяц. Серверы, мониторинг, поддержка, публикация обновлений, аналитика и команда, которая принимает решения после релиза.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp class=\"p1\">Порог окупаемости = ежемесячные постоянные расходы \u002F вклад одного дополнительного заказа. Пилот заменяет допущения фактическими значениями этих пяти показателей.\u003C\u002Fp>\u003Cp class=\"p1\">Своя доставка сходится, когда считается весь заказ\u003C\u002Fp>\u003Cp class=\"p1\">Перед разработкой мы раскладываем путь от выбора блюда до завершения заказа и отмечаем четыре вещи: кто отвечает за каждый статус, где меняются деньги, какие сбои требуют вмешательства и какую метрику получит команда. После этого становится виден состав первого релиза.\u003C\u002Fp>\u003Cp class=\"p1\">Результат этого разбора — карта статусов, список аварийных сценариев и набор метрик для пилота. По ним видно, какие интерфейсы входят в первый релиз, а какие функции можно отложить без ущерба для проверки.\u003C\u002Fp>\u003Cp class=\"p1\">Практический критерий простой: собственное приложение оправдано, когда бизнес контролирует предложение, операционные процессы и повторный спрос, а вклад заказа покрывает развитие цифрового контура. При слабой плотности заказов или неустойчивой кухонной операции приложение добавляет ещё одно место, где процесс может разойтись.\u003C\u002Fp>\u003Cp class=\"p1\">Если вы планируете собственный канал доставки или предзаказа, мы можем разложить его на клиентский, операционный и логистический контуры, собрать состав MVP и проверить экономические допущения до полной разработки. Подробнее — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fmobile-apps\">на странице разработки мобильных приложений.\u003C\u002Fa>\u003C\u002Fp>",[2494,2495,2496],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":474,"documentId":475,"title":476,"date":477,"description":11,"order":6,"slug":478,"showOnMainPage":13,"createdAt":479,"updatedAt":480,"publishedAt":481,"locale":17,"cover":2499,"content":2505,"media_event":11,"media_areas":2507,"seo":11,"localizations":2510},{"id":483,"documentId":484,"name":485,"alternativeText":11,"caption":11,"width":486,"height":487,"formats":2500,"hash":513,"ext":26,"mime":29,"size":514,"url":515,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":516,"updatedAt":516,"publishedAt":517},{"large":2501,"small":2502,"medium":2503,"thumbnail":2504},{"ext":26,"url":490,"hash":491,"mime":29,"name":492,"path":11,"size":493,"width":32,"height":33,"sizeInBytes":494},{"ext":26,"url":496,"hash":497,"mime":29,"name":498,"path":11,"size":499,"width":40,"height":41,"sizeInBytes":500},{"ext":26,"url":502,"hash":503,"mime":29,"name":504,"path":11,"size":505,"width":48,"height":40,"sizeInBytes":506},{"ext":26,"url":508,"hash":509,"mime":29,"name":510,"path":11,"size":511,"width":55,"height":56,"sizeInBytes":512},[2506],{"__component":66,"id":520,"text":521},[2508,2509],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":309,"documentId":310,"title":311,"date":312,"description":11,"order":6,"slug":313,"showOnMainPage":13,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":17,"cover":2512,"content":2518,"media_event":11,"media_areas":2520,"seo":11,"localizations":2523},{"id":318,"documentId":319,"name":320,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2513,"hash":346,"ext":26,"mime":29,"size":347,"url":348,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":349,"updatedAt":349,"publishedAt":349},{"large":2514,"small":2515,"medium":2516,"thumbnail":2517},{"ext":26,"url":323,"hash":324,"mime":29,"name":325,"path":11,"size":326,"width":32,"height":33,"sizeInBytes":327},{"ext":26,"url":329,"hash":330,"mime":29,"name":331,"path":11,"size":332,"width":40,"height":41,"sizeInBytes":333},{"ext":26,"url":335,"hash":336,"mime":29,"name":337,"path":11,"size":338,"width":48,"height":40,"sizeInBytes":339},{"ext":26,"url":341,"hash":342,"mime":29,"name":343,"path":11,"size":344,"width":55,"height":56,"sizeInBytes":345},[2519],{"__component":66,"id":352,"text":353},[2521,2522],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":2525,"documentId":2526,"title":2527,"date":2528,"description":11,"order":6,"slug":2529,"showOnMainPage":13,"createdAt":2530,"updatedAt":2531,"publishedAt":2532,"locale":17,"cover":2533,"content":2566,"media_event":11,"media_areas":2569,"seo":11,"localizations":2572},394,"lb4x4pfodc0sbnv9umz0b32a","Закрыл ноутбук, открыл телефон — и начал заново: где теряется контекст пользователя\n","2026-09-01","gde-teryaetsya-kontekst-polzovatelya","2026-08-31T12:47:31.448Z","2026-09-23T11:44:42.622Z","2026-09-23T11:44:42.688Z",{"id":2534,"documentId":2535,"name":2536,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2537,"hash":2562,"ext":752,"mime":382,"size":2563,"url":2564,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2565,"updatedAt":2565,"publishedAt":2565},818,"ixaxdgejwdf7llypqa47ye85","Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",{"large":2538,"small":2544,"medium":2550,"thumbnail":2556},{"ext":752,"url":2539,"hash":2540,"mime":382,"name":2541,"path":11,"size":2542,"width":32,"height":33,"sizeInBytes":2543},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff.jpg","large_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff","large_Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",31.16,31159,{"ext":752,"url":2545,"hash":2546,"mime":382,"name":2547,"path":11,"size":2548,"width":40,"height":41,"sizeInBytes":2549},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff.jpg","small_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff","small_Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",11.92,11921,{"ext":752,"url":2551,"hash":2552,"mime":382,"name":2553,"path":11,"size":2554,"width":48,"height":40,"sizeInBytes":2555},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff.jpg","medium_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff","medium_Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",21.32,21317,{"ext":752,"url":2557,"hash":2558,"mime":382,"name":2559,"path":11,"size":2560,"width":55,"height":56,"sizeInBytes":2561},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff.jpg","thumbnail_Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff","thumbnail_Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",4.18,4184,"Izobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff",76.02,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_18_sent_2026_g_02_17_48_2f808077ff.jpg","2026-09-17T23:18:20.564Z",[2567],{"__component":66,"id":690,"text":2568},"\u003Cp>Человек отвечает на тест в браузере, закрывает ноутбук и через минуту открывает приложение. Вместо продолжения система показывает главную. Курс, тест и место остановки приходится искать заново. Формально аккаунт тот же; для пользователя прогресс пропал.\u003C\u002Fp>\u003Cp>Без сети устройство какое-то время живёт со своей копией данных. Пользователь меняет заявку в приложении, а сотрудник обновляет ту же запись в вебе. После подключения на сервер приходят две версии. Синхронизация состоялась, но серверу всё равно нужно решить, какая версия допустима.\u003C\u002Fp>\u003Cp>Политику выбирают по типу данных. Независимые поля заявки можно объединить, права доступа сервер пересчитывает по актуальной роли, а два изменения одного поля требуют проверки. Одно правило здесь опасно: конфликт в переключателе и потеря черновика имеют разную цену.\u003C\u002Fp>\u003Cp>Для этого у записи должна быть версия, а у действия — время и автор. Получив устаревшую версию, сервер отклоняет изменение или возвращает конфликт в интерфейс. Политику разрешения конфликтов задают до запуска офлайн-режима, особенно для черновиков и необратимых действий.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Логин не помнит, на каком вопросе остановился пользователь\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp>Авторизация сообщает, кто вошёл. Чтобы продолжить задачу, система хранит роль, открытый объект, этап процесса, прогресс, черновик, версию данных и статус последнего действия.\u003C\u002Fp>\u003Cp>Возьмём учебный тест. Запись «пользователь 42 авторизован» почти бесполезна без номера попытки, ответов, оставшегося времени и правил повторного входа. Если проверка файла идёт в фоне, к контексту добавляется статус: работа принята, обрабатывается, проверена или требует повторной загрузки.\u003C\u002Fp>\u003Cp>Даже знакомое поле может оказаться спорным. Таймер, сохранённый на телефоне как «12 минут», устареет, пока устройство лежит без сети. Надёжнее хранить на сервере время начала и дедлайн, а на каждом клиенте заново рассчитывать остаток. Тогда часы на ноутбуке и смартфоне не проводят собственное совещание.\u003C\u002Fp>\u003Cp>У разных сценариев свой состав состояния. В доставке это активный заказ, маршрут и изменения, сделанные без сети. В личном кабинете — выбранная организация, права и незавершённая заявка. В семейном аккаунте — профиль ребёнка, который родитель открыл перед тем, как свернуть приложение.\u003C\u002Fp>\u003Cp>Это требование мы раскладываем на сущности и действия, которые человек продолжит на другом устройстве. Чаще всего мобильная и серверная команды расходятся именно здесь: первая описывает текущий экран, вторая — последнюю сохранённую запись. У каждой записи поэтому появляются владелец, версия и правило обновления\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Сервер хранит маршрут, устройство — ближайший шаг\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_19_21_388c931192.jpeg\" alt=\"photo_2026-09-02 16.19.21.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_02_16_19_21_388c931192.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_02_16_19_21_388c931192.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_02_16_19_21_388c931192.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_02_16_19_21_388c931192.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Веб и приложения должны сверяться с одним источником. Обычно это сервер: iOS, Android, браузер и внутренние сервисы получают через API одну модель состояния и восстанавливают из неё текущий шаг.\u003C\u002Fp>\u003Cp>Телефон при этом сохраняет локальный кеш, черновики, очередь действий и данные для работы без сети. Интерфейс читает локальную копию сразу, а затем сверяет её с сервером. Документация Android разделяет локальный и сетевой источники и отдельно описывает синхронизацию после восстановления связи. Для продукта это означает: локальная копия ускоряет экран, но не становится вторым источником истины.\u003C\u002Fp>\u003Cp>Граница проходит по сроку жизни данных:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e58c7172f454ab8cb5f4d1accf219c5da\">Положение курсора, раскрытый блок и введённый символ можно временно держать на устройстве.\u003C\u002Fli>\u003Cli data-list-item-id=\"e7d4336099d1f86ad46b1d9a54fe9e808\">Прогресс курса, отправленное задание, статус заказа и права доступа фиксируются в общем контуре — они должны пережить смену браузера, переустановку приложения и разряженный телефон.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Общий контракт описывает поля ответа и переходы между состояниями: идентификатор попытки, версию записи, условие завершения шага и права клиента на обновление. Иначе веб и приложение получают данные из одного места, но трактуют их по-разному.\u003C\u002Fp>\u003Cp>Ссылки из уведомлений тоже входят в эту модель. В ссылке можно передать идентификатор заказа, урока или сообщения, чтобы человек сразу попал в нужное место. Сервер при открытии заново проверяет роль и доступ. Старое уведомление не должно становиться пропуском к данным, которые пользователь уже не вправе видеть.\u003C\u002Fp>\u003Cp>Если веб и мобильные клиенты расходятся по статусам или правам, посмотрите, как в Qtim устроена разработка SaaS-продуктов.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Двойной тап не должен превращаться в две сдачи\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_19_23_c3b1ffb716.jpeg\" alt=\"photo_2026-09-02 16.19.23.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_02_16_19_23_c3b1ffb716.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_02_16_19_23_c3b1ffb716.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_02_16_19_23_c3b1ffb716.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_02_16_19_23_c3b1ffb716.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>\u003Cbr>Мобильная сеть создаёт дубли. Пользователь нажал «Отправить», ответ не пришёл, кнопка осталась активной. Он нажал ещё раз. Затем приложение снова отправило запрос после восстановления связи. На сервер приехали три одинаковые сдачи, хотя пользователь совершил одно действие.\u003C\u002Fp>\u003Cp>Для таких действий нужен идентификатор операции. Клиент создаёт его до отправки и использует при повторных попытках. Сервер видит, что действие уже принято, и возвращает прежний результат вместо нового списания, заявки или домашней работы.\u003C\u002Fp>\u003Cp>Стандарт RFC 9110 называет HTTP-метод идемпотентным, если несколько одинаковых запросов дают тот же ожидаемый эффект, что и один. Для запросов через POST это свойство часто приходится проектировать отдельно: хранить ключ операции, результат и время его действия.\u003C\u002Fp>\u003Cp>Пользователю при этом нужен понятный статус. «Принято, обрабатываем» лучше бесконечной загрузки. Если ответ потерялся по дороге, другое устройство запрашивает состояние операции по этому ключу.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Офлайн превращает синхронизацию в спор двух версий\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp>Без сети устройство какое-то время живёт со своей копией данных. Пользователь меняет заявку в приложении, а сотрудник обновляет ту же запись в вебе. После подключения на сервер приходят две версии. Синхронизация состоялась, но серверу всё равно нужно решить, какая версия допустима.\u003C\u002Fp>\u003Cp>Политику выбирают по типу данных. Независимые поля заявки можно объединить, права доступа сервер пересчитывает по актуальной роли, а два изменения одного поля требуют проверки. Одно правило здесь опасно: конфликт в переключателе и потеря черновика имеют разную цену.\u003C\u002Fp>\u003Cp>Для этого у записи должна быть версия, а у действия — время и автор. Получив устаревшую версию, сервер отклоняет изменение или возвращает конфликт в интерфейс. Политику разрешения конфликтов задают до запуска офлайн-режима, особенно для черновиков и необратимых действий.\u003C\u002Fp>\u003Ch2>\u003Cstrong>«Принято» должно пережить закрытую вкладку\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_19_15_86870adfb5.jpeg\" alt=\"photo_2026-09-02 16.19.15.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_02_16_19_15_86870adfb5.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_02_16_19_15_86870adfb5.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_02_16_19_15_86870adfb5.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_02_16_19_15_86870adfb5.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Контекст теряется и без перехода на другой экран. Пользователь отправил файл, сервер принял запрос и начал обработку. Если интерфейс показывает только два состояния — «до отправки» и «готово», несколько минут посередине выглядят как сбой.\u003C\u002Fp>\u003Cp>Фоновая обработка продолжается после закрытия вкладки. Сервер хранит промежуточный статус рядом с операцией: запрос принят, обрабатывается, завершён или остановлен с ошибкой. После повторного входа клиент запрашивает этот статус и продолжает с него.\u003C\u002Fp>\u003Cp>Интерфейс должен различать три ситуации. Если запрос не дошёл, действие можно отправить снова. Если обработка задержалась, экран показывает текущий статус. Если операция завершилась с ошибкой, человек получает объяснение и следующий шаг. Одна кнопка «попробовать ещё раз» не заменяет эту модель.\u003C\u002Fp>\u003Ch2>\u003Cbr>\u003Cstrong>Проверка начинается с незавершённого действия\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp>Перед оценкой проходим один маршрут целиком: открываем заявку, загрузку файла или учебную попытку на ноутбуке и телефоне, меняем с обоих устройств, отключаем сеть перед отправкой и повторяем запрос после подключения.\u003C\u002Fp>\u003Cp>Проверка пройдена, если:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"edf89f9f5a356377cd0ec7320646e19c4\">сервер помнит последний подтверждённый шаг;\u003C\u002Fli>\u003Cli data-list-item-id=\"e9c2348c43efb46e8d7e254458da77a84\">повтор не создаёт дубль;\u003C\u002Fli>\u003Cli data-list-item-id=\"e17958b5bf006027d19a1c584bdbda617\">устаревшая версия не затирает новую;\u003C\u002Fli>\u003Cli data-list-item-id=\"e77c2afc851d9ad3d71a44f50893c972b\">после возврата интерфейс показывает актуальный статус.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Если хотя бы один пункт не выполняется, проблема затрагивает схему данных, правила обновления или обработку запросов.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>",[2570,2571],{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1491,"documentId":2574,"title":2575,"date":2576,"description":11,"order":6,"slug":2577,"showOnMainPage":13,"createdAt":2578,"updatedAt":2579,"publishedAt":2580,"locale":17,"cover":2581,"content":2615,"media_event":11,"media_areas":2619,"seo":11,"localizations":2622},"pbpm1u7r2yocuobuig7aows1","После оффера оценка кандидата пропадает: как связать найм, обучение и эффективность","2026-09-02","kak-svyazat-naym-obuchenie-i-effektivnost","2026-09-02T08:28:55.851Z","2026-09-23T11:54:54.874Z","2026-09-23T11:54:54.937Z",{"id":2582,"documentId":2583,"name":2584,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":2585,"hash":2610,"ext":26,"mime":29,"size":2611,"url":2612,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2613,"updatedAt":2613,"publishedAt":2614},810,"zl315oaxwzz50p46g2whlnuu","Изображение Codex 18 сент. 2026 г., 01_31_12.png",{"large":2586,"small":2592,"medium":2598,"thumbnail":2604},{"ext":26,"url":2587,"hash":2588,"mime":29,"name":2589,"path":11,"size":2590,"width":32,"height":33,"sizeInBytes":2591},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c.png","large_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c","large_Изображение Codex 18 сент. 2026 г., 01_31_12.png",630.45,630445,{"ext":26,"url":2593,"hash":2594,"mime":29,"name":2595,"path":11,"size":2596,"width":40,"height":41,"sizeInBytes":2597},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c.png","small_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c","small_Изображение Codex 18 сент. 2026 г., 01_31_12.png",169.54,169543,{"ext":26,"url":2599,"hash":2600,"mime":29,"name":2601,"path":11,"size":2602,"width":48,"height":40,"sizeInBytes":2603},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c.png","medium_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c","medium_Изображение Codex 18 сент. 2026 г., 01_31_12.png",371.01,371005,{"ext":26,"url":2605,"hash":2606,"mime":29,"name":2607,"path":11,"size":2608,"width":55,"height":56,"sizeInBytes":2609},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c.png","thumbnail_Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c","thumbnail_Изображение Codex 18 сент. 2026 г., 01_31_12.png",43.81,43814,"Izobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c",622.49,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_18_sent_2026_g_01_31_12_caa327795c.png","2026-09-17T22:35:09.427Z","2026-09-17T22:35:09.428Z",[2616],{"__component":66,"id":2617,"text":2618},358,"\u003Cp class=\"isSelectedEnd\">\u003Cspan>В понедельник новый разработчик выходит на проект, а его подробная оценка остаётся в карточке кандидата. На интервью уже разобрали архитектурное мышление, самостоятельность и работу с неопределённостью. Руководитель получает имя, должность, дату старта — и снова выясняет, что человек умеет, где ему нужна поддержка и по каким признакам оценивать прогресс.\u003C\u002Fspan>\u003C\u002Fp>\u003Cp class=\"isSelectedEnd\">\u003Ci>\u003Cspan>Найм автоматизирован. Дальше цифровая цепочка обрывается.\u003C\u002Fspan>\u003C\u002Fi>\u003C\u002Fp>\u003Cp class=\"isSelectedEnd\">\u003Cspan>В HR-tech часто встречается один и тот же сценарий: команда подробно оценивает кандидата, но после оффера следующий процесс начинается почти с пустого листа. Данные не исчезают — они просто перестают помогать.\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cspan>Связать этапы помогает единая модель компетенций. Один и тот же навык должен одинаково называться при отборе, в плане развития и при проверке результата. Для этого компании нужно определить состав данных, границы автоматизации и первый процесс для пилота.\u003C\u002Fspan>\u003C\u002Fp>\u003Ch2>\u003Cstrong>После оффера данные расходятся по четырём системам\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">До оффера компания уже собирает материал для развития сотрудника. ATS – система для ведения подбора – хранит результаты интервью, тестового задания и комментарии интервьюеров. При понятных критериях там видно больше, чем итоговое «подходит»: какие задачи кандидат решает уверенно, где просит помощь, как объясняет выбор и на каком уровне проявляет конкретный навык.\u003C\u002Fp>\u003Cp class=\"p1\">После оформления человека появляется новая карточка в кадровой системе – HRM или HRIS. В неё обычно переезжают должность, подразделение, руководитель и дата выхода. Содержательная оценка остаётся в подборе. В LMS, платформе обучения, создаётся отдельный пользователь с программой адаптации по роли. Через несколько месяцев руководитель оценивает работу по своей форме, а бизнес смотрит на показатели в аналитическом отчёте (BI) или операционной системе.\u003C\u002Fp>\u003Cp class=\"p1\">Каждый сервис исправно записывает свой фрагмент. Свести их получается выгрузкой, созвоном и человеком, который помнит, почему «архитектурное мышление – уровень 2» в одной системе соответствует курсу «Проектирование сервисов» в другой. Технологии работают. Знакомят их по Excel.\u003C\u002Fp>\u003Cp class=\"p1\">Если один навык нельзя найти в найме, обучении и оценке по общему идентификатору, сквозного HR-контура пока нет. Есть несколько автоматизированных участков.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Один навык получает три имени – и перестаёт считаться\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_11_51_09_d8c84d8deb.jpeg\" alt=\"photo_2026-09-02 11.51.09.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_02_11_51_09_d8c84d8deb.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_02_11_51_09_d8c84d8deb.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_02_11_51_09_d8c84d8deb.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_02_11_51_09_d8c84d8deb.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Связка начинается со справочника компетенций. Он описывает навыки для конкретных ролей и переводит расплывчатое «сильный специалист» в наблюдаемые действия. Без справочника один и тот же навык легко превращается в «архитектурное мышление» в ATS, курс «Проектирование сервисов» в LMS и «техническую самостоятельность» в форме руководителя.\u003C\u002Fp>\u003Cp class=\"p1\">Для бэкенд-разработчика общим понятием может стать проектирование сервисов. На отборе кандидат разбирает архитектурную задачу, во время адаптации изучает принятые в компании подходы, в работе предлагает решение и аргументирует ограничения.\u003C\u002Fp>\u003Cp class=\"p1\">Карточка компетенции хранит несколько полей:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e39699c0a51d1dcf11d2ba9ca2435fc42\">\u003Cp class=\"p1\">постоянный код и понятное название;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8c25cdd15af9e749c773b07ff6e8fcea\">\u003Cp class=\"p1\">описание уровней через наблюдаемое поведение;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3e85a579f2d0d7ca286b0744529d37cd\">\u003Cp class=\"p1\">целевой уровень для роли;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e60310425482d7cd4d1981a0025d24376\">\u003Cp class=\"p1\">источник и дата последней оценки;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec892cf99eb01bc746b8557536b082133\">\u003Cp class=\"p1\">основание оценки: задача, тест, рабочий результат или обратная связь.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Постоянный код связывает системы. Остальные поля не дают числу превратиться в клеймо. Оценка «2 из 4» без даты, контекста и примера быстро устаревает. Человек мог отвечать на интервью в незнакомой предметной области, затем полгода работать с похожей архитектурой и заметно вырасти. Поэтому система должна хранить историю, а текущий профиль – учитывать свежие данные из работы.\u003C\u002Fp>\u003Cp class=\"p1\">Большой корпоративный словарь на несколько сотен пунктов для старта не нужен. Достаточно одной роли и тех компетенций, которые действительно влияют на её результат. Иначе команда потратит месяцы на согласование разницы между «переговорами», «коммуникацией» и «эффективной коммуникацией». За это время критерии могут устареть вместе с ролью.\u003C\u002Fp>\u003Cp class=\"p2\">&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Оценка кандидата должна пережить первый рабочий день\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В Qtim мы начали с профиля роли и критериев отбора. Материал hh.ru показывает, как команда описала технические и поведенческие навыки, добавила наблюдаемые индикаторы и приблизила задания к реальной работе. Для каждого этапа также зафиксировали цель и сигналы решения.\u003C\u002Fp>\u003Cp class=\"p1\">Часть кандидатов на позицию сеньора после оценки отнесли к уровню мидл. Эта деталь относится только к подбору. Она показывает, что оценка может дать больше, чем бинарный ответ «подходит»: уточнённый уровень и зоны, которые стоит проверить после выхода.\u003C\u002Fp>\u003Cp class=\"p1\">После оффера в профиль сотрудника стоит передавать компактный снимок этой оценки:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e3eda809874d2f644b1258314b51037ce\">\u003Cp class=\"p1\">проверенные компетенции и уровень уверенности в выводе;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3c5fb8489f94a6f5d5ca28b111560486\">\u003Cp class=\"p1\">примеры заданий, на которых проявился навык;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ebc93ee7a3b2758086560471df4ed0ade\">\u003Cp class=\"p1\">зоны, которые не удалось проверить;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e2c5949445d72a2e867d56ff693b5d4bd\">\u003Cp class=\"p1\">рекомендации для первых рабочих задач;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e53c7bd570fc0ee4a08a6f7e26a5b170c\">\u003Cp class=\"p1\">дату, автора и версию критериев.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Полная расшифровка интервью руководителю редко нужна. Ему полезнее увидеть, какую гипотезу проверить в работе. Если кандидат хорошо разобрал архитектуру, но мало работал с конкретным типом интеграций, первый план развития можно привязать к задаче с наставником. Через согласованный срок данные из рабочих задач обновят входной снимок.\u003C\u002Fp>\u003Cp class=\"p1\">У такой передачи есть срок годности. Результат отбора описывает человека в конкретный момент и при ограниченном наборе заданий. После выхода главными становятся наблюдения из работы. Если не обновлять профиль, первое впечатление закрепится в системе и продолжит влиять на решения после того, как потеряет актуальность.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Курс пройден. Что изменилось в работе?\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">LMS легко считает регистрацию, прогресс, тестовые баллы и завершение программы. Эти данные отвечают на вопрос, что сотрудник сделал внутри обучения. Для бизнеса важнее следующий шаг: применил ли он навык в рабочей ситуации.\u003C\u002Fp>\u003Cp class=\"p1\">До запуска программы стоит выбрать ожидаемое изменение и способ проверки. Например, сотрудник должен самостоятельно выполнить целевую операцию, применить новый стандарт без подсказки наставника или реже возвращать задачу на доработку. Тогда учебный результат можно сопоставить с конкретным действием. Число сертификатов останется внутренней метрикой LMS.\u003C\u002Fp>\u003Cp class=\"p1\">В Bakki, приложении для обучения сотрудников HoReCa, мы собрали базу знаний по меню и стандартам сервиса, интерактивные тренажёры, тесты, повторение и самопроверку. Сотрудник может заниматься короткими сессиями между сменами и заказами, а прогресс виден внутри продукта. Это пример учебного контура: материал связан с рабочим контекстом.\u003C\u002Fp>\u003Cp class=\"p1\">В открытом описании проекта нет цифр по продажам, скорости адаптации или качеству обслуживания. Чтобы связать учебный прогресс с работой, нужно отдельно выбрать сигнал, зафиксировать исходную точку и проверить изменение после обучения.\u003C\u002Fp>\u003Cp class=\"p1\">Основанием для пересмотра оценки может стать разбор задачи с наставником, проверка качества, наблюдение руководителя или показатель из операционной системы. Конкретный выбор зависит от роли. Связь должна быть близкой по смыслу: курс по архитектуре нельзя честно оценивать количеством закрытых тикетов за неделю.\u003C\u002Fp>\u003Cp class=\"p1\">Иначе аналитика уверенно докажет только одно: сотрудник умеет нажимать кнопку «Завершить курс».\u003C\u002Fp>\u003Ch2>\u003Cstrong>Между тестом и рабочей метрикой нужен мост из событий\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_16_31_f3a06bc910.jpeg\" alt=\"photo_2026-09-02 16.16.31.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_02_16_16_31_f3a06bc910.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_02_16_16_31_f3a06bc910.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_02_16_16_31_f3a06bc910.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_02_16_16_31_f3a06bc910.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Для сквозного контура необязательно заменять ATS, LMS и HRM одним большим продуктом. Их можно связать общей моделью данных и событиями. HRM остаётся источником сведений о сотруднике, роли и подразделении. ATS передаёт результаты отбора. LMS сообщает о назначении, прохождении и проверке программы. Рабочая система фиксирует действие или показатель, ради которого запускали развитие.\u003C\u002Fp>\u003Cp class=\"p1\">В центре находится единый идентификатор сотрудника. К нему привязаны версия роли, код компетенции и история событий. Например: «компетенция оценена на интервью», «назначен учебный маршрут», «пройдена практика», «руководитель подтвердил применение», «рабочий показатель пересчитан». События можно собирать через API и автоматические уведомления об изменениях – вебхуки. Для старых систем подойдёт регулярный обмен файлами с проверкой ошибок и дублей.\u003C\u002Fp>\u003Cp class=\"p1\">Важно заранее назначить систему, которая отвечает за каждое поле. Фамилию и подразделение обновляет кадровый контур. Состав курса и учебный результат принадлежат LMS. Критерии компетенции ведёт владелец модели. Показатель приходит из операционной системы, где выполняется процесс. Если несколько сервисов независимо меняют должность или уровень навыка, данные быстро расходятся.\u003C\u002Fp>\u003Cp class=\"p1\">Руководителю поверх этого контура нужен короткий экран: что ожидалось на входе, какой пробел выбрали, что назначили, какие подтверждения появились и когда пересмотреть вывод. Остальные графики полезны только тогда, когда помогают принять одно из этих решений.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Пилот начинается с одной роли\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_14_18_6b5d29d7c3.jpeg\" alt=\"photo_2026-09-02 16.14.18.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_02_16_14_18_6b5d29d7c3.jpeg 227w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_02_16_14_18_6b5d29d7c3.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_02_16_14_18_6b5d29d7c3.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_02_16_14_18_6b5d29d7c3.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Попытка сразу описать все должности, курсы и показатели обычно заканчивается большим справочником и маленьким числом пользователей. Пилот лучше ограничить одной ролью, где уже есть повторяемый найм, понятная программа адаптации и наблюдаемый рабочий результат.\u003C\u002Fp>\u003Cp class=\"p1\">У Qtim нет опубликованного кейса, где оценка кандидата, обучение и рабочие показатели объединены в один сквозной контур. Следующие пять шагов описывают проектную схему, которую предстоит проверить на одной роли:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"eb60a131ab899ba8997354284471a3b50\">\u003Cp class=\"p1\">Выбрать роль и три-пять компетенций, которые влияют на её основные задачи.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e59797ee6015e479810a63fabcba69204\">\u003Cp class=\"p1\">Сопоставить каждому уровню поведенческие индикаторы и способ проверки.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ebbff26c2977ae28bc2c73909d9d5beed\">\u003Cp class=\"p1\">Перенести результат отбора в стартовый профиль сотрудника.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e50a30aecb7ba285c820ea4c3f9b05e28\">\u003Cp class=\"p1\">Назначить учебные действия только на подтверждённые пробелы.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1a356d9a95dee155e0076a14eb05f3d6\">\u003Cp class=\"p1\">Через согласованный период обновить профиль по данным из рабочих задач и разобрать, что изменилось.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp class=\"p1\">Такой пилот показывает, объясняют ли выбранные компетенции качество работы и можно ли связать пользователей, роли и события без потерь и дублей. Слабые критерии проявятся до разработки большой платформы и масштабирования рекомендаций.\u003C\u002Fp>\u003Cp class=\"p1\">Сотруднику нужен доступ к своему профилю и возможность обсудить оценку с руководителем. Скрытая шкала вызывает сопротивление даже при безупречной интеграции. Открытая версия переводит разговор в план: вот ожидаемый уровень, вот пример из работы, вот следующая задача для практики.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Плохая модель компетенций автоматизирует спор\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Сквозная аналитика легко переходит в цифровой микроменеджмент. Особенно когда компания подменяет результат активностью: временем в LMS, числом кликов, количеством задач или частотой входа в корпоративный портал. Эти показатели удобно собирать, поэтому они быстро начинают выглядеть важнее самой работы.\u003C\u002Fp>\u003Cp class=\"p1\">У модели есть четыре уязвимых места. Критерии могут устареть вместе с ролью. Интервьюеры и руководители по-разному читают уровни. Рабочая метрика зависит от команды, сложности задач и сезона. Часть данных чувствительна и требует разграничения доступа. Каждое из этих ограничений лучше показывать рядом с оценкой, а не прятать в методичке.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому системе нужны версии критериев, срок пересмотра, автор оценки и журнал изменений. Подробные комментарии открывают только тем ролям, которым они нужны для работы. Сотруднику важно видеть цель развития и основания вывода. Решение о карьере или компенсации нельзя сводить к автоматическому баллу: данные готовят разговор, ответственность остаётся у людей.\u003C\u002Fp>\u003Cp class=\"p1\">Многим компаниям достаточно связать готовые сервисы и добавить один отчёт. Собственная разработка оправдана, когда ролей, правил и интеграций стало много, а обходные процессы регулярно влияют на адаптацию и управленческие решения. До этого момента разумнее настроить существующий контур.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Оффер перестаёт быть концом данных\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Оценка кандидата может стать началом плана развития. LMS закрывает выявленный пробел, а рабочая система показывает, проявился ли навык в задаче. Связь держится на общем коде компетенции, едином идентификаторе сотрудника и актуальных данных из работы.\u003C\u002Fp>\u003Cdiv class=\"relative z-[1]\">\u003Cdiv class=\"mt4SwW_editor [--wb-text-primary:var(--text-primary)] [--wb-text-secondary:var(--text-secondary)] [--wb-text-tertiary:var(--text-tertiary)] [--wb-surface-primary:var(--bg-primary)] [--wb-surface-secondary:var(--bg-tertiary)] [--wb-border:rgb(0_0_0\u002F7%)] [--wb-border-hover:rgb(0_0_0\u002F7%)] [--wb-divider:var(--border-light)] [--wb-focus:var(--border-strong)] [--wb-control-border:var(--interactive-border-focus)] [--wb-entity-accent:var(--theme-entity-accent)] [--wb-accent:var(--interactive-label-accent-default)] [--wb-on-accent:var(--bg-primary)] [--wb-interactive-background:var(--interactive-bg-accent-default)] [--wb-selection:var(--theme-user-selection-bg,var(--selection))] [--wb-radius-sm:var(--radius-sm)] [--wb-shadow-lg:var(--shadow-lg)] [--wb-font-sans:var(--font-sans)] [--wb-font-mono:var(--font-mono)] [--wb-shimmer-dark-contrast:var(--gray-550)] [--wb-shimmer-dark-secondary:var(--text-tertiary)] [--wb-radius:24px] [--wb-shadow:0_4px_80px_rgb(0_0_0\u002F2%)] [contain:none] writing-block-editor markdown-new-styling relative flow-root\" data-task-list-drag-label=\"Изменить порядок пункта контрольного списка\">\u003Cdiv class=\"outline-none data-[writing-block-fullscreen-editor]:min-h-[75vh] ProseMirror markdown prose dark:prose-invert w-full min-h-6 break-words focus:outline-none writing-block-open-link-mode\" data-writing-block-fullscreen-editor-region=\"true\" data-writing-block-fullscreen-editor-layout=\"inline\" contenteditable=\"true\" aria-disabled=\"false\" dir=\"auto\" translate=\"no\">\u003Cp>\u003Cspan>Проверка простая: возьмите один навык и попробуйте пройти его путь от интервью до рабочего результата. Если на каждом шаге меняется название, владелец и шкала, следующей задачей HR-tech должна стать модель данных. Если путь уже прослеживается, можно автоматизировать назначение, обратную связь и аналитику.\u003C\u002Fspan>\u003C\u002Fp>\u003Cp>\u003Cspan>Именно с такой логики стоит начинать цифровизацию HR-процессов: не с автоматизации отдельных действий, а со связки данных между ними. В Qtim мы проектируем корпоративные порталы и интеграционные решения, которые объединяют разрозненные процессы и системы в единый цифровой контур. Поэтому первый шаг — определить один процесс, его данные и точки интеграции, а затем проверить решение на пилоте перед масштабированием.\u003C\u002Fspan>\u003C\u002Fp>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"pointer-events-none absolute inset-0 rounded-[inherit] z-[2] [box-shadow:inset_0_0_0_1px_var(--oai-wb-border)] group-hover\u002Fwriting-block-surface:[box-shadow:inset_0_0_0_1px_var(--oai-wb-border-hover)]\" data-writing-block-fullscreen-shell-border=\"true\" aria-hidden=\"true\">&nbsp;\u003C\u002Fdiv>",[2620,2621],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2624,"documentId":2625,"title":2626,"date":2627,"description":11,"order":6,"slug":2628,"showOnMainPage":13,"createdAt":2629,"updatedAt":2630,"publishedAt":2631,"locale":17,"cover":2632,"content":2665,"media_event":11,"media_areas":2669,"seo":11,"localizations":2672},396,"xigmp6s4a3rypjza7nyd2jyu","AI-агент оформляет заказ: готов ли интернет-магазин отдать ему каталог, остатки и оплату","2026-09-03","ai-agent-oformlyaet-zakaz-katalog-ostatki-oplata","2026-09-03T08:28:16.365Z","2026-09-23T12:03:44.917Z","2026-09-23T12:03:45.001Z",{"id":2633,"documentId":2634,"name":2635,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":2636,"hash":2661,"ext":379,"mime":382,"size":2662,"url":2663,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2664,"updatedAt":2664,"publishedAt":2664},694,"zbr3rwphnt7py6h0deqoy0fx","photo_2026-09-03 15.47.52.jpeg",{"large":2637,"small":2643,"medium":2649,"thumbnail":2655},{"ext":379,"url":2638,"hash":2639,"mime":382,"name":2640,"path":11,"size":2641,"width":32,"height":32,"sizeInBytes":2642},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_03_15_47_52_53bd4540a1.jpeg","large_photo_2026_09_03_15_47_52_53bd4540a1","large_photo_2026-09-03 15.47.52.jpeg",54.61,54608,{"ext":379,"url":2644,"hash":2645,"mime":382,"name":2646,"path":11,"size":2647,"width":40,"height":40,"sizeInBytes":2648},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_03_15_47_52_53bd4540a1.jpeg","small_photo_2026_09_03_15_47_52_53bd4540a1","small_photo_2026-09-03 15.47.52.jpeg",18.39,18391,{"ext":379,"url":2650,"hash":2651,"mime":382,"name":2652,"path":11,"size":2653,"width":48,"height":48,"sizeInBytes":2654},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_03_15_47_52_53bd4540a1.jpeg","medium_photo_2026_09_03_15_47_52_53bd4540a1","medium_photo_2026-09-03 15.47.52.jpeg",34.65,34647,{"ext":379,"url":2656,"hash":2657,"mime":382,"name":2658,"path":11,"size":2659,"width":56,"height":56,"sizeInBytes":2660},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_03_15_47_52_53bd4540a1.jpeg","thumbnail_photo_2026_09_03_15_47_52_53bd4540a1","thumbnail_photo_2026-09-03 15.47.52.jpeg",3.41,3410,"photo_2026_09_03_15_47_52_53bd4540a1",67.55,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_52_53bd4540a1.jpeg","2026-09-03T12:50:00.228Z",[2666],{"__component":66,"id":2667,"text":2668},359,"\u003Cp class=\"p1\">Покупатель пишет: «Найди мне чёрную куртку без натурального меха, до 20 тысяч рублей, с доставкой к субботе. Если итоговая цена выше 18 тысяч — сначала спроси». Дальше он хочет увидеть готовый заказ, а не восемь вкладок, три почти одинаковые модели и промокод, который оказался недействителен уже перед оплатой.\u003C\u002Fp>\u003Cp class=\"p1\">Для AI-агента такой запрос звучит как маршрут: понять требования, найти подходящий вариант, проверить остаток, посчитать доставку, получить разрешение на списание и оформить покупку. Для интернет-магазина это проверка всей системы: данные о товаре, остатке, цене, доставке и оплате должны совпадать в каталоге, ERP и складском контуре.\u003C\u002Fp>\u003Cp class=\"p1\">Когда покупатель передаёт часть заказа AI-агенту, интернет-магазину приходится пересматривать не только интерфейс, но и саму архитектуру взаимодействия с клиентом. Агенту нужны актуальные данные, понятные правила и безопасный способ выполнять действия от имени покупателя. Поэтому задача начинается не с кнопки «Подключить AI», а с проверки того, готовы ли каталог, остатки, цены, доставка и оплата работать как единая система.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Покупатель уходит из интерфейса. Магазин остаётся продавцом\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Первые рабочие стандарты уже показывают, как будет устроен такой заказ. OpenAI и Stripe опубликовали Agentic Commerce Protocol: агент ведёт пользователя через выбор и подтверждение, а магазин принимает или отклоняет заказ, проводит платёж через свою систему и отвечает за доставку, возврат и поддержку.\u003C\u002Fp>\u003Cp class=\"p1\">UCP (Universal Commerce Protocol) создаётся как отраслевой стандарт. Среди соразработчиков — Google, Shopify, Amazon, Microsoft, Meta, Salesforce, Stripe, Walmart, Target и Etsy; в туризме и доставке участвуют Booking.com, Expedia, Marriott, DoorDash и Uber Eats. UCP охватывает поиск, корзину, связь с аккаунтом, оформление и управление заказом. Такой состав показывает, что агентный канал уже развивается на уровне рыночной инфраструктуры.\u003C\u002Fp>\u003Cp class=\"p1\">Для e-commerce это шесть вопросов к бэкенду: что именно продаём, где товар лежит, сколько он стоит сейчас, как его доставить, кто разрешил платёж и что произошло после него. В финале те же вопросы превратятся в шесть контрактов, по которым можно ограничить пилот.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Комиссия — только одна строка в экономике агентного канала\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Сейчас для Shopify-магазинов продажи через ChatGPT проходят в checkout продавца, а справка Shopify указывает: дополнительной комиссии нет. В марте OpenAI вернула оформление на сайт магазина. Прежняя модель показывает, почему комиссию всё равно стоит закладывать в расчёт: тариф Instant Checkout начал действовать 2026-01-26 и составлял 4% с каждой завершённой покупки. Вместе с эквайрингом Shopify Payments общая ставка могла доходить до 9,2%; Google AI Mode, Gemini и Microsoft Copilot тогда проводили оформление без дополнительного сбора, сообщали PYMNTS и RetailBrew. Коммерческая схема изменилась примерно за два месяца, поэтому рядом со ставкой фиксируют дату, платформу и платёжный сценарий.\u003C\u002Fp>\u003Cp class=\"p1\">Конверсию в оплату считают как долю завершённых покупок среди заказов, которые агент передал в checkout. Если платформа показывает только оплаченные заказы, магазин не увидит отказы и не поймёт, где теряются покупатели. До пилота нужно согласовать знаменатель метрики и события, доступные в аналитике.\u003C\u002Fp>\u003Cp class=\"p1\">Маржу считают после комиссии канала, эквайринга, возвратов и поддержки. Заказов может стать больше, а прибыли — меньше, если вместе с ними растут возвраты и обращения. Для сравнения берут одинаковые категории, регионы и способы доставки, чтобы состав трафика не исказил вывод.\u003C\u002Fp>\u003Cp class=\"p1\">Средний чек помогает проверить, сохранилась ли допродажа. Агент сам решает, какие товары показать, поэтому у магазина меньше контроля над выкладкой, комплектами и предложением аксессуаров. В пилоте сравнивают сумму и состав заказа: сколько покупок содержат дополнительные позиции.\u003C\u002Fp>\u003Cp class=\"p1\">Доля покупателей, с которыми магазин сможет продолжить коммуникацию, зависит от прав на данные. UCP позволяет передавать атрибуцию, но не задаёт модель и окно учёта. Протокол также не гарантирует магазину историю поиска, отклонённые варианты и полный диалог. Право использовать контактные данные в CRM и программе лояльности нужно закрепить в договоре с платформой до пилота.\u003C\u002Fp>\u003Cp class=\"p1\">Комиссия и эти четыре показателя дают пять строк экономики канала. Технически успешный заказ подтверждает работу интеграции; окупаемость покажут все пять строк вместе.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Атрибуты становятся новой витриной для AI-агента\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_50_beb22f190b.jpeg\" alt=\"photo_2026-09-03 15.47.50.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_03_15_47_50_beb22f190b.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_03_15_47_50_beb22f190b.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_03_15_47_50_beb22f190b.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_03_15_47_50_beb22f190b.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Человек может открыть карточку «Куртка North» и сам заметить, что графитовый цвет почти чёрный, размер M закончился, зато L доступен в соседнем магазине. Агенту нужны отдельные сущности: товар, вариант, цвет, размер, состав, цена, идентификатор склада и способы получения.\u003C\u002Fp>\u003Cp class=\"p1\">В спецификации каталога UCP товар отделён от варианта, который действительно можно купить. Вариант имеет свой идентификатор, цену и доступность; этот же идентификатор передаётся в сессию оформления заказа. Такая связка защищает от ситуации, когда агент рекомендует одну куртку, а в корзину отправляет её тёзку другого размера.\u003C\u002Fp>\u003Cp class=\"p1\">Для маркетолога меняется единица продажи. Агент не видит визуальную иерархию карточки и работает с тем, что можно разобрать как данные: атрибутами, ограничениями, условиями доставки и возврата. Описание «глубокий благородный оттенок для уверенных образов» помогает человеку представить вещь. Агенту нужны код цвета, состав, признак натурального меха и доступный размер.\u003C\u002Fp>\u003Cp class=\"p1\">Изображения, отзывы и редакционные материалы продолжают формировать спрос и доверие. В момент выбора внутри агентного канала видимость и конверсия зависят от полноты и точности товарных данных. Если у конкурента структурированы атрибуты, актуальны остатки и формализованы правила возврата, его товар проще сравнить и безопаснее добавить в заказ. Языковая модель интерпретирует запрос; финальный выбор привязывают к правилам и стабильным ID.\u003C\u002Fp>\u003Ch2>\u003Cstrong>«В наличии» живёт до первого запроса на доставку\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Остаток редко равен одному числу. Есть физическое количество на складе, доступный остаток с учётом резервов, витринные экземпляры, возвраты на проверке и товары в корзинах других покупателей. Ещё один слой добавляет логистика: позиция лежит в Казани, но не успевает к субботе в Санкт-Петербург.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому агенту мало ответа available: true. Ему нужны доступность конкретного варианта, адрес или зона доставки, способ получения, срок и момент, до которого расчёт остаётся действительным. Каталог помогает найти кандидата. Сессия оформления заказа повторно проверяет условия и возвращает состояние, которому магазин готов доверять в транзакции.\u003C\u002Fp>\u003Cp class=\"p1\">В UCP это разделено прямо: ответ каталога отражает текущие условия, но не считается обязательством продать; авторитетным становится ответ сессии оформления заказа. Для архитектуры это означает два правила. Остатки нужно получать из операционного контура, а перед оплатой — перепроверять. Если товар резервируется, у резерва должны быть срок жизни, причина снятия и связь с этой сессией.\u003C\u002Fp>\u003Cp class=\"p1\">Иначе два агента одновременно купят последний размер M. Куртка одна, а система успеет подтвердить её двум покупателям.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_49_31604df9b8.jpeg\" alt=\"photo_2026-09-03 15.47.49.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_03_15_47_49_31604df9b8.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_03_15_47_49_31604df9b8.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_03_15_47_49_31604df9b8.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_03_15_47_49_31604df9b8.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>\u003Cstrong>Цена меняется быстрее, чем агент дочитывает правила акции\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В каталоге агент увидел 17 990 рублей. Затем покупатель назвал адрес, выбрал доставку, применил промокод и вошёл в программу лояльности. Итог зависит от региона, способа получения, налогов, персональной скидки, состава корзины и времени действия акции.\u003C\u002Fp>\u003Cp class=\"p1\">Магазину нужен единый сервис расчёта, который возвращает полную цену по строкам: товар, скидка, доставка, налог и итог. Ответ должен содержать валюту и целые значения в минимальных денежных единицах, чтобы 17 990 рублей не превратились в 17 990 копеек из-за творческого прочтения поля amount.\u003C\u002Fp>\u003Cp class=\"p1\">Сервис оформления заказа обязан возвращать актуальное состояние после каждого изменения. Если сумма выросла выше разрешённых 18 тысяч, агент останавливается и просит подтверждение. Если товара больше нет, предлагает заменить вариант или отменить сессию. Новую сумму нельзя проводить без повторного подтверждения: иначе магазин получает спор с покупателем и банком.\u003C\u002Fp>\u003Cp class=\"p1\">Здесь особенно опасны параллельные калькуляторы. Сайт считает скидку в одном сервисе, мобильное приложение — в другом, маркетплейс получает ночную выгрузку, а агенту собирают четвёртую формулу. Новый канал быстро найдёт все расхождения. Лучше дать ему тот же расчёт, на котором уже живёт основное оформление заказа.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Платёж требует лимита и доказательства полномочий\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Фраза «агент оплатит сам» звучит удобно до первого вопроса: кто разрешил ему потратить именно эту сумму именно в этом магазине? Платёжные схемы для агентной торговли заменяют реквизиты карты ограниченными полномочиями.\u003C\u002Fp>\u003Cp class=\"p1\">Например, Shared Payment Tokens от Stripe позволяют выпустить токен для конкретного продавца с ограничением по сумме и сроку действия. SPT находятся в статусе Public preview: механизм доступен для пилота без закрытого приглашения. Это ещё не GA, поэтому интеграция должна учитывать возможные изменения API. Магазин получает платёжный инструмент без исходных реквизитов карты. В сценарии с курткой разрешение может выглядеть так: один платёж этому продавцу, максимум 18 тысяч рублей, токен действует несколько минут.\u003C\u002Fp>\u003Cp class=\"p1\">Есть и задача распознавания самого агента. Протокол Trusted Agent Protocol от Visa описывает подписи, по которым магазин может проверить доверенного агента, связанное с покупателем поручение и платёжный контейнер. Без такой проверки продавец не отличит авторизованного агента от обычного автоматизированного трафика. Цепочку доверия настраивают до выдачи доступа к оплате.\u003C\u002Fp>\u003Cp class=\"p1\">У автономности должен быть стоп-кран. В правилах задают продавца, категорию, лимит, срок, допустимость замены и условия обязательного подтверждения. Дорогая покупка, первая транзакция, изменение цены или невозвратный товар возвращают управление человеку. Поручение и применённые правила связывают с заказом, чтобы лимит можно было доказать после транзакции.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_56_ebcefd093a.jpeg\" alt=\"photo_2026-09-03 15.47.56.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_03_15_47_56_ebcefd093a.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_03_15_47_56_ebcefd093a.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_03_15_47_56_ebcefd093a.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_03_15_47_56_ebcefd093a.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>\u003Cstrong>Повторный запрос не должен заказать две куртки\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Агенты будут повторять запросы. Сеть оборвалась после отправки платежа, ответ задержался, клиент не понял, создался ли заказ, и попробовал ещё раз. Для обычной страницы это неприятный крайний случай. Для программного клиента — штатное поведение.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому операции с последствиями должны поддерживать идемпотентность. Агент отправляет уникальный ключ, а магазин при повторе возвращает прежний результат вместо второго списания и нового заказа. В актуальной спецификации ACP такой ключ обязателен для создания, обновления, завершения и отмены сессии оформления заказа.\u003C\u002Fp>\u003Cp class=\"p1\">Сессию оформления заказа полезно хранить как конечный автомат с понятными состояниями: собирается, ждёт данных, готова к оплате, требует подтверждения, завершена, отменена. Переходы проверяет сервер. Агент не может перескочить от подбора товара к оплате, если адрес не прошёл валидацию или магазин ещё не подтвердил итог.\u003C\u002Fp>\u003Cp class=\"p1\">Логи тоже меняются. Для каждого действия нужны идентификаторы пользователя, агента, поручения, сессии оформления заказа, заказа и платежа. Тогда спор «я просил до 18 тысяч, откуда взялось 21 400?» разбирается по цепочке событий с точными состояниями и временем.\u003C\u002Fp>\u003Ch2>\u003Cstrong>После оплаты агенту понадобятся статусы и возврат\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">После успешной оплаты заказ могут собирать частями, переносить между складами, отменять из-за брака, выдавать в пункте или отправлять курьером. Покупатель захочет спросить того же агента: «Где куртка?» Через неделю — «Как вернуть размер?»\u003C\u002Fp>\u003Cp class=\"p1\">Магазину нужен API жизненного цикла заказа: стабильный ID, состав, статусы, трекинг, документы, правила отмены и возврата. События лучше передавать асинхронно, а текущий статус всегда уметь получить повторным запросом. Агент может объяснить событие человеческим языком, но факт «передан в доставку» приходит из системы управления заказами, складом или самой службы доставки.\u003C\u002Fp>\u003Cp class=\"p1\">Поддержка тоже остаётся в контуре продавца. Агент должен знать, в каких случаях он может отменить заказ по поручению, когда запросить подтверждение и когда передать диалог оператору. Передача оператору вместе с контекстом становится частью контракта, который проверяют до запуска.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Шесть вопросов к бэкенду становятся шестью контрактами\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Для пилота сначала проходим путь заказа и проверяем шесть границ системы. Выбор большой языковой модели остаётся следующим шагом. Агент работает через версионируемый API-слой с идентификаторами запросов и логами; каталог, WMS, расчёт цены, платёжный и заказной контуры остаются источниками данных:\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"e96128d046f2a4b57000b7053f8c8a5c1\">\u003Cp class=\"p1\">Каталог. У товара и каждого покупаемого варианта есть стабильные ID, структурированные атрибуты, ограничения и ссылки на правила продажи.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"efbad9b43c19efbae1a4f5c7c935c17cd\">\u003Cp class=\"p1\">Доступность. Система отвечает по варианту, складу, региону и способу получения, умеет перепроверить остаток и поставить ограниченный по времени резерв.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ea107ac8fd1415c7efa5c13dfbf66dae7\">\u003Cp class=\"p1\">Цена. Один расчёт собирает товары, скидки, доставку и налоги; сервис оформления возвращает авторитетный итог после любого изменения.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e56395455b6b9574b622d25c23b56e781\">\u003Cp class=\"p1\">Полномочия и оплата. Магазин распознаёт агента, проверяет согласие покупателя и принимает ограниченный платёжный токен без доступа к исходным реквизитам.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec24a723fbe5d375a87a157775b56fc78\">\u003Cp class=\"p1\">Заказ. Повторный запрос безопасен, сессия оформления и заказ проходят по формализованным состояниям, каждое действие оставляет след в аудите.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecae88c439253e6c28c2208cb5dd81883\">\u003Cp class=\"p1\">Дальнейший путь. Агент может получить статус, запустить разрешённую отмену или возврат и передать исключение человеку вместе с контекстом.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Ch2>\u003Cstrong>Пилот ограничивают одним продающим маршрутом\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Стартовый сценарий — одна категория с понятными вариантами, один регион, один способ доставки и верхний лимит заказа. Пользователь подтверждает состав и итоговую сумму; нестандартная скидка, замена товара, частичная доставка или ошибка интеграции передают заказ оператору. Если остатки обновляются раз в сутки, маршрут заканчивается передачей корзины человеку. Автономную оплату подключают после резервов, правил, токенов и аудита.\u003C\u002Fp>\u003Cp class=\"p1\">На таком маршруте быстро видны реальные разрывы: каталог не различает товар и SKU, ERP отдаёт остаток без резервов, промокод рассчитывается только во фронтенде, платёж создаётся отдельно от заказа. После стабильного цикла добавляют по одному измерению — категорию, регион, способ получения, программу лояльности или более высокий лимит. Так команда понимает, какой контракт изменился и где искать ошибку.\u003C\u002Fp>",[2670,2671],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2674,"documentId":2675,"title":2676,"date":2677,"description":11,"order":6,"slug":2678,"showOnMainPage":13,"createdAt":2679,"updatedAt":2680,"publishedAt":2681,"locale":17,"cover":2682,"content":2715,"media_event":11,"media_areas":2718,"seo":11,"localizations":2721},397,"ono02gti54gmgguq55q3eqfl","Мобильная LMS: как понять, что отдельному приложению есть работа\n","2026-09-04","mobilnaya-lms-otdelnoe-prilozhenie","2026-09-03T14:02:36.259Z","2026-09-23T12:05:36.030Z","2026-09-23T12:05:36.109Z",{"id":2683,"documentId":2684,"name":2685,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":2686,"hash":2711,"ext":379,"mime":382,"size":2712,"url":2713,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2714,"updatedAt":2714,"publishedAt":2714},698,"k50ygwpde7r8rzi8dtisstrl","photo_2026-09-04 15.05.29.jpeg",{"large":2687,"small":2693,"medium":2699,"thumbnail":2705},{"ext":379,"url":2688,"hash":2689,"mime":382,"name":2690,"path":11,"size":2691,"width":32,"height":32,"sizeInBytes":2692},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_04_15_05_29_fbe6a08339.jpeg","large_photo_2026_09_04_15_05_29_fbe6a08339","large_photo_2026-09-04 15.05.29.jpeg",94.54,94539,{"ext":379,"url":2694,"hash":2695,"mime":382,"name":2696,"path":11,"size":2697,"width":40,"height":40,"sizeInBytes":2698},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_04_15_05_29_fbe6a08339.jpeg","small_photo_2026_09_04_15_05_29_fbe6a08339","small_photo_2026-09-04 15.05.29.jpeg",33.22,33219,{"ext":379,"url":2700,"hash":2701,"mime":382,"name":2702,"path":11,"size":2703,"width":48,"height":48,"sizeInBytes":2704},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_04_15_05_29_fbe6a08339.jpeg","medium_photo_2026_09_04_15_05_29_fbe6a08339","medium_photo_2026-09-04 15.05.29.jpeg",62.01,62014,{"ext":379,"url":2706,"hash":2707,"mime":382,"name":2708,"path":11,"size":2709,"width":56,"height":56,"sizeInBytes":2710},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_04_15_05_29_fbe6a08339.jpeg","thumbnail_photo_2026_09_04_15_05_29_fbe6a08339","thumbnail_photo_2026-09-04 15.05.29.jpeg",5.53,5526,"photo_2026_09_04_15_05_29_fbe6a08339",114.91,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_29_fbe6a08339.jpeg","2026-09-04T12:23:31.977Z",[2716],{"__component":66,"id":577,"text":2717},"\u003Cp class=\"p1\">Родитель открывает расписание двух детей между станциями метро. Ему нужна минута: проверить уроки на завтра, оценки и домашние задания. Если в этот момент показать ему мобильную версию всей LMS с курсами, отчётами и инструментами преподавателя, получится экскурсия по школе вместо ответа на простой вопрос.\u003C\u002Fp>\u003Cp class=\"p1\">Запрос «к веб-версии нужно ещё приложение» звучит просто. Но за ним стоят отдельная разработка и выпуск, проверка на разных устройствах, публикация в App Store и Google Play и дальнейшая поддержка после обновлений.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому начинать стоит не с решения «делаем приложение», а с учебной ситуации. Что именно телефон должен изменить для ученика, преподавателя или родителя? Если ответ сводится к уменьшенной копии личного кабинета, сначала стоит привести в порядок мобильный веб. В Qtim мы придерживаемся этого подхода при разработке EdTech-платформ: сначала определяем сценарий и его ценность для пользователя, а уже затем выбираем технологический формат.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Телефон должен получить отдельную задачу\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Отдельное приложение имеет смысл при двух условиях. Смартфон даёт учебному сценарию полезную возможность за пределами браузера. Человек возвращается к этому сценарию достаточно часто, чтобы установка окупилась удобством.\u003C\u002Fp>\u003Cp class=\"p1\">Рабочий критерий такой: учебный путь должен заметно выигрывать от телефона хотя бы в одном месте. Если выигрыша нет, приложение добавит продукту второй цикл выпуска, а ученику — ещё одну иконку.\u003C\u002Fp>\u003Ch2>\u003Cstrong>PWA хватает для коротких возвращений с телефона\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Основной учебный путь часто хорошо живёт в браузере. Ученик переходит по ссылке, входит в кабинет, смотрит урок, сдаёт тест и возвращается к расписанию. Ему не приходится искать сервис в сторе и разбираться с разрешениями до первого занятия.\u003C\u002Fp>\u003Cp class=\"p1\">Между адаптивным вебом и полноценным приложением есть PWA — сайт, который можно вынести на домашний экран и частично использовать без сети. Общий разбор выбора для первой версии я делал в отдельной статье. Такой формат подходит, когда учебный путь остаётся браузерным, а мобильному сценарию нужны уведомления и часть материалов без сети.\u003C\u002Fp>\u003Cp class=\"p1\">Например, расписание, короткие тесты и конспекты можно оставить в PWA, если ученик открывает их с телефона несколько раз в неделю. Если он часами учится без сети, выполняет задания и затем продолжает курс с другого устройства, нужен более строгий контур хранения и синхронизации. Тогда мы отдельно сравниваем PWA и приложение на целевых устройствах.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Формат онлайн-урока определяет устройство\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Демонстрацию экрана, работу с файлами и параллельное задание удобнее проходить за ноутбуком. Разговорная практика в дороге или частые подключения с телефона дают мобильному клиенту понятную работу. Один вебинар в месяц — лишний экзамен на любовь к установкам.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Офлайн начинается после кнопки «Скачать»\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Офлайн-доступ оправдан, когда обучение регулярно продолжается в дороге или в местах с нестабильной связью. Студент заранее сохраняет видео, аудио, конспект или задания, занимается без сети, а после подключения отправляет прогресс на сервер.\u003C\u002Fp>\u003Cp class=\"p1\">Мы заранее описываем, какие материалы доступны без интернета, сколько места они занимают, как обновляются и что произойдёт при работе с двух устройств. Простое правило «последняя синхронизация победила» может вместе со старой версией стереть развёрнутый ответ. Такой сюрприз в учебный план обычно не включают.\u003C\u002Fp>\u003Cp class=\"p1\">Если связь мешает изредка, достаточно дать возможность скачать отдельные материалы. Полноценная синхронизация нужна там, где без неё регулярно обрывается основной путь ученика.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Шесть курсов в вебе: карточки ещё не делают приложение\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Короткие занятия хорошо ложатся на телефон: повторить карточки, пройти один тест, разобрать ошибки.\u003C\u002Fp>\u003Cp class=\"p1\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">«Стадикэтс»\u003C\u002Fa> мы за пять месяцев объединили шесть курсов в одну веб-платформу на Nuxt.js и NestJS. В кабинете есть пробники, домашние задания, карточки для повторения, статистика и игровые механики. Приложения у проекта нет: весь учебный контур работает в вебе.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_28_de67b338c1.jpeg\" alt=\"photo_2026-09-04 15.05.28.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_04_15_05_28_de67b338c1.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_04_15_05_28_de67b338c1.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_04_15_05_28_de67b338c1.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_04_15_05_28_de67b338c1.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Мобильный путь станет осмысленным, если ученики начнут возвращаться к карточкам с телефона по несколько раз в день и браузер будет мешать этим коротким заходам. Для пробника за компьютером раз в неделю большой экран полезнее места в сторе. Список функций задаёт возможности продукта, а формат определяет реальное поведение аудитории.\u003C\u002Fp>\u003Ch2>\u003Cstrong>460 экзаменов с камерой — и ни одного мобильного клиента\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Камера и микрофон часто выглядят готовым аргументом в пользу смартфона. В учебном задании они действительно могут быть полезны: сфотографировать решение, записать устный ответ или снять выполнение упражнения. Но устройство выбирают по всему процессу, а не по одной кнопке.\u003C\u002Fp>\u003Cp class=\"p1\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fattestation-platform\">платформе аттестации\u003C\u002Fa> для Университета Льва Толстого экзаменационный контур вынесен в отдельный клиент: кандидат проверяет камеру и микрофон, включает запись видео, звука и экрана, затем сдаёт письменную или устную часть. Мобильного клиента в проекте нет. Экзамен проходит на площадке, в корпусе и аудитории, с фиксацией личности и записью экрана. Устройство здесь определяет регламент.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_31_2bc03c00a0.jpeg\" alt=\"photo_2026-09-04 15.05.31.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_04_15_05_31_2bc03c00a0.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_04_15_05_31_2bc03c00a0.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_04_15_05_31_2bc03c00a0.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_04_15_05_31_2bc03c00a0.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Через платформу прошли около 460 кандидатов. До разработки мы описали весь путь записи: создание файла, временное хранение, загрузку, доступ проверяющего и удаление. Камера занимает один элемент интерфейса; большая часть системы начинает работать после нажатия.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Три месяца на дневник, а не на всю LMS\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_26_d4041ddd9c.jpeg\" alt=\"photo_2026-09-04 15.05.26.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_04_15_05_26_d4041ddd9c.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_04_15_05_26_d4041ddd9c.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_04_15_05_26_d4041ddd9c.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_04_15_05_26_d4041ddd9c.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Отдельный мобильный контур часто нужен конкретной роли. Родитель заходит на минуту: посмотреть расписание, оценки, домашние задания, посещаемость или запись занятия. Редактор курсов и инструменты преподавателя только удлинят этот маршрут.\u003C\u002Fp>\u003Cp class=\"p1\">Так мы разделили контуры в «Онлайн-школе №1». Учебное ядро осталось в вебе, а для родителей мы собрали \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1-mobile\">мобильный дневник \u003C\u002Fa>на Flutter поверх NestJS-бэкенда действующей платформы. Первую версию (MVP) сделали за три месяца. В неё вошли расписание, оценки, домашние задания, посещаемость, записи занятий и переключение между детьми в одном аккаунте.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_32_ebf1f4dffb.jpeg\" alt=\"photo_2026-09-04 15.05.32.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_04_15_05_32_ebf1f4dffb.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_04_15_05_32_ebf1f4dffb.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_04_15_05_32_ebf1f4dffb.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_04_15_05_32_ebf1f4dffb.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Главный экран собирает данные сразу из четырёх модулей: расписания, посещаемости, заданий и оценок. Сервер формирует агрегированную сводку и отдаёт её одним запросом, поэтому приложение не собирает экран по частям. Отдельно настроили часовые пояса: родитель видит уроки и сроки в своём времени, без смещения по серверу.\u003C\u002Fp>\u003Cp class=\"p1\">У каждой роли остался короткий маршрут, а общие данные живут в одном бэкенде. Получилось ровно то разделение, с которого началась статья: уроки — в вебе, дневник — в телефоне.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Пуши подождали до второй волны\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Оплату и чаты тоже перенесли на следующие этапы: ежедневный родительский сценарий уже работал без дополнительных функций.\u003C\u002Fp>\u003Cp class=\"p1\">Одни пуши мобильную разработку не оправдывают. Перед запуском мы проговариваем действие после каждого уведомления и метрику, по которой поймём его пользу: открыл ли родитель новое задание, увидел ли перенос урока, посмотрел ли комментарий учителя. Иначе приложение пополнит коллекцию каналов, которые пользователь отключает вместе со всеми остальными.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Копия веб-кабинета превращает каждое изменение в два выпуска\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">У приложения появляется собственная жизнь ещё до публикации. Команда настраивает сертификаты и подписи, готовит страницы в сторах, запрашивает разрешения и проверяет сборки на разных устройствах. После запуска этот цикл повторяется с каждым заметным обновлением.\u003C\u002Fp>\u003Cp class=\"p1\">Flutter позволяет вести один мобильный продукт для iOS и Android, когда экраны и основная логика совпадают. Публикация, тестирование и часть интеграций с возможностями телефона всё равно остаются раздельными. Полная копия веб-кабинета заставит каждую новую роль, оценку или отчёт приезжать сразу в два интерфейса.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому бэкенд строим по принципу API-first: бизнес-логика, роли, права, прогресс и аналитика остаются на сервере, а веб и приложение используют общий серверный API как разные клиенты. Такой подход позволяет добавить мобильный сценарий после проверки спроса, не перевозя LMS целиком в новый интерфейс.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Пять вопросов отделяют учебный сценарий от списка экранов\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cul>\u003Cli data-list-item-id=\"e88604eff0cae8795af8d6fb01f2f3aef\">\u003Cp class=\"p1\">В какой момент обучения человек берёт телефон: по дороге к занятию, во время задания или между уроками?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eaac7b5fef06ee4e16f274454f78dbf7f\">\u003Cp class=\"p1\">Какую короткую задачу он должен завершить за один заход?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e2ad00b4055f223da7fdd0c5ef8b9ecbf\">\u003Cp class=\"p1\">Что мешает пройти этот путь в мобильном браузере: связь, работа с файлами, камера, микрофон или переход из уведомления?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eba6298a6320f10e6a7fcc9ed6c0cc457\">\u003Cp class=\"p1\">Кому нужен мобильный маршрут — ученику, родителю, преподавателю или куратору — и какая часть LMS нужна этой роли?К\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e94357be0dcf6406f2a8fc59e563284b5\">\u003Cp class=\"p1\">акая учебная метрика покажет результат: регулярность занятий, выполненные задания, пропуски или обращения в поддержку?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Ответы обычно приводят к одному из четырёх вариантов: адаптивный веб, PWA, отдельное мобильное приложение или специализированный клиент для контролируемого процесса. Название технологии появляется после маршрута пользователя.\u003C\u002Fp>\u003Cp>Если в школе уже есть повторяемый сценарий, для которого телефон действительно нужен, начинать стоит с него. Определить учебный путь, разделить задачи между вебом и мобильным контуром и только после этого выбирать формат разработки — приложение, адаптивный веб или их сочетание. Так мобильный продукт решает конкретную задачу пользователя, а не просто становится копией LMS на другом экране.\u003Cbr>&nbsp;\u003C\u002Fp>",[2719,2720],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":2723,"documentId":2724,"title":2725,"date":2726,"description":11,"order":6,"slug":2727,"showOnMainPage":13,"createdAt":2728,"updatedAt":2729,"publishedAt":2730,"locale":17,"cover":2731,"content":2764,"media_event":11,"media_areas":2767,"seo":11,"localizations":2770},398,"tia92neitxsmtmvtu3k6ox2x","Пилот с планом на рост: как подготовить цифровой продукт к масштабированию","2026-09-07","pilot-s-planom-na-rost-masshtabirovanie","2026-09-07T13:11:01.617Z","2026-09-23T12:12:39.375Z","2026-09-23T12:12:39.470Z",{"id":2732,"documentId":2733,"name":2734,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":2735,"hash":2760,"ext":379,"mime":382,"size":2761,"url":2762,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2763,"updatedAt":2763,"publishedAt":2763},710,"djlqc54odkt8h2c7o9wlaoq7","photo_2026-09-07 15.20.03.jpeg",{"large":2736,"small":2742,"medium":2748,"thumbnail":2754},{"ext":379,"url":2737,"hash":2738,"mime":382,"name":2739,"path":11,"size":2740,"width":32,"height":32,"sizeInBytes":2741},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_07_15_20_03_2b6cdbd0e9.jpeg","large_photo_2026_09_07_15_20_03_2b6cdbd0e9","large_photo_2026-09-07 15.20.03.jpeg",46.39,46393,{"ext":379,"url":2743,"hash":2744,"mime":382,"name":2745,"path":11,"size":2746,"width":40,"height":40,"sizeInBytes":2747},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_07_15_20_03_2b6cdbd0e9.jpeg","small_photo_2026_09_07_15_20_03_2b6cdbd0e9","small_photo_2026-09-07 15.20.03.jpeg",15.71,15714,{"ext":379,"url":2749,"hash":2750,"mime":382,"name":2751,"path":11,"size":2752,"width":48,"height":48,"sizeInBytes":2753},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_07_15_20_03_2b6cdbd0e9.jpeg","medium_photo_2026_09_07_15_20_03_2b6cdbd0e9","medium_photo_2026-09-07 15.20.03.jpeg",29.65,29654,{"ext":379,"url":2755,"hash":2756,"mime":382,"name":2757,"path":11,"size":2758,"width":56,"height":56,"sizeInBytes":2759},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_07_15_20_03_2b6cdbd0e9.jpeg","thumbnail_photo_2026_09_07_15_20_03_2b6cdbd0e9","thumbnail_photo_2026-09-07 15.20.03.jpeg",2.69,2687,"photo_2026_09_07_15_20_03_2b6cdbd0e9",56.72,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_07_15_20_03_2b6cdbd0e9.jpeg","2026-09-07T13:10:58.669Z",[2765],{"__component":66,"id":627,"text":2766},"\u003Cp class=\"p1\">На демо руководитель проводит тестовый заказ: оплата проходит, отчёт открывается, команда кивает — пилот готов. Через неделю менеджер просит добавить корпоративного клиента, ограничить ему права и подтянуть данные из системы учёта 1С. Первая реальная правка затрагивает половину системы.\u003C\u002Fp>\u003Cp class=\"p1\">Проблема обычно начинается раньше большого трафика: второй сценарий, новая роль или интеграция могут затронуть решения, принятые специально для демонстрации. Поэтому до запуска стоит зафиксировать то, что дорого переделывать, а функции и мощности наращивать после подтверждения спроса.\u003C\u002Fp>\u003Cp class=\"p1\">Пилот с планом на рост — это не уменьшенная версия будущего продукта, а способ проверить узкую гипотезу, сохранив возможность развивать систему дальше. В Qtim такой подход позволяет заранее определить архитектурные решения, границы первой версии и точки, которые должны выдержать следующий этап развития продукта. Ниже — о том, что стоит предусмотреть до первого пользователя, а что можно отложить до подтверждённого спроса.\u003Cbr>\u003Cbr>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_07_15_19_58_3cb90eba68.jpeg\" alt=\"photo_2026-09-07 15.19.58.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_07_15_19_58_3cb90eba68.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_07_15_19_58_3cb90eba68.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_07_15_19_58_3cb90eba68.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_07_15_19_58_3cb90eba68.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Ch2>\u003Cstrong>Пилот выдержал демо. Первое изменение оказалось сложнее\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">У пилота одна работа: дать бизнесу основание продолжить проект, изменить гипотезу или остановиться. Для ИИ-чатбота таким тестом может быть один процесс — ответы на типовые вопросы сотрудников по ограниченной базе знаний. Для маркетплейса — путь от поиска товара до оплаты. Для образовательного сервиса — покупка курса, доступ к уроку и фиксация прогресса.\u003C\u002Fp>\u003Cp class=\"p1\">До разработки мы фиксируем три вещи: какое действие проверяем, по какой метрике судим о результате и что сделаем при каждом исходе. После пилота команда расширяет сценарий, меняет его или закрывает идею. Формулировка «покажем продукт пользователям и посмотрим» оставляет слишком много свободы для творческой интерпретации. Особенно когда бюджет уже потрачен и всем очень хочется увидеть успех.\u003C\u002Fp>\u003Cp class=\"p1\">Граница первой версии проходит по пользовательской ценности. Для проверки ИИ-чатбота мы подключаем ограниченную базу знаний, настраиваем один-два сценария и прогоняем тестовые диалоги. Систему управления клиентами (CRM), сложную модель ролей, несколько каналов и полный мониторинг качества добавляем после ответа на главный вопрос: помогает ли бот выбранному процессу.\u003C\u002Fp>\u003Cp class=\"p1\">Функций нужно мало, а технических развилок уже несколько. На демо их почти не видно. Зато от них зависит стоимость каждого следующего изменения.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Пять решений, которые дешевле принять до первого пользователя\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_07_15_20_02_1b2b3f993e.jpeg\" alt=\"photo_2026-09-07 15.20.02.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_07_15_20_02_1b2b3f993e.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_07_15_20_02_1b2b3f993e.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_07_15_20_02_1b2b3f993e.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_07_15_20_02_1b2b3f993e.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Col>\u003Cli data-list-item-id=\"ec90e71d5a07fb3fb2605bf905f5cac6e\">\u003Cp class=\"p1\">Какие сущности и статусы живут в продукте. Пользователь, организация, заказ, тариф, попытка, урок и платёж должны иметь понятные связи. Если на старте заказ привязали прямо к одному человеку, появление корпоративного кабинета заставит переделывать права, отчёты и историю операций. Интерфейс можно перекрасить за один цикл разработки. Ошибка в модели данных расходится по всей системе.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"edf9aeaa0250c13a227c160d39a5dd096\">\u003Cp class=\"p1\">Где заканчивается один модуль и начинается другой. Каталог, оплата, доступы, уведомления и отчёты меняются с разной скоростью. Чёткие границы позволяют развивать их по отдельности, даже если весь пилот пока работает в одном приложении. Микросервисы для этого не обязательны. Нужна структура, в которой платёжное правило не прячется внутри кнопки, а проверка доступа не размазана по десятку экранов.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e6732caa6e990606053298b85c2306b43\">\u003Cp class=\"p1\">Как интерфейсы обращаются к серверной логике. Мы строим продукт по принципу API-first: веб-интерфейс, мобильное приложение и партнёрский кабинет обращаются к бизнес-правилам через единый программный интерфейс (API). Новый канал подключается к готовому ядру без переноса логики. Если гипотезу можно проверить в браузере, веб-версия быстрее доводит пользователя до действия. Мобильное приложение добавляем, когда сценарий зависит от функций устройства или частых возвращений.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec2adb8c80338d6a2453f38550fb2a862\">\u003Cp class=\"p1\">Кто что может видеть и менять. В пилоте нередко хватает администратора и пользователя. Модель прав всё равно стоит отделить от названий ролей. Тогда завтра можно дать менеджеру доступ только к своим клиентам, куратору — к одной группе, а бухгалтеру — к платежам без переписывания каждого обработчика. В проектах на серверном фреймворке NestJS мы разделяем две проверки: guard решает, можно ли войти в сценарий, а политика доступа — можно ли выполнить действие над конкретным объектом.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e268634e14f9bfd0949ab0ac2149777c2\">\u003Cp class=\"p1\">Какие события покажут, что пилот работает. Счётчик регистраций мало говорит о ценности. Нужны события основного пути: пользователь нашёл товар, закончил настройку, получил ответ, оплатил доступ или вернулся к следующему занятию. Рядом нужны технические сигналы — ошибки, время ответа и сбои интеграций. Без них команда спорит о впечатлениях, а причина отвалов остаётся где-то между журналами событий и догадками.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_07_15_20_01_3d95f315e8.jpeg\" alt=\"photo_2026-09-07 15.20.01.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_07_15_20_01_3d95f315e8.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_07_15_20_01_3d95f315e8.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_07_15_20_01_3d95f315e8.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_07_15_20_01_3d95f315e8.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Если пилот держится на памяти одного разработчика, план масштабирования подозрительно совпадает с его календарём. Схема данных, короткая документация, тестовая среда и понятная выкладка выглядят скучно. Именно эти вещи позволяют другой команде продолжить продукт без археологической экспедиции по коду.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Микросервисы раньше нагрузки масштабируют только смету\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Подготовка к росту легко превращается в попытку заранее построить финальную систему. Появляются отдельные сервисы, инфраструктура на Kubernetes для управления контейнерами, несколько мобильных приложений, универсальная админка и расчёт нагрузки на аудиторию, которой пока нет. Пилот дорожает, срок ответа на гипотезу отодвигается.\u003C\u002Fp>\u003Cp class=\"p1\">Первой версии чаще хватает модульной структуры, согласованной схемы данных, API для основного сценария, базовых прав и мониторинга: журналов событий, метрик и оповещений. Мы разделяем такой контур по мере появления реальных причин: части продукта нужно выпускать независимо, нагрузка на один участок мешает остальным или командам требуются отдельные зоны ответственности.\u003C\u002Fp>\u003Cp class=\"p1\">В кейсе Онлайн-школы №1 продуктовая логика — роли, авторизация, расписание и записи занятий — осталась на серверной платформе NestJS. Видеосвязь потребовала другого контура: WebRTC передаёт медиапоток, а SFU маршрутизирует его между участниками. Медиаконтур вынесли на язык Go, когда граница задачи стала понятна. У решения есть цена: отдельная среда исполнения, сборка, выкладка, мониторинг и распределённая отладка. Её платят ради изоляции конкретного узкого места.\u003C\u002Fp>\u003Cp class=\"p1\">С мобильной частью действует тот же принцип. Если основной путь целиком проходит в браузере, первую версию можно запустить по ссылке. Серверная логика и данные остаются за API, поэтому приложение позже подключается к готовому ядру. Так мы раньше проверяем спрос, а бюджет первой версии не уходит на публикацию в магазинах приложений.\u003C\u002Fp>\u003Cp class=\"p1\">Пустая инфраструктура спокойно выдерживает любой наплыв. Даже обидно, если пользователи так и не пришли.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Рост начинается с таблицы, очереди и новой роли\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_07_15_19_59_1b830218d0.jpeg\" alt=\"photo_2026-09-07 15.19.59.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_07_15_19_59_1b830218d0.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_07_15_19_59_1b830218d0.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_07_15_19_59_1b830218d0.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_07_15_19_59_1b830218d0.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Сигналом к масштабированию служит наблюдаемое изменение в работе продукта. Круглая цифра в презентации сама по себе ничего не запускает. Обычно всё начинается с таблицы: сотрудник раз в неделю переносит данные между CRM и админкой. Интеграция уже стала частью процесса; её скорость пока зависит от календаря сотрудника.\u003C\u002Fp>\u003Cp class=\"p1\">Проблему с правами выдают обходные решения. Менеджеру временно дают общий аккаунт, куратор видит лишние группы, администратор просит разработчика поменять статус напрямую в базе. Такие ситуации показывают, что текущей модели прав мало.\u003C\u002Fp>\u003Cp class=\"p1\">Мы пересматриваем архитектуру и тогда, когда тяжёлая операция задерживает основной путь. В кейсе «Стадикэтс» ученики могут массово сдавать задания перед дедлайном, а обработка файлов требует времени. Мы вынесли такие задачи в фоновую очередь на BullMQ и Redis. Кабинет принимает работу, отдельный обработчик (воркер) разбирает файл и обновляет результат. Пользователь продолжает заниматься, пока очередь сглаживает пик.\u003C\u002Fp>\u003Cp class=\"p1\">Видеопоток, конвертация файла и обычный запрос к кабинету потребляют разные ресурсы. Мы выделяем отдельный контур, когда можем точно описать место задержки, дефицит ресурса и способ проверить результат после разделения.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Четыре линейки HOTZ вошли в первую версию через одно коммерческое ядро\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В проекте HOTZ за три месяца запустили платформу электронной коммерции для четырёх продуктовых линеек с разными аудиториями. Если бы каждое направление получило отдельный каталог и собственные правила, команда быстро собрала бы четыре похожие системы и четыре набора будущих проблем\u003C\u002Fp>\u003Cp class=\"p1\">В основу первой версии положили сквозной каталог и связь с 1С. Интерфейс сразу работал с реальной товарной матрицей: ценами, остатками, фасовками и номенклатурой. Сверху появились разные визуальные коды для продуктовых направлений, а коммерческое ядро осталось общим — каталог, корзина, заказ, доставка и обмен данными.\u003C\u002Fp>\u003Cp class=\"p1\">Так четыре линейки HOTZ вошли в первую версию через одно коммерческое ядро. Архитектура сохранила основу для развития корпоративных сценариев продаж. Новые способы покупки можно добавлять поверх единой модели товаров и заказов.\u003C\u002Fp>\u003Cp class=\"p1\">У каждого типа продукта своё ядро. Для ИИ-бота это качество ответа в одном процессе и понятная работа с источниками. Для системы управления обучением (LMS) — учебный сценарий, прогресс и права. Для сервиса подписки — тариф, статус оплаты и доступ. Мы заранее определяем эту часть: она должна пережить пилот и стать основой следующей версии.\u003C\u002Fp>\u003Ch2>\u003Cstrong>После пилота план роста собирают по узким местам\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">После пилота мы сопоставляем обещанную метрику с поведением пользователей: сколько дошло до ключевого действия, где ушли, какие обходные операции появились у сотрудников и какие ошибки повторялись. Из этих наблюдений собираем план следующей версии.\u003C\u002Fp>\u003Cp class=\"p1\">Мы раскладываем план на четыре слоя. Продуктовый — какой сценарий подтвердился и что мешает повторному использованию. Данные — хватает ли текущих сущностей, статусов и истории. Технический — какой участок уже создаёт задержки или ошибки. Операционный — может ли команда выпускать изменения, видеть сбои и передавать ответственность.\u003C\u002Fp>\u003Cp class=\"p1\">Затем работаем по узким местам. Автоматизируем повторяющуюся передачу данных, уточняем права, отправляем тяжёлую обработку в фон. Отдельный сервис появляется, когда профиль нагрузки действительно отличается от остальной системы. У каждого раннего решения остаётся проверяемая причина.\u003C\u002Fp>\u003Cp class=\"p1\">Главный критерий можно записать в одну строку: в пилот закладывают дорогие в переделке решения; мощности и функции добавляют после подтверждения спроса.\u003C\u002Fp>\u003Cp class=\"p1\">С таким планом демо проверяет гипотезу, а первая реальная правка затрагивает только нужный модуль.\u003C\u002Fp>\u003Cp class=\"p1\">Если вы готовите пилот цифрового продукта, начните с разделения решений на те, что формируют основу системы, и те, которые можно отложить. Это поможет проверить ключевой сценарий на реальных пользователях и сохранить понятный путь к дальнейшему развитию продукта.\u003C\u002Fp>",[2768,2769],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2772,"documentId":2773,"title":2774,"date":2775,"description":11,"order":6,"slug":2776,"showOnMainPage":13,"createdAt":2777,"updatedAt":2778,"publishedAt":2779,"locale":17,"cover":2780,"content":2812,"media_event":11,"media_areas":2815,"seo":11,"localizations":2818},399,"mfzw1oxq307h7hldor2v71hh","Реклама сработала, сайт лёг: как проверить предел системы до пикового трафика","2026-09-08","reklama-srabotala-sayt-lyog-pikovyy-trafik","2026-09-08T11:25:13.641Z","2026-09-23T12:14:50.402Z","2026-09-23T12:14:50.501Z",{"id":2781,"documentId":2782,"name":2783,"alternativeText":11,"caption":11,"width":1614,"height":1614,"formats":2784,"hash":2808,"ext":379,"mime":382,"size":2809,"url":2810,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2811,"updatedAt":2811,"publishedAt":2811},711,"nis5ul12ootvgcavzy6ufuuq","photo_2026-09-08 15.41.42.jpeg",{"large":2785,"small":2791,"medium":2797,"thumbnail":2803},{"ext":379,"url":2786,"hash":2787,"mime":382,"name":2788,"path":11,"size":2789,"width":32,"height":32,"sizeInBytes":2790},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_08_15_41_42_22f0fb38b2.jpeg","large_photo_2026_09_08_15_41_42_22f0fb38b2","large_photo_2026-09-08 15.41.42.jpeg",66.11,66115,{"ext":379,"url":2792,"hash":2793,"mime":382,"name":2794,"path":11,"size":2795,"width":40,"height":40,"sizeInBytes":2796},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_08_15_41_42_22f0fb38b2.jpeg","small_photo_2026_09_08_15_41_42_22f0fb38b2","small_photo_2026-09-08 15.41.42.jpeg",23.65,23654,{"ext":379,"url":2798,"hash":2799,"mime":382,"name":2800,"path":11,"size":2801,"width":48,"height":48,"sizeInBytes":2802},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_08_15_41_42_22f0fb38b2.jpeg","medium_photo_2026_09_08_15_41_42_22f0fb38b2","medium_photo_2026-09-08 15.41.42.jpeg",43.26,43260,{"ext":379,"url":2804,"hash":2805,"mime":382,"name":2806,"path":11,"size":2560,"width":56,"height":56,"sizeInBytes":2807},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_08_15_41_42_22f0fb38b2.jpeg","thumbnail_photo_2026_09_08_15_41_42_22f0fb38b2","thumbnail_photo_2026-09-08 15.41.42.jpeg",4185,"photo_2026_09_08_15_41_42_22f0fb38b2",68.83,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_08_15_41_42_22f0fb38b2.jpeg","2026-09-08T12:43:42.440Z",[2813],{"__component":66,"id":747,"text":2814},"\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F1_f171a93442.png\" alt=\"1.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_1_f171a93442.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_1_f171a93442.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_1_f171a93442.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_1_f171a93442.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">\u003Cbr>В 19:59 маркетолог обновляет рекламный кабинет. В 20:00 кампания выходит. В 20:03 рабочий чат уже выясняет, почему корзина не открывается, форма не отправляется, а страница акции показывает белый экран. На сайт одновременно пришла вся аудитория. Через три минуты знакомство закончилось.\u003C\u002Fp>\u003Cp class=\"p1\">Нагрузочное тестирование помогает провести эту встречу заранее: воспроизвести ожидаемый поток пользователей, увидеть предел системы и проверить, что после пика она возвращается в нормальное состояние. Сценарий «реклама сработала, сайт лёг» при этом остаётся внутри тестового контура.\u003C\u002Fp>\u003Cp class=\"p1\">Чтобы понять, готов ли сайт к росту трафика, недостаточно проверить только его максимальную нагрузку. Важно перевести медиаплан в профиль нагрузки, протестировать ключевые пользовательские сценарии и заранее определить критерии стабильности. Ниже — о том, как это сделать и по каким результатам принимать решение о запуске кампании.\u003C\u002Fp>\u003Ch2>\u003Cstrong>От маркетолога нужны четыре цифры — дальше работает техническая команда\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F2_d3e781badb.png\" alt=\"2.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_2_d3e781badb.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_2_d3e781badb.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_2_d3e781badb.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_2_d3e781badb.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Фраза «ждём 50 000 посетителей» почти бесполезна для теста без привязки ко времени и действиям. Пятьдесят тысяч человек за неделю и пять тысяч за первые десять минут создают для системы разные задачи. При этом одни читают лендинг, а другие одновременно ищут товар, применяют промокод и переходят к оплате.\u003C\u002Fp>\u003Cp class=\"p1\">На старте маркетолог передаёт четыре вводных: прогноз переходов в первый час и самую плотную минуту, ожидаемую долю людей на каждом шаге воронки, примерную длину сессии и долю мобильного трафика. Источники этих данных — медиаплан и аналитика прошлых запусков. Этого достаточно, чтобы передать задачу технической команде: p95, кэш и конфигурацию серверов дальше разбираем мы.\u003C\u002Fp>\u003Cp class=\"p1\">По этим вводным собираем профиль нагрузки. Допустим, из 100 одновременных пользователей 60 смотрят страницы, 25 работают с поиском и фильтрами, 10 меняют корзину, а 5 оформляют заказ. Пропорции задаёт ожидаемая воронка кампании. Круглая цифра «проверили тысячу пользователей» выглядит солидно на слайде, но не описывает реальную кампанию. Для теста нужен поток с теми же пропорциями и ритмом, которые ожидаются на запуске.\u003C\u002Fp>\u003Cp class=\"p1\">Рекламная кампания задаёт ожидаемый профиль трафика и размер запаса. Он зависит от точности медиаплана, истории прошлых кампаний и скорости масштабирования инфраструктуры. Само тестирование планируют в контуре релиза продукта, отдельной функции или другого изменения системы. В результате у теста остаётся конкретный вопрос: выдержит ли система нужный поток с согласованным запасом и приемлемым временем ответа?\u003C\u002Fp>\u003Ch2>\u003Cbr>\u003Cstrong>Проверять главную страницу — как тестировать магазин по вывеске\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F3_2ef07eabf8.png\" alt=\"3.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_3_2ef07eabf8.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_3_2ef07eabf8.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_3_2ef07eabf8.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_3_2ef07eabf8.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Главная страница часто отдаётся через CDN — сеть серверов, которая хранит копии контента ближе к пользователю. Она может открываться быстро, пока поиск ждёт базу данных, корзина получает устаревшие остатки, а форма второй раз пытается передать заявку в систему управления клиентами (CRM).\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому сценарий теста повторяет путь человека. Для интернет-магазина это обычно такая цепочка:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eddf65ea4658838f2dd1bcbfe90438054\">\u003Cp class=\"p1\">открыть страницу акции или каталог;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4377ddef041115f05f9631337eaa2458\">\u003Cp class=\"p1\">найти товар через поиск и фильтры;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0b2a5b7b5ae4737fe2a8c43317471b2c\">\u003Cp class=\"p1\">открыть карточку и добавить позицию в корзину;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1b2ba34c678233b1df09b614b47a6643\">\u003Cp class=\"p1\">применить промокод или бонусы;авторизоваться либо оформить заказ без регистрации;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9ac0767326350b0d30f55d50f55fd751\">\u003Cp class=\"p1\">выбрать доставку и способ оплаты;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e399d3d7f22172ea7f8bddc2f7f04b516\">\u003Cp class=\"p1\">получить подтверждение заказа.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">У рекламного лендинга маршрут короче, но заканчивается он дальше кнопки «Отправить»: заявка должна записаться в CRM с корректным источником, а человек — увидеть, что форма принята. Иначе клики не превращаются в заявки для отдела продаж.\u003C\u002Fp>\u003Cp class=\"p1\">Тестовые данные тоже влияют на результат. Один пользователь, одна корзина и один товар быстро заполняют кэш — временное хранилище частых ответов — и дают слишком удобную картину. Мы параметризуем сценарии: используем разные аккаунты, товары, запросы, промокоды и сессии. Отдельно прогоняем холодный старт с пустым кэшем и повторный поток после прогрева.\u003C\u002Fp>\u003Ch2>\u003Cbr>\u003Cstrong>Среднее время ответа выглядит прилично, пока медленные запросы уже портят продажи\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F4_039cd42fe0.png\" alt=\"4.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_4_039cd42fe0.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_4_039cd42fe0.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_4_039cd42fe0.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_4_039cd42fe0.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Этот показатель сглаживает хвост медленных запросов. Девять покупателей могут пройти оформление быстро, а десятый несколько секунд смотрит на неподвижную кнопку. Итоговая цифра останется приличной; у десятого покупателя будет своя версия отчёта — короткая и без покупки. Поэтому среднее оставляем для общей картины, а решение принимаем по хвосту медленных запросов.\u003C\u002Fp>\u003Cp class=\"p1\">Для ключевых действий мы смотрим перцентили. p95 показывает время, быстрее которого завершились 95% операций, p99 — 99%. Эти показатели отвечают на практический вопрос: насколько плохо приходится самым терпеливым пользователям во время пика.\u003C\u002Fp>\u003Cp class=\"p1\">Маркетолог согласует бизнес-порог: сколько секунд покупатель готов ждать, какую долю ошибок можно допустить и сколько заказов или заявок должно проходить за минуту. Мы переводим эти условия в технические критерии для каталога, поиска, корзины и оформления. Процессоры, память, база данных, кэш и очереди остаются зоной технической команды: по ним мы ищем причину, когда проседает бизнес-показатель.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Кнопка всё ещё недоступна: где теряется время после ответа сервера\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">После получения данных браузеру ещё нужно собрать страницу и обработать интерфейс. Протокольный тест создаёт основной поток HTTP-запросов, а несколько браузерных сценариев показывают, что видит человек. Для страницы мы фиксируем ориентиры Core Web Vitals: Google относит к хорошим полевым значениям LCP до 2,5 секунды, INP до 200 миллисекунд и CLS до 0,1 у 75% просмотров. Эти метрики описывают загрузку основного контента, отклик интерфейса и визуальную стабильность. До запуска мы проверяем доступные показатели в лабораторных условиях, после — сверяем их с данными реальных посетителей.\u003C\u002Fp>\u003Cp class=\"p1\">Документация Grafana рекомендует сочетать оба слоя: один создаёт масштаб, другой проверяет пользовательский путь. Так мы видим давление на серверную часть и задержку между нажатием кнопки и реакцией интерфейса.\u003C\u002Fp>\u003Ch2>\u003Cbr>\u003Cstrong>Ровный поток, всплеск, стресс и длинная акция ломают сайт по-разному\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Один прогон на постоянной нагрузке отвечает только на один вопрос. Перед распродажей полезны четыре режима.\u003C\u002Fp>\u003Cp class=\"p1\">Обычную нагрузку мы постепенно наращиваем, удерживаем на целевой отметке и затем снижаем. На этом этапе проверяем скорость, долю ошибок и число успешно завершённых заказов или заявок.\u003C\u002Fp>\u003Cp class=\"p1\">Резкий всплеск имитирует старт рекламы, рассылки или массового уведомления, когда большая часть аудитории приходит почти одновременно. Мы смотрим, успевает ли автоматическое масштабирование добавить новые экземпляры приложения и что происходит до этого момента.\u003C\u002Fp>\u003Cp class=\"p1\">Стресс-тест увеличивает поток до деградации и помогает найти предел. Мы видим, какой компонент сдаётся первым и по какой метрике приближение к пределу можно заметить заранее. AWS также рекомендует использовать нагрузочные тесты для поиска точки отказа и наблюдаемых признаков её приближения.\u003C\u002Fp>\u003Cp class=\"p1\">На одном из e-commerce-проектов мы использовали k6 и проверяли цепочку от открытия каталога до создания заказа. Первым ограничением стал пул соединений с базой данных: при росте нагрузки p95 увеличился примерно до 2,8 секунды. После оптимизации запроса и настройки пула повторный прогон на том же профиле показал p95 около 700 миллисекунд.\u003C\u002Fp>\u003Cp class=\"p1\">Длительный тест держит систему под давлением несколько часов. Так мы находим утечки памяти, рост очередей, исчерпание доступных подключений к базе и постепенное отставание фоновых задач. После каждого режима проверяем восстановление: сократилось ли число отложенных операций, освободились ли ресурсы и вернулось ли время ответа к исходному уровню.\u003C\u002Fp>\u003Cp class=\"p1\">В кейсе «Стадикэтс» нагрузка идёт «пилой, а не волной»: дедлайны домашних заданий, пробники и канун экзамена по очереди создают резкие всплески. Задача проекта — обеспечить стабильность, когда ученики одновременно отправляют работы. Учебный календарь здесь становится основой профиля теста. Ровный шаблонный поток скрыл бы важную часть риска.\u003C\u002Fp>\u003Cp class=\"p1\">В публичном кейсе зафиксированы два решения для таких периодов. Фоновые задачи изолированы, поэтому массовая сдача работ не останавливает личный кабинет и админку. Инфраструктура предусмотрена с запасом и подготовкой к контейнеризации, чтобы масштабировать систему без переделки архитектуры.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Один заказ, четыре проверки: CRM, защита от дублей, бизнес-события и внешние сервисы\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Технический график может оставаться зелёным, пока данные о заказе расходятся. Поэтому на распродаже мы проверяем всю цепочку: товар не продаётся сверх остатка, повторный клик не создаёт второй заказ или оплату, промокод соблюдает ограничения, а уведомление платёжной системы меняет статус один раз.\u003C\u002Fp>\u003Cp class=\"p1\">Мы проверяем, что отложенные задачи доходят до конца под контролем, а заявка попадает в CRM вместе с источником и контактами. Для оплаты и создания заказа мы используем защиту от дублей: повторный запрос с тем же ключом возвращает прежний результат. Разработчики называют это идемпотентностью; для бизнеса смысл простой: один запрос — один заказ и одна оплата.\u003C\u002Fp>\u003Cp class=\"p1\">Во время теста мы считаем бизнес-события на каждом участке: сколько корзин ушло в оформление, сколько заказов создалось, сколько оплат подтвердилось, сколько записей получила CRM. Разница между соседними цифрами указывает место, где поток начал протекать.\u003C\u002Fp>\u003Cp class=\"p1\">Внешние сервисы мы проверяем отдельно и по договорённости. Платёжный шлюз, 1С, CRM, доставка или сервис рассылок могут иметь собственные лимиты. Для массового прогона мы используем тестовые контуры, заглушки или заранее согласованный объём запросов. Случайный нагрузочный тест чужой системы быстро знакомит со службой безопасности. Подготовить собственный запуск он не помогает.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Тестовая среда должна быть похожа на рабочую там, где больно\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Тест на одном сервере с пустой базой плохо предсказывает поведение кластера с миллионом товаров и историей заказов. Полная копия рабочей среды бывает слишком дорогой, поэтому мы добиваемся сходства на участках, которые влияют на результат:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e1853b9a0c7773006502e881c419aab5e\">\u003Cp class=\"p1\">та же версия приложения и конфигурация сервисов;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef34d65bc501d6858955bce7aaf86f9ce\">\u003Cp class=\"p1\">сопоставимые объём и распределение данных;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e92d58b11a8196893adc5bec29ceb8902\">\u003Cp class=\"p1\">такие же база данных, кэш, очереди и правила автоматического масштабирования;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4a3170f5b480d8b94a131e0ba7b17443\">\u003Cp class=\"p1\">реальные ограничения CDN, балансировщика, сетевого экрана и защиты от ботов;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e88317f2aaa8953933bab5b5e5234237e\">\u003Cp class=\"p1\">мониторинг на уровне приложения, инфраструктуры и бизнес-событий.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">В кейсе 4fresh магазин переезжал с 1С-Битрикс на собственное решение. Вместе с ним мы переносили профили пользователей, историю заказов и тысячи отзывов. Такой объём нельзя честно воспроизвести пустой базой. Поэтому мы готовим среду с совпадающими версиями сервисов и сопоставимым «весом» реальных данных.\u003C\u002Fp>\u003Cp class=\"p1\">Меньший масштаб тестовой среды мы фиксируем в выводах. Мы пересчитываем результат только там, где известна зависимость от ресурсов. Без описания окружения фраза «на тесте всё выдержало» ничего не говорит о готовности к запуску.\u003C\u002Fp>\u003Cp class=\"p1\">Перед большим прогоном мы согласуем время, ответственных и критерии остановки. Мы останавливаем тест при росте числа ошибок, приближении базы к пределу соединений, остановке сокращения очередей или риске для соседних систем. Так мы находим безопасный предел без аварии в рабочем контуре.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Пять ответов, после которых запуску можно дать зелёный свет\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Итоговый отчёт должен ответить на пять вопросов:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"efb37138ee699cc4d3b4e6562dfd4035f\">\u003Cp class=\"p1\">Какой поток пользователей и операций система выдерживает с нужным запасом?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"edb0f82bbaac95c209cc6b6fb861eabc8\">\u003Cp class=\"p1\">Каковы p95 и доля ошибок на каждом критичном шаге?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eb49652b55d773f2f18a81e06742e7e54\">\u003Cp class=\"p1\">Сходятся ли заказы, оплаты, остатки и заявки между системами?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee560892f3b0f3cea5720c6c969e4f363\">\u003Cp class=\"p1\">Какой компонент ограничивает рост и какая метрика предупредит об этом первой?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecb46cb43e5d0767d1aed23004bb17c7b\">\u003Cp class=\"p1\">Что команда сделает при превышении прогноза по трафику?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Последний пункт превращается в план запуска. В нём могут быть заранее поднятые ресурсы, очередь входа, отключение второстепенных функций, ограничение тяжёлых фильтров, готовый откат версии и список людей, которые следят за метриками в первые часы.\u003C\u002Fp>\u003Cp class=\"p1\">Критерий простой: сайт готов к рекламе, когда команда знает его безопасный предел, видит приближение к нему и умеет сохранить заказ при перегрузке. Тогда в 20:03 рабочий чат обсуждает продажи. Белый экран остался на тестовом контуре.\u003C\u002Fp>\u003Cp class=\"p1\">Где система начнёт замедляться и что произойдёт при перегрузке, лучше выяснить до запуска кампании. Нагрузочное тестирование позволяет заранее найти узкие места, проверить ключевые сценарии и подготовить сервис к пиковому трафику — в рамках поддержки и развития цифрового продукта.\u003C\u002Fp>",[2816,2817],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2820,"documentId":2821,"title":2822,"date":2823,"description":11,"order":6,"slug":2824,"showOnMainPage":13,"createdAt":2825,"updatedAt":2826,"publishedAt":2827,"locale":17,"cover":2828,"content":2862,"media_event":11,"media_areas":2866,"seo":11,"localizations":2869},400,"dqf6p9puiqfz6u2djss216vw","Баллы списались дважды: где ломается программа лояльности под нагрузкой","2026-09-09","programmnaya-loyalnost-pod-nagruzkoy","2026-09-08T11:39:39.209Z","2026-09-23T12:15:38.943Z","2026-09-23T12:15:39.016Z",{"id":2829,"documentId":2830,"name":2831,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":2832,"hash":2856,"ext":379,"mime":382,"size":2857,"url":2858,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2859,"updatedAt":2860,"publishedAt":2861},718,"biismkqsajejfta003c5fywa","photo_2026-09-09 15.35.40.jpeg",{"large":2833,"small":2839,"medium":2845,"thumbnail":2850},{"ext":379,"url":2834,"hash":2835,"mime":382,"name":2836,"path":11,"size":2837,"width":32,"height":1620,"sizeInBytes":2838},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_09_15_35_40_6c8afcac51.jpeg","large_photo_2026_09_09_15_35_40_6c8afcac51","large_photo_2026-09-09 15.35.40.jpeg",65.71,65707,{"ext":379,"url":2840,"hash":2841,"mime":382,"name":2842,"path":11,"size":2843,"width":40,"height":1626,"sizeInBytes":2844},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_09_15_35_40_6c8afcac51.jpeg","small_photo_2026_09_09_15_35_40_6c8afcac51","small_photo_2026-09-09 15.35.40.jpeg",24.73,24725,{"ext":379,"url":2846,"hash":2847,"mime":382,"name":2848,"path":11,"size":2608,"width":48,"height":1632,"sizeInBytes":2849},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_09_15_35_40_6c8afcac51.jpeg","medium_photo_2026_09_09_15_35_40_6c8afcac51","medium_photo_2026-09-09 15.35.40.jpeg",43805,{"ext":379,"url":2851,"hash":2852,"mime":382,"name":2853,"path":11,"size":2854,"width":1638,"height":1639,"sizeInBytes":2855},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_09_15_35_40_6c8afcac51.jpeg","thumbnail_photo_2026_09_09_15_35_40_6c8afcac51","thumbnail_photo_2026-09-09 15.35.40.jpeg",8.83,8834,"photo_2026_09_09_15_35_40_6c8afcac51",147.45,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_09_15_35_40_6c8afcac51.jpeg","2026-09-09T12:40:52.458Z","2026-09-09T12:48:23.777Z","2026-09-09T12:40:52.459Z",[2863],{"__component":66,"id":2864,"text":2865},363,"\u003Ch2>\u003Cstrong>Разработка программы лояльности: как защитить баллы, статусы и возвраты\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Покупатель применяет бонусы в корзине, повторяет запрос после зависания и видит два списания. Разработка программы лояльности должна исключать такой сценарий при обычной покупке, во время распродажи и после восстановления временно недоступной интеграции.\u003C\u002Fp>\u003Cp class=\"p1\">Проблема затрагивает больше одного экрана. За балансом стоят профиль клиента, правила кампании, корзина, заказ, платёж, возврат, CRM, аналитика и поддержка. Если эти части по-разному понимают состояние операции, покупатель получает неверную скидку, а бизнес — расхождение в стоимости акции и истории заказа.\u003C\u002Fp>\u003Cp class=\"p1\">До запуска стоит проследить одну покупку от условия акции до возврата. Так обнаруживаются разрывы в идентификаторах, состояниях, журнале событий и поведении сервиса под нагрузкой.\u003C\u002Fp>\u003Ch2>\u003Cstrong>72% участников опроса Deloitte связывают программу с будущими покупками\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В Consumer Loyalty Program Survey 2025 компания Deloitte опросила 5564 взрослых участника программ лояльности в США. Данные собирали с сентября по октябрь 2025 года, а вопросы о поведении относились к программе любимого бренда респондента. В этой группе 72% сообщили, что программа повышает вероятность покупок у выбранного бренда, а 56% — что благодаря ей тратят больше.\u003C\u002Fp>\u003Cp class=\"p1\">Эти результаты нельзя напрямую переносить на российский рынок или на все программы. Они показывают ценность механики для активных участников. Ошибка в балансе затрагивает обещание, которое уже влияет на выбор магазина и размер покупки.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому требования к программе включают не только правила начисления и дизайн личного кабинета. Нужны проверяемые операции, стабильная работа интеграций и понятный ответ клиенту при временном сбое.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Баллы проходят через профиль, корзину, оплату и возврат\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_09_15_35_47_eeac47351f.jpeg\" alt=\"photo_2026-09-09 15.35.47.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_09_15_35_47_eeac47351f.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_09_15_35_47_eeac47351f.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_09_15_35_47_eeac47351f.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_09_15_35_47_eeac47351f.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Кнопка «Списать» запускает несколько процессов. Система проверяет пользователя и условия акции, читает доступный остаток, резервирует сумму, передаёт скидку в заказ, ждёт результат оплаты и обновляет историю.\u003C\u002Fp>\u003Cp class=\"p1\">Каждый этап может завершиться отдельно. Корзина уже создала резерв, платёжный сервис ещё обрабатывает запрос, а мобильное приложение показывает значение из кэша. Разные системы видят корректные данные для своей секунды, но покупатель получает противоречивый результат.\u003C\u002Fp>\u003Cp class=\"p1\">До проектирования интерфейса команда описывает события:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ef015321ae64b8ce70d9b12a2b5385446\">\u003Cp class=\"p1\">начисление после подтверждённого условия;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e10fee6dfe4e9103f0a43804fedaf47ed\">\u003Cp class=\"p1\">резерв бонусов на время оформления;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ea011fabf84f721a5d5399eb09bab2af7\">\u003Cp class=\"p1\">окончательное списание;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef7936b7a307c8565fc71343af85b5d26\">\u003Cp class=\"p1\">освобождение резерва;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e6e111b3fa1dd930aa38ec29096ee19ea\">\u003Cp class=\"p1\">истечение срока;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ea4e12ff32b54067aaf6ddd83ab54c05b\">\u003Cp class=\"p1\">компенсация после отмены или возврата.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Для каждого события нужен владелец. Одна система хранит окончательную историю бонусного счёта, остальные передают команды и получают результат. Такая граница защищает данные, когда сайт, приложение, касса и CRM работают одновременно.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Уникальный идентификатор останавливает повторное списание\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Пользователь может нажать кнопку ещё раз после задержки. Приложение или интеграция также повторяют запрос после тайм-аута. Сервер при этом мог выполнить первую операцию, хотя ответ не дошёл до отправителя.\u003C\u002Fp>\u003Cp class=\"p1\">AWS описывает безопасные повторы через идемпотентные API. Клиент передаёт уникальный идентификатор запроса, сервис распознаёт повтор и возвращает результат уже выполненной операции. Запись идентификатора и изменение данных проходят атомарно.\u003C\u002Fp>\u003Cp class=\"p1\">В программе лояльности идентификатор связывает корзину, бонусный сервис, заказ и журнал ошибок. Повтор с теми же параметрами возвращает прежний результат. Повтор с изменившимися параметрами останавливается на проверяемой ошибке.\u003C\u002Fp>\u003Cp class=\"p1\">Тот же механизм защищает начисления. Касса, платёжный сервис или очередь событий могут повторно сообщить об одной покупке. Система узнаёт исходную операцию и не увеличивает баланс второй раз.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Журнал событий объясняет каждую цифру баланса\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_09_15_35_45_e881eb0295.jpeg\" alt=\"photo_2026-09-09 15.35.45.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_09_15_35_45_e881eb0295.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_09_15_35_45_e881eb0295.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_09_15_35_45_e881eb0295.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_09_15_35_45_e881eb0295.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Текущий остаток показывает итог. Для поддержки, разработки и финансов важна цепочка причин: по какому заказу начислены бонусы, какая сумма зарезервирована, что уже потрачено, когда истёк срок и какое действие исправило расхождение.\u003C\u002Fp>\u003Cp class=\"p1\">В Loyalty API компании Square каждое изменение баланса сохраняется как отдельное событие. Журнал включает начисление, использование награды, истечение срока и другие операции. Возврат создаёт новую запись, а прежняя история остаётся неизменной.\u003C\u002Fp>\u003Cp class=\"p1\">Собственная программа может использовать другой стек и модель данных. Принцип сохраняется: итоговый баланс должен восстанавливаться из проверяемых действий. Тогда поддержка объясняет конкретную операцию, разработчики находят место сбоя, а маркетинг сопоставляет начисления с заказами и возвратами.\u003C\u002Fp>\u003Cp class=\"p1\">Исправление также оформляется отдельным событием с автором и основанием. Простое изменение числа стирает причину и усложняет следующую сверку.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Возврат превращает одно правило в несколько переходов\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Заказ может пройти создание, оплату, разделение, частичную отмену и возврат. Бонусы движутся по собственным состояниям: доступны, зарезервированы, списаны, начислены или компенсированы.\u003C\u002Fp>\u003Cp class=\"p1\">Карта переходов связывает два жизненных цикла. Во время оформления система резервирует бонусы. После подтверждающего события по заказу списание становится окончательным. Неуспешная оплата или истечение резерва возвращает сумму в доступный остаток. Возврат запускает компенсирующую операцию по правилам программы.\u003C\u002Fp>\u003Cp class=\"p1\">Бизнес заранее определяет ответы:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e4718ea2c224d904c5bd96a5605f2168e\">\u003Cp class=\"p1\">как пересчитать начисление при частичном возврате;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9183ee58a274c547e6820d790c13fc86\">\u003Cp class=\"p1\">что делать с повышенным коэффициентом акции;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1dc16917dc23edbab3e8560e663c6a85\">\u003Cp class=\"p1\">как обработать бонусы, которые клиент уже потратил;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef7a5e33126c71b91dc44766b2ace07cc\">\u003Cp class=\"p1\">влияет ли срок действия на компенсацию;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee423229c1a85d4b98bfb167a2d124812\">\u003Cp class=\"p1\">какой отдел может выполнить корректировку.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Решения фиксируются в таблице переходов: исходное состояние, событие, новый статус, допустимый повтор и реакция на ошибку. Такая таблица становится общей основой для аналитика, разработчика, тестировщика и поддержки.\u003C\u002Fp>\u003Ch2>\u003Cstrong>На пике акции бизнес заранее выбирает, как оформить заказ\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Рассылка, старт распродажи или последний день бонусов создают резкий пик запросов. Пользователи одновременно проверяют баланс, активируют предложения и применяют скидку. Сервису приходится читать правила, создавать резервы и синхронизировать результат с заказом.\u003C\u002Fp>\u003Cp class=\"p1\">Временная недоступность бонусного контура требует заранее выбранного сценария:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"edc273a9f88a4b4a0e567aa171edb85ca\">\u003Cp class=\"p1\">остановить оформление до восстановления;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4a390bf134dec2f83d84dec6af7cdedf\">\u003Cp class=\"p1\">завершить заказ без бонусов и показать порядок компенсации;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8acdc388fdc56b21e2639b3f0e78fdf5\">\u003Cp class=\"p1\">принять операцию в очередь и показывать промежуточный статус.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Первый вариант сохраняет строгую согласованность ценой остановки заказов. Второй поддерживает продажи, но создаёт обязательство перед покупателем. Третий сглаживает пик и требует контроля очереди, срока обработки и устаревших команд.\u003C\u002Fp>\u003Cp class=\"p1\">Интерфейс должен честно отражать выбранный режим. Старый баланс без предупреждения создаёт обещание, которое система уже не может подтвердить.\u003C\u002Fp>\u003Cp class=\"p1\">Для мониторинга полезны доля ошибок начисления и списания, задержка между статусом заказа и бонусной операцией, количество повторов, возраст сообщений в очереди и расхождения после сверки. Эти показатели проверяют критичный путь точнее, чем средняя доступность всего приложения.\u003C\u002Fp>\u003Ch2>\u003Cstrong>4fresh и Стадикэтс: внутренняя валюта проходит через весь продукт\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">В кейсе\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002F4fresh\"> 4fresh\u003C\u002Fa> команда Qtim переносила интернет-магазин с 1С-Битрикс на собственное решение и развивала систему лояльности: внутреннюю валюту, программы приглашений и премиум-клуб. Вместе с платформой переносились профили пользователей и история заказов.\u003C\u002Fp>\u003Cp class=\"p1\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fstudycats\">Стадикэтс \u003C\u002Fa>шесть образовательных курсов объединили в одну платформу с общей реферальной программой. Механика связывает код друга, покупку, начисление котокоинов и обмен на скидки или промокоды. Внутренняя валюта действует для любого курса.\u003C\u002Fp>\u003Cp class=\"p1\">Кейсы показывают две формы программы: e-commerce-контур с несколькими предложениями лояльности и единая реферальная механика внутри продуктовой платформы. В обоих случаях правила затрагивают идентификацию пользователя, покупку, применение выгоды и историю.\u003C\u002Fp>\u003Cp class=\"p1\">Публичные материалы подтверждают состав функций и последовательность продуктовой механики. Они не раскрывают детали транзакционной реализации, поэтому конкретные архитектурные решения оцениваются для каждого проекта отдельно.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Шесть вопросов определяют состав разработки\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_09_15_35_43_521d172967.jpeg\" alt=\"photo_2026-09-09 15.35.43.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_09_15_35_43_521d172967.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_09_15_35_43_521d172967.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_09_15_35_43_521d172967.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_09_15_35_43_521d172967.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cul>\u003Cli data-list-item-id=\"e1c5b298472a03e7a9e8946e8a14ce019\">\u003Cp class=\"p1\">Перед оценкой проекта пройдите один заказ от условия акции до возврата и ответьте на шесть вопросов.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e3de142a904127a45c04f4d80eda39698\">\u003Cp class=\"p1\">Какое событие создаёт начисление, резерв, списание, отмену и компенсацию?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e71072d37861a7da4a9dc1ee728cde4d3\">\u003Cp class=\"p1\">Какая система хранит окончательную историю операций?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4ddfd1bea3781cbfa355526fb8658962\">\u003Cp class=\"p1\">Как связанные сервисы распознают повтор одного запроса?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e398383326c46a38524c7ee75a92db33a\">\u003Cp class=\"p1\">Какие промежуточные статусы видят клиент, поддержка и аналитика?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"efaa8646a8458f61fb5223adba92f16f1\">\u003Cp class=\"p1\">Как полная и частичная отмена меняют начисленные и потраченные бонусы?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8e9d4ca4b700b31d2365df1717d02f11\">\u003Cp class=\"p1\">Что происходит с заказом при временной недоступности бонусного сервиса?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Ответы определяют модель данных, API-контракты, очереди, мониторинг и набор тестов. В проверку входят одновременные списания из разных каналов, повтор после тайм-аута, частичный возврат, истечение резерва, повторная доставка события и восстановление очереди.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Если баллы меняют чек, им нужен денежный контур\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Если баллы меняют сумму заказа или создают обязательство перед клиентом, их проводят с дисциплиной платёжной операции: присваивают идентификатор, меняют по карте состояний, записывают в журнал и сверяют с заказом.\u003C\u002Fp>\u003Cp class=\"p1\">Команда Qtim проектирует e-commerce-платформы с личными кабинетами, оплатой, CRM, аналитикой и интеграциями. Обсудить программу лояльности и получить план разработки можно на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">странице услуги\u003C\u002Fa>.\u003C\u002Fp>",[2867,2868],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2871,"documentId":2872,"title":2873,"date":2874,"description":11,"order":6,"slug":2875,"showOnMainPage":13,"createdAt":2876,"updatedAt":2877,"publishedAt":2878,"locale":17,"cover":2879,"content":2907,"media_event":11,"media_areas":2911,"seo":11,"localizations":2914},411,"zttjv8sbmge05zro1ok576xe","Что IT-аудит находит в проекте перед релизом","2026-09-11","it-audit-pered-relizom","2026-09-08T11:52:07.373Z","2026-09-23T19:53:41.550Z","2026-09-23T19:53:41.617Z",{"id":2880,"documentId":2881,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":2882,"hash":2903,"ext":26,"mime":29,"size":2904,"url":2905,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2906,"updatedAt":2906,"publishedAt":2906},891,"ult6u5v680gskyo21onki5bg",{"large":2883,"small":2888,"medium":2893,"thumbnail":2898},{"ext":26,"url":2884,"hash":2885,"mime":29,"name":1375,"path":11,"size":2886,"width":32,"height":1620,"sizeInBytes":2887},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_e88581bd03.png","large_01_cover_e88581bd03",561.78,561780,{"ext":26,"url":2889,"hash":2890,"mime":29,"name":1381,"path":11,"size":2891,"width":40,"height":1626,"sizeInBytes":2892},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_e88581bd03.png","small_01_cover_e88581bd03",157.26,157263,{"ext":26,"url":2894,"hash":2895,"mime":29,"name":1387,"path":11,"size":2896,"width":48,"height":1632,"sizeInBytes":2897},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_e88581bd03.png","medium_01_cover_e88581bd03",335.2,335199,{"ext":26,"url":2899,"hash":2900,"mime":29,"name":1393,"path":11,"size":2901,"width":1638,"height":1639,"sizeInBytes":2902},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_e88581bd03.png","thumbnail_01_cover_e88581bd03",45.83,45826,"01_cover_e88581bd03",516.24,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_e88581bd03.png","2026-09-23T19:52:22.625Z",[2908],{"__component":66,"id":2909,"text":2910},374,"\u003Cp class=\"p1\">За день до релиза руководитель открывает доску задач. Всё важное закрыто, тестовый стенд работает, команда пишет «готово». Потом звучит один неудобный вопрос: если новая функция заденет оплату, личный кабинет или обмен данными с CRM, как быстро мы это увидим и откатим?\u003C\u002Fp>\u003Cp class=\"p1\">Зелёные статусы отвечают, что задачи выполнены. Для решения о запуске нужна другая картина: какие части продукта связаны, где ошибка разойдётся по всей системе и что команда сможет сделать во время сбоя.\u003C\u002Fp>\u003Cp class=\"p1\">IT-аудит помогает получить эту картину до того, как проблемы проявятся на релизе. Он показывает состояние кода, архитектуры, инфраструктуры и процессов разработки, а главное — помогает связать технические риски с решениями по продукту. Ниже — о том, что проверять в рамках аудита и как превратить его результаты в план действий перед следующим релизом.\u003Cbr>&nbsp;\u003C\u002Fp>\u003Ch2>\u003Cstrong>Код выдаёт цену следующего изменения\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-one-rule-three-places.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_one_rule_three_places_fcc5dbbce3.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_one_rule_three_places_fcc5dbbce3.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_one_rule_three_places_fcc5dbbce3.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_one_rule_three_places_fcc5dbbce3.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_one_rule_three_places_fcc5dbbce3.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">При аудите код читают как карту будущих работ. Важно понять, где лежит бизнес-логика, сколько модулей затронет новая функция, какие участки можно проверить автоматически и где результат зависит от осторожности конкретного разработчика.\u003C\u002Fp>\u003Cp class=\"p1\">Сам по себе длинный метод ещё не останавливает релиз. Гораздо опаснее правило, которое повторяется в трёх местах. Например, условия расчёта скидки могут жить в личном кабинете, фоновом задании и интеграции с CRM. Команда обновит два участка, а третий продолжит считать по старой схеме. Код выполнится без ошибок, зато финансовый отчёт получит собственную версию событий.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому мы смотрим на связанность модулей, дублирование логики, обработку ошибок, тесты критических сценариев и историю изменений. Если один файл регулярно участвует в исправлениях разных функций, перед нами горячая точка: любое новое требование увеличивает вероятность побочного эффекта.\u003C\u002Fp>\u003Cp class=\"p1\">Ещё один сигнал — код, который все боятся трогать. Обычно рядом есть комментарий «временно» и человек, который помнит, почему это временное решение пережило несколько кварталов. IT-аудит переводит такую коллективную осторожность в конкретные вопросы:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eed43d5e246dc7d3bc39f97ba9c91655f\">\u003Cp class=\"p1\">какой бизнес-процесс зависит от участка;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ea76a477c776a85f7df07cf8cfdcc2085\">\u003Cp class=\"p1\">какие входные данные и исключения он обрабатывает;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4e0a1da0216ae628c6f539f3de4e5819\">\u003Cp class=\"p1\">чем проверить результат после правки;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec104883a1a986c07a3ed2593e2e8b341\">\u003Cp class=\"p1\">кто понимает логику и отвечает за неё.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">По этим ответам видно, во что обойдётся правка каждого проблемного участка. Где-то достаточно добавить тесты и продолжать разработку. Где-то функцию разумнее сократить. А иногда безопасный релиз начинается с небольшого рефакторинга: команда сначала разделяет ответственность внутри модуля, затем добавляет новый сценарий.\u003C\u002Fp>\u003Ch2>\u003Cbr>\u003Cstrong>Одна правка, пять модулей: архитектура раздувает радиус сбоя\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Архитектурный аудит показывает, насколько далеко распространяется ошибка. Для этого команда восстанавливает границы компонентов, связи между ними и путь данных от действия пользователя до результата в бизнес-системе.\u003C\u002Fp>\u003Cp class=\"p1\">Представим оформление заказа. Интерфейс отправляет запрос, сервер проверяет остатки, платёжный сервис подтверждает операцию, CRM создаёт сделку, склад получает задачу. На схеме всё выглядит линейно. В работе каждый участник цепочки может ответить медленно, повторить сообщение или временно стать недоступным. Архитектура определяет, останется ли проблема внутри одного шага или превратится в заказ без оплаты, двойное списание либо сделку без товара.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-order-failure-radius.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_order_failure_radius_149e90b6e7.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_order_failure_radius_149e90b6e7.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_order_failure_radius_149e90b6e7.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_order_failure_radius_149e90b6e7.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_order_failure_radius_149e90b6e7.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Во время аудита мы проверяем границы модулей, общие базы данных, синхронные цепочки, очереди, ограничения по времени ответа и повторные запросы. Отдельно смотрим на точки, через которые проходит слишком много сценариев. Один общий сервис авторизации — нормальная часть системы. Единственный сервер без резервного маршрута для входа всех пользователей — уже риск непрерывности бизнеса.\u003C\u002Fp>\u003Cp class=\"p1\">Название архитектурного подхода само по себе мало говорит о надёжности. Хорошо разделённое приложение с единым развёртыванием — модульный монолит — бывает предсказуемее набора микросервисов, которые делят одну базу и созваниваются по любой мелочи. Каждый новый сервис добавляет сетевое взаимодействие, отдельный выпуск, мониторинг и сценарии частичного отказа. Если границы проведены только на диаграмме, распределённая система просто переносит связанность из кода в сеть.\u003C\u002Fp>\u003Cp class=\"p1\">После разбора у команды остаются карта зависимостей и радиус возможного сбоя. По ним видно, где усилить изоляцию, какую операцию вынести в фон, где добавить резервирование и какие части лучше оставить вместе. Большая перестройка нужна редко. Чаще релиз спасает точечное изменение на самом нагруженном перекрёстке.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Интеграция говорит «успешно», а бизнес уже считает дважды\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Внешний API — программный интерфейс партнёрской системы — может вернуть успешный ответ, хотя бизнес-процесс завершился наполовину. Оплата прошла, а доступ не открылся. CRM приняла сделку, но уведомление менеджеру потерялось. Склад зарезервировал товар, пока сайт показал пользователю ошибку и предложил повторить заказ.\u003C\u002Fp>\u003Cp class=\"p1\">Такие ситуации появляются на границах систем. Технически каждый компонент сделал свою часть, а цельный сценарий рассыпался. Пользователю всё равно, какой сервис был прав: он видит списание без результата и идёт в поддержку.\u003C\u002Fp>\u003Cp class=\"p1\">IT-аудит восстанавливает цепочку статусов и определяет источник истины — систему, чьё состояние считается главным для конкретных данных.\u003C\u002Fp>\u003Cp class=\"p1\">Затем проверяются четыре неудобных сценария:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eeffca7c227ca0aff0d9969b76a1f4d39\">\u003Cp class=\"p1\">задержка ответа;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e534fc102afb32b9f4885ae7ff8a1e2ca\">\u003Cp class=\"p1\">повторная доставка;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ecab4f0b6f5edbb67beeea0c4ed48745d\">\u003Cp class=\"p1\">нарушение порядка событий;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5fa8dddcaec9cbf8aee7a4b68d3df013\">\u003Cp class=\"p1\">частичный успех.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Здесь особенно важна идемпотентность — свойство операции давать тот же результат при повторном выполнении. Повтор не должен создавать вторую оплату или ещё одну заявку.\u003C\u002Fp>\u003Cp class=\"p1\">Для очередей смотрят, что происходит с сообщением после ошибки, как растёт число необработанных задач и кто узнаёт, что обработка остановилась. Для внешних API проверяют ограничения, версии и поведение при недоступности партнёра.\u003C\u002Fp>\u003Cp class=\"p1\">У интеграций есть неприятная привычка работать идеально на тестовом стенде, где соседние сервисы отвечают быстро и по одному разу. Аудит добавляет в эту идиллию реальную жизнь: обрывы связи, повторы, задержки и данные, которые пришли не в том порядке.\u003C\u002Fp>\u003Cp class=\"p1\">После такой проверки становится понятно, какие сбои блокируют запуск, а какие можно пережить с повторной обработкой и понятным статусом для пользователя.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Резервная копия проходит проверку восстановлением\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Файл с названием «резервная копия» ещё не гарантирует возврат системы в работу. Он может оказаться неполным, зашифрованным потерянным ключом или слишком старым для нового формата базы. Поэтому аудит инфраструктуры проверяет путь до восстановления целиком: что сохраняется, как часто, кто имеет доступ и сколько времени займёт запуск после сбоя.\u003C\u002Fp>\u003Cp class=\"p1\">Здесь же разбирают окружения, развёртывание, права, секреты и наблюдаемость. Наблюдаемость — логи, метрики и трассировка запросов, по которым команда понимает состояние продукта. Если мониторинг сообщает только «сервер отвечает», он легко пропустит более полезные новости: очередь не движется, платежи падают, письма не уходят, а пользователи получают пустой экран.\u003C\u002Fp>\u003Cp class=\"p1\">Доступ к данным проверяют отдельно. Где хранятся токены и пароли? Кто может зайти в рабочее окружение? Как выдаются права и остаётся ли история действий? Общая учётная запись на всю команду ускоряет вход ровно до момента, когда нужно выяснить, кто изменил настройку. Потом экономия времени внезапно меняет знак.\u003C\u002Fp>\u003Cp class=\"p1\">Для релиза важны две величины: допустимая потеря данных (RPO) и допустимое время восстановления (RTO). Эти параметры влияют на частоту резервного копирования, схему развёртывания и план отката сильнее, чем абстрактное требование «сделать надёжно».\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-verified-recovery.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_verified_recovery_c98ea5ad32.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_verified_recovery_c98ea5ad32.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_verified_recovery_c98ea5ad32.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_verified_recovery_c98ea5ad32.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_verified_recovery_c98ea5ad32.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">После проверки инфраструктуры команда должна знать:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e81ef38045ea9040430976770289f4e24\">\u003Cp class=\"p1\">какие метрики покажут проблему раньше обращений пользователей;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef4790ee5ec4a8d9b849fe03a3ff9b32c\">\u003Cp class=\"p1\">кто получает сигнал и принимает решение;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e685ea6aba1472d754df4b783fe8f140f\">\u003Cp class=\"p1\">как остановить распространение ошибки;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1d739dc9be09255d6f9da34e1b4e9e30\">\u003Cp class=\"p1\">как вернуть предыдущую версию;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee73829f34df516f4ba191792756a58df\">\u003Cp class=\"p1\">как восстановить данные и проверить их целостность.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">Если ответ существует только в памяти инженера, план аварийного восстановления пока зависит от его режима «не беспокоить».\u003C\u002Fp>\u003Cp class=\"p1\">Незаменимый разработчик становится зависимостью проекта\u003C\u002Fp>\u003Cp class=\"p1\">Код и инфраструктура работают внутри команды, поэтому IT-аудит затрагивает процесс разработки. Здесь выясняется, кто владеет критическими модулями, как проходят ревью, где описан выпуск и сможет ли другой специалист повторить действия автора решения.\u003C\u002Fp>\u003Cp class=\"p1\">Тревожный признак — релиз, который умеет проводить один человек. Он знает порядок команд, помнит особую настройку сервера и по звуку ошибки понимает, какой контейнер перезапустить. Так выглядит фактор незаменимости (bus factor): критическое знание сосредоточено у одного специалиста. Для проекта это такая же точка отказа, как единственный сервер. Отличие лишь в том, что человеку ещё нужен отпуск.\u003C\u002Fp>\u003Cp class=\"p1\">Аудит смотрит на документацию, правила работы с кодом, проверку изменений коллегами, тестовые окружения и ответственность за модули. Полезная документация при этом описывает рабочие действия: как развернуть проект, где искать метрики, как откатить версию, что проверить после изменения структуры базы. Каталог терминов на сорок страниц может выглядеть солидно, но во время сбоя команда всё равно откроет инструкцию из пяти пунктов.\u003C\u002Fp>\u003Cp class=\"p1\">Процесс выпуска тоже должен оставлять проверяемый след. Какая версия ушла в рабочее окружение? Какие обновления базы выполнились? Кто подтвердил критические сценарии? Как включить функцию только для части аудитории? Без этих ответов каждый запуск становится отдельным ремеслом, а его качество зависит от состава смены.\u003C\u002Fp>\u003Cp class=\"p1\">У каждого критического участка должны появиться владелец, резервный специалист и понятная процедура. Такая карта ответственности снижает зависимость от отдельных людей и помогает оценивать сроки честнее. Если новую функцию понимает один разработчик, в её оценку уже входит время на передачу знаний.\u003C\u002Fp>\u003Ch2>\u003Cstrong>Хороший отчёт заканчивается очередностью\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Список из нескольких десятков замечаний легко превращает аудит в каталог тревог. Бизнесу нужен порядок: что мешает ближайшему запуску, что можно контролировать во время работы и какие улучшения войдут в техническую дорожную карту.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"05-three-audit-decisions.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F05_three_audit_decisions_721a7bc518.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_05_three_audit_decisions_721a7bc518.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_05_three_audit_decisions_721a7bc518.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_05_three_audit_decisions_721a7bc518.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_05_three_audit_decisions_721a7bc518.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp class=\"p1\">Мы раскладываем выводы по влиянию на бизнес-сценарий и вероятности проблемы. Для решения перед релизом используем три группы — в порядке срочности реакции.\u003C\u002Fp>\u003Col>\u003Cli data-list-item-id=\"edfb9d9af3945fcdaa8c0a5f2646ca866\">\u003Cp class=\"p1\">Исправить до запуска. Сюда попадают риски потери или раскрытия данных, некорректных платежей, необратимой миграции, массовой недоступности и отсутствия рабочего отката. У такого замечания должен быть владелец, срок и способ повторной проверки.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5ad33e02928ab7b5de89e80b646809b5\">\u003Cp class=\"p1\">Выпускать с контролем. Проблема ограничена, а команда умеет быстро её заметить и остановить. Помогают поэтапное включение, заранее подготовленный переключатель функции (feature flag), усиленный мониторинг, лимит нагрузки и сценарий отката.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ece198b47bf2687948755523b26e131f6\">\u003Cp class=\"p1\">Поставить в дорожную карту. Технический долг повышает стоимость будущих изменений, но не угрожает текущему запуску. Для него фиксируют последствия, приоритет и момент, когда откладывать станет дороже исправления.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Fol>\u003Cp class=\"p1\">Такая классификация удерживает два крайних решения. Критический дефект сдвигает запуск, а устаревший модуль без прямого влияния на него остаётся в дорожной карте. У замечаний появляется контекст, а у руководителя — основание принять риск осознанно.\u003C\u002Fp>\u003Cp class=\"p1\">У нас этот путь начинается с \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fconsulting\">погружения в бизнес-задачу и разбора архитектуры со стеком\u003C\u002Fa>. Затем слабые места превращаются в приоритизированный список рисков и дорожную карту с оценкой. Выводы привязываются к порядку работ, срокам и составу релиза, иначе отчёт быстро переезжает в папку «прочитать позже».\u003C\u002Fp>\u003Ch2>\u003Cstrong>Перед следующим релизом нужны семь ответов\u003C\u002Fstrong>\u003C\u002Fh2>\u003Cp class=\"p1\">Категорию для каждого замечания выбирают по конкретному сценарию: что сломается, как команда это заметит и сможет ли восстановить систему. Поэтому рядом с зелёными статусами на доске нужны ответы:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e64105018489fbf9603cc3da99601df38\">\u003Cp class=\"p1\">Какие пользовательские и денежные сценарии затрагивает изменение?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eb18b87342b1202657f0f11972be064ba\">\u003Cp class=\"p1\">Где хранится главная версия данных для каждого из них?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e44224bce81022252b95b34084e2fef12\">\u003Cp class=\"p1\">Что произойдёт при задержке, повторе или частичном сбое?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eeb76cbabce567c0ebe250b586201250c\">\u003Cp class=\"p1\">По какой метрике команда первой увидит проблему?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e4904bcb7df74a2437877d1cfed2e4bc3\">\u003Cp class=\"p1\">Кто принимает решение об остановке или продолжении запуска?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0e78689a5200f89c1c3e8e76e65f74a8\">\u003Cp class=\"p1\">Как вернуть предыдущую версию и восстановить данные?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ebcfb03c285a46bf8c223ac693f2a8a13\">\u003Cp class=\"p1\">Какие риски команда принимает сейчас и когда вернётся к ним?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"p1\">IT-аудит соединяет выводы о коде, архитектуре, инфраструктуре и процессе разработки. После него готовность к запуску можно обсуждать предметно: критические проблемы закрыты, контролируемые получили наблюдение и план отката, остальные заняли своё место в дорожной карте.\u003C\u002Fp>\u003Cp class=\"p1\">Если перед запуском эту картину приходится собирать по чатам, памяти команды и диаграмме неизвестной свежести, можно принести проект на \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fconsulting\">IT-консалтинг и аудит разработки\u003C\u002Fa>. Мы разберём текущую систему и поможем определить состав следующего релиза — до того, как самый подробный отчёт о проблеме напишут пользователи.\u003C\u002Fp>",[2912,2913],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":1626,"documentId":2916,"title":2917,"date":2874,"description":11,"order":40,"slug":2918,"showOnMainPage":13,"createdAt":2919,"updatedAt":2919,"publishedAt":2920,"locale":17,"cover":2921,"content":2956,"media_event":11,"media_areas":2960,"seo":11,"localizations":2963},"ggdl1zmuuohkn3ubgxqu5wdz","Этапы разработки сайта: 7 контрольных точек от идеи до запуска","etapy-razrabotki-sayta-ot-idei-do-zapuska","2026-09-11T14:21:51.168Z","2026-09-11T14:21:51.261Z",{"id":2922,"documentId":2923,"name":2924,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":2926,"hash":2951,"ext":26,"mime":29,"size":2952,"url":2953,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2954,"updatedAt":2954,"publishedAt":2955},729,"l068mj742a03d0sck2tkbr0r","Изображение Codex 11 сент. 2026 г., 16_54_52.png",1672,{"large":2927,"small":2933,"medium":2939,"thumbnail":2945},{"ext":26,"url":2928,"hash":2929,"mime":29,"name":2930,"path":11,"size":2931,"width":32,"height":1620,"sizeInBytes":2932},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e.png","large_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e","large_Изображение Codex 11 сент. 2026 г., 16_54_52.png",547.17,547174,{"ext":26,"url":2934,"hash":2935,"mime":29,"name":2936,"path":11,"size":2937,"width":40,"height":1626,"sizeInBytes":2938},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e.png","small_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e","small_Изображение Codex 11 сент. 2026 г., 16_54_52.png",145.2,145200,{"ext":26,"url":2940,"hash":2941,"mime":29,"name":2942,"path":11,"size":2943,"width":48,"height":1632,"sizeInBytes":2944},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e.png","medium_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e","medium_Изображение Codex 11 сент. 2026 г., 16_54_52.png",316.17,316171,{"ext":26,"url":2946,"hash":2947,"mime":29,"name":2948,"path":11,"size":2949,"width":1638,"height":1639,"sizeInBytes":2950},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e.png","thumbnail_Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e","thumbnail_Изображение Codex 11 сент. 2026 г., 16_54_52.png",39.19,39189,"Izobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e",467.8,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_11_sent_2026_g_16_54_52_ca0cfe709e.png","2026-09-11T13:56:10.406Z","2026-09-11T13:56:10.407Z",[2957],{"__component":66,"id":2958,"text":2959},243,"\u003Cp>Дата запуска уже стоит в календаре. Дизайн почти согласован, руководитель ждёт новую версию сайта к конференции, а на рабочем созвоне выясняется: тексты ещё собирают, формы не связаны с CRM, старые адреса страниц никто не зафиксировал.\u003Cbr>\u003Cbr>Проект теряет время в стыках между решениями, даже когда код не вызывает сложностей. Сайт проходит через аналитику, структуру, контент, дизайн, разработку, тестирование и релиз. Пропуск одного звена возвращает команду на несколько шагов назад.\u003Cbr>Разберём этапы разработки сайта по порядку, результат каждого шага и условия перехода дальше. Эта схема подходит для корпоративных сайтов, сервисных страниц и других веб-проектов. Масштаб работ меняется, логика процесса сохраняется.\u003C\u002Fp>\u003Ch2>1. Цель сайта задаёт границы проекта до первой оценки\u003C\u002Fh2>\u003Cp>Фраза «нужен современный сайт» не помогает выбрать ни структуру, ни технологию. Сначала команда формулирует бизнес-задачу: получать квалифицированные заявки, объяснять сложный продукт, поддерживать продажи, нанимать специалистов, выводить компанию на новый рынок или разгружать сотрудников от повторяющихся операций.\u003Cbr>\u003Cbr>Одна главная цель задаёт приоритеты. Для лидогенерации важны сценарии заявки и связь с CRM. Для корпоративного ресурса с большим объёмом контента — управление страницами, поиск, роли редакторов и SEO. Для кабинета клиента на первый план выходят авторизация, права доступа, данные и интеграции.\u003Cbr>\u003Cbr>На этом этапе фиксируют аудитории, ключевые действия, ограничения, владельца продукта и критерии успеха. Результат помещается в короткий паспорт проекта: зачем создаём сайт, для кого, какое действие считаем целевым, что входит в первую версию и кто принимает решения.\u003C\u002Fp>\u003Ch2>2. Discovery превращает идею в карту страниц и систем\u003C\u002Fh2>\u003Cp>Discovery — короткий этап исследования перед проектированием. Команда проводит интервью со стейкхолдерами, изучает текущую аналитику и обращения клиентов, разбирает контент, сравнивает конкурентов и описывает путь пользователя. Здесь же появляется список внешних систем: CRM, ERP, ATS, платёжные сервисы, склад, рассылки, аналитика.\u003Cbr>\u003Cbr>Простой лендинг не требует многонедельного исследования. Его discovery может уместиться в одну рабочую сессию и проверку материалов. Отказываться от этапа целиком рискованно: тогда вопросы об аудитории, содержании и заявках всё равно возникнут, только уже на макетах или в коде.\u003Cbr>\u003Cbr>На странице разработки корпоративных сайтов мы показываем \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcorporate\">базовый маршрут на восемь недель\u003C\u002Fa>: две недели на discovery, две–три на дизайн и контент, две–три на разработку и интеграции, ещё одну на запуск и SEO-перенос. Это ориентир для понятного корпоративного контура. Портал, интернет-магазин или сервис с личными кабинетами потребует другого календаря.\u003Cbr>\u003Cbr>Выход discovery — согласованные требования, карта страниц, перечень интеграций, границы первой версии и оценка. После этого смета опирается на состав работ вместо предварительного числа экранов.\u003C\u002Fp>\u003Ch2>3. Прототип находит дорогие ошибки до дизайна\u003C\u002Fh2>\u003Cp>Черновой каркас показывает логику страниц без финальной графики. На нём видно, где пользователь узнаёт главное, как переходит к услуге, что заполняет в форме и какой ответ получает после отправки. Для сложного продукта отдельно прорисовывают роли, состояния, ошибки и переходы между системами.\u003Cbr>\u003Cbr>Параллельно собирают контент. Это важная часть проектирования: реальный заголовок может занять две строки, таблица тарифов потребует больше места, а кейс без подтверждённых цифр нельзя строить вокруг результата. Макеты с условным текстом скрывают такие конфликты до самой дорогой стадии.\u003Cbr>\u003Cbr>Результат этапа — кликабельный прототип ключевых сценариев и контентная карта. Их проверяют владелец продукта, маркетинг, продажи и сотрудники, которые будут обновлять сайт. В разработку передают уже согласованный маршрут пользователя.\u003C\u002Fp>\u003Ch2>4. Дизайн-система удерживает десятки страниц в одном ритме\u003C\u002Fh2>\u003Cp>После проверки структуры задают визуальное направление, собирают компоненты и состояния: кнопки, формы, карточки, таблицы, меню, уведомления, ошибки, мобильные версии. Из этих элементов складывается дизайн-система, которую можно развивать вместе с сайтом.\u003Cbr>\u003Cbr>На макетах проверяют контраст, размер текста, управление с клавиатуры, фокус элементов и понятность ошибок. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FTR\u002FWCAG22\u002F\">W3C\u003C\u002Fa> рекомендует использовать WCAG 2.2 как актуальную цель для веб-доступности. Эти требования дешевле заложить в компоненты, чем исправлять отдельно на каждой странице перед релизом.\u003Cbr>\u003Cbr>Готовый дизайн охватывает комплект состояний каждого компонента. Одного привлекательного главного экрана недостаточно. У формы есть успешная отправка, ошибка и загрузка. У меню — мобильная версия. У карточки — длинный заголовок и отсутствие изображения. Такой макет даёт разработчикам правила вместо коллекции идеальных картинок.\u003C\u002Fp>\u003Ch2>5. Разработка начинается с архитектуры, CMS и среды проверки\u003C\u002Fh2>\u003Cp>До вёрстки команда выбирает архитектуру и способ управления контентом. Небольшому сайту может хватить конструктора или готовой CMS. Корпоративному ресурсу с мультиязычностью, интеграциями и частыми кампаниями часто нужна отдельная система управления контентом и компонентный интерфейс. Решение зависит от задач, нагрузки, команды поддержки и планов развития.\u003Cbr>\u003Cbr>Дальше frontend превращает компоненты в работающий интерфейс, backend обрабатывает данные и интеграции, CMS даёт редакторам контроль над страницами. Разработка идёт в отдельной тестовой среде. Там маркетинг наполняет разделы, а заказчик проверяет сценарии без риска изменить действующий сайт.\u003Cbr>\u003Cbr>На этом же этапе подключают аналитику. Список событий составляют заранее: отправка формы, скачивание материала, переход к контакту, поиск, ошибка оплаты или другой целевой шаг. После релиза команда должна видеть весь путь пользователя; общего числа посещений для этого мало.\u003C\u002Fp>\u003Ch2>6. Проверка сайта выходит за пределы кнопки «Отправить»\u003C\u002Fh2>\u003Cp>Функциональное тестирование отвечает на базовый вопрос: сценарий работает во всех заявленных состояниях? Затем добавляются проверки на разных браузерах и экранах, редактура контента, SEO-аудит, доступность, производительность и безопасность.\u003Cbr>\u003Cbr>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Ffundamentals\u002Fget-started-developers\">Google\u003C\u002Fa> советует ещё при разработке делать сайт безопасным, быстрым, доступным и удобным на разных устройствах. Для поисковой видимости также важны семантический HTML, уникальные заголовки и описания страниц, доступный в DOM текст. Эти пункты входят в требования и критерии приёмки вместо памятки на день релиза.\u003Cbr>\u003Cbr>Производительность проверяют на ключевых шаблонах и реальных устройствах. По данным \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Falmanac.httparchive.org\u002Fen\u002F2025\u002Fperformance\">Web Almanac\u003C\u002Fa> за 2025 год, хорошие Core Web Vitals были у 48% мобильных и 56% десктопных сайтов в исследуемой выборке. Даже зрелый рынок регулярно не проходит базовую проверку скорости, отзывчивости и визуальной стабильности.\u003Cbr>\u003Cbr>Для сайта с авторизацией, формами, кабинетами или платежами нужен отдельный контур безопасности. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fowasp.org\u002FTop10\u002F2025\u002F0x00_2025-Introduction\u002F\">OWASP Top 10:2025\u003C\u002Fa> помогает расставить приоритеты: контроль доступа, конфигурация, зависимости, защита данных, обработка ошибок и журналирование. Этот список не заменяет модель угроз, но не даёт свести проверку к сертификату HTTPS.\u003C\u002Fp>\u003Ch2>7. Релиз связывает домен, редиректы, аналитику и план отката\u003C\u002Fh2>\u003Cp>Перед запуском команда составляет сценарий релиза. В нём есть домен и сертификат, резервная копия, перенос контента, настройки аналитики, формы и уведомления, карта 301-редиректов, sitemap, robots.txt, доступы, мониторинг и ответственные. Для критичных систем добавляют план отката: что возвращаем, кто принимает решение и сколько времени допустим простой.\u003Cbr>\u003Cbr>После публикации проверяют сайт уже в боевой среде: открываются ли страницы без авторизации, доходят ли заявки, сохраняются ли рекламные параметры, видит ли поисковый робот контент, нет ли ошибок в логах. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Ffundamentals\u002Fget-on-google\">Google рекомендует\u003C\u002Fa> отправить sitemap и следить за индексацией через Search Console.\u003Cbr>\u003Cbr>Релиз закрывает проектную фазу. Дальше начинается развитие сайта. Первые недели показывают реальные поисковые запросы, устройства, скорость, ошибки и поведение посетителей. Команда собирает эти сигналы в план развития и отделяет срочные дефекты от новых гипотез.\u003C\u002Fp>\u003Ch2>\u003Cbr>Контрольная карта: что должно быть готово на каждом этапе\u003C\u002Fh2>\u003Col>\u003Cli data-list-item-id=\"ed51edf7af72fcf1225e5437576c1a3b3\">Цель и рамки: паспорт проекта, аудитории, целевое действие, границы первой версии и владелец решения.\u003C\u002Fli>\u003Cli data-list-item-id=\"e52337544b359295ff45f989e61c4ff6f\">Discovery: требования, карта страниц, интеграции, риски, оценка и календарный план.\u003C\u002Fli>\u003Cli data-list-item-id=\"ea8813c8d71bf242ad4f95d7768c90ebd\">Прототип и контент: проверенные сценарии, структура ключевых страниц и список материалов.\u003C\u002Fli>\u003Cli data-list-item-id=\"e837627758ec072596926fc899fc3318d\">Дизайн: компоненты, адаптивные макеты, состояния интерфейса и правила доступности.\u003C\u002Fli>\u003Cli data-list-item-id=\"e86e6792e5be6cd8b072f1ed2aa0cd767\">Разработка: работающий сайт в тестовой среде, CMS, интеграции и события аналитики.\u003C\u002Fli>\u003Cli data-list-item-id=\"e947f2f47c918dee2debaba52d08c4b9a\">Тестирование: закрытые критичные дефекты и подтверждённые критерии приёмки.\u003C\u002Fli>\u003Cli data-list-item-id=\"e7ab4da0de31cb7940a8de302e6a45f2f\">Запуск: домен, редиректы, аналитика, мониторинг, резервная копия, план отката и список задач после релиза.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Эта карта помогает заметить разрыв заранее. Дизайн не уходит в разработку без реального контента и состояний. Релиз не назначают до проверки редиректов и аналитики. Новый этап начинается после приёмки результата предыдущего.\u003C\u002Fp>\u003Ch2>Семь этапов держатся на одном правиле\u003C\u002Fh2>\u003Cp>Проблемы появляются, когда календарь проекта живёт отдельно от решений. Дата релиза приближается, а команда всё ещё обсуждает цель страницы, владельца контента или способ передачи заявки.\u003Cbr>\u003Cbr>Правило перехода простое: у текущего этапа есть проверяемый результат и человек, который его принимает. Тогда идея последовательно превращается в структуру, макеты, работающий сайт и управляемый релиз.\u003Cbr>\u003Cbr>Планируете корпоративный сайт? На странице \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcorporate\">разработки корпоративных сайтов\u003C\u002Fa> можно посмотреть базовый состав проекта и обсудить с нами маршрут от discovery до запуска.\u003Cbr>&nbsp;\u003C\u002Fp>",[2961,2962],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2965,"documentId":2966,"title":2967,"date":2968,"description":11,"order":40,"slug":2969,"showOnMainPage":13,"createdAt":2970,"updatedAt":2970,"publishedAt":2971,"locale":17,"cover":2972,"content":3006,"media_event":11,"media_areas":3010,"seo":11,"localizations":3013},299,"vc9i1ztfpn2yrd5nx782zp3z","Этапы разработки дизайна сайта: как создать привлекательный и функциональный веб-дизайн","2026-09-13","etapy-razrabotki-dizayna-sayta-kak-sozdat-privlekatelnyy-i-funktsionalnyy-veb-dizayn","2026-09-13T23:38:47.063Z","2026-09-13T23:38:47.130Z",{"id":2973,"documentId":2974,"name":2975,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":2976,"hash":3001,"ext":26,"mime":29,"size":3002,"url":3003,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3004,"updatedAt":3004,"publishedAt":3005},738,"y2i0amroaoyllxjsiquxaouu","Изображение Codex 14 сент. 2026 г., 00_49_45.png",{"large":2977,"small":2983,"medium":2989,"thumbnail":2995},{"ext":26,"url":2978,"hash":2979,"mime":29,"name":2980,"path":11,"size":2981,"width":32,"height":1620,"sizeInBytes":2982},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225.png","large_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225","large_Изображение Codex 14 сент. 2026 г., 00_49_45.png",419.53,419529,{"ext":26,"url":2984,"hash":2985,"mime":29,"name":2986,"path":11,"size":2987,"width":40,"height":1626,"sizeInBytes":2988},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225.png","small_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225","small_Изображение Codex 14 сент. 2026 г., 00_49_45.png",116.49,116494,{"ext":26,"url":2990,"hash":2991,"mime":29,"name":2992,"path":11,"size":2993,"width":48,"height":1632,"sizeInBytes":2994},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225.png","medium_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225","medium_Изображение Codex 14 сент. 2026 г., 00_49_45.png",244.51,244507,{"ext":26,"url":2996,"hash":2997,"mime":29,"name":2998,"path":11,"size":2999,"width":1638,"height":1639,"sizeInBytes":3000},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225","thumbnail_Изображение Codex 14 сент. 2026 г., 00_49_45.png",34.39,34386,"Izobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225",323.56,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_00_49_45_11b59ce225.png","2026-09-13T23:37:51.942Z","2026-09-13T23:37:51.948Z",[3007],{"__component":66,"id":3008,"text":3009},263,"\u003Cp>На одном экране команда спорит о форме кнопки. На соседнем всё ещё нет сообщения об ошибке, мобильного меню и ответа на простой вопрос: что произойдёт после отправки формы. Главная страница выглядит убедительно, однако весь сайт пока держится на догадках.\u003C\u002Fp>\u003Cp>Такой разрыв появляется, когда дизайн воспринимают как последовательность красивых макетов. В рабочем проекте одновременно развиваются три контура: смысл, поведение и визуальная система. Они сходятся в одном интерфейсе, поэтому слабое решение в любом из них быстро проявится в остальных.\u003C\u002Fp>\u003Cp>Разберём этапы разработки дизайна сайта через эти три контура. Эта схема помогает заказчику оценивать работу по понятным признакам, а команде — не возвращаться к структуре и сценариям после того, как десятки экранов уже отрисованы.\u003C\u002Fp>\u003Ch2>Первый экран появляется после ответа на три неприятных вопроса\u003C\u002Fh2>\u003Cp>До макетов нужно договориться, зачем сайту существовать. Конкретный ответ звучит как действие и продолжение бизнес-процесса: посетитель выбирает услугу и оставляет заявку, покупатель оформляет заказ, кандидат находит вакансию и отправляет резюме. Формулировка «рассказать о компании» не задаёт ни маршрута, ни критерия приёмки.\u003C\u002Fp>\u003Cp>Второй вопрос — кто принимает решение. На корпоративный сайт могут приходить потенциальный клиент, партнёр, журналист и соискатель. У каждого свой контекст, словарь и нужная глубина информации. Все аудитории нельзя сделать главными одновременно: приоритет определяет навигацию, порядок блоков и заметность целевых действий.\u003C\u002Fp>\u003Cp>Третий вопрос касается ограничений. Какие интеграции обязательны? Кто готовит тексты и изображения? Какие разделы будет обновлять редактор? Нужны ли разные языковые версии, личный кабинет, каталог или поиск? Ответы влияют на объём проектирования сильнее, чем пожелание сделать сайт «современным».\u003C\u002Fp>\u003Cp>Для старта достаточно короткого брифа, где зафиксированы цель, аудитория, ключевой сценарий, ограничения и ответственный за согласование. Двадцатистраничный документ не обязателен. Обязательна ясность: какое действие совершает человек и какой процесс продолжается после него.\u003C\u002Fp>\u003Ch2>Три контура дизайна сходятся в одном макете\u003C\u002Fh2>\u003Cp>Этапы редко идут строго один за другим. Исследование меняет структуру, прототип уточняет содержание, визуальная концепция выявляет ограничения компонента. Чтобы не потеряться в итерациях, удобно смотреть на проект как на три связанных контура.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e79bb4f94737fe76485ed0ef3e8c78f8d\">Контур смысла отвечает за то, что сайт сообщает, кому и в какой последовательности.\u003C\u002Fli>\u003Cli data-list-item-id=\"ea2ed1bd14ec376997957c08d0d0af7e2\">Контур поведения описывает маршруты, действия, состояния и реакцию интерфейса.\u003C\u002Fli>\u003Cli data-list-item-id=\"e6868afd279db8a2504f715ffc35ec0da\">Контур формы превращает решения в визуальные правила, компоненты и спецификацию для разработки.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>В центре схемы находится ключевой пользовательский сценарий, и главная страница становится одним из его экранов. По нему видно, поддерживают ли структура, тексты, интерактивность и оформление одну задачу.\u003C\u002Fp>\u003Ch2>Контур смысла: структура растёт из решения, которое должен принять человек\u003C\u002Fh2>\u003Cp>Сначала команда собирает основания для проектирования. Для действующего сайта полезны веб-аналитика, поисковые запросы, обращения в поддержку, записи интервью и причины отказов. Для нового продукта — интервью, данные продаж, вопросы клиентов и ограничения бизнес-модели. Источники выбирают под задачу; лишний объём исследования ценности не добавляет.\u003C\u002Fp>\u003Cp>У конкурентов изучают механику: как они делят каталог, объясняют условия, снимают сомнения и ведут к следующему шагу. Копирование цветов и композиции почти ничего не говорит о причинах этих решений. Гораздо полезнее заметить устойчивые ожидания рынка и места, где пользователь вынужден догадываться.\u003C\u002Fp>\u003Cp>Затем появляются приоритетные сценарии и карта сайта. Карта сайта фиксирует систему переходов между страницами. Человек приходит из поиска, рекламы или рекомендации, находит нужный уровень подробности, сравнивает варианты и понимает следующий шаг. Каждая страница получает роль в этом маршруте.\u003C\u002Fp>\u003Cp>Структуру проверяют на реальном содержании. Заголовки, характеристики, ограничения, примеры и юридические формулировки сразу показывают, где блок слишком тесный, а соседние страницы повторяют друг друга. Текст-заполнитель маскирует такие проблемы и переносит их на позднюю стадию.\u003C\u002Fp>\u003Cp>Здесь же закладывают поисковую логику. У страницы должна быть своя тема, понятный заголовок первого уровня и место в иерархии. Мобильная версия сохраняет основной контент и заголовки десктопа — это соответствует \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fmobile\u002Fmobile-sites-mobile-first-indexing\">рекомендациям Google\u003C\u002Fa> для сайтов с mobile-first индексацией.\u003C\u002Fp>\u003Cp>Контур смысла готов, когда для ключевых страниц понятны аудитория, вопрос читателя, необходимый контент и следующий переход. После этого визуальная иерархия получает опору.\u003C\u002Fp>\u003Ch2>Контур поведения: прототип обязан пережить ошибку\u003C\u002Fh2>\u003Cp>Прототип показывает интерфейс до выбора шрифтов, цвета и изображений. В нём видны порядок блоков, навигация, формы, переходы и реакция системы. Серые схемы ценны своей дешевизной: переставить шаг или убрать лишний экран проще до того, как решение обрастёт деталями.\u003C\u002Fp>\u003Cp>Статичного прототипа хватает для простого лендинга. Сложный маршрут нужно пройти. Кликабельная версия позволяет проверить подбор тарифа, оформление заказа, регистрацию, отправку заявки или работу фильтра. Команда видит последовательность решений пользователя между экранами.\u003C\u002Fp>\u003Cp>Главная проверка начинается за пределами успешного пути. Что увидит человек при неверном формате телефона? Как выглядит пустой результат поиска? Сохранится ли введённое после ошибки? Что происходит при медленной загрузке, длинном названии или отсутствии изображения? Эти состояния определяют качество опыта сильнее, чем идеальная демонстрация главной страницы.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FWAI\u002Ftest-evaluate\u002Finvolving-users\u002F\">W3C рекомендует\u003C\u002Fa> подключать пользователей к оценке интерфейса на ранних стадиях и проводить проверки уже на прототипах. Для этого участнику дают задачу, наблюдают за действиями и фиксируют места, где он останавливается, возвращается или просит подсказку. Несколько наблюдений не заменяют исследование аудитории, зато быстро вскрывают непонятные подписи и пропущенные шаги.\u003C\u002Fp>\u003Cp>После теста правят конкретный механизм: название пункта, порядок полей, заметность действия, обратную связь системы. Формулировка «пользователю было неудобно» слишком общая. Команде нужен наблюдаемый сбой и понятное изменение, которое можно проверить повторно.\u003C\u002Fp>\u003Cp>Мы считаем прототип сырым, пока автор макета вынужден объяснять, куда нажать. Рабочий сценарий должен читаться без устного сопровождения и сохранять логику при ошибке.\u003C\u002Fp>\u003Ch2>Контур формы: концепция должна выдержать второй экран\u003C\u002Fh2>\u003Cp>Визуальная концепция появляется после того, как понятны смысл и поведение. Она задаёт типографику, цвет, сетку, характер изображений, плотность информации и принципы движения. Её задача — управлять вниманием и выражать позицию бренда в рамках пользовательского маршрута.\u003C\u002Fp>\u003Cp>Одного эффектного первого экрана недостаточно. Мы показываем направление на разных типах страниц: например, на главной, странице услуги, длинной статье и форме. Так быстрее обнаруживается концепция, которая работает только в рекламной композиции и рассыпается в каталоге или личном кабинете.\u003C\u002Fp>\u003Cp>После утверждения направления решения превращаются в систему. В UI-kit входят кнопки, поля, карточки, меню, таблицы, уведомления и модальные окна. Для каждого компонента описывают варианты и состояния: обычное, активное, при наведении, в фокусе, при ошибке, загрузке и недоступности.\u003C\u002Fp>\u003Cp>Адаптивность тоже задаётся правилами. На маленьком экране блоки меняют порядок, таблицы получают другой формат, элементы остаются удобными для касания, а важный контент не исчезает. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fcrawling-indexing\u002Fmobile\u002Fmobile-sites-mobile-first-indexing\">Google рекомендует\u003C\u002Fa> адаптивный дизайн как наиболее простой в реализации и поддержке вариант для мобильных сайтов.\u003C\u002Fp>\u003Cp>Доступность проверяют внутри системы на каждом шаге проекта. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FTR\u002FWCAG22\u002F\">WCAG 2.2\u003C\u002Fa> устанавливает минимальный контраст 4,5:1 для обычного текста и целевой размер интерактивной области не меньше 24 × 24 CSS-пикселей с оговорёнными исключениями. Эти требования влияют на цвета, размеры и состояния компонентов.\u003C\u002Fp>\u003Cp>Цена декоративного решения хорошо видна на фокусе клавиатуры. По данным \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Falmanac.httparchive.org\u002Fen\u002F2025\u002Faccessibility\">Web Almanac\u003C\u002Fa> за 2025 год, 67% проверенных сайтов явно убирали стандартную обводку фокуса. Интерфейс мог выглядеть чище, но часть пользователей теряла указатель текущего элемента.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fplanning-and-managing\u002F\">Рекомендации W3C\u003C\u002Fa> предлагают учитывать доступность на протяжении всего производства сайта и регулярно её проверять. Тогда исправление касается одного правила компонента. В финале тот же дефект пришлось бы искать на множестве уже свёрстанных экранов.\u003C\u002Fp>\u003Cp>Контур формы готов, когда новый экран можно собрать по существующим правилам без отдельного творческого согласования. Целостность сайта рождается именно из повторяемости решений.\u003C\u002Fp>\u003Ch2>Макет заканчивается на тестовом стенде\u003C\u002Fh2>\u003Cp>Передача в разработку — часть дизайна. В макетах должны быть понятны названия компонентов, варианты, размеры, сетки, отступы, экспорт графики и доступы к шрифтам. Нестандартное поведение сопровождают короткими пояснениями: как закрепляется меню, обрезается изображение, отправляется форма и восстанавливаются данные.\u003C\u002Fp>\u003Cp>Разработчик и дизайнер разбирают спорные места до вёрстки. Это помогает заранее упростить тяжёлую анимацию, уточнить зависимость состояний или выбрать устойчивое поведение для разных браузеров. Договорённость фиксируют рядом с компонентом, чтобы она не потерялась в переписке.\u003C\u002Fp>\u003Cp>Когда страницы появляются на тестовом стенде, дизайнер проверяет уже работающий интерфейс. В фокусе иерархия, сетка, реальные переносы текста, состояния, разные ширины экрана и управление с клавиатуры. Макет здесь служит системой правил. Точное копирование каждого пикселя уступает проверке поведения и визуальной иерархии.\u003C\u002Fp>\u003Cp>Этап закрывает принятая реализация ключевых страниц. До этого момента дизайн остаётся гипотезой о том, как система будет выглядеть и вести себя в коде.\u003C\u002Fp>\u003Ch2>Как принять дизайн за два созвона, а не за десять кругов правок\u003C\u002Fh2>\u003Cp>Количество согласований сокращается, когда у каждого созвона есть свой предмет. На первой встрече утверждают цель, аудиторию, маршрут и состав содержания. Цвет и изображения пока не обсуждают: для них ещё нет устойчивой основы.\u003C\u002Fp>\u003Cp>На второй встрече команда рассматривает визуальное направление на нескольких типах экранов, адаптив и состояния компонентов. Обсуждение строится вокруг функции решения: куда падает внимание, какое действие заметно, как система отвечает и повторяется ли правило на других страницах.\u003C\u002Fp>\u003Cp>Перед приёмкой полезно пройти четыре проверки:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e2d0ce25005ee051fa52576ea96be5e2f\">главное действие страницы понятно без пояснения автора;\u003C\u002Fli>\u003Cli data-list-item-id=\"ef36f91122ea314ae5432f50ceb7104a2\">сценарий работает при ошибке, пустых данных и на мобильном экране;\u003C\u002Fli>\u003Cli data-list-item-id=\"e7b54df0d8edd546124df1f66bbd3a6fd\">визуальные правила повторяются на разных типах страниц;\u003C\u002Fli>\u003Cli data-list-item-id=\"e73f0b31345882ea76aebf8e5be515867\">разработчику хватает компонентов и спецификации для реализации.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Замечание привязывают к одной из этих проверок. Так фраза «хочется посвежее» превращается в предметный разговор о контрасте, иерархии, образах или характере движения.\u003C\u002Fp>\u003Ch2>Когда полный цикл можно сократить\u003C\u002Fh2>\u003Cp>Небольшому лендингу с готовым содержанием и одним сценарием не всегда нужны отдельные недели на каждый контур. Команда может почти одновременно уточнить задачу, собрать схему страницы и показать визуальное направление.\u003C\u002Fp>\u003Cp>Проекты с несколькими аудиториями, каталогом, личным кабинетом, интеграциями или большой контентной системой требуют развёрнутой проверки. Сокращение процесса в таком случае означает меньше данных для решения и больше неизвестных в разработке.\u003C\u002Fp>\u003Cp>Этап объединяют осознанно: команда называет риск и способ проверки, который остаётся. Скорость появляется за счёт меньшего объёма задачи. Неразобранные вопросы в вёрстке только отложат обсуждение.\u003C\u002Fp>\u003Ch2>Готовность дизайна видна по трём вещам\u003C\u002Fh2>\u003Cp>У страницы есть понятная задача, ключевой сценарий проходит вместе с ошибками, а визуальные правила воспроизводятся в коде. Эти три признака связывают привлекательность с функциональностью и дают заказчику основу для приёмки без спора о вкусах.\u003C\u002Fp>\u003Cp>Если планируете новый сайт от прототипа до запуска, посмотрите, как у нас устроена \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcorporate\">разработка корпоративных сайтов\u003C\u002Fa>. Для первого разговора достаточно цели, аудитории и одного ключевого сценария.\u003C\u002Fp>\u003Cdiv style=\"-webkit-text-stroke-width:0px;color:rgb(0, 0, 0);font-family:Times;font-size:medium;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;inset:0px;letter-spacing:normal;orphans:2;pointer-events:none;position:fixed;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;z-index:2147483647;\" id=\"codex-browser-sidebar-comments-root\">\u003Cdiv>&nbsp;\u003C\u002Fdiv>\u003C\u002Fdiv>",[3011,3012],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3015,"documentId":3016,"title":3017,"date":3018,"description":11,"order":40,"slug":3019,"showOnMainPage":13,"createdAt":3020,"updatedAt":3020,"publishedAt":3021,"locale":17,"cover":3022,"content":3056,"media_event":11,"media_areas":3060,"seo":11,"localizations":3063},301,"mj85w3jsdizxt9gpk1ngf564","Сколько стоит тестирование приложения и что влияет на цену","2026-09-14","skolko-stoit-testirovanie-prilozheniya-i-chto-vliyaet-na-tsenu","2026-09-14T09:26:29.005Z","2026-09-14T09:26:29.084Z",{"id":3023,"documentId":3024,"name":3025,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":3026,"hash":3051,"ext":26,"mime":29,"size":3052,"url":3053,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3054,"updatedAt":3054,"publishedAt":3055},739,"org1zhuuh8norzeybt70qcf3","Изображение Codex 14 сент. 2026 г., 12_15_54.png",{"large":3027,"small":3033,"medium":3039,"thumbnail":3045},{"ext":26,"url":3028,"hash":3029,"mime":29,"name":3030,"path":11,"size":3031,"width":32,"height":1620,"sizeInBytes":3032},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc.png","large_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc","large_Изображение Codex 14 сент. 2026 г., 12_15_54.png",488.94,488937,{"ext":26,"url":3034,"hash":3035,"mime":29,"name":3036,"path":11,"size":3037,"width":40,"height":1626,"sizeInBytes":3038},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc.png","small_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc","small_Изображение Codex 14 сент. 2026 г., 12_15_54.png",133.21,133212,{"ext":26,"url":3040,"hash":3041,"mime":29,"name":3042,"path":11,"size":3043,"width":48,"height":1632,"sizeInBytes":3044},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc.png","medium_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc","medium_Изображение Codex 14 сент. 2026 г., 12_15_54.png",284.05,284049,{"ext":26,"url":3046,"hash":3047,"mime":29,"name":3048,"path":11,"size":3049,"width":1638,"height":1639,"sizeInBytes":3050},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc","thumbnail_Изображение Codex 14 сент. 2026 г., 12_15_54.png",37.67,37672,"Izobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc",355.54,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_12_15_54_86c226dbfc.png","2026-09-14T09:17:46.679Z","2026-09-14T09:17:46.680Z",[3057],{"__component":66,"id":3058,"text":3059},265,"\u003Cp>Цена тестирования приложения зависит от объёма проверок, состояния продукта и требований к релизу. Поэтому две команды могут назвать разные суммы для одного и того же описания: одна проверит несколько основных сценариев на одном устройстве, другая добавит регрессию, разные версии ОС, нагрузку, безопасность и повторные проверки после исправлений. Сравнивать такие оценки по итоговой цифре бесполезно — сначала нужно привести к общему состав работ.\u003C\u002Fp>\u003Ch2>Из чего складывается стоимость тестирования приложения\u003C\u002Fh2>\u003Cp>Базовая модель состоит из четырёх частей: подготовка, выполнение проверок, повторная проверка исправлений и инфраструктура. На подготовке команда изучает требования, собирает тестовые сценарии, готовит данные, устройства и окружения. Затем тестировщики проходят сценарии, фиксируют дефекты и проверяют исправления. Если нужны облачные фермы устройств, генераторы нагрузки или специализированные средства анализа безопасности, они учитываются отдельно.\u003C\u002Fp>\u003Cp>Упрощённая формула выглядит так: стоимость = трудозатраты команды × ставка + внешние расходы. Ставка без оценки часов ничего не объясняет. Количество часов меняют четыре группы факторов: охват, глубина, состояние продукта и частота релизов.\u003C\u002Fp>\u003Ch2>Охват: сколько платформ, устройств и ролей нужно проверить\u003C\u002Fh2>\u003Cp>Веб-сервис обычно проверяют в нескольких браузерах и разрешениях экрана. Для мобильного продукта добавляются iOS, Android, версии операционных систем, модели устройств и особенности магазинов приложений. Если в системе есть покупатель, менеджер, администратор и партнёр, у каждой роли появляется собственный набор прав и сценариев.\u003C\u002Fp>\u003Cp>Полную матрицу устройств редко проходят на каждой сборке. Практичнее выделить три слоя: самые частые конфигурации пользователей, рискованные сочетания и минимальный набор для регулярной регрессии. Android рекомендует строить стратегию как пирамиду: много небольших быстрых тестов и меньше крупных сквозных проверок. Это снижает время обратной связи, сохраняя контроль над основными пользовательскими маршрутами.\u003C\u002Fp>\u003Ch2>Глубина: какую ошибку продукт может себе позволить\u003C\u002Fh2>\u003Cp>Функциональная проверка отвечает на вопрос, выполняет ли продукт заданные действия. Регрессия ищет поломки в уже работающих функциях после изменений. Нагрузочные проверки показывают поведение системы при росте запросов. Аудит безопасности изучает хранение данных, авторизацию, сеть и другие риски. Для мобильных продуктов OWASP MASVS выделяет отдельные группы контролей по хранению, криптографии, аутентификации, сети, платформе и защите кода.\u003C\u002Fp>\u003Cp>Набор выбирают по цене ошибки. Сбой фильтра в каталоге и неверное списание денег требуют разной глубины контроля. Чем выше финансовые, юридические или репутационные последствия, тем больше сценариев, данных и доказательств понадобится до выпуска.\u003C\u002Fp>\u003Ch2>Состояние продукта: почему сырой билд делает проверку дороже\u003C\u002Fh2>\u003Cp>Оценка растёт, когда требования противоречат друг другу, тестовые данные приходится собирать заново, окружение нестабильно, а сборка блокирует половину сценариев. Время уходит на ожидание, уточнения и повторные заходы. Поэтому до старта полезно проверить готовность: есть ли актуальные требования, доступы, тестовые аккаунты, стабильная сборка, список поддерживаемых конфигураций и ответственный за решения.\u003C\u002Fp>\u003Cp>Отдельный коэффициент — качество исправлений. Если один дефект возвращается несколько раз или изменение ломает соседние функции, число повторных проверок увеличивается. Это уже затраты на нестабильность разработки, хотя в смете они часто выглядят как «дополнительное тестирование».\u003C\u002Fp>\u003Ch2>Ритм релизов: когда автоматизация начинает окупаться\u003C\u002Fh2>\u003Cp>Для разового запуска проще пройти критические сценарии вручную. При регулярных релизах одинаковая регрессия повторяется десятки раз, и часть набора выгодно автоматизировать. Автотесты тоже требуют бюджета: их нужно написать, запускать, обновлять после изменений интерфейса и разбирать падения.\u003C\u002Fp>\u003Cp>Автоматизировать стоит устойчивые и частые проверки: авторизацию, оплату, ключевые переходы, расчёты и API-контракты. Редкие сценарии и быстро меняющийся интерфейс часто дешевле проверять точечно. Решение принимают по горизонту продукта: сколько релизов ожидается и сколько времени команда каждый раз тратит на одну регрессию.\u003C\u002Fp>\u003Ch2>Как получить сравнимую оценку от подрядчиков\u003C\u002Fh2>\u003Cp>Перед запросом цены соберите короткий пакет: описание продукта, платформы, роли, критические сценарии, поддерживаемые устройства, график релизов, требования к нагрузке и безопасности. Попросите разложить оценку на подготовку, виды проверок, повторные тесты, отчётность и внешние расходы.\u003C\u002Fp>\u003Cp>Хорошая смета показывает допущения. Например: проверяется одна стабильная сборка, исправления приходят пакетами, число поддерживаемых устройств ограничено, нагрузочное окружение готовит заказчик. Если допущения меняются, корректируется и диапазон.\u003C\u002Fp>\u003Ch2>Что можно сократить без слепой экономии\u003C\u002Fh2>\u003Cp>Сначала защищают критический путь пользователя: вход, оплату, создание заказа, обучение, доставку — тот маршрут, ради которого существует продукт. Затем добавляют зоны с высокой вероятностью дефекта: новые функции, сложные интеграции, расчёты и участки с частыми изменениями. Низкорисковые комбинации можно проверять выборочно.\u003C\u002Fp>\u003Cp>Минимальная цена имеет смысл только вместе с перечнем исключений. Иначе экономия проявится уже после релиза — в аварийных исправлениях, откатах и потерянных действиях пользователей.\u003C\u002Fp>\u003Ch2>Короткий вывод\u003C\u002Fh2>\u003Cp>Стоимость тестирования приложения определяет не количество экранов, а матрица рисков и объём доказательств перед релизом. Зафиксируйте критические сценарии, платформы, глубину контроля и частоту выпусков — после этого оценка становится проверяемой, а предложения разных команд можно сравнить по одинаковому составу работ.\u003C\u002Fp>\u003Cp>Если нужно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fmobile-apps\">оценить мобильный продукт целиком\u003C\u002Fa> — от подготовки требований до тестирования и публикации, оставьте заявку. Мы свяжемся с вами, чтобы обсудить проект.\u003C\u002Fp>\u003Cdiv style=\"-webkit-text-stroke-width:0px;color:rgb(0, 0, 0);font-family:Times;font-size:medium;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;inset:0px;letter-spacing:normal;orphans:2;pointer-events:none;position:fixed;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;z-index:2147483647;\" id=\"codex-browser-sidebar-comments-root\">\u003Cdiv>&nbsp;\u003C\u002Fdiv>\u003C\u002Fdiv>",[3061,3062],{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3065,"documentId":3066,"title":3067,"date":2874,"description":11,"order":40,"slug":3068,"showOnMainPage":13,"createdAt":3069,"updatedAt":3070,"publishedAt":3071,"locale":17,"cover":3072,"content":3106,"media_event":11,"media_areas":3110,"seo":11,"localizations":3113},311,"v3w411p7i1i1btgcmn7pwxl7","Цена уже изменилась, остаток ещё старый: где ломается единый кабинет селлера","edinyy-kabinet-sellera-dlya-marketpleysov","2026-09-11T14:35:28.405Z","2026-09-14T15:33:57.800Z","2026-09-14T15:33:57.871Z",{"id":3073,"documentId":3074,"name":3075,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":3076,"hash":3101,"ext":26,"mime":29,"size":3102,"url":3103,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3104,"updatedAt":3104,"publishedAt":3105},759,"zlci7esosz1u5selr9chmckx","Изображение Codex 14 сент. 2026 г., 15_53_15.png",{"large":3077,"small":3083,"medium":3089,"thumbnail":3095},{"ext":26,"url":3078,"hash":3079,"mime":29,"name":3080,"path":11,"size":3081,"width":32,"height":1620,"sizeInBytes":3082},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1.png","large_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1","large_Изображение Codex 14 сент. 2026 г., 15_53_15.png",707.24,707241,{"ext":26,"url":3084,"hash":3085,"mime":29,"name":3086,"path":11,"size":3087,"width":40,"height":1626,"sizeInBytes":3088},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1.png","small_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1","small_Изображение Codex 14 сент. 2026 г., 15_53_15.png",198.34,198336,{"ext":26,"url":3090,"hash":3091,"mime":29,"name":3092,"path":11,"size":3093,"width":48,"height":1632,"sizeInBytes":3094},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1.png","medium_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1","medium_Изображение Codex 14 сент. 2026 г., 15_53_15.png",416.78,416779,{"ext":26,"url":3096,"hash":3097,"mime":29,"name":3098,"path":11,"size":3099,"width":1638,"height":1639,"sizeInBytes":3100},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1","thumbnail_Изображение Codex 14 сент. 2026 г., 15_53_15.png",54.68,54682,"Izobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1",533.26,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_15_53_15_b98646eba1.png","2026-09-14T15:32:02.256Z","2026-09-14T15:32:02.257Z",[3107],{"__component":66,"id":3108,"text":3109},275,"\u003Cp>Менеджер обновил цену и увидел зелёную галочку. На соседней вкладке остаток всё ещё прежний, а в кабинете маркетплейса товар уже участвует в акции. В этот момент непонятно главное: данные отправлены, приняты или действительно применены?\u003C\u002Fp>\u003Cp>Обычный интерфейс скрывает рассинхронизацию за словом «успешно». Команда замечает её позже: когда заказ приходится отменять, скидка съедает маржу или бухгалтерия не находит закрывающий документ.\u003C\u002Fp>\u003Cp>Привет, я Антон Фокин, CEO Qtim. Расскажу, из каких состояний складывается единый кабинет селлера, почему одной интеграции с API недостаточно и с какой операции стоит начинать собственную систему.\u003C\u002Fp>\u003Ch2>Зелёная галочка скрывает четыре разных состояния\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 16_02_41.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_16_02_41_dbc0d0ee88.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_16_02_41_dbc0d0ee88.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_16_02_41_dbc0d0ee88.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_16_02_41_dbc0d0ee88.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_16_02_41_dbc0d0ee88.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Кнопка «Обновить цену» запускает цепочку. Кабинет формирует запрос, отправляет его на площадку, получает технический ответ, а затем ждёт результата обработки. На каждом шаге операция может остановиться.\u003C\u002Fp>\u003Cp>Поэтому у изменения цены должно быть хотя бы четыре понятных состояния:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e335f7c2d899db237442db1ddf05e886d\">создано в кабинете;\u003C\u002Fli>\u003Cli data-list-item-id=\"e3bc8d42fac906ad05059812e9f27389f\">отправлено на площадку;\u003C\u002Fli>\u003Cli data-list-item-id=\"e75146700aaad6a671bd3ff4914280e7a\">принято в обработку;\u003C\u002Fli>\u003Cli data-list-item-id=\"e3e8409e9647980a896a25f5a809012cf\">применено или отклонено с причиной.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Если объединить их в одно «готово», интерфейс начинает врать. HTTP-ответ подтверждает доставку запроса, но ещё ничего не говорит о карточке товара. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdev.wildberries.ru\u002Fdocs\u002Fopenapi\u002Fwork-with-products\">документации WB API\u003C\u002Fa> для загрузки цен и скидок отдельно предусмотрена проверка обработанного запроса: часть товаров может не обновиться, и причину нужно получить после отправки.\u003C\u002Fp>\u003Cp>Похожая логика нужна для остатков, заказов и документов. Единый кабинет хранит идентификатор своей операции, идентификатор операции площадки, исходные данные, текущий статус и текст ошибки. Тогда менеджер видит, где именно остановился процесс, а разработчик может восстановить его по журналу событий.\u003C\u002Fp>\u003Cp>Второй вопрос — источник истины. Цена может рассчитываться в ERP или отдельном сервисе, физический остаток жить в 1С или WMS, а доступное к продаже количество зависеть от резервов и правил конкретного маркетплейса. Перед разработкой мы фиксируем владельца каждого поля. Иначе две системы начинают по очереди перезаписывать друг друга, а «последнее обновление» превращается в случайную победу одного канала.\u003C\u002Fp>\u003Ch2>Цена и остаток приезжают в витрину с разной скоростью\u003C\u002Fh2>\u003Cp>На экране цена и остаток стоят рядом, поэтому легко принять их за единый набор данных. Для интеграции это две независимые команды со своими ограничениями, очередями и ошибками. Так и возникает сценарий «Цена уже изменилась, остаток ещё старый»: обновления доходят до площадки и подтверждаются независимо.\u003C\u002Fp>\u003Cp>Маркетплейс может принять пакет цен, поставить его в обработку и вернуть итог позже. Запрос по остаткам способен пройти быстрее, но столкнуться с лимитом API при массовом обновлении. Официальная документация WB API отдельно описывает лимиты запросов и ответы 429 и 5xx. Такой ответ нельзя превращать в бесконечную серию повторов: она только усиливает нагрузку и отодвигает восстановление.\u003C\u002Fp>\u003Cp>Мы закладываем управляемую очередь. После временной ошибки операция ждёт следующей попытки с растущим интервалом. Постоянная ошибка — например, некорректное значение — попадает в очередь исключений с понятной причиной. Повторная отправка использует тот же ключ идемпотентности, чтобы восстановление связи не создало дубль.\u003C\u002Fp>\u003Cp>Для пользователя важны четыре времени: когда значение изменили в исходной системе, когда кабинет отправил его, когда площадка приняла запрос и когда результат подтвердился. Подпись «обновлено в 12:40» без уточнения события бесполезна. Она создаёт уверенность там, где пока есть только ожидание.\u003C\u002Fp>\u003Cp>На главном экране лучше показать простую связку: текущее значение в источнике, подтверждённое значение на площадке, время последней сверки и действие при ошибке. Расхождение тогда становится рабочей задачей, а не сюрпризом в отчёте.\u003C\u002Fp>\u003Ch2>Один заказ проходит через несколько словарей статусов\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-status-dictionaries-color-diorama-v4.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_status_dictionaries_color_diorama_v4_7fc7037165.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_status_dictionaries_color_diorama_v4_7fc7037165.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_status_dictionaries_color_diorama_v4_7fc7037165.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_status_dictionaries_color_diorama_v4_7fc7037165.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_status_dictionaries_color_diorama_v4_7fc7037165.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>С заказами сложнее: состояние меняется по обе стороны интеграции. Площадка создаёт заказ и переводит его по своей схеме. ERP резервирует товар. Склад подтверждает сборку. Служба доставки добавляет ещё один набор событий.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.yandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fstep-by-step\u002Forders-receive\">API Яндекс Маркета\u003C\u002Fa> позволяет получать заказы через уведомления или регулярные запросы. Оба способа требуют контроля: уведомление может прийти повторно, а периодический опрос — временно не получить данные. Собственный кабинет должен принять событие один раз, сохранить исходный код площадки и перевести его во внутреннее состояние.\u003C\u002Fp>\u003Cp>Полностью сводить разные словари к пяти универсальным словам опасно. Статус «готов к отгрузке» на двух площадках может требовать разных действий и документов. Поэтому интерфейс показывает понятное бизнес-состояние, а внутри сохраняет внешний код и историю переходов. Поддержка сможет ответить, почему заказ оказался в текущей точке, не собирая картину по скриншотам.\u003C\u002Fp>\u003Cp>Остаток тоже нельзя хранить одним числом. Обычно команде нужны физическое количество, резерв, доступно к продаже и подтверждённое значение на каждой площадке. Формула доступного остатка должна находиться в одном месте. Когда её копируют в ERP, кабинет и интеграционный скрипт, расхождение становится вопросом времени.\u003C\u002Fp>\u003Cp>Здесь особенно важна идемпотентность. Повторное событие не должно повторно списывать товар, создавать второй документ или запускать ещё одну отгрузку. Для менеджера это незаметная техническая деталь. Для бизнеса — защита от отмен, двойных операций и долгого ручного разбора.\u003C\u002Fp>\u003Ch2>Файл сформирован — документ ещё не получен\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"Изображение Codex 14 сент. 2026 г., 16_20_12.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_16_20_12_507b78fc99.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_16_20_12_507b78fc99.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_16_20_12_507b78fc99.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_16_20_12_507b78fc99.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_16_20_12_507b78fc99.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Документы редко попадают в первый прототип, потому что команда сосредоточена на каталоге и заказах. Потом выясняется, что менеджер по-прежнему скачивает отчёты на каждой площадке, переименовывает файлы и сверяет периоды.\u003C\u002Fp>\u003Cp>Некоторые документы формируются асинхронно. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fstep-by-step\u002Freports\">API Яндекс Маркета\u003C\u002Fa> отчёт сначала нужно запросить, затем дождаться готовности и только потом получить файл. Кнопка «Скачать» в собственном кабинете должна отражать эту цепочку: запрос создан, отчёт формируется, файл готов, генерация завершилась ошибкой.\u003C\u002Fp>\u003Cp>Сам файл — лишь часть объекта. Рядом нужны тип документа, площадка, юридическое лицо, период, версия, дата формирования и связь с заказами или выплатой. Если площадка пересобрала отчёт, кабинет обязан сохранить, какая версия ушла в бухгалтерию.\u003C\u002Fp>\u003Cp>Полезный интерфейс отвечает на три вопроса без переписки: за какой период документ, готов ли он и кто уже его выгрузил. Так раздел с файлами становится частью процесса, а не общей папкой с непонятными названиями.\u003C\u002Fp>\u003Ch2>Главный экран кабинета — очередь исключений\u003C\u002Fh2>\u003Cp>Первый макет единого кабинета часто строят вокруг графиков: выручка, число заказов, остатки по складам. Эти данные полезны руководителю, но операционная команда открывает систему ради другого. Ей нужно понять, что сегодня требует вмешательства.\u003C\u002Fp>\u003Cp>Мы выносим на первый экран:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e1fed60ede1d2b15e30ff1ebe098f08fd\">цены, которые площадка отклонила;\u003C\u002Fli>\u003Cli data-list-item-id=\"e2451fd84c8265ae3f3d5c82d948e7522\">товары с расхождением остатков;\u003C\u002Fli>\u003Cli data-list-item-id=\"eba2896d13ec1f605326fbd98b764b1fe\">заказы, застрявшие между статусами;\u003C\u002Fli>\u003Cli data-list-item-id=\"ec754d80d048a2ee0acb0764feefb8626\">документы, которые не сформировались в ожидаемый срок.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Каждая строка ведёт к операции с историей: кто изменил данные, что отправил кабинет, какой ответ пришёл, сколько было попыток и что можно сделать сейчас. Для исправимой ошибки нужна кнопка повторной отправки. Для ошибки в исходных данных — ссылка на поле, которое следует изменить. Для недоступного API — время следующей попытки.\u003C\u002Fp>\u003Cp>Журнал аудита здесь важнее красивой ленты активности. Он связывает действие сотрудника, версию данных и внешний ответ. Без этой связи спор «кто поменял цену» заканчивается поиском по чатам и логам нескольких систем.\u003C\u002Fp>\u003Cp>Роли тоже проектируют вокруг операций. Категорийный менеджер меняет цены, сотрудник склада работает с отгрузкой, бухгалтер скачивает документы, руководитель видит сводную картину. Возможность посмотреть данные ещё не означает право повторить запрос или отменить действие.\u003C\u002Fp>\u003Ch2>Первый релиз должен провести одну операцию до конца\u003C\u002Fh2>\u003Cp>Попытка сразу объединить каталог, аналитику, рекламу, финансы и документы растягивает проект и откладывает проверку ключевой гипотезы. Для первого релиза лучше выбрать одну бизнес-операцию и провести её через весь контур.\u003C\u002Fp>\u003Cp>Например: менеджер меняет цену в исходной системе, кабинет отправляет обновление на две площадки, получает итоговые статусы, показывает расхождения и позволяет безопасно повторить неуспешную операцию. В этом сценарии уже проверяются модель данных, очередь, права, журнал и обработка ошибок. Следующий поток можно добавлять на готовую основу.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">проекте HOTZ\u003C\u002Fa> мы строили смежный механизм: единый каталог и двусторонний обмен с 1С для товаров, остатков и заказов. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fteplomash\">проекте для «Тепломаш»\u003C\u002Fa> общая платформа синхронизировала каталоги, цены, остатки и обработку заказов трёх брендов. Это не кабинеты селлера, однако в них виден тот же архитектурный принцип: один слой координирует данные нескольких систем и хранит правила обмена в понятном месте.\u003C\u002Fp>\u003Cp>Собственная разработка нужна не каждому продавцу. При одной площадке, небольшом ассортименте и простых процессах команде часто достаточно штатного кабинета или готового коннектора. Свой слой оправдан, когда одна операция проходит через несколько площадок, ERP, склад и документооборот, а цена расхождения выше стоимости поддержки системы.\u003C\u002Fp>\u003Cp>Критерий можно сформулировать в одну строку: если сотрудник завершает одну бизнес-операцию в нескольких системах, единому кабинету есть что объединять.\u003C\u002Fp>\u003Cp>Начать стоит с карты источников данных и одного сквозного сценария. На странице о \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcabinets\">разработке личных кабинетов и экосистем\u003C\u002Fa> мы собрали, какие интеграции и операционные механизмы обычно входят в такой контур.\u003C\u002Fp>",[3111,3112],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3115,"documentId":3116,"title":3117,"date":3018,"description":11,"order":40,"slug":3118,"showOnMainPage":13,"createdAt":3119,"updatedAt":3119,"publishedAt":3120,"locale":17,"cover":3121,"content":3157,"media_event":11,"media_areas":3161,"seo":11,"localizations":3164},313,"yv49ig9l4j8vggzenf8rdxm3","Этапы управления проектом по разработке сайта или приложения","etapy-upravleniya-proektom-po-razrabotke-sayta-ili-prilozheniya","2026-09-14T15:36:41.687Z","2026-09-14T15:36:41.763Z",{"id":3122,"documentId":3123,"name":3124,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":3127,"hash":3152,"ext":26,"mime":29,"size":3153,"url":3154,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3155,"updatedAt":3155,"publishedAt":3156},763,"lobn1ful1nr998u9vqbde5kw","Изображение Codex 14 сент. 2026 г., 18_35_29.png",1600,900,{"large":3128,"small":3134,"medium":3140,"thumbnail":3146},{"ext":26,"url":3129,"hash":3130,"mime":29,"name":3131,"path":11,"size":3132,"width":32,"height":1620,"sizeInBytes":3133},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a.png","large_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a","large_Изображение Codex 14 сент. 2026 г., 18_35_29.png",498.54,498541,{"ext":26,"url":3135,"hash":3136,"mime":29,"name":3137,"path":11,"size":3138,"width":40,"height":1626,"sizeInBytes":3139},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a.png","small_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a","small_Изображение Codex 14 сент. 2026 г., 18_35_29.png",130.83,130831,{"ext":26,"url":3141,"hash":3142,"mime":29,"name":3143,"path":11,"size":3144,"width":48,"height":1632,"sizeInBytes":3145},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a.png","medium_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a","medium_Изображение Codex 14 сент. 2026 г., 18_35_29.png",284.33,284331,{"ext":26,"url":3147,"hash":3148,"mime":29,"name":3149,"path":11,"size":3150,"width":1638,"height":1639,"sizeInBytes":3151},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a.png","thumbnail_Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a","thumbnail_Изображение Codex 14 сент. 2026 г., 18_35_29.png",40.17,40166,"Izobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a",272.97,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_14_sent_2026_g_18_35_29_d8fac3793a.png","2026-09-14T15:35:42.867Z","2026-09-14T15:35:42.868Z",[3158],{"__component":66,"id":3159,"text":3160},277,"\u003Cp>Проект теряет управляемость, когда участники по-разному понимают ближайший результат, принятые решения и критерии готовности. Управление разработкой сайта или приложения строится вокруг контрольных точек: от цели продукта и исследования до релиза и проверки эффекта после запуска.\u003C\u002Fp>\u003Ch2>До первого спринта: зафиксировать цель и границы\u003C\u002Fh2>\u003Cp>Старт нужен, чтобы определить пользователя, его задачу, ожидаемый бизнес-результат и объём первой версии. Из ответов появляется цель продукта. Она помогает выбирать между функциями и не собирать все пожелания в один релиз.\u003C\u002Fp>\u003Cp>Рядом с целью фиксируют ограничения, критерии успеха и ответственного за продуктовые решения. Для магазина это может быть сокращение пути до оплаты, для внутреннего сервиса — время обработки заявки. Метрика связывает будущий интерфейс с результатом бизнеса.\u003C\u002Fp>\u003Ch2>Исследование: найти неизвестные до дорогих решений\u003C\u002Fh2>\u003Cp>Команда изучает процессы, данные, интеграции и инфраструктуру. Проверяет, откуда приходят товары или учебные материалы, кто управляет доступами, как передаются статусы и где хранятся персональные данные. В действующем продукте добавляется аудит кода и аналитики.\u003C\u002Fp>\u003Cp>На выходе появляются карта сценариев, список рисков и вопросы для прототипа. Обнаруженная на старте зависимость от старой CRM обходится дешевле, чем переделка готовых экранов и серверной логики.\u003C\u002Fp>\u003Ch2>Планирование: превратить идею в проверяемый объём\u003C\u002Fh2>\u003Cp>Требования собирают в единый бэклог и расставляют по ценности, риску и зависимости. Для ближайшего этапа выбирают небольшую законченную часть продукта. Scrum Guide связывает работу с целью продукта, целью спринта и определением готовности. Эти ориентиры полезны при любом итерационном подходе.\u003C\u002Fp>\u003Cp>Ранняя оценка остаётся диапазоном. Неизвестные выносят в допущения, крупные элементы делят на меньшие, прогноз уточняют после прототипов и технических проверок.\u003C\u002Fp>\u003Ch2>Проектирование: пройти критические маршруты до кода\u003C\u002Fh2>\u003Cp>UX-проектирование показывает путь пользователя, состояния интерфейса и поведение при ошибках. Интерактивный прототип позволяет обнаружить тупики до разработки. Параллельно техническая команда определяет архитектуру, модель данных, контракты интеграций и требования к средам.\u003C\u002Fp>\u003Cp>Контрольная точка здесь — согласованный сценарий. Для каждого важного действия понятны входные данные, успешный результат, исключения и права доступа.\u003C\u002Fp>\u003Ch2>Разработка короткими циклами\u003C\u002Fh2>\u003Cp>Функции выпускают небольшими порциями. В конце цикла команда демонстрирует работающий результат, сверяет его с целью и обновляет бэклог. DORA связывает устойчивую поставку с ориентацией на пользователя, стабильными приоритетами, небольшими партиями изменений и надёжным тестированием.\u003C\u002Fp>\u003Cp>Демо помогает заказчику увидеть продукт раньше и принимать решения по фактам. Если сценарий неудобен, его меняют до того, как поверх него появятся новые модули.\u003C\u002Fp>\u003Ch2>Пять инструментов контроля\u003C\u002Fh2>\u003Cp>Первый — единый бэклог с приоритетом и владельцем решения. Второй — журнал решений: что выбрали, почему и какие последствия приняли. Третий — реестр рисков с вероятностью, влиянием и планом реакции. Четвёртый — календарь демонстраций. Пятый — общее определение готовности для дизайна, разработки и тестирования.\u003C\u002Fp>\u003Cp>Документы должны оставаться короткими и актуальными. Их задача — быстро восстанавливать контекст и показывать следующее действие.\u003C\u002Fp>\u003Ch2>Приёмка и запуск: проверить весь контур\u003C\u002Fh2>\u003Cp>Перед релизом команда проходит критические маршруты, роли, интеграции, аналитику, резервное копирование и план отката. Контент и данные мигрируют с контрольной выборкой. Для мобильного приложения добавляются требования магазинов и мониторинг версий.\u003C\u002Fp>\u003Cp>У запуска должны быть ответственные, окно выпуска, канал связи, критерии остановки и порядок исправлений. Тогда возможный сбой становится известным сценарием.\u003C\u002Fp>\u003Ch2>После релиза: управлять продуктом по данным\u003C\u002Fh2>\u003Cp>Команда наблюдает за ошибками, скоростью, конверсией и обращениями пользователей, сравнивает результат с исходной целью и формирует следующий приоритет. PMI предлагает оценивать успех шире сроков, бюджета и объёма — через ценность для заинтересованных сторон и достигнутые результаты.\u003C\u002Fp>\u003Ch2>Контрольная карта руководителя\u003C\u002Fh2>\u003Cp>В любой момент руководитель должен ответить: какую цель проверяем, что входит в текущий этап, какое решение ждёт заказчика, какой риск вырос и что увидят пользователи на следующем демо. Если ответы разбросаны по чатам, процесс уже требует пересборки.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\">Если планируете разработку сайта или приложения, оставьте заявку. Мы свяжемся с вами, чтобы обсудить цели, этапы и критерии готовности проекта.\u003C\u002Fa>\u003C\u002Fp>",[3162,3163],{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3166,"documentId":3167,"title":3168,"date":3018,"description":11,"order":40,"slug":3169,"showOnMainPage":13,"createdAt":3170,"updatedAt":3171,"publishedAt":3172,"locale":17,"cover":3173,"content":3206,"media_event":11,"media_areas":3209,"seo":11,"localizations":3212},403,"nze9zg24dgc33oo464j2wo8v","Как искусственный интеллект меняет бизнес-процессы: от автоматизации до анализа данных","kak-iskusstvennyy-intellekt-menyaet-biznes-protsessy-ot-avtomatizatsii-do-analiza-dannykh","2026-09-14T21:35:44.550Z","2026-09-23T12:23:07.684Z","2026-09-23T12:23:07.761Z",{"id":3174,"documentId":3175,"name":3176,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":3177,"hash":3202,"ext":26,"mime":29,"size":3203,"url":3204,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3205,"updatedAt":3205,"publishedAt":3205},764,"ukby6dj01c9f2pjmnj9e5k84","Изображение Codex 15 сент. 2026 г., 00_23_57.png",{"large":3178,"small":3184,"medium":3190,"thumbnail":3196},{"ext":26,"url":3179,"hash":3180,"mime":29,"name":3181,"path":11,"size":3182,"width":32,"height":1620,"sizeInBytes":3183},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6.png","large_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6","large_Изображение Codex 15 сент. 2026 г., 00_23_57.png",343.38,343384,{"ext":26,"url":3185,"hash":3186,"mime":29,"name":3187,"path":11,"size":3188,"width":40,"height":1626,"sizeInBytes":3189},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6.png","small_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6","small_Изображение Codex 15 сент. 2026 г., 00_23_57.png",99.12,99117,{"ext":26,"url":3191,"hash":3192,"mime":29,"name":3193,"path":11,"size":3194,"width":48,"height":1632,"sizeInBytes":3195},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6.png","medium_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6","medium_Изображение Codex 15 сент. 2026 г., 00_23_57.png",210.15,210154,{"ext":26,"url":3197,"hash":3198,"mime":29,"name":3199,"path":11,"size":3200,"width":1638,"height":1639,"sizeInBytes":3201},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6.png","thumbnail_Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6","thumbnail_Изображение Codex 15 сент. 2026 г., 00_23_57.png",27.98,27976,"Izobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6",269.2,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_15_sent_2026_g_00_23_57_93394e7dd6.png","2026-09-14T21:24:21.415Z",[3207],{"__component":66,"id":800,"text":3208},"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Менеджер обновил цену и увидел зелёную галочку. На соседней вкладке остаток всё ещё прежний, а в кабинете маркетплейса товар уже участвует в акции. В этот момент непонятно главное: данные отправлены, приняты или действительно применены?\u003C\u002Fp>\u003Cp dir=\"auto\">Цена уже изменилась, остаток ещё старый — обычный интерфейс скрывает эту рассинхронизацию за словом «успешно». Команда замечает проблему позже: когда заказ приходится отменять, скидка съедает маржу или бухгалтерия не находит закрывающий документ.\u003C\u002Fp>\u003Cp dir=\"auto\">Разберём, из каких состояний складывается единый кабинет селлера, почему одной интеграции с API недостаточно и с какой операции стоит начинать собственную систему.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Зелёная галочка скрывает четыре разных состояния\u003C\u002Fh2>\u003Cp dir=\"auto\">Кнопка «Обновить цену» запускает цепочку. Кабинет формирует запрос, отправляет его на площадку, получает технический ответ, а затем ждёт результата обработки. На каждом шаге операция может остановиться.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому у изменения цены должно быть хотя бы четыре понятных состояния:\u003C\u002Fp>\u003Cp dir=\"auto\">• создано в кабинете;\u003C\u002Fp>\u003Cp dir=\"auto\">• отправлено на площадку;\u003C\u002Fp>\u003Cp dir=\"auto\">• принято в обработку;\u003C\u002Fp>\u003Cp dir=\"auto\">• применено или отклонено с причиной.\u003C\u002Fp>\u003Cp dir=\"auto\">Если объединить их в одно «готово», интерфейс начинает врать. HTTP-ответ подтверждает доставку запроса, но ещё ничего не говорит о карточке товара. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdev.wildberries.ru\u002Fdocs\u002Fopenapi\u002Fwork-with-products\">документации WB API\u003C\u002Fa> для загрузки цен и скидок отдельно предусмотрена проверка обработанного запроса: часть товаров может не обновиться, и причину нужно получить после отправки.\u003C\u002Fp>\u003Cp dir=\"auto\">Похожая логика нужна для остатков, заказов и документов. Единый кабинет хранит идентификатор своей операции, идентификатор операции площадки, исходные данные, текущий статус и текст ошибки. Тогда менеджер видит, где именно остановился процесс, а разработчик может восстановить его по журналу событий.\u003C\u002Fp>\u003Cp dir=\"auto\">Второй вопрос — источник истины. Цена может рассчитываться в ERP или отдельном сервисе, физический остаток жить в 1С или WMS, а доступное к продаже количество зависеть от резервов и правил конкретного маркетплейса. Перед разработкой мы фиксируем владельца каждого поля. Иначе две системы начинают по очереди перезаписывать друг друга, а «последнее обновление» превращается в случайную победу одного канала.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Цена и остаток приезжают в витрину с разной скоростью\u003C\u002Fh2>\u003Cp dir=\"auto\">На экране цена и остаток стоят рядом, поэтому легко принять их за единый набор данных. Для интеграции это две независимые команды со своими ограничениями, очередями и ошибками.\u003C\u002Fp>\u003Cp dir=\"auto\">Маркетплейс может принять пакет цен, поставить его в обработку и вернуть итог позже. Запрос по остаткам способен пройти быстрее, но столкнуться с лимитом API при массовом обновлении. Официальная документация WB API отдельно описывает лимиты запросов и ответы 429 и 5xx. Такой ответ нельзя превращать в бесконечную серию повторов: она только усиливает нагрузку и отодвигает восстановление.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы закладываем управляемую очередь. После временной ошибки операция ждёт следующей попытки с растущим интервалом. Постоянная ошибка — например, некорректное значение — попадает в очередь исключений с понятной причиной. Повторная отправка использует тот же ключ идемпотентности, чтобы восстановление связи не создало дубль.\u003C\u002Fp>\u003Cp dir=\"auto\">Для пользователя важны четыре времени: когда значение изменили в исходной системе, когда кабинет отправил его, когда площадка приняла запрос и когда результат подтвердился. Подпись «обновлено в 12:40» без уточнения события бесполезна. Она создаёт уверенность там, где пока есть только ожидание.\u003C\u002Fp>\u003Cp dir=\"auto\">На главном экране лучше показать простую связку: текущее значение в источнике, подтверждённое значение на площадке, время последней сверки и действие при ошибке. Расхождение тогда становится рабочей задачей, а не сюрпризом в отчёте.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Один заказ проходит через несколько словарей статусов\u003C\u002Fh2>\u003Cp dir=\"auto\">С заказами сложнее: состояние меняется по обе стороны интеграции. Площадка создаёт заказ и переводит его по своей схеме. ERP резервирует товар. Склад подтверждает сборку. Служба доставки добавляет ещё один набор событий.\u003C\u002Fp>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.yandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fstep-by-step\u002Forders-receive\">API Яндекс Маркета\u003C\u002Fa> позволяет получать заказы через уведомления или регулярные запросы. Оба способа требуют контроля: уведомление может прийти повторно, а периодический опрос — временно не получить данные. Собственный кабинет должен принять событие один раз, сохранить исходный код площадки и перевести его во внутреннее состояние.\u003C\u002Fp>\u003Cp dir=\"auto\">Полностью сводить разные словари к пяти универсальным словам опасно. Статус «готов к отгрузке» на двух площадках может требовать разных действий и документов. Поэтому интерфейс показывает понятное бизнес-состояние, а внутри сохраняет внешний код и историю переходов. Поддержка сможет ответить, почему заказ оказался в текущей точке, не собирая картину по скриншотам.\u003C\u002Fp>\u003Cp dir=\"auto\">Остаток тоже нельзя хранить одним числом. Обычно команде нужны физическое количество, резерв, доступно к продаже и подтверждённое значение на каждой площадке. Формула доступного остатка должна находиться в одном месте. Когда её копируют в ERP, кабинет и интеграционный скрипт, расхождение становится вопросом времени.\u003C\u002Fp>\u003Cp dir=\"auto\">Здесь особенно важна идемпотентность. Повторное событие не должно повторно списывать товар, создавать второй документ или запускать ещё одну отгрузку. Для менеджера это незаметная техническая деталь. Для бизнеса — защита от отмен, двойных операций и долгого ручного разбора.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Файл сформирован — документ ещё не получен\u003C\u002Fh2>\u003Cp dir=\"auto\">Документы редко попадают в первый прототип, потому что команда сосредоточена на каталоге и заказах. Потом выясняется, что менеджер по-прежнему скачивает отчёты на каждой площадке, переименовывает файлы и сверяет периоды.\u003C\u002Fp>\u003Cp dir=\"auto\">Некоторые документы формируются асинхронно. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyandex.ru\u002Fdev\u002Fmarket\u002Fpartner-api\u002Fdoc\u002Fru\u002Fstep-by-step\u002Freports\">API Яндекс Маркета\u003C\u002Fa> отчёт сначала нужно запросить, затем дождаться готовности и только потом получить файл. Кнопка «Скачать» в собственном кабинете должна отражать эту цепочку: запрос создан, отчёт формируется, файл готов, генерация завершилась ошибкой.\u003C\u002Fp>\u003Cp dir=\"auto\">Сам файл — лишь часть объекта. Рядом нужны тип документа, площадка, юридическое лицо, период, версия, дата формирования и связь с заказами или выплатой. Если площадка пересобрала отчёт, кабинет обязан сохранить, какая версия ушла в бухгалтерию.\u003C\u002Fp>\u003Cp dir=\"auto\">Полезный интерфейс отвечает на три вопроса без переписки: за какой период документ, готов ли он и кто уже его выгрузил. Так раздел с файлами становится частью процесса, а не общей папкой с непонятными названиями.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Главный экран кабинета — очередь исключений\u003C\u002Fh2>\u003Cp dir=\"auto\">Первый макет единого кабинета часто строят вокруг графиков: выручка, число заказов, остатки по складам. Эти данные полезны руководителю, но операционная команда открывает систему ради другого. Ей нужно понять, что сегодня требует вмешательства.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы выносим на первый экран:\u003C\u002Fp>\u003Cp dir=\"auto\">• цены, которые площадка отклонила;\u003C\u002Fp>\u003Cp dir=\"auto\">• товары с расхождением остатков;\u003C\u002Fp>\u003Cp dir=\"auto\">• заказы, застрявшие между статусами;\u003C\u002Fp>\u003Cp dir=\"auto\">• документы, которые не сформировались в ожидаемый срок.\u003C\u002Fp>\u003Cp dir=\"auto\">Каждая строка ведёт к операции с историей: кто изменил данные, что отправил кабинет, какой ответ пришёл, сколько было попыток и что можно сделать сейчас. Для исправимой ошибки нужна кнопка повторной отправки. Для ошибки в исходных данных — ссылка на поле, которое следует изменить. Для недоступного API — время следующей попытки.\u003C\u002Fp>\u003Cp dir=\"auto\">Журнал аудита здесь важнее красивой ленты активности. Он связывает действие сотрудника, версию данных и внешний ответ. Без этой связи спор «кто поменял цену» заканчивается поиском по чатам и логам нескольких систем.\u003C\u002Fp>\u003Cp dir=\"auto\">Роли тоже проектируют вокруг операций. Категорийный менеджер меняет цены, сотрудник склада работает с отгрузкой, бухгалтер скачивает документы, руководитель видит сводную картину. Возможность посмотреть данные ещё не означает право повторить запрос или отменить действие.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Первый релиз должен провести одну операцию до конца\u003C\u002Fh2>\u003Cp dir=\"auto\">Попытка сразу объединить каталог, аналитику, рекламу, финансы и документы растягивает проект и откладывает проверку ключевой гипотезы. Для первого релиза лучше выбрать одну бизнес-операцию и провести её через весь контур.\u003C\u002Fp>\u003Cp dir=\"auto\">Например: менеджер меняет цену в исходной системе, кабинет отправляет обновление на две площадки, получает итоговые статусы, показывает расхождения и позволяет безопасно повторить неуспешную операцию. В этом сценарии уже проверяются модель данных, очередь, права, журнал и обработка ошибок. Следующий поток можно добавлять на готовую основу.\u003C\u002Fp>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">проекте HOTZ\u003C\u002Fa> мы строили смежный механизм: единый каталог и двусторонний обмен с 1С для товаров, остатков и заказов. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fteplomash\">проекте для «Тепломаш»\u003C\u002Fa> общая платформа синхронизировала каталоги, цены, остатки и обработку заказов трёх брендов. Это не кабинеты селлера, однако в них виден тот же архитектурный принцип: один слой координирует данные нескольких систем и хранит правила обмена в понятном месте.\u003C\u002Fp>\u003Cp dir=\"auto\">Собственная разработка нужна не каждому продавцу. При одной площадке, небольшом ассортименте и простых процессах команде часто достаточно штатного кабинета или готового коннектора. Свой слой оправдан, когда одна операция проходит через несколько площадок, ERP, склад и документооборот, а цена расхождения выше стоимости поддержки системы.\u003C\u002Fp>\u003Cp dir=\"auto\">Критерий можно сформулировать в одну строку: если сотрудник завершает одну бизнес-операцию в нескольких системах, единому кабинету есть что объединять.\u003C\u002Fp>\u003Cp dir=\"auto\">Начать стоит с карты источников данных и одного сквозного сценария. На странице о \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fcabinets\">разработке личных кабинетов и экосистем\u003C\u002Fa> мы собрали, какие интеграции и операционные механизмы обычно входят в такой контур.\u003C\u002Fp>",[3210,3211],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":1810,"documentId":3214,"title":3215,"date":3216,"description":11,"order":1821,"slug":3217,"showOnMainPage":13,"createdAt":3218,"updatedAt":3218,"publishedAt":3219,"locale":17,"cover":3220,"content":3248,"media_event":11,"media_areas":3251,"seo":11,"localizations":3254},"ekx4n93yajvm1hk8iqyzw4ju","Tinder обновил рекомендации. Почему маркетплейсу мало фильтров и сортировки","2026-09-15","-obnovleniya-tinder-kak-marketpleys-uluchshaet-rekomendatsii-i-sortirovku","2026-09-15T16:47:04.947Z","2026-09-15T16:47:05.044Z",{"id":3221,"documentId":3222,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":3223,"hash":3244,"ext":26,"mime":29,"size":1499,"url":3245,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3246,"updatedAt":3246,"publishedAt":3247},765,"yvmbc13ygpoxq4dpps5lf1ff",{"large":3224,"small":3229,"medium":3234,"thumbnail":3239},{"ext":26,"url":3225,"hash":3226,"mime":29,"name":1375,"path":11,"size":3227,"width":32,"height":1620,"sizeInBytes":3228},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_51808ea895.png","large_01_cover_51808ea895",625.95,625947,{"ext":26,"url":3230,"hash":3231,"mime":29,"name":1381,"path":11,"size":3232,"width":40,"height":1626,"sizeInBytes":3233},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_51808ea895.png","small_01_cover_51808ea895",169.22,169224,{"ext":26,"url":3235,"hash":3236,"mime":29,"name":1387,"path":11,"size":3237,"width":48,"height":1632,"sizeInBytes":3238},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_51808ea895.png","medium_01_cover_51808ea895",366.82,366823,{"ext":26,"url":3240,"hash":3241,"mime":29,"name":1393,"path":11,"size":3242,"width":1638,"height":1639,"sizeInBytes":3243},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_51808ea895.png","thumbnail_01_cover_51808ea895",47.45,47453,"01_cover_51808ea895","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_51808ea895.png","2026-09-15T16:44:17.147Z","2026-09-15T16:44:17.148Z",[3249],{"__component":66,"id":1626,"text":3250},"\u003Cp>Покупатель открыл белые кроссовки, пролистал фотографии и вернулся в каталог. Через несколько экранов маркетплейс показывает ту же пару. Потом ещё раз. Система запомнила просмотр, но не поняла, что повторять его уже бесполезно.\u003C\u002Fp>\u003Cp>Для покупателя это выглядит как навязчивость. Для продукта — как потерянный сигнал: место в выдаче занял товар, который уже не помогает выбрать.\u003C\u002Fp>\u003Cp>В Qtim мы разрабатываем e-commerce-продукты и разбираем пользовательские маршруты от каталога до заказа. На примере обновлений Tinder покажем, из каких слоёв складываются рекомендации, как пережить холодный старт и почему маркетплейсу мало фильтров и сортировки.\u003C\u002Fp>\u003Ch2>Tinder добавил обучение между двумя свайпами\u003C\u002Fh2>\u003Cp>На презентации \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tinderpressroom.com\u002F2026-03-12-Tinder-Debuts-Inaugural-Product-Keynote-Tinder-Sparks-2026-Start-Something-New\">Tinder Sparks 2026\u003C\u002Fa> компания показала два подхода к персонализации. Chemistry формирует ежедневную подборку с помощью короткого опроса и дополнительных сигналов. Learning Mode перестраивает рекомендации по действиям человека во время сеанса. Tinder сообщает, что в трёхмесячном глобальном тесте на 14 млн пользователей Learning Mode был связан с более высокой вероятностью возвращения новых пользовательниц в первую неделю.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fir.mtch.com\u002Finvestor-relations\u002Fnews-events\u002Fnews-events\u002Fnews-details\u002F2026\u002FMatch-Group-Announces-Second-Quarter-Results\u002Fdefault.aspx\">квартальном отчёте за второй квартал 2026 года\u003C\u002Fa> Match Group зафиксировала ещё один сдвиг: годовое снижение ежедневной аудитории Tinder сократилось до 4% — это лучший результат за десять кварталов. После окончания квартала компания связала более сильную динамику аудитории с обновлением рекомендательных алгоритмов и продуктовыми изменениями. Отдельный вклад каждого обновления в отчёте не раскрыт, поэтому приписывать весь эффект рекомендациям нельзя.\u003C\u002Fp>\u003Cp>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fmedium.com\u002Ftinder\u002Ftinders-migration-to-elasticsearch-8-1999748ed7f4\">Технический разбор Tinder\u003C\u002Fa> объясняет основу без деталей Learning Mode. Более 90% рекомендаций сервиса проходили через один кластер Elasticsearch. Сначала поиск отбирал допустимых кандидатов по географии, возрасту, интересам и настройкам. Затем собственный модуль Tinder ранжировал их с помощью моделей машинного обучения.\u003C\u002Fp>\u003Cp>У маркетплейса та же логика. Фильтр отвечает, какие товары подходят под жёсткие условия: есть в наличии, доставляются в регион, включают нужный размер и укладываются в бюджет. Ранжирование решает, что показать первым конкретному человеку. Сортировка «по популярности» даёт один порядок всем. Персональная выдача меняет его по мере появления новых сигналов.\u003C\u002Fp>\u003Ch2>У нового покупателя нет истории — зато есть первый сеанс\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"02-pervyy-seans.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F02_pervyy_seans_6d67bb1d29.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_02_pervyy_seans_6d67bb1d29.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_02_pervyy_seans_6d67bb1d29.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_02_pervyy_seans_6d67bb1d29.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_02_pervyy_seans_6d67bb1d29.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Холодный старт возникает дважды. Система мало знает о новом посетителе и почти ничего не знает о новом товаре. Список популярных товаров заполняет выдачу быстро и закрепляет лидеров каталога: позиции без показов не получают кликов, а без кликов не получают новых показов.\u003C\u002Fp>\u003Cp>Tinder начинает собирать предпочтения ещё до длинной истории свайпов: Chemistry использует ответы на вопросы, Learning Mode — реакции в текущем сеансе. Маркетплейс может сделать то же аккуратнее, чем анкета на десять экранов. Категория входа, выбранный размер, ценовой диапазон, город, срок доставки и пара явных предпочтений уже сужают пространство поиска.\u003C\u002Fp>\u003Cp>Для нового товара историю частично заменяют атрибуты: категория, бренд, материал, назначение, цена, сезонность и визуальные признаки. Небольшую долю выдачи мы оставляем для исследования спроса. Иначе алгоритм продолжит советовать только то, что успело стать популярным до запуска модели.\u003C\u002Fp>\u003Cp>Самая соблазнительная версия — загрузить \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fresearch.google\u002Fpubs\u002Fon-evaluating-session-based-recommendation-with-implicit-feedback\u002F\">старые клики\u003C\u002Fa> и сразу обучить ранжирование. Мы её отбрасываем. Эти клики собраны прежней выдачей: верхние позиции видели чаще, поэтому модель легко принимает видимость за предпочтение и усиливает старый порядок.\u003C\u002Fp>\u003Ch2>Клик, корзина и возврат говорят системе разное\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"03-odin-tovar-signaly.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F03_odin_tovar_signaly_59344a3ef4.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_03_odin_tovar_signaly_59344a3ef4.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_03_odin_tovar_signaly_59344a3ef4.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_03_odin_tovar_signaly_59344a3ef4.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_03_odin_tovar_signaly_59344a3ef4.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Рекомендательная система видит действия, но смысл действия задаёт продуктовая команда. Просмотр карточки может означать интерес, случайное касание или проверку цены. Добавление в корзину сильнее, покупка ещё сильнее. Возврат товара после покупки меняет вывод: рекомендация привела к заказу, но могла промахнуться по ожиданиям.\u003C\u002Fp>\u003Cp>Мы начинаем с карты сигналов и заранее задаём их роль:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e52266ff448764fae054009a55aa62efa\">показ — товар действительно был на экране, поэтому система знает, из чего человек выбирал;\u003C\u002Fli>\u003Cli data-list-item-id=\"ee386e2c90bf14a4252e6252d3bd8ebde\">просмотр и время на карточке — слабый интерес, который требует контекста;\u003C\u002Fli>\u003Cli data-list-item-id=\"e663b30649b97ff9c6452e6a9ef95e46d\">сравнение, избранное и повторный визит — намерение вернуться к выбору;\u003C\u002Fli>\u003Cli data-list-item-id=\"e4cddbba92db719dce7e359da70e39099\">корзина и заказ — приближение к бизнес-результату;\u003C\u002Fli>\u003Cli data-list-item-id=\"ea5e83b3369a3b29a2c17c10ad0060214\">скрытие, отмена и возврат — разные отрицательные сигналы, которые нельзя складывать в один флаг.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Событие хранит минимум четыре вещи: пользователя или сеанс, товар, время и контекст показа. Для рекомендаций нужен ещё идентификатор выдачи, позиция карточки и версия модели. Без них команда увидит клик, но не узнает, какие альтернативы стояли рядом и почему победил именно этот товар.\u003C\u002Fp>\u003Ch2>Свайп влево нельзя превращать в пожизненный запрет\u003C\u002Fh2>\u003Cp>Отрицательная реакция бывает мягкой и жёсткой. Пропуск карточки сообщает мало: человек мог не заметить товар, устать листать или искать другое прямо сейчас. Кнопка «Не показывать эту модель» выражает намерение точнее. Отказ от бренда, категории или конкретного размера требует отдельных причин, а не одного универсального дизлайка.\u003C\u002Fp>\u003Cp>Повтор тоже несёт информацию. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fpersonalize\u002Flatest\u002Fdg\u002Finteractions-datasets.html\">Amazon Personalize\u003C\u002Fa>, например, учитывает список уже показанных позиций при исследовании новых вариантов. Частый показ снижает вероятность снова использовать товар для исследования. Смысл для собственной системы практичный: хранить нужно и действия, и доступный человеку набор.\u003C\u002Fp>\u003Cp>Мы задаём срок жизни отрицательного сигнала. Скрытую модель можно убрать надолго. Пропущенную карточку понижаем в выдаче только на текущий сеанс и возвращаем позже при новом контексте: изменилась цена, появился нужный размер или человек перешёл в другую категорию. Так выдача помнит отказ и не делает из него пожизненный приговор.\u003C\u002Fp>\u003Ch2>Пять чёрных курток подряд — точность без выбора\u003C\u002Fh2>\u003Cp>Модель нашла общий признак и честно продолжает его усиливать. С точки зрения близости товары релевантны. С точки зрения покупателя экран почти не меняется.\u003C\u002Fp>\u003Cp>После первичного ранжирования нужен отдельный этап переранжирования. Он ограничивает повторы одной карточки и бренда, разводит соседние позиции по цене или типу, добавляет новые товары и учитывает уже просмотренное. Для маркетплейса с продавцами сюда же входят доступность, срок доставки, качество карточки и правила площадки.\u003C\u002Fp>\u003Cp>Разнообразие не равно случайной мешанине. Основу выдачи сохраняют наиболее подходящие позиции, а часть мест отдают контролируемому исследованию. Границы определяем заранее: сколько одинаковых брендов может стоять рядом, через какое время возвращается показанный товар и какую долю получат позиции с малой историей.\u003C\u002Fp>\u003Ch2>Пять слоёв не дают модели управлять каталогом в одиночку\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"04-pyat-sloev.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F04_pyat_sloev_1d6a024445.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_04_pyat_sloev_1d6a024445.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_04_pyat_sloev_1d6a024445.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_04_pyat_sloev_1d6a024445.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_04_pyat_sloev_1d6a024445.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Практическая схема выглядит так:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eb6c156c1154b906c31509c56829e951e\">Кандидаты. Каталог отсекает отсутствующие товары и применяет жёсткие условия: регион, возрастные ограничения, совместимость, наличие варианта и реальный срок доставки.\u003C\u002Fli>\u003Cli data-list-item-id=\"ee4e168e27187f2431ee5b887f700cd80\">События. Платформа хранит показы, позицию, клики, сравнения, корзины, заказы, скрытия, отмены и возвраты вместе с контекстом.\u003C\u002Fli>\u003Cli data-list-item-id=\"eb2bcc5ff6b8e8dba10bf479fb7ddd29c\">Поиск и ранжирование. Система быстро находит подходящий набор, затем оценивает вероятность полезного действия для пользователя и товара.\u003C\u002Fli>\u003Cli data-list-item-id=\"e365b8a40d10973bd54e181deb24634d0\">Переранжирование. Бизнес-правила и ограничения разнообразия убирают повторы, недоступные позиции и перекос в пользу одного продавца или ценового сегмента.\u003C\u002Fli>\u003Cli data-list-item-id=\"ee34bf9774d959a8c4aa9bb923c630a7a\">Эксперимент. Новую логику получает часть аудитории; контрольная группа сохраняет прежнюю выдачу, чтобы отделить эффект модели от сезона, акции и изменения трафика.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>У Tinder этот путь хорошо виден в инженерной эволюции. После перехода на Elasticsearch 8 команда получила векторный поиск и возможность тестировать двухбашенные модели с отдельными представлениями двух профилей. В одном эксперименте такая модель увеличила долю совпадений на 6,5% и их количество на 22%; другая подняла долю свайпов вправо на 3,8%. Выборку и срок этих экспериментов авторы разбора не раскрывают. Перед запуском Tinder сравнивал старую и новую выдачу офлайн, затем раскатывал изменения тремя волнами A\u002FB-тестов.\u003C\u002Fp>\u003Cp>Маркетплейсу не обязательно начинать с такой инфраструктуры. Первый рабочий вариант можно собрать на правилах и простой модели. Важнее разделить слои: каталог отвечает за допустимость, ранжирование — за порядок, переранжирование — за качество всей подборки. Тогда новый алгоритм меняется без перестройки каталога и правил наличия.\u003C\u002Fp>\u003Ch2>Кликабельность может вырасти, пока продажи стоят\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"05-kliki-ekonomika.png\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F05_kliki_ekonomika_cbc853b5ec.png\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_05_kliki_ekonomika_cbc853b5ec.png 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_05_kliki_ekonomika_cbc853b5ec.png 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_05_kliki_ekonomika_cbc853b5ec.png 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_05_kliki_ekonomika_cbc853b5ec.png 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Кликабельность легко поощряет любопытные карточки и агрессивные скидки. Для бизнеса важен путь после клика. Мы проверяем рекомендации в трёх группах метрик:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ec15259dab9c1ee87fd83e4804f804489\">качество модели — попадание подходящих товаров в верх выдачи (Recall@K и NDCG), охват каталога, новизна и частота повторных показов;\u003C\u002Fli>\u003Cli data-list-item-id=\"ecd7c99f9586593a5b767a43783d7d789\">поведение — переход в карточку, сравнение, корзина, заказ и время до подходящего товара;\u003C\u002Fli>\u003Cli data-list-item-id=\"e45609f2265509e2a9773eb10c8cacd1f\">экономика и ограничения — выручка и маржа на тысячу показов, отмены, возвраты, скрытия, пустые выдачи и задержка ответа.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Одна основная метрика нужна для решения, защитные показатели — для остановки эксперимента. Например, рост заказов можно принять за успех только при стабильной марже и без скачка возвратов. Рост кликов при прежних продажах означает, что рекомендации научились открывать карточки. Задачу выбора они ещё не решили.\u003C\u002Fp>\u003Cp>Публичные цифры Tinder показывают ту же осторожность. Компания говорит об улучшении динамики аудитории на фоне нескольких продуктовых изменений и не выдаёт обновление алгоритма за единственную причину. Для маркетплейса честный вывод появляется только в контролируемом тесте.\u003C\u002Fp>\u003Ch2>Начните с одной полки, которая уже раздражает покупателя\u003C\u002Fh2>\u003Cp>Не нужно сразу персонализировать весь каталог. Выберите одну поверхность: блок на главной, похожие товары в карточке или дополнения в корзине. Запишите, какое решение принимает человек и что сейчас мешает ему выбрать.\u003C\u002Fp>\u003Cp>Затем настройте журнал показов, определите сильные и слабые сигналы, добавьте явное скрытие и ограничьте повторы. Сравните простую базовую логику с новой выдачей на части трафика. Модель имеет смысл усложнять после того, как команда видит полный путь от показа до заказа и возврата.\u003C\u002Fp>\u003Cp>Белые кроссовки из начала статьи могут появиться снова, когда изменился контекст. Без нового повода карточка должна уступить место другому варианту.\u003C\u002Fp>\u003Cp>Правило для решения: рекомендация работает, когда покупатель быстрее находит подходящий товар, сохраняет выбор, а площадка не платит за это маржой, возвратами и однообразной выдачей.\u003C\u002Fp>\u003Cp>Если хотите разобрать рекомендации, каталог и события как одну систему, можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">обсудить e-commerce-продукт с нами\u003C\u002Fa>. Начнём с одной полки и проверим, каких данных ей не хватает.\u003C\u002Fp>",[3252,3253],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":365,"documentId":366,"title":367,"date":368,"description":11,"order":6,"slug":369,"showOnMainPage":13,"createdAt":370,"updatedAt":371,"publishedAt":372,"locale":17,"cover":3256,"content":3262,"media_event":11,"media_areas":3264,"seo":11,"localizations":3267},{"id":374,"documentId":375,"name":376,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3257,"hash":404,"ext":379,"mime":382,"size":405,"url":406,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":407,"updatedAt":407,"publishedAt":407},{"large":3258,"small":3259,"medium":3260,"thumbnail":3261},{"ext":379,"url":380,"hash":381,"mime":382,"name":383,"path":11,"size":384,"width":32,"height":33,"sizeInBytes":385},{"ext":379,"url":387,"hash":388,"mime":382,"name":389,"path":11,"size":390,"width":40,"height":41,"sizeInBytes":391},{"ext":379,"url":393,"hash":394,"mime":382,"name":395,"path":11,"size":396,"width":48,"height":40,"sizeInBytes":397},{"ext":379,"url":399,"hash":400,"mime":382,"name":401,"path":11,"size":402,"width":55,"height":56,"sizeInBytes":403},[3263],{"__component":66,"id":410,"text":411},[3265,3266],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":669,"documentId":3269,"title":3270,"date":420,"description":11,"order":40,"slug":3271,"showOnMainPage":13,"createdAt":3272,"updatedAt":3272,"publishedAt":3273,"locale":17,"cover":3274,"content":3308,"media_event":11,"media_areas":3312,"seo":11,"localizations":3316},"zlz1zsbmf9t62lq9upjoh71o","Как правильно оценить разработку сайта и приложения\n","kak-pravilno-otsenit-razrabotku-sayta-i-prilozheniya","2026-09-17T10:47:34.140Z","2026-09-17T10:47:34.227Z",{"id":3275,"documentId":3276,"name":3277,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":3278,"hash":3303,"ext":26,"mime":29,"size":3304,"url":3305,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3306,"updatedAt":3306,"publishedAt":3307},778,"ewizasmgskhd8lenszd8jxbs","Изображение Codex 17 сент. 2026 г., 13_44_26.png",{"large":3279,"small":3285,"medium":3291,"thumbnail":3297},{"ext":26,"url":3280,"hash":3281,"mime":29,"name":3282,"path":11,"size":3283,"width":32,"height":1620,"sizeInBytes":3284},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","large_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","large_Изображение Codex 17 сент. 2026 г., 13_44_26.png",376.62,376619,{"ext":26,"url":3286,"hash":3287,"mime":29,"name":3288,"path":11,"size":3289,"width":40,"height":1626,"sizeInBytes":3290},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","small_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","small_Изображение Codex 17 сент. 2026 г., 13_44_26.png",102.28,102277,{"ext":26,"url":3292,"hash":3293,"mime":29,"name":3294,"path":11,"size":3295,"width":48,"height":1632,"sizeInBytes":3296},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","medium_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","medium_Изображение Codex 17 сент. 2026 г., 13_44_26.png",220.99,220993,{"ext":26,"url":3298,"hash":3299,"mime":29,"name":3300,"path":11,"size":3301,"width":1638,"height":1639,"sizeInBytes":3302},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","thumbnail_Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c","thumbnail_Изображение Codex 17 сент. 2026 г., 13_44_26.png",29.75,29754,"Izobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c",260.54,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_17_sent_2026_g_13_44_26_0b9cc3030c.png","2026-09-17T10:44:45.672Z","2026-09-17T10:44:45.673Z",[3309],{"__component":66,"id":3310,"text":3311},289,"\u003Cp>Точная цена по короткому описанию создаёт ложную уверенность. Пока не определены роли, интеграции, данные и требования к качеству, команда оценивает собственные предположения. Правильная оценка разработки сайта или приложения показывает диапазон, состав работ и условия, при которых он изменится.\u003C\u002Fp>\u003Ch2>Сначала сравняйте объём\u003C\u002Fh2>\u003Cp>Два предложения могут называться одинаково — «интернет-магазин» или «мобильное приложение» — и включать разный продукт. В одном варианте есть типовая авторизация и каталог, в другом — несколько ролей, персональные цены, остатки из ERP, возвраты, программа лояльности и работа без сети.\u003C\u002Fp>\u003Cp>Зафиксируйте первую версию через пользовательские сценарии. Не «личный кабинет», а «покупатель видит заказы, повторяет покупку и скачивает документ». Для каждого сценария укажите платформу, роль, данные, интеграции и критерий готовности. Такой список становится общей базой для оценки.\u003C\u002Fp>\u003Ch2>Пять драйверов, которые меняют смету\u003C\u002Fh2>\u003Cp>Первый драйвер — продуктовые сценарии и число состояний. Оплата включает успех, отказ, повтор, возврат и уведомления. Второй — роли и права: чем сложнее матрица доступов, тем больше логики и проверок. Третий — интеграции и качество внешних API. Четвёртый — миграция данных и контента. Пятый — нефункциональные требования: нагрузка, безопасность, доступность, работа без сети и поддерживаемые устройства.\u003C\u002Fp>\u003Cp>Количество экранов полезно для грубой оценки интерфейса, но плохо описывает бизнес-логику. Один экран расчёта тарифа может потребовать больше времени, чем десять информационных страниц.\u003C\u002Fp>\u003Ch2>Разложите стоимость по этапам и ролям\u003C\u002Fh2>\u003Cp>Полный цикл обычно включает исследование, проектирование, дизайн, разработку клиентской и серверной частей, интеграции, тестирование, инфраструктуру, запуск и управление. Если строка отсутствует, это не всегда экономия: работу может выполнять заказчик или она появится дополнительным счётом.\u003C\u002Fp>\u003Cp>Попросите подрядчика показать трудозатраты по этапам и состав команды. Тогда видно, есть ли аналитик, кто проектирует архитектуру, сколько заложено на контроль качества и поддержку релиза. Ставки сравнивают только после выравнивания объёма и ролей.\u003C\u002Fp>\u003Ch2>Оценка диапазоном: где находится неопределённость\u003C\u002Fh2>\u003Cp>На раннем этапе разумнее использовать вилку. Нижняя граница предполагает, что исходные данные подтверждаются и интеграции работают ожидаемо. Верхняя учитывает известные риски. Рядом должен быть список допущений: кто предоставляет контент, готов ли API, сколько платформ поддерживается, нужна ли миграция и кто принимает решения.\u003C\u002Fp>\u003Cp>Неопределённость можно разделить на продуктовую, техническую и организационную. Продуктовая связана с приоритетами пользователей. Техническая — с легаси, нагрузкой и внешними системами. Организационная — со скоростью согласований, доступами и участием экспертов заказчика.\u003C\u002Fp>\u003Ch2>Когда нужна отдельная аналитика\u003C\u002Fh2>\u003Cp>Если неизвестные влияют на архитектуру или могут изменить объём в несколько раз, полезен ограниченный этап исследования. Команда проверяет API, разбирает данные, прототипирует спорные маршруты и собирает бэклог. На выходе заказчик получает основание для более узкого диапазона, а не обещание начать разработку как можно скорее.\u003C\u002Fp>\u003Cp>Исследование особенно важно для модернизации действующей системы, миграции, нескольких интеграций, высокой нагрузки и сложной матрицы ролей.\u003C\u002Fp>\u003Ch2>Три метода и их границы\u003C\u002Fh2>\u003Cp>Аналоговая оценка сравнивает проект с похожими работами и подходит для раннего ориентира. Экспертная декомпозиция оценивает отдельные сценарии и задачи; она точнее при понятном бэклоге. Итерационное планирование использует реальную скорость команды после первых циклов и уточняет прогноз по мере разработки.\u003C\u002Fp>\u003Cp>Scrum Guide закрепляет ответственность разработчиков за размер элементов бэклога и допускает уточнение объёма по мере обучения. Это важный принцип: оценивать должны специалисты, которые будут выполнять работу, а прогноз нужно регулярно пересматривать.\u003C\u002Fp>\u003Ch2>Как сравнить два коммерческих предложения\u003C\u002Fh2>\u003Cp>Соберите таблицу с одинаковыми строками: сценарии первой версии, исключения, этапы, роли, интеграции, платформы, требования к качеству, срок, гарантия и поддержка. Отдельно выпишите допущения и риски. Разница в цене станет объяснимой: одна команда включила нагрузочное тестирование и миграцию, другая оставила их за рамками.\u003C\u002Fp>\u003Cp>Проверьте порядок работы с изменениями. Кто оценивает новую функцию, как она влияет на срок, что можно заменить в текущем объёме и где хранится решение? Без этого фиксированная смета быстро превращается в спор о том, что подразумевалось в начале.\u003C\u002Fp>\u003Ch2>Красные сигналы в оценке\u003C\u002Fh2>\u003Cp>Опасны точная сумма без состава работ, один итоговый срок без контрольных точек, отсутствие тестирования и запуска, неизвестный состав команды, неопределённые интеграции и обещание включить все будущие пожелания. Ещё один сигнал — скидка без изменения объёма: она может скрывать меньшее количество проверок, слабую аналитику или перенос важных работ за границы договора.\u003C\u002Fp>\u003Ch2>Шаблон запроса на оценку\u003C\u002Fh2>\u003Cp>Передайте цель продукта, аудиторию, три–пять критических сценариев, список ролей, платформы, интеграции, источники данных, ограничения по сроку и качеству. Попросите вернуть диапазон, декомпозицию, допущения, риски и следующий шаг для уточнения.\u003C\u002Fp>\u003Cp>В Qtim предварительную оценку связывают с объёмом первой версии и техническими неизвестными. Можем \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fmobile-apps\">обсудить\u003C\u002Fa> мобильное приложение и сделать разбор проекта.&nbsp;\u003C\u002Fp>",[3313,3314,3315],{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3318,"documentId":3319,"title":3320,"date":420,"description":11,"order":40,"slug":3321,"showOnMainPage":13,"createdAt":3322,"updatedAt":3323,"publishedAt":3324,"locale":17,"cover":3325,"content":3358,"media_event":11,"media_areas":3362,"seo":11,"localizations":3365},330,"hk18zy8rgkffyo6py89yhijb","Как выбрать платформу для онлайн-школы","kak-vybrat-platformu-dlya-onlajn-shkoly","2026-09-17T11:02:32.852Z","2026-09-17T13:50:45.671Z","2026-09-17T13:50:45.748Z",{"id":3326,"documentId":3327,"name":3328,"alternativeText":11,"caption":11,"width":3125,"height":854,"formats":3329,"hash":3354,"ext":26,"mime":29,"size":3355,"url":3356,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3357,"updatedAt":3357,"publishedAt":3357},780,"em430ypinn9ixx4ye1szsq0n","Изображение Codex 17 сент. 2026 г., 14_15_25.png",{"large":3330,"small":3336,"medium":3342,"thumbnail":3348},{"ext":26,"url":3331,"hash":3332,"mime":29,"name":3333,"path":11,"size":3334,"width":32,"height":33,"sizeInBytes":3335},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","large_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","large_Изображение Codex 17 сент. 2026 г., 14_15_25.png",513.64,513641,{"ext":26,"url":3337,"hash":3338,"mime":29,"name":3339,"path":11,"size":3340,"width":40,"height":41,"sizeInBytes":3341},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","small_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","small_Изображение Codex 17 сент. 2026 г., 14_15_25.png",141.56,141558,{"ext":26,"url":3343,"hash":3344,"mime":29,"name":3345,"path":11,"size":3346,"width":48,"height":40,"sizeInBytes":3347},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","medium_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","medium_Изображение Codex 17 сент. 2026 г., 14_15_25.png",296.92,296918,{"ext":26,"url":3349,"hash":3350,"mime":29,"name":3351,"path":11,"size":3352,"width":55,"height":56,"sizeInBytes":3353},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","thumbnail_Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80","thumbnail_Изображение Codex 17 сент. 2026 г., 14_15_25.png",39.36,39360,"Izobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80",318.75,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_17_sent_2026_g_14_15_25_0e13ba0b80.png","2026-09-17T11:15:58.376Z",[3359],{"__component":66,"id":3360,"text":3361},294,"\u003Cp>Платформа подходит онлайн-школе, если выдерживает её учебную и операционную модель. Каталог функций сам по себе мало говорит о результате: одна школа продаёт записанные курсы, другая ведёт расписание групп, третья строит персональные траектории и связывает обучение с CRM, оплатами и работой кураторов.\u003C\u002Fp>\u003Cp>Выбор начинается с карты процессов. Она показывает, достаточно ли готового облачного решения, нужна ли система с открытым кодом или продукт уже требует собственной платформы.\u003C\u002Fp>\u003Ch2>Опишите учебный цикл до сравнения сервисов\u003C\u002Fh2>\u003Cp>Проследите путь от заявки до завершения программы: как ученик покупает курс, получает доступ, смотрит урок, сдаёт работу, общается с преподавателем, переносит занятие и получает сертификат. Рядом отметьте действия менеджера, автора курса, куратора и администратора.\u003C\u002Fp>\u003Cp>Для каждого шага зафиксируйте данные и исключения. Что происходит при частичной оплате? Как меняется расписание при переносе? Кто видит комментарий преподавателя? Какая система хранит итоговый статус? Эти вопросы быстро отделяют обязательные функции от удобных дополнений.\u003C\u002Fp>\u003Ch2>Три класса решений\u003C\u002Fh2>\u003Cp>Облачная LMS подходит для быстрого запуска стандартной модели: курсы, уроки, тесты, оплаты, рассылки и базовые отчёты. Поставщик отвечает за инфраструктуру и обновления, школа платит подписку и принимает ограничения продукта.\u003C\u002Fp>\u003Cp>Платформа с открытым кодом даёт больше контроля над настройкой, размещением и расширениями. При этом школе понадобится техническая команда для обновлений, безопасности, резервного копирования, производительности и совместимости модулей.\u003C\u002Fp>\u003Cp>Заказная LMS оправдана, когда учебная механика или экономика школы не помещается в готовую модель: сложное расписание, несколько типов занятий, персональные траектории, особая система проверки, большая сеть партнёров, глубокие интеграции или собственная аналитика. Она требует большего вложения на старте, зато дорожная карта подчиняется продукту школы.\u003C\u002Fp>\u003Ch2>Восемь критериев, которые влияют на выбор\u003C\u002Fh2>\u003Cp>Первый — формат обучения: записи, вебинары, индивидуальные занятия, группы или смешанная модель. Второй — структура контента и заданий. Третий — роли и права. Четвёртый — продажи: тарифы, рассрочки, промокоды, возвраты. Пятый — интеграции с CRM, платежами, видеосвязью и коммуникациями. Шестой — аналитика прогресса и бизнеса. Седьмой — требования к данным и доступам. Восьмой — план роста: новые продукты, бренды, языки и рынки.\u003C\u002Fp>\u003Cp>Расставьте критерии по трём уровням: обязательные на запуске, необходимые в течение года и желательные. Платформа, которая закрывает длинный список второстепенных функций, может проиграть по одному критическому процессу.\u003C\u002Fp>\u003Ch2>Интеграции: проверьте не наличие API, а нужный сценарий\u003C\u002Fh2>\u003Cp>Фраза «есть API» не гарантирует, что система умеет отдать конкретные данные в нужный момент. Запросите документацию и проверьте операции: создание пользователя, выдача доступа, изменение статуса оплаты, получение результата задания, синхронизация расписания и отзыв доступа.\u003C\u002Fp>\u003Cp>Для образовательных инструментов существует стандарт LTI 1.3. 1EdTech описывает его как способ стандартно подключать к LMS внешние инструменты и контент; LTI Advantage добавляет сервисы оценок, ролей и глубоких ссылок. Поддержка стандарта упрощает некоторые интеграции, но не заменяет проверку бизнес-сценария.\u003C\u002Fp>\u003Ch2>Нагрузка: считайте одновременные действия\u003C\u002Fh2>\u003Cp>Число зарегистрированных учеников почти ничего не говорит о нагрузке. Важнее, сколько пользователей одновременно смотрят урок, сдают тест или подключаются перед вебинаром. Moodle в документации по производительности также предлагает ориентироваться на конкурентных пользователей и измерять базовые показатели до оптимизации.\u003C\u002Fp>\u003Cp>Для проверки запросите данные о пиковых событиях, лимитах тарифа, очередях фоновых задач, хранении видео, резервном копировании и мониторинге. Если школа проводит массовые экзамены, нагрузочный профиль нужно моделировать отдельно.\u003C\u002Fp>\u003Ch2>Данные и право на выход\u003C\u002Fh2>\u003Cp>До договора выясните, какие данные можно выгрузить и в каком формате: пользователи, оплаты, прогресс, ответы, файлы, комментарии, сертификаты и журнал действий. Проверьте, как удаляются данные, где размещаются резервные копии и кто управляет доступами сотрудников.\u003C\u002Fp>\u003Cp>Стоимость смены платформы часто определяется не лицензией, а качеством экспорта. Если историю обучения нельзя перенести, школа остаётся привязана к сервису даже при росте операционных затрат.\u003C\u002Fp>\u003Ch2>Как посчитать полную стоимость\u003C\u002Fh2>\u003Cp>Для готового сервиса сложите подписку, платные модули, комиссии, интеграции, настройку, перенос данных и работу команды с обходными процессами. Для открытой платформы добавьте инфраструктуру, обновления, безопасность и поддержку. Для заказной — исследование, проектирование, разработку, тестирование, запуск и дальнейшее развитие.\u003C\u002Fp>\u003Cp>Сравнивайте горизонт минимум на несколько лет и учитывайте стоимость изменений. Дешёвый старт может стать дорогим, если каждую новую механику приходится вести в таблицах и связывать несколькими сервисами.\u003C\u002Fp>\u003Ch2>Дерево решения\u003C\u002Fh2>\u003Cp>Выбирайте облачную LMS, если процессы стандартны, запуск нужен быстро, а ограничения сервиса приемлемы. Рассматривайте открытое решение, если важны контроль размещения и расширяемость, а техническая команда уже есть. Переходите к заказной разработке, когда уникальная учебная механика, интеграции или аналитика напрямую влияют на выручку и удержание.\u003C\u002Fp>\u003Cp>Перед окончательным выбором проведите пилот на одном курсе. Пройдите оплату, обучение, проверку задания, перенос, возврат и выгрузку отчёта. Зафиксируйте, что потребовало обходного пути и сколько времени он забирает каждую неделю.\u003C\u002Fp>\u003Cp>Правильная платформа следует за учебным процессом и планом роста школы. Карта сценариев, приоритеты, интеграции, нагрузка и условия выгрузки дают больше информации, чем сравнение десятков функций на сайтах поставщиков.\u003C\u002Fp>\u003Cp>Мы \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\">помогаем\u003C\u002Fa> онлайн-школам запускать и масштабировать образовательные платформы — от архитектуры и интеграций до поддержки, готовы обсудить ваш EdTech-проект.\u003C\u002Fp>",[3363,3364],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":417,"documentId":418,"title":419,"date":420,"description":11,"order":6,"slug":421,"showOnMainPage":13,"createdAt":422,"updatedAt":423,"publishedAt":424,"locale":17,"cover":3367,"content":3373,"media_event":11,"media_areas":3375,"seo":11,"localizations":3378},{"id":426,"documentId":427,"name":428,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3368,"hash":454,"ext":379,"mime":382,"size":455,"url":456,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":457,"updatedAt":457,"publishedAt":458},{"large":3369,"small":3370,"medium":3371,"thumbnail":3372},{"ext":379,"url":431,"hash":432,"mime":382,"name":433,"path":11,"size":434,"width":32,"height":33,"sizeInBytes":435},{"ext":379,"url":437,"hash":438,"mime":382,"name":439,"path":11,"size":440,"width":40,"height":41,"sizeInBytes":441},{"ext":379,"url":443,"hash":444,"mime":382,"name":445,"path":11,"size":446,"width":48,"height":40,"sizeInBytes":447},{"ext":379,"url":449,"hash":450,"mime":382,"name":451,"path":11,"size":452,"width":55,"height":56,"sizeInBytes":453},[3374],{"__component":66,"id":461,"text":462},[3376,3377],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":527,"documentId":528,"title":529,"date":530,"description":11,"order":6,"slug":531,"showOnMainPage":13,"createdAt":532,"updatedAt":532,"publishedAt":533,"locale":17,"cover":3380,"content":3386,"media_event":11,"media_areas":3388,"seo":11,"localizations":3391},{"id":535,"documentId":536,"name":537,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3381,"hash":563,"ext":379,"mime":382,"size":564,"url":565,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":566,"updatedAt":566,"publishedAt":567},{"large":3382,"small":3383,"medium":3384,"thumbnail":3385},{"ext":379,"url":540,"hash":541,"mime":382,"name":542,"path":11,"size":543,"width":32,"height":33,"sizeInBytes":544},{"ext":379,"url":546,"hash":547,"mime":382,"name":548,"path":11,"size":549,"width":40,"height":41,"sizeInBytes":550},{"ext":379,"url":552,"hash":553,"mime":382,"name":554,"path":11,"size":555,"width":48,"height":40,"sizeInBytes":556},{"ext":379,"url":558,"hash":559,"mime":382,"name":560,"path":11,"size":561,"width":55,"height":56,"sizeInBytes":562},[3387],{"__component":66,"id":570,"text":571},[3389,3390],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":627,"documentId":628,"title":629,"date":530,"description":11,"order":6,"slug":630,"showOnMainPage":13,"createdAt":631,"updatedAt":632,"publishedAt":633,"locale":17,"cover":3393,"content":3399,"media_event":11,"media_areas":3401,"seo":11,"localizations":3403},{"id":635,"documentId":636,"name":637,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3394,"hash":663,"ext":379,"mime":382,"size":664,"url":665,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":666,"updatedAt":666,"publishedAt":666},{"large":3395,"small":3396,"medium":3397,"thumbnail":3398},{"ext":379,"url":640,"hash":641,"mime":382,"name":642,"path":11,"size":643,"width":32,"height":33,"sizeInBytes":644},{"ext":379,"url":646,"hash":647,"mime":382,"name":648,"path":11,"size":649,"width":40,"height":41,"sizeInBytes":650},{"ext":379,"url":652,"hash":653,"mime":382,"name":654,"path":11,"size":655,"width":48,"height":40,"sizeInBytes":656},{"ext":379,"url":658,"hash":659,"mime":382,"name":660,"path":11,"size":661,"width":55,"height":56,"sizeInBytes":662},[3400],{"__component":66,"id":669,"text":670},[3402],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3405,"documentId":3406,"title":3407,"date":3408,"description":11,"order":40,"slug":3409,"showOnMainPage":13,"createdAt":3410,"updatedAt":3410,"publishedAt":3411,"locale":17,"cover":3412,"content":3445,"media_event":11,"media_areas":3449,"seo":11,"localizations":3452},348,"vhvm4rgi4utkvdl5lsn236cb","Омниканальная платформа: как объединить клиентов, заказы и остатки","2026-09-20","omnikanalnaya-platforma-kak-obedinit-klientov-zakazy-i-ostatki","2026-09-20T15:23:08.467Z","2026-09-20T15:23:08.536Z",{"id":3413,"documentId":3414,"name":3415,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":3416,"hash":3441,"ext":26,"mime":29,"size":3442,"url":3443,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3444,"updatedAt":3444,"publishedAt":3444},828,"owcbqd1g9vjv946naxlkab7s","Изображение Codex 20 сент. 2026 г., 18_14_18.png",{"large":3417,"small":3423,"medium":3429,"thumbnail":3435},{"ext":26,"url":3418,"hash":3419,"mime":29,"name":3420,"path":11,"size":3421,"width":32,"height":33,"sizeInBytes":3422},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213.png","large_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213","large_Изображение Codex 20 сент. 2026 г., 18_14_18.png",641.38,641378,{"ext":26,"url":3424,"hash":3425,"mime":29,"name":3426,"path":11,"size":3427,"width":40,"height":41,"sizeInBytes":3428},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213.png","small_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213","small_Изображение Codex 20 сент. 2026 г., 18_14_18.png",177.08,177077,{"ext":26,"url":3430,"hash":3431,"mime":29,"name":3432,"path":11,"size":3433,"width":48,"height":40,"sizeInBytes":3434},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213.png","medium_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213","medium_Изображение Codex 20 сент. 2026 г., 18_14_18.png",373.94,373943,{"ext":26,"url":3436,"hash":3437,"mime":29,"name":3438,"path":11,"size":3439,"width":55,"height":56,"sizeInBytes":3440},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213.png","thumbnail_Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213","thumbnail_Изображение Codex 20 сент. 2026 г., 18_14_18.png",47.32,47322,"Izobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213",392.7,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_20_sent_2026_g_18_14_18_ecdf982213.png","2026-09-20T15:22:33.287Z",[3446],{"__component":66,"id":3447,"text":3448},312,"\u003Cp>Покупатель оплатил товар на сайте и приехал за ним в магазин. Продавец не видит заказ, товар уже отложен другому человеку, а поддержка просит заново назвать состав покупки. У компании есть несколько каналов продаж, но переход между ними приходится организовывать самому клиенту.\u003C\u002Fp>\u003Cp>Омниканальная платформа нужна, чтобы этот переход работал как единый процесс: заказ сохранял историю, товар был доступен для выбранного способа получения, а сотрудник понимал, какое действие уже выполнено. Ниже — решения, которые стоит согласовать до разработки.\u003C\u002Fp>\u003Ch2>Что объединяет омниканальная платформа\u003C\u002Fh2>\u003Cp>В этой статье омниканальность — возможность начать покупку в одном канале и продолжить в другом без повторного оформления. Например, выбрать товар в приложении, получить его в магазине и обратиться в поддержку по тому же заказу.\u003C\u002Fp>\u003Cp>Для такого сценария недостаточно общего дизайна сайта и приложения. Нужны связанные данные о клиенте, заказе и запасах, а также правила, по которым системы принимают решения.\u003C\u002Fp>\u003Cp>Показательный пример готового механизма — \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fhelp.shopify.com\u002Fen\u002Fmanual\u002Ffulfillment\u002Fsetup\u002Forder-routing\">маршрутизация заказов в Shopify\u003C\u002Fa>. Система выбирает точки исполнения по заданным правилам: учитывает возможность собрать покупку без разделения и близость к получателю. Само подключение магазинов такую логику не заменяет.\u003C\u002Fp>\u003Ch2>Единый профиль начинается с правил идентификации\u003C\u002Fh2>\u003Cp>Сначала стоит определить, как сайт, приложение, касса и поддержка узнают одного покупателя. Практический вариант — постоянный внутренний идентификатор клиента и таблица его соответствий аккаунтам в других системах. Телефон и электронная почта служат контактами, но не должны безусловно заменять этот идентификатор.\u003C\u002Fp>\u003Cp>При проектировании нужно предусмотреть гостевую покупку, смену номера и несколько аккаунтов одного человека. Например, заказ без регистрации можно привязать к профилю после подтверждения доступа к контакту. Совпадение имени само по себе не должно открывать чужую историю покупок.\u003C\u002Fp>\u003Cp>Объединение дублей лучше сделать отдельной операцией с журналом и возможностью исправить ошибку. Параллельно стоит ограничить доступы по ролям: продавцу нужны состав заказа и условия выдачи, поддержке — обращения и история действий, маркетологу — разрешённые для его задач данные. Общий профиль не означает общий доступ ко всему.\u003C\u002Fp>\u003Ch2>У заказа один номер, но несколько независимых состояний\u003C\u002Fh2>\u003Cp>Для заказа полезно сохранить постоянный внутренний номер и связанные номера в кассовой системе, ERP и службе доставки. ERP — система учёта ресурсов и операций компании. Такое соответствие позволяет найти одну покупку во всех сервисах, даже если они используют разные обозначения.\u003C\u002Fp>\u003Cp>Статусы оплаты, сборки и получения следует вести отдельно. «Оплачен» не означает «готов к выдаче», а «передан в магазин» не подтверждает получение покупателем. У каждой смены состояния нужен источник: платёжный сервис, склад или сотрудник точки выдачи.\u003C\u002Fp>\u003Cp>Для сценария самовывоза стоит заранее описать отмену после оплаты, замену магазина, частичную выдачу и истечение срока хранения. Это отдельные ветки процесса, а не комментарии к основному статусу. Если магазин не подтвердил наличие, покупателю нельзя отправлять сообщение «можно забирать» только потому, что сайт успешно создал заказ.\u003C\u002Fp>\u003Cp>Рядом с текущим состоянием полезно показывать ожидаемое действие и ответственного: «магазин подтверждает резерв», «сотрудник готовит выдачу», «возврат платежа ожидает подтверждения». Так поддержка сможет объяснить задержку без звонков во все подразделения.\u003C\u002Fp>\u003Ch2>Общий остаток не равен всему товару на полках\u003C\u002Fh2>\u003Cp>На складе могут одновременно находиться свободные товары, резервы по заказам и позиции на проверке. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fhelp.shopify.com\u002Fen\u002Fmanual\u002Fproducts\u002Finventory\u002Ffundamentals\u002Finventory-states\">документации Shopify\u003C\u002Fa>&nbsp;эти состояния разделены: физическое наличие включает доступное, закреплённое за операциями и недоступное количество. Товар в пути учитывается отдельно.\u003C\u002Fp>\u003Cp>Для собственного проекта можно принять правило: доступно к продаже = физическое наличие − действующие резервы − недоступные позиции − страховой запас. Здесь все вычитаемые категории должны быть непересекающимися. Если исходная система уже передаёт свободный остаток, повторно вычитать из него резервы нельзя.\u003C\u002Fp>\u003Cp>Расчёт нужно вести в одинаковых разрезах: товар, вариант, склад и при необходимости владелец или партия. Пять единиц одного размера не заменяют пять единиц другого. Наличие в магазине тоже не всегда означает возможность отправить оттуда заказ: точка может обслуживать только самовывоз.\u003C\u002Fp>\u003Cp>Отдельное решение — кто подтверждает резерв. Если касса и сайт независимо продают последнюю единицу по своим копиям остатков, даже частый обмен оставляет риск конфликта. Для дефицитных позиций стоит предусмотреть общий механизм резервирования либо заранее распределённые квоты каналов. Страховой запас снижает риск, но не заменяет эти правила.\u003C\u002Fp>\u003Ch2>У каждого вида данных должен быть ответственный источник\u003C\u002Fh2>\u003Cp>До выбора технологий полезно составить карту владения данными. В ней фиксируют не только название системы, но и операцию, которую она вправе подтверждать. Возможный вариант распределения:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ed145a3c4743f721731c1d4cf5750d7b3\">CRM хранит профиль клиента и историю обращений.\u003C\u002Fli>\u003Cli data-list-item-id=\"e0379ca8bb7c42f937e446ff1337656c1\">ERP или товарная система отвечает за номенклатуру и базовые цены.\u003C\u002Fli>\u003Cli data-list-item-id=\"e1a30e2e649e54f8e9d1ca99a83a34ecc\">WMS — система управления складом — подтверждает складские операции и физическое наличие.\u003C\u002Fli>\u003Cli data-list-item-id=\"eb0248f95c30a012a193d94dd82165793\">Система управления заказами выбирает точку исполнения и связывает оплату, резерв и выдачу.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Это пример, а не обязательный набор продуктов. В небольшом бизнесе несколько функций может выполнять одна система. Важно, чтобы цена или резерв не менялись независимо в трёх местах без согласованного приоритета.\u003C\u002Fp>\u003Cp>Интеграционный слой в такой схеме переводит форматы, сохраняет соответствия номеров и отслеживает доставку сообщений. Ему не стоит незаметно дублировать правила скидок или расчёт доступного остатка. Иначе бизнес будет менять условия в основной системе, а часть каналов продолжит работать по старой формуле.\u003C\u002Fp>\u003Ch2>Обмен должен переживать повтор и потерю подтверждения\u003C\u002Fh2>\u003Cp>Проектировать интеграцию стоит с учётом повторных сообщений. Например, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002FAWSSimpleQueueService\u002Flatest\u002FSQSDeveloperGuide\u002Fstandard-queues-at-least-once-delivery.html\">Amazon SQS допускает повторную доставку\u003C\u002Fa>&nbsp;в стандартных очередях. Для покупки это означает конкретное требование: повтор события не создаёт второй заказ и не уменьшает запас ещё раз.\u003C\u002Fp>\u003Cp>Другая ситуация: заказ сохранился, но уведомление складу не отправилось. Для такого разрыва есть \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fprescriptive-guidance\u002Flatest\u002Fcloud-design-patterns\u002Ftransactional-outbox.html\">паттерн transactional outbox\u003C\u002Fa>: изменение и запись о необходимой отправке сохраняются в одной транзакции. Дальше отдельный обработчик доставляет сообщение. Приёмнику всё равно нужна защита от дублей.\u003C\u002Fp>\u003Cp>Помимо событий полезна периодическая сверка. Она должна сравнивать конкретные заказы и остатки, находить пропуски и передавать неразрешимые расхождения сотруднику. Одной надписи «обмен работает» недостаточно: нужны время последнего подтверждённого обновления, число ошибок и самая старая незавершённая операция.\u003C\u002Fp>\u003Ch2>Как внедрять платформу без замены всех систем\u003C\u002Fh2>\u003Cp>Первый релиз разумно ограничить одним переходом между каналами — например, покупкой на сайте с выдачей в нескольких магазинах. Для него понадобятся идентификация клиента, доступность по точкам, подтверждение резерва, уведомление о готовности и фиксация выдачи. Остальные сценарии можно добавлять после проверки этой цепочки.\u003C\u002Fp>\u003Cp>Готовое решение стоит проверять на реальных исключениях: отмене оплаченного заказа, переносе выдачи, частичном получении и недоступности кассы. Собственный модуль имеет смысл обсуждать, когда эти операции не укладываются в штатные механизмы. Начинать с полной замены ERP только ради единого интерфейса необязательно.\u003C\u002Fp>\u003Cp>До запуска стоит зафиксировать долю отмен из-за отсутствия товара, время подтверждения самовывоза и число ручных переносов заказов. После пилота сравнить показатели для сопоставимых точек и периодов. Такой результат полезнее количества подключённых API: он показывает, стал ли переход между каналами надёжнее.\u003C\u002Fp>\u003Cp>У Qtim направление \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">e-commerce и маркетплейсов\u003C\u002Fa>&nbsp;включает интеграции с учётными системами, складами и платежами. Обсудить существующую схему и нужный покупательский сценарий можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ft.me\u002Fqtim71\">в Telegram\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>",[3450,3451],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":577,"documentId":578,"title":579,"date":580,"description":11,"order":6,"slug":581,"showOnMainPage":13,"createdAt":582,"updatedAt":583,"publishedAt":584,"locale":17,"cover":3454,"content":3460,"media_event":11,"media_areas":3462,"seo":11,"localizations":3464},{"id":586,"documentId":587,"name":588,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3455,"hash":614,"ext":379,"mime":382,"size":615,"url":616,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":617,"updatedAt":617,"publishedAt":618},{"large":3456,"small":3457,"medium":3458,"thumbnail":3459},{"ext":379,"url":591,"hash":592,"mime":382,"name":593,"path":11,"size":594,"width":32,"height":33,"sizeInBytes":595},{"ext":379,"url":597,"hash":598,"mime":382,"name":599,"path":11,"size":600,"width":40,"height":41,"sizeInBytes":601},{"ext":379,"url":603,"hash":604,"mime":382,"name":605,"path":11,"size":606,"width":48,"height":40,"sizeInBytes":607},{"ext":379,"url":609,"hash":610,"mime":382,"name":611,"path":11,"size":612,"width":55,"height":56,"sizeInBytes":613},[3461],{"__component":66,"id":621,"text":622},[3463],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3466,"documentId":3467,"title":3468,"date":3469,"description":3470,"order":684,"slug":3471,"showOnMainPage":13,"createdAt":3472,"updatedAt":3473,"publishedAt":3474,"locale":17,"cover":3475,"content":3511,"media_event":3515,"media_areas":3522,"seo":11,"localizations":3531},365,"fgve6bjyd9co2ti7cn1gr5bv","Kazan Digital Week 2025","2025-09-17","b","media-2","2026-03-06T10:35:30.810Z","2026-09-21T16:06:41.714Z","2026-09-21T16:06:41.805Z",{"id":3476,"documentId":3477,"name":3478,"alternativeText":11,"caption":11,"width":23,"height":3479,"formats":3480,"hash":3506,"ext":752,"mime":382,"size":3507,"url":3508,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3509,"updatedAt":3510,"publishedAt":3509},862,"frnho51hr39gkiwlbssjm6lj","kazandigitalweek.tass.photo_206220_1280.jpg",853,{"large":3481,"small":3488,"medium":3494,"thumbnail":3500},{"ext":752,"url":3482,"hash":3483,"mime":382,"name":3484,"path":11,"size":3485,"width":32,"height":3486,"sizeInBytes":3487},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_kazandigitalweek_tass_photo_206220_1280_ba901c451c.jpg","large_kazandigitalweek_tass_photo_206220_1280_ba901c451c","large_kazandigitalweek.tass.photo_206220_1280.jpg",66.2,666,66204,{"ext":752,"url":3489,"hash":3490,"mime":382,"name":3491,"path":11,"size":3492,"width":40,"height":41,"sizeInBytes":3493},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_kazandigitalweek_tass_photo_206220_1280_ba901c451c.jpg","small_kazandigitalweek_tass_photo_206220_1280_ba901c451c","small_kazandigitalweek.tass.photo_206220_1280.jpg",22.49,22491,{"ext":752,"url":3495,"hash":3496,"mime":382,"name":3497,"path":11,"size":3498,"width":48,"height":40,"sizeInBytes":3499},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_kazandigitalweek_tass_photo_206220_1280_ba901c451c.jpg","medium_kazandigitalweek_tass_photo_206220_1280_ba901c451c","medium_kazandigitalweek.tass.photo_206220_1280.jpg",41.06,41062,{"ext":752,"url":3501,"hash":3502,"mime":382,"name":3503,"path":11,"size":3504,"width":55,"height":56,"sizeInBytes":3505},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_kazandigitalweek_tass_photo_206220_1280_ba901c451c.jpg","thumbnail_kazandigitalweek_tass_photo_206220_1280_ba901c451c","thumbnail_kazandigitalweek.tass.photo_206220_1280.jpg",7.68,7677,"kazandigitalweek_tass_photo_206220_1280_ba901c451c",106.6,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fkazandigitalweek_tass_photo_206220_1280_ba901c451c.jpg","2026-09-21T15:51:13.789Z","2026-09-21T16:04:42.559Z",[3512],{"__component":66,"id":3513,"text":3514},329,"\u003Cp class=\"p1\">Антон рассказывал о будущем разработки, как AI уже влияет на процессы создания EdTech-продуктов: помогает автоматизировать рутину, ускоряет запуск решений через no-code\u002Flow-code, открывает новые возможности для персонализации обучения и масштабирования платформ.&nbsp;\u003C\u002Fp>\u003Cp class=\"p1\">&nbsp;\u003C\u002Fp>\u003Cp class=\"p1\">И, конечно, о том, как при этом меняется роль разработчика и какие компетенции будут востребованы завтра&nbsp;\u003C\u002Fp>",{"id":3516,"documentId":3517,"place":3468,"dateFrom":3469,"dateTo":3518,"order":40,"createdAt":3519,"updatedAt":3520,"publishedAt":3521,"locale":17},58,"l6frmu0yosfqr3k430ywh70g","2025-09-19","2026-03-06T10:34:38.669Z","2026-09-21T16:04:47.218Z","2026-09-21T16:04:47.260Z",[3523,3530],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},19,"gilcfdy0yp8qpeaxgm5ls6e3","Мероприятия ","media-area-4","2026-05-27T09:12:22.766Z","2026-05-27T09:12:22.786Z",{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3533,"documentId":3534,"title":3535,"date":3536,"description":11,"order":6,"slug":3537,"showOnMainPage":13,"createdAt":3538,"updatedAt":3539,"publishedAt":3540,"locale":17,"cover":3541,"content":3573,"media_event":11,"media_areas":3576,"seo":11,"localizations":3579},368,"ssfnxded1v20ng7yti5ngkbt","Аудит мобильного приложения: как найти причины сбоев, медленной работы и тяжёлых обновлений","2026-09-22","audit-mobilnogo-prilozheniya-sboyy-medlennaya-rabota","2026-09-22T07:37:24.514Z","2026-09-22T10:59:13.656Z","2026-09-22T10:59:13.714Z",{"id":3542,"documentId":3543,"name":3544,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3545,"hash":3569,"ext":379,"mime":382,"size":3570,"url":3571,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3572,"updatedAt":3572,"publishedAt":3572},865,"gtsnisgi6hvh81oa9vpzr8y7","photo_2026-09-22 13.56.43.jpeg",{"large":3546,"small":3551,"medium":3557,"thumbnail":3563},{"ext":379,"url":3547,"hash":3548,"mime":382,"name":3549,"path":11,"size":2697,"width":32,"height":33,"sizeInBytes":3550},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_22_13_56_43_c0c00c2242.jpeg","large_photo_2026_09_22_13_56_43_c0c00c2242","large_photo_2026-09-22 13.56.43.jpeg",33223,{"ext":379,"url":3552,"hash":3553,"mime":382,"name":3554,"path":11,"size":3555,"width":40,"height":41,"sizeInBytes":3556},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_22_13_56_43_c0c00c2242.jpeg","small_photo_2026_09_22_13_56_43_c0c00c2242","small_photo_2026-09-22 13.56.43.jpeg",12.04,12044,{"ext":379,"url":3558,"hash":3559,"mime":382,"name":3560,"path":11,"size":3561,"width":48,"height":40,"sizeInBytes":3562},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_22_13_56_43_c0c00c2242.jpeg","medium_photo_2026_09_22_13_56_43_c0c00c2242","medium_photo_2026-09-22 13.56.43.jpeg",21.94,21944,{"ext":379,"url":3564,"hash":3565,"mime":382,"name":3566,"path":11,"size":3567,"width":55,"height":56,"sizeInBytes":3568},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_22_13_56_43_c0c00c2242.jpeg","thumbnail_photo_2026_09_22_13_56_43_c0c00c2242","thumbnail_photo_2026-09-22 13.56.43.jpeg",4.09,4087,"photo_2026_09_22_13_56_43_c0c00c2242",74.28,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_22_13_56_43_c0c00c2242.jpeg","2026-09-22T10:59:06.833Z",[3574],{"__component":66,"id":417,"text":3575},"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Пользователь нажимает «Оплатить», видит долгую загрузку и закрывает приложение. В поддержке остаётся короткий тикет: «Тормозит».\u003C\u002Fp>\u003Cp dir=\"auto\">Для владельца продукта это один симптом. Для технической команды за ним могут стоять интерфейс, обмен данными с сервером, внешняя интеграция или изменение, которое попало в последнюю сборку. Исправление самого заметного экрана не гарантирует, что проблема исчезнет.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы в Qtim разбираем действующие мобильные продукты по слоям и связываем технические находки с последствиями для бизнеса. Ниже — четыре слоя технического аудита, два примера из нашей практики и критерий, который помогает выбрать точечное исправление или обновление основы.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Сбой виден на экране, а причина может лежать глубже\u003C\u002Fh2>\u003Cp dir=\"auto\">Фраза «приложение тормозит» описывает впечатление пользователя. Для диагностики этого мало. Нужен конкретный маршрут: что человек пытался сделать, на каком шаге возникла задержка, какие данные участвовали и что происходило с зависимыми системами.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому аудит начинается с бизнес-задачи. Команда фиксирует критичные сценарии и последствия сбоя: прерванную оплату, недоступный личный кабинет, лишние обращения в поддержку, задержку заказа или невозможность выпустить обновление. Так команда понимает контекст проблемы и её приоритет.\u003C\u002Fp>\u003Cp dir=\"auto\">Такой порядок защищает от удобной ловушки: чинить то, что проще увидеть. Экран может зависать из-за тяжёлой отрисовки, нескольких последовательных запросов к серверу, медленного ответа внутренней системы или ошибки авторизации. Внешне ситуации похожи. План работ у них разный.\u003C\u002Fp>\u003Ch2 dir=\"auto\">4 слоя технического аудита: от кнопки до релиза\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-22 13.56.56.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_22_13_56_56_6c02c0999f.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_22_13_56_56_6c02c0999f.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_22_13_56_56_6c02c0999f.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_22_13_56_56_6c02c0999f.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_22_13_56_56_6c02c0999f.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Мы проверяем мобильный продукт как связанную систему. У каждого слоя свой набор вопросов.\u003C\u002Fp>\u003Cp dir=\"auto\">1. \u003Cstrong>Интерфейс и пользовательские сценарии.\u003C\u002Fstrong> Как приложение ведёт себя при долгой загрузке, отсутствии данных, ошибке сети и неуспешном действии? Понятно ли пользователю, что произошло и можно ли безопасно повторить операцию?\u003C\u002Fp>\u003Cp dir=\"auto\">2. \u003Cstrong>Данные и внутренняя логика.\u003C\u002Fstrong> Как устроены вход, роли, статусы, ключевые сущности и обмен с бэкендом, то есть серверной частью продукта? Здесь одна рассинхронизация способна превратить корректный экран в источник неверных данных.\u003C\u002Fp>\u003Cp dir=\"auto\">3. \u003Cstrong>Интеграции и сервисы.\u003C\u002Fstrong> Оплата, уведомления, карты, аналитика, CRM и другие внутренние системы участвуют в мобильном сценарии наравне с самим приложением. Проверка охватывает точки обмена и поведение продукта при недоступности зависимости.\u003C\u002Fp>\u003Cp dir=\"auto\">4. \u003Cstrong>Релизы и наблюдаемость.\u003C\u002Fstrong> Наблюдаемость означает возможность понять состояние системы по журналам событий, ошибкам и техническим метрикам. Команда смотрит, разделены ли среды разработки, тестирования и публикации, как отслеживаются сбои и что происходит после выпуска новой версии.\u003C\u002Fp>\u003Cp dir=\"auto\">В аудите мы смотрим на четыре слоя, через которые проходит пользовательский маршрут. Кнопка оплаты связывает интерфейс, серверную логику, платёжный сервис, статусы операции и мониторинг. Аудит позволяет проследить всю цепочку.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Причина задержки на одном экране может быть в нескольких запросах\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-22 13.56.54.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_22_13_56_54_d6243353f5.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_22_13_56_54_d6243353f5.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_22_13_56_54_d6243353f5.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_22_13_56_54_d6243353f5.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_22_13_56_54_d6243353f5.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">В одном из наших мобильных проектов главный экран собирал сведения из нескольких модулей платформы. На нём сходились расписание, посещаемость, задания и оценки. Мобильный клиент мог бы запрашивать каждый блок отдельно и ждать несколько ответов.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы изменили серверную выдачу: приложение стало получать сводку одним запросом. Локальное техническое решение изменило способ подготовки данных на бэкенде; дизайн экрана остался прежним. Путь от запроса до готового содержимого стал короче.\u003C\u002Fp>\u003Cp dir=\"auto\">Для аудита здесь важен принцип. Медленный экран нельзя оценивать только по интерфейсу. Нужно пройти путь запроса от действия пользователя до источников данных и обратно. Тогда становится видно, где задержка действительно возникает и какой слой требует изменения.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Две сборки увеличивают стоимость сопровожденияя\u003C\u002Fh2>\u003Cp dir=\"auto\">В другом мобильном проекте устаревшая платформа одновременно ограничивала производительность, кроссплатформенную поддержку и дальнейшее развитие. iOS и Android приходилось сопровождать как две отдельные сборки. Каждое изменение требовало больше параллельной работы.\u003C\u002Fp>\u003Cp dir=\"auto\">Решение о миграции приняли после комплексного аудита приложения и слабых мест платформы. Такой порядок важен: смена технологии затрагивает архитектуру, интерфейс, тестирование и выпуск. Без разбора текущего состояния миграция легко превращается в ещё один источник неопределённости.\u003C\u002Fp>\u003Cp dir=\"auto\">Полная смена основы нужна далеко не каждому продукту. Иногда достаточно исправить обмен данными, настроить мониторинг или привести в порядок релизный процесс. Аудит помогает отделить локальный дефект от ограничения, которое будет возвращаться в следующих версиях.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Тяжёлое обновление проверяет весь процесс выпуска\u003C\u002Fh2>\u003Cp dir=\"auto\">Релиз, то есть выпуск новой версии приложения, начинается раньше отправки сборки в магазин. Изменения нужно проверить в отдельной среде, пройти ключевые сценарии, зафиксировать ошибки и подготовить версию под актуальные требования операционных систем.\u003C\u002Fp>\u003Cp dir=\"auto\">Сигналом для проверки становится повторяемость. Команда исправляет одну проблему, следующее обновление приносит новую, а выпуск постепенно превращается в аврал. В этой ситуации полезно смотреть на окружения, порядок тестирования, мониторинг и ответственность за действия после публикации.\u003C\u002Fp>\u003Cp dir=\"auto\">Отслеживание ошибок сокращает путь от жалобы до причины. Команда видит наблюдаемый сбой, связывает его с версией и контекстом, а затем проверяет гипотезу. Без этой цепочки разработка зависит от пересказа пользователя и попыток воспроизвести проблему вслепую.\u003C\u002Fp>\u003Ch2 dir=\"auto\">После аудита должна остаться очередь решений\u003C\u002Fh2>\u003Cp dir=\"auto\">Список замечаний сам по себе не задаёт порядок работ. Итог аудита должен связывать каждую проблему с бизнес-сценарием, риском и следующим действием.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы начинаем с контекста продукта, затем разбираем архитектуру, стек и инфраструктуру. Найденные слабые места собираем в приоритизированный список проблем и рисков. После диагностики решения переходят в дорожную карту с порядком внедрения и оценкой бюджета.\u003C\u002Fp>\u003Cp dir=\"auto\">По каждой позиции нужны три ответа: какой слой затронут, к чему приводит проблема и что команда делает дальше. Тогда аудит помогает планировать работу, обсуждать бюджет и контролировать результат. Отчёт перестаёт жить отдельно от продукта.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Точечное исправление или обновление основы\u003C\u002Fh2>\u003Cp dir=\"auto\">Точечное исправление выбирают, когда причина проблемы изолирована: известен сломанный сценарий, источник подтверждён, а изменения не затрагивают соседние слои. Полный аудит оправдан, когда сбои повторяются, симптомы возникают в разных сценариях или каждый релиз приносит новый набор ошибок.\u003C\u002Fp>\u003Cp dir=\"auto\">Устаревшая основа тоже становится системным ограничением, когда одновременно страдают скорость, выпуск двух платформ и дальнейшее развитие. Тогда дорожная карта может включать миграцию. Решение принимается после разбора текущего продукта и его ограничений.\u003C\u002Fp>\u003Cp dir=\"auto\">Вернёмся к тикету «Тормозит». Полезный ответ содержит проверенный маршрут от действия пользователя до данных, интеграций и релиза.\u003C\u002Fp>\u003Cp dir=\"auto\">Критерий простой: локализованную причину исправляем точечно; повторяющуюся проблему на нескольких слоях разбираем полным аудитом.\u003C\u002Fp>\u003Cp dir=\"auto\">Если ваше приложение падает, медленно работает или тяжело обновляется, можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fmobile-apps\">обсудить аудит мобильного приложения\u003C\u002Fa> с нами. Посмотрим текущий продукт и соберём понятный план действий.\u003C\u002Fp>",[3577,3578],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":3581,"documentId":3582,"title":3583,"date":3536,"description":11,"order":3584,"slug":3585,"showOnMainPage":13,"createdAt":3586,"updatedAt":3587,"publishedAt":3588,"locale":17,"cover":3589,"content":3622,"media_event":11,"media_areas":3626,"seo":11,"localizations":3629},382,"fr3j1duys4bku4syv0v3txb0","Как проверить, находят ли пользователи новую функцию после релиза",501,"funkciya-vypushchena-polzovateli-ne-nashli-posle-reliza","2026-09-22T08:17:57.565Z","2026-09-22T13:27:28.606Z","2026-09-22T13:27:28.659Z",{"id":3590,"documentId":3591,"name":3592,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3593,"hash":3618,"ext":379,"mime":382,"size":3619,"url":3620,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3621,"updatedAt":3621,"publishedAt":3621},867,"nwg75ay7vb94yyttltm4ih20","photo_2026-09-22 16.21.04.jpeg",{"large":3594,"small":3600,"medium":3606,"thumbnail":3612},{"ext":379,"url":3595,"hash":3596,"mime":382,"name":3597,"path":11,"size":3598,"width":32,"height":33,"sizeInBytes":3599},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_22_16_21_04_7d54771237.jpeg","large_photo_2026_09_22_16_21_04_7d54771237","large_photo_2026-09-22 16.21.04.jpeg",21.15,21145,{"ext":379,"url":3601,"hash":3602,"mime":382,"name":3603,"path":11,"size":3604,"width":40,"height":41,"sizeInBytes":3605},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_22_16_21_04_7d54771237.jpeg","small_photo_2026_09_22_16_21_04_7d54771237","small_photo_2026-09-22 16.21.04.jpeg",7.79,7787,{"ext":379,"url":3607,"hash":3608,"mime":382,"name":3609,"path":11,"size":3610,"width":48,"height":40,"sizeInBytes":3611},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_22_16_21_04_7d54771237.jpeg","medium_photo_2026_09_22_16_21_04_7d54771237","medium_photo_2026-09-22 16.21.04.jpeg",13.97,13970,{"ext":379,"url":3613,"hash":3614,"mime":382,"name":3615,"path":11,"size":3616,"width":55,"height":56,"sizeInBytes":3617},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_22_16_21_04_7d54771237.jpeg","thumbnail_photo_2026_09_22_16_21_04_7d54771237","thumbnail_photo_2026-09-22 16.21.04.jpeg",2.81,2805,"photo_2026_09_22_16_21_04_7d54771237",47.71,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_22_16_21_04_7d54771237.jpeg","2026-09-22T13:24:19.449Z",[3623],{"__component":66,"id":3624,"text":3625},345,"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">После релиза команда видит новую функцию каждый день, а пользователь может пройти мимо неё. Низкое использование ещё не доказывает слабый спрос: вход бывает спрятан, название — непонятно, а сценарий — оборван после первого клика.\u003C\u002Fp>\u003Cp dir=\"auto\">Проверку можно собрать в короткую цепочку: увидел, понял, сделал, вернулся. Она показывает, на каком шаге теряется пользователь и какую правку стоит тестировать первой.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Почему одного счётчика использования недостаточно\u003C\u002Fh2>\u003Cp dir=\"auto\">Ноль действий допускает несколько объяснений. Возможность может быть не нужна целевой аудитории. Тот же результат получится, если человек не заметил пункт меню, не понял название или открыл экран и не увидел следующего шага.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому процент использования стоит читать вместе с событиями показа, первым осмысленным действием, завершением сценария и повторным обращением к функции. Важно считать только целевой сегмент: метрика для преподавателей не должна включать учеников и администраторов.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Как обратная связь изменила навигацию «Онлайн-школы №1»\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-22 16.20.57.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_22_16_20_57_baf304124f.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_22_16_20_57_baf304124f.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_22_16_20_57_baf304124f.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_22_16_20_57_baf304124f.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_22_16_20_57_baf304124f.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Первый релиз \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fonlayn-shkola-1\">образовательной платформы\u003C\u002Fa> состоялся в апреле 2022 года. В продукте появились 18 ролей, активная аудитория достигла 2840 учеников за 30 дней. После запуска использование и сообщения пользователей показали, что часть интерфейсных решений мешает ежедневной работе.\u003C\u002Fp>\u003Cp dir=\"auto\">В первой версии постоянного списка курсов на экране не было. Чтобы сократить маршрут между предметами, курсы вынесли в левое меню и сделали доступными из любого раздела. Верхнюю панель упростили, небольшие экраны разгрузили, а расписание пересобрали по логике планировщика.\u003C\u002Fp>\u003Cp dir=\"auto\">На странице кейса зафиксирован рост удержания с 48% до 64% между периодами 2019–2020 и 2022–2025. Эту динамику нельзя связывать только с редизайном: за несколько лет менялась вся платформа. Конкретный результат интерфейсной правки — более короткие ключевые действия и понятный маршрут между курсами.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Четыре проверки после релиза\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-22 16.20.52.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_22_16_20_52_b8518ac2d8.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_22_16_20_52_b8518ac2d8.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_22_16_20_52_b8518ac2d8.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_22_16_20_52_b8518ac2d8.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_22_16_20_52_b8518ac2d8.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.amplitude.com\u002Fdocs\u002Fget-started\u002Fanalyze-feature-adoption\">Документация Amplitude\u003C\u002Fa> предлагает оценивать принятие функции через уникальных пользователей, долю активной аудитории, первое использование, частоту и повторные действия. Для практической диагностики эти показатели можно собрать в четыре шага.\u003C\u002Fp>\u003Ch3 dir=\"auto\">1. Увидел точку входа\u003C\u002Fh3>\u003Cp dir=\"auto\">Сначала измеряют, сколько пользователей из нужного сегмента увидели кнопку, пункт меню, карточку или ссылку. Если аудитория доходит до экрана, но не замечает вход, проверяют расположение, навигацию и момент показа.\u003C\u002Fp>\u003Ch3 dir=\"auto\">2. Понял назначение\u003C\u002Fh3>\u003Cp dir=\"auto\">Клик не гарантирует понимания. Переход от входа к первому осмысленному действию показывает, совпало ли название с задачей пользователя. В меню понятный «отчёт по посещаемости» работает лучше внутреннего названия модуля.\u003C\u002Fp>\u003Ch3 dir=\"auto\">3. Завершил действие\u003C\u002Fh3>\u003Cp dir=\"auto\">Далее смотрят путь до результата: точки выхода, ошибки, возвраты назад и обращения в поддержку. Проблема часто находится за пределами нового экрана — в правах, долгой загрузке, лишнем поле или неочевидном месте сохранённого результата.\u003C\u002Fp>\u003Ch3 dir=\"auto\">4. Вернулся к функции\u003C\u002Fh3>\u003Cp dir=\"auto\">Повторное использование показывает, встроилась ли возможность в работу. Окно проверки зависит от сценария: расписание открывают ежедневно, месячный отчёт — заметно реже. Если повторения нет, цифры дополняют интервью, обращениями и анализом следующего шага.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Что менять в первую очередь\u003C\u002Fh2>\u003Cp dir=\"auto\">Ноль на этапе «увидел» ведёт к навигации. Провал после клика — к названию и сценарию. Завершение без повторения — к ценности или неверно выбранному ритму.\u003C\u002Fp>\u003Cp dir=\"auto\">После запуска стоит выбрать одну функцию, один сегмент и одно узкое место. Затем изменить его и повторить измерение. Одновременная смена названия, навигации, формы и онбординга не покажет, какая правка дала результат.\u003C\u002Fp>\u003Cp dir=\"auto\">Для постоянных действий подсказка поверх интерфейса редко заменяет видимый вход. В кейсе школы левое меню сработало именно потому, что находится рядом в момент перехода к другому предмету.\u003C\u002Fp>\u003Cp dir=\"auto\">Нужно проверить путь новой функции после релиза? Команда Qtim \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fproduct-support\">разберёт события, точки выхода и приоритетную гипотезу\u003C\u002Fa> для следующего теста.\u003C\u002Fp>",[3627,3628],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},[],{"id":3631,"documentId":3632,"title":3633,"date":3634,"description":11,"order":40,"slug":3635,"showOnMainPage":13,"createdAt":3636,"updatedAt":3637,"publishedAt":3638,"locale":17,"cover":3639,"content":3673,"media_event":11,"media_areas":3676,"seo":11,"localizations":3679},389,"wpw3ph9pm0j2gi5qq2d9zb32","Интеграция LMS и BI: события, метрики и роли доступа","2026-09-23","integraciya-lms-i-bi-sobytiya-metriki-roli","2026-09-23T07:35:31.275Z","2026-09-23T09:36:31.369Z","2026-09-23T09:36:31.476Z",{"id":3640,"documentId":3641,"name":3642,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":3643,"hash":3668,"ext":379,"mime":382,"size":3669,"url":3670,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3671,"updatedAt":3671,"publishedAt":3672},870,"xznrwwg2bafctnxzknb4scdo","photo_2026-09-23 12.31.48.jpeg",{"large":3644,"small":3650,"medium":3656,"thumbnail":3662},{"ext":379,"url":3645,"hash":3646,"mime":382,"name":3647,"path":11,"size":3648,"width":32,"height":1620,"sizeInBytes":3649},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_23_12_31_48_8648696340.jpeg","large_photo_2026_09_23_12_31_48_8648696340","large_photo_2026-09-23 12.31.48.jpeg",41.26,41263,{"ext":379,"url":3651,"hash":3652,"mime":382,"name":3653,"path":11,"size":3654,"width":40,"height":1626,"sizeInBytes":3655},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_23_12_31_48_8648696340.jpeg","small_photo_2026_09_23_12_31_48_8648696340","small_photo_2026-09-23 12.31.48.jpeg",15.43,15428,{"ext":379,"url":3657,"hash":3658,"mime":382,"name":3659,"path":11,"size":3660,"width":48,"height":1632,"sizeInBytes":3661},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_23_12_31_48_8648696340.jpeg","medium_photo_2026_09_23_12_31_48_8648696340","medium_photo_2026-09-23 12.31.48.jpeg",27.39,27389,{"ext":379,"url":3663,"hash":3664,"mime":382,"name":3665,"path":11,"size":3666,"width":1638,"height":1639,"sizeInBytes":3667},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_23_12_31_48_8648696340.jpeg","thumbnail_photo_2026_09_23_12_31_48_8648696340","thumbnail_photo_2026-09-23 12.31.48.jpeg",5.79,5794,"photo_2026_09_23_12_31_48_8648696340",94.98,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_23_12_31_48_8648696340.jpeg","2026-09-23T09:32:14.547Z","2026-09-23T09:32:14.548Z",[3674],{"__component":66,"id":1720,"text":3675},"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Руководитель открывает отчёт по курсу: средний процент прохождения не изменился. При этом в одной из групп несколько учеников уже пропускают вебинары, задерживают задания и приближаются к отчислению. В среднем значении их не видно.\u003C\u002Fp>\u003Cp dir=\"auto\">В BI попадают только итоговые метрики: доля завершивших курс, усреднённая оценка и число активных пользователей. По ним руководитель замечает проблему уже после того, как она повлияла на удержание и учебный результат.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Дашборд не восстановит событие, которого нет\u003C\u002Fh2>\u003Cp dir=\"auto\">Перечень графиков рано составлять, пока не определено решение сотрудника. Запрос «нужен отчёт по вовлечённости» не объясняет, какие действия считать вовлечённостью и что команда сделает после сигнала.\u003C\u002Fp>\u003Cp dir=\"auto\">Сначала ответьте на четыре вопроса:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e1857f7869e049f8b1a334a90ac04a310\">\u003Cp dir=\"auto\">Какое решение должна принять команда?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9cbdcbac532d102e9d58c54b084525c1\">\u003Cp dir=\"auto\">Какой сигнал нужен для этого решения?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e7ab6bd046449d739d643429f20682a93\">\u003Cp dir=\"auto\">Из каких наблюдаемых действий складывается сигнал?\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ead5893d445cb4a8d29097c0f585c9302\">\u003Cp dir=\"auto\">Где возникают эти действия и кто отвечает за их передачу?\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Методисту нужно заранее заметить ученика, которому требуется помощь. Для такого сигнала одной отметки недостаточно. В разных моделях обучения в расчёт входят пропуски занятий, задержки с домашними заданиями, несколько слабых результатов подряд или отсутствие активности в материалах. Состав показателя зависит от методологии школы, поэтому его фиксируют до разработки дашборда.\u003C\u002Fp>\u003Cp dir=\"auto\">В xAPI 2.0 каждая запись содержит actor, verb и object: кто совершил действие, что сделал и с каким объектом. При необходимости в неё добавляют результат, контекст и время. Внедрять стандарт целиком необязательно. Эта структура отделяет зафиксированное действие от рассчитанной метрики.\u003C\u002Fp>\u003Cp dir=\"auto\">Вместо строки «пользователь активен» BI получает факты: ученик открыл занятие, отправил работу, получил оценку, вошёл на вебинар, отсутствовал, пересдал тест. Из этой последовательности можно собирать разные показатели без доработки LMS под каждый новый отчёт.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Один статус «курс пройден» скрывает разные результаты\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-23 12.31.49.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_23_12_31_49_36b876a9b2.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_23_12_31_49_36b876a9b2.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_23_12_31_49_36b876a9b2.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_23_12_31_49_36b876a9b2.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_23_12_31_49_36b876a9b2.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Статус «пройден» может означать разные результаты. Для одного курса достаточно открыть все уроки, для другого — набрать проходной балл, для третьего — посетить обязательные занятия и защитить итоговую работу. Финальный статус не сообщает BI, по какому правилу он появился.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому вместе с действием нужно передавать контекст:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e502dd098c7e35000ad13e1780d40f79e\">\u003Cp dir=\"auto\">идентификатор ученика и его роль;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef97147b1a617288489ccf1a81e285deb\">\u003Cp dir=\"auto\">учебный объект и его версию;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e709e6c8316492589a6eb9097a31a552b\">\u003Cp dir=\"auto\">действие и результат;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e937286722a7e40c46400628b2581269c\">\u003Cp dir=\"auto\">время действия и время получения события;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5e970775c7d8317f868dda8316c91a9e\">\u003Cp dir=\"auto\">курс, поток, группу, преподавателя и источник;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e6d6161a9816f93c473dfae20be43c003\">\u003Cp dir=\"auto\">идентификатор сессии, когда путь проходит через внешние сервисы.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Версия учебного объекта нужна, когда методист меняет тест или порог прохождения посреди потока. Без версии в одном графике окажутся результаты, рассчитанные по разным правилам. Среднее останется математически верным, но его нельзя будет уверенно сравнивать между периодами.\u003C\u002Fp>\u003Cp dir=\"auto\">Названия событий нужно согласовать между системами. LMS отправляет lesson_finished, видеосервис — view_complete, мобильное приложение — module_done. Аналитик должен понимать, обозначают ли они одно действие или разные. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.1edtech.org\u002Fstandards\u002Fcaliper\">Caliper Analytics\u003C\u002Fa> решает похожую задачу через профили для оценивания, заданий, выставления оценок, сессий, чтения и других учебных сценариев. Даже без внедрения стандарта каждому действию можно задать одно согласованное название и определение.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Исправленный статус должен оставить след\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-23 12.31.50.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_23_12_31_50_d1f2d5d9e1.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_23_12_31_50_d1f2d5d9e1.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_23_12_31_50_d1f2d5d9e1.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_23_12_31_50_d1f2d5d9e1.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_23_12_31_50_d1f2d5d9e1.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Учебные данные меняются после первоначальной записи. Преподаватель исправляет отметку о присутствии, ученик пересдаёт тест, работа получает новую оценку после апелляции. Простая перезапись значения стирает историю: команда уже не объяснит, почему показатель за прошлую неделю изменился.\u003C\u002Fp>\u003Cp dir=\"auto\">Храните исходное событие и отдельное исправление со ссылкой на него. В xAPI записи неизменяемы, а ошибочную запись помечают недействительной отдельным событием. В другом хранилище механизм может называться иначе, но каждое исправление должно оставаться в истории.\u003C\u002Fp>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fmayak-study\">LMS «Маяка»\u003C\u002Fa> посещаемость связана с Контур.Толком. После занятия платформа получает статус ученика: присутствовал, отсутствовал или опоздал. Преподаватель может скорректировать отметку. Пропустивший урок ученик изучает материал и отправляет конспект преподавателю. После проверки занятие получает статус «восполнено», и пропуск перестаёт ухудшать текущую статистику.\u003C\u002Fp>\u003Cp dir=\"auto\">BI должен получать текущее состояние и историю переходов. Первое показывает, что происходит сейчас, второе — как изменялся статус. Без второго слоя спор об отчёте превращается в поиск того, кто и когда переписал значение.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Среднее прохождение не показывает, кому нужна помощь\u003C\u002Fh2>\u003Cp dir=\"auto\">Средний процент удобен для общего контроля, но сглаживает разные траектории. Два потока могут дать одинаковое значение: в одном почти все ученики движутся ровно, в другом часть прошла курс полностью, а часть перестала заниматься на старте. Командам в этих потоках потребуются разные действия.\u003C\u002Fp>\u003Cp dir=\"auto\">В LMS «Маяка» данные о посещаемости, домашних заданиях и пробных экзаменах собираются в отчёты. Отдельная выборка показывает учеников с риском отчисления, низкой вовлечённостью или риском провалить экзамен. Руководитель видит, где требуется внимание, преподаватель — работы, которые ещё не проверены. По одному набору событий руководитель получает общую сводку, а преподаватель — список работ, которые нужно проверить.\u003C\u002Fp>\u003Cp dir=\"auto\">Каждый показатель свяжите с действием сотрудника: связаться с учеником, пересмотреть материал, проверить нагрузку преподавателя, сравнить потоки или уточнить правило расчёта. Без этого график не помогает принять решение.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Один отчёт — разные выборки для руководителя и преподавателя\u003C\u002Fh2>\u003Cp dir=\"auto\">Ролевой доступ часто проектируют после метрик: сначала строят дашборд, затем скрывают отдельные страницы. Этого мало. Разным сотрудникам нужны одинаковые показатели, но на разных уровнях детализации.\u003C\u002Fp>\u003Cp dir=\"auto\">Руководителю продукта важна динамика по школе, курсам и потокам. Методисту — темы, задания и группы. Преподавателю — его ученики и работы. Сотруднику поддержки может понадобиться история конкретного пользователя без оценок других учащихся. Корпоративный клиент должен видеть только своих слушателей.\u003C\u002Fp>\u003Cp dir=\"auto\">Права задают минимум на трёх уровнях:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e6574f7e2d7be21aa96f5a1fbaab52712\">\u003Cp dir=\"auto\">какие показатели доступны роли;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec7edbfe669f605e15a182d9a75da9574\">\u003Cp dir=\"auto\">по каким строкам разрешена выборка, например только свой поток или организация;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ed77240b638583f26a3fbe6e96fb48db5\">\u003Cp dir=\"auto\">какие персональные поля можно открыть внутри записи.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Фильтр в интерфейсе не заменяет контроль на уровне данных. Полный набор строк, уже переданный браузеру, остаётся доступным через запросы и выгрузки. Ролевая модель должна работать в API и хранилище, а BI наследовать эти ограничения.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Минимальный контракт между LMS и BI помещается на одной странице\u003C\u002Fh2>\u003Cp dir=\"auto\">До разработки зафиксируйте короткий договор о данных между LMS и BI:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e429559a0025b58acca44ed0d7caef391\">\u003Cp dir=\"auto\">список событий и точное значение каждого названия;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e7b5bcff3bfdfeba5aab07657d784677f\">\u003Cp dir=\"auto\">обязательные поля, типы данных и общие идентификаторы;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e16471a72929514d1985d9bd388fad308\">\u003Cp dir=\"auto\">правила повторной отправки, дедупликации и исправлений;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8a552b9d5b47f56f9b903dba42fe28f1\">\u003Cp dir=\"auto\">допустимую задержку между действием и появлением в отчёте;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e9493a5a54934a959cc2b67de609130f4\">\u003Cp dir=\"auto\">владельца события в LMS и владельца метрики в BI;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e771fdcfd940181555aa03d3da53902cc\">\u003Cp dir=\"auto\">роли, уровни детализации и правила выгрузки.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Отдельно задайте общие идентификаторы. Ученик в LMS, CRM, видеосервисе и платёжной системе должен связываться без сопоставления по имени или телефону. То же относится к курсу, группе, занятию и преподавателю. В спецификации \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fstandards.1edtech.org\u002Flti\u002Fspecifications\u002Fservices\u002Fcaliper_connector\u002Flti-spec-caliper\">Caliper Connector\u003C\u002Fa> для внешних учебных инструментов отдельно подчёркнута связь активности в рамках одной логической сессии. Поэтому источник и сессия входят в событие наравне с действием.\u003C\u002Fp>\u003Cp dir=\"auto\">Добавьте в договор контроль качества: долю событий без обязательных полей, дубли, задержку доставки и расхождение между итогом в LMS и витриной BI. Система мониторинга должна обнаружить расхождение раньше руководителя.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Один учебный контур — повод оставить аналитику внутри LMS\u003C\u002Fh2>\u003Cp dir=\"auto\">Внешняя BI-система нужна не каждой школе. Встроенных отчётов обычно достаточно, когда обучение идёт в одном продукте, определения показателей стабильны, ролей мало, а решения принимаются по текущему состоянию без сопоставления с продажами, платежами и поддержкой.\u003C\u002Fp>\u003Cp dir=\"auto\">Выносить аналитику в отдельную BI-систему стоит, когда данные приходят из нескольких источников, меняются правила сегментации, нужны исторические срезы и разные уровни доступа. Ещё один признак — регулярные вопросы, на которые команда отвечает выгрузкой и склейкой таблиц.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Сначала решение, затем событие и только потом график\u003C\u002Fh2>\u003Cp dir=\"auto\">Средний процент скрывает отток, пока BI получает только итог по группе, а не события отдельных учеников. Выберите один управленческий вопрос, ошибка в котором влияет на удержание или учебный результат, например как заранее увидеть риск ухода. Зафиксируйте сигнал, события, формулу, роли и допустимую задержку. Затем соберите пилотный отчёт на одном курсе и проверьте, приводит ли он к конкретному действию команды.\u003C\u002Fp>\u003Cp dir=\"auto\">Если такой отчёт сейчас собирается из LMS, видеосервиса, CRM и таблиц, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fedtech\">приходите к нам с одним сценарием\u003C\u002Fa>. Разберём решение сотрудника, сигнал, события и минимальный контракт данных.\u003C\u002Fp>",[3677,3678],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17},[],{"id":3681,"documentId":3682,"title":3683,"date":3634,"description":11,"order":3584,"slug":3684,"showOnMainPage":13,"createdAt":3685,"updatedAt":3686,"publishedAt":3687,"locale":17,"cover":3688,"content":3722,"media_event":11,"media_areas":3725,"seo":11,"localizations":3728},405,"x98ekbdd625a0mr6v48wtojn","Тарифы, лимиты и пробный период в SaaS: что заложить в архитектуру до запуска","tarify-limity-probnyy-period-saas","2026-09-23T07:34:07.671Z","2026-09-23T13:29:13.000Z","2026-09-23T13:29:13.071Z",{"id":3689,"documentId":3690,"name":3691,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":3692,"hash":3717,"ext":379,"mime":382,"size":3718,"url":3719,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3720,"updatedAt":3720,"publishedAt":3721},875,"peprre620uurk1pnzuiptvr5","photo_2026-09-23 12.31.51.jpeg",{"large":3693,"small":3699,"medium":3705,"thumbnail":3711},{"ext":379,"url":3694,"hash":3695,"mime":382,"name":3696,"path":11,"size":3697,"width":32,"height":1620,"sizeInBytes":3698},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_23_12_31_51_fb60f81120.jpeg","large_photo_2026_09_23_12_31_51_fb60f81120","large_photo_2026-09-23 12.31.51.jpeg",33.59,33586,{"ext":379,"url":3700,"hash":3701,"mime":382,"name":3702,"path":11,"size":3703,"width":40,"height":1626,"sizeInBytes":3704},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_23_12_31_51_fb60f81120.jpeg","small_photo_2026_09_23_12_31_51_fb60f81120","small_photo_2026-09-23 12.31.51.jpeg",12.06,12057,{"ext":379,"url":3706,"hash":3707,"mime":382,"name":3708,"path":11,"size":3709,"width":48,"height":1632,"sizeInBytes":3710},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_23_12_31_51_fb60f81120.jpeg","medium_photo_2026_09_23_12_31_51_fb60f81120","medium_photo_2026-09-23 12.31.51.jpeg",22.06,22063,{"ext":379,"url":3712,"hash":3713,"mime":382,"name":3714,"path":11,"size":3715,"width":1638,"height":1639,"sizeInBytes":3716},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_23_12_31_51_fb60f81120.jpeg","thumbnail_photo_2026_09_23_12_31_51_fb60f81120","thumbnail_photo_2026-09-23 12.31.51.jpeg",4.27,4266,"photo_2026_09_23_12_31_51_fb60f81120",78.06,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_23_12_31_51_fb60f81120.jpeg","2026-09-23T09:39:02.910Z","2026-09-23T09:39:02.911Z",[3723],{"__component":66,"id":3533,"text":3724},"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Продакт переносит расширенную аналитику из тарифа Pro в Business. В таблице это одна строка. В продукте выясняется, что проверка тарифа живёт в интерфейсе, API, фоновых задачах и кабинете поддержки. Изменение на лендинге занимает час, а выпуск новой версии растягивается на недели.\u003C\u002Fp>\u003Cp dir=\"auto\">Так появляется дорогая зависимость: каждое решение о монетизации становится задачей разработки. Команда медленнее проверяет гипотезы, пользователи получают разные права в разных частях сервиса, а поддержка разбирается, почему оплата прошла, но функция всё ещё закрыта.\u003C\u002Fp>\u003Cp dir=\"auto\">В Qtim мы проектируем SaaS-платформы и заранее разделяем каталог тарифов, доступ к функциям, учёт потребления и расчёты. В статье разберу, какие решения нужны до первой оплаты, чтобы новый тариф без нового релиза стал нормальным продуктовым сценарием.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Тариф — это версия правил, которую продукт должен помнить\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-23 12.31.54.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_23_12_31_54_f7cfa6021e.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_23_12_31_54_f7cfa6021e.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_23_12_31_54_f7cfa6021e.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_23_12_31_54_f7cfa6021e.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_23_12_31_54_f7cfa6021e.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Название тарифа редко отвечает на технический вопрос. «Business» может включать 50 пользователей, расширенную аналитику, SSO и хранение данных в течение года. Через месяц состав поменяется, а часть клиентов останется на старых условиях.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому системе нужен каталог продуктов и цен с версиями. У каждой версии есть период действия, валюта, расчётный интервал, набор прав и правила лимитов. Подписка клиента ссылается на конкретную версию. Обновление публичного тарифа не должно задним числом менять уже оплаченные условия.\u003C\u002Fp>\u003Cp dir=\"auto\">Доступ к функциям лучше хранить отдельно от названия плана. Связка выглядит так:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"ea21d72fd4a032877ce990355e1999fea\">\u003Cp dir=\"auto\">Клиентский контур → подписка → версия тарифа → права → лимиты → фактический доступ.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Такой подход используют и готовые биллинговые платформы. Например, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.stripe.com\u002Fbilling\u002Fentitlements\">Stripe связывает продукты с правами\u003C\u002Fa> и обновляет активные права клиента по событиям подписки. Для собственной системы принцип тот же: модуль аналитики спрашивает, доступен ли ему конкретное право, и не знает, как маркетинг назвал пакет на лендинге.\u003C\u002Fp>\u003Cp dir=\"auto\">Есть обратная сторона. Появляется ещё один слой данных, который нужно синхронизировать. Зато правила лежат в одном месте, их можно версионировать, тестировать и менять без поиска десятков условий в коде.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Лимит начинается с события, которое можно пересчитать\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-23 12.31.56.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_23_12_31_56_75f53bab28.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_23_12_31_56_75f53bab28.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_23_12_31_56_75f53bab28.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_23_12_31_56_75f53bab28.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_23_12_31_56_75f53bab28.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">Фраза «до 10 000 операций в месяц» выглядит готовым правилом. На деле сначала нужно определить операцию. Повторный запрос считается второй операцией? Что делать с отменённой обработкой? В каком часовом поясе начинается месяц? Когда пользователь увидит обновлённый остаток?\u003C\u002Fp>\u003Cp dir=\"auto\">Для тарификации по потреблению нужен отдельный поток событий. Минимальный набор полей:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e92db84ec12ffad1e9f47255eb5ccaeb9\">\u003Cp dir=\"auto\">идентификатор клиентского контура;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e74ffcf6c1b65e568dfbd94d32a758597\">\u003Cp dir=\"auto\">тип измеряемого действия;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e70e41fe90ff305af917e9cf8201f6834\">\u003Cp dir=\"auto\">значение и единица измерения;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"efe4ca43aa78d8e1630222cc18a7a3cd4\">\u003Cp dir=\"auto\">время события;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e872f51774f2818e18b97d7480d9877b4\">\u003Cp dir=\"auto\">уникальный ключ для защиты от повторной записи;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8673b97991ba06843773d3eff6ebbc78\">\u003Cp dir=\"auto\">версия правила, по которому событие будет рассчитано.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.stripe.com\u002Fbilling\u002Fsubscriptions\u002Fusage-based\u002Fhow-it-works\">Stripe описывает похожий жизненный цикл для тарификации по потреблению\u003C\u002Fa>: приём событий, агрегация, расчёт и контроль порогов. Актуальная сумма может обновляться асинхронно. Поэтому экран пользователя, биллинговая база и платёжный провайдер нельзя считать одной системой с мгновенно одинаковыми данными.\u003C\u002Fp>\u003Cp dir=\"auto\">Отдельное решение касается самого ограничения. Жёсткий лимит блокирует действие. Мягкий разрешает превышение и создаёт доплату. Информационный только предупреждает. Для одной функции могут действовать разные режимы: API останавливается на пороге, хранилище даёт короткий запас, а число сотрудников переводит клиента на следующий пакет.\u003C\u002Fp>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Farchitecture\u002Fguide\u002Fmultitenant\u002Fconsiderations\u002Fmeasure-consumption\">Рекомендации Microsoft по мультитенантным системам\u003C\u002Fa> связывают учёт потребления с двумя задачами: понять себестоимость обслуживания каждого клиентского контура и корректно выставить счёт. Облачная инфраструктура часто не даёт готовой разбивки по клиентам. Значит, единицу потребления и способ её записи нужно выбрать в архитектуре продукта.\u003C\u002Fp>\u003Ch2 dir=\"auto\">14 дней ничего не говорят без момента первой ценности\u003C\u002Fh2>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fchartmogul.com\u002Freports\u002Fsaas-conversion-report\u002F\">исследовании ChartMogul и ProductLed\u003C\u002Fa> среди 200 B2B-продуктов 57% использовали бесплатный пробный период, а у 62% из них он длился 14 дней. Медианная конверсия из бесплатного доступа в оплату составила 8%. Эти цифры описывают выборку и не задают норматив для любого SaaS.\u003C\u002Fp>\u003Cp dir=\"auto\">Длительность стоит считать от пути пользователя до первой ценности. Сервис аналитики может показать результат после подключения источника и импорта данных. Корпоративная платформа ждёт приглашения коллег, настройки ролей и согласования безопасности. Одинаковые 14 дней дают этим продуктам разный шанс на активацию.\u003C\u002Fp>\u003Cp dir=\"auto\">Пробный период требует собственной модели состояний. Система должна знать:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"edbfe4443b0ae9896d295a2ee686a0323\">\u003Cp dir=\"auto\">когда пробный доступ начался и закончится;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ea35bd74584a86e0228753d1f4c5053c4\">\u003Cp dir=\"auto\">какие функции и лимиты действуют в этот период;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e23ef4c1882388e455cd27fe2b2d9cf2f\">\u003Cp dir=\"auto\">нужна ли платёжная карта;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e8862c5ba63d04ef9cd8d213e10b84fc0\">\u003Cp dir=\"auto\">что произойдёт после окончания: оплата, пауза, ограниченный режим или отмена;\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e5c75e532573755679375293733ddb0b0\">\u003Cp dir=\"auto\">можно ли продлить доступ и кто имеет на это право.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">До запуска полезно зафиксировать события аналитики: регистрация, начало пробного периода, ключевое действие, достижение первой ценности, ввод платёжных данных, оплата и отмена. Тогда команда увидит, где заканчивается интерес и начинается трение. Одна конверсия в оплату этого не объяснит.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Апгрейд занимает секунды, последствия живут весь расчётный период\u003C\u002Fh2>\u003Cp dir=\"auto\">Кнопка «Перейти на Business» запускает цепочку решений. Права можно выдать сразу, а доплату рассчитать пропорционально оставшимся дням. Понижение тарифа чаще вступает в силу со следующего периода, чтобы не отбирать уже оплаченный доступ. Просроченный платёж может включить льготный срок, затем ограниченный режим и только потом блокировку.\u003C\u002Fp>\u003Cp dir=\"auto\">Эти переходы лучше описать как явные состояния и события. Подписка активирована. Тариф изменён. Счёт оплачен. Платёж отклонён. Подписка поставлена на паузу. Период завершён. Обработчики получают события повторно, поэтому операции выдачи прав и начисления должны быть идемпотентными.\u003C\u002Fp>\u003Cp dir=\"auto\">Особенно опасно смешивать платёжный статус и доступ. Платёжный провайдер отвечает за деньги, а продукт решает, что пользователь может делать прямо сейчас. Между ними всегда возможна задержка, повторная доставка вебхука или временная ошибка. Нужны журнал событий, повторные попытки и регулярная сверка подписок, счетов и активных прав.\u003C\u002Fp>\u003Cp dir=\"auto\">Так работает \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fscanwow\">ScanWow\u003C\u002Fa> — платформа 3D-моделей, которую мы разработали. Тариф задаёт месячный лимит скачиваний и набор прав, а PayPal передаёт статусы платежей через вебхуки. Если пользователь отключает автопродление, доступ сохраняется до конца оплаченного периода, после чего аккаунт автоматически возвращается на Free.\u003C\u002Fp>\u003Cp dir=\"auto\">Поддержке тоже нужен интерфейс для этой модели. Сотрудник должен видеть версию тарифа, использованный лимит, историю переходов и причину текущего ограничения. Возможность выдать временное право или кредит требует срока действия, автора изменения и записи в журнале. Иначе помощь одному клиенту превращается в бессрочное исключение.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Пять решений, которые нужны до первой оплаты\u003C\u002Fh2>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"e37afafef4d0796cc7c40e18cbc7e57a8\">\u003Cp dir=\"auto\">Единица ценности. За что клиент готов платить: место сотрудника, документ, обработанную операцию, объём данных или результат вычисления.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ef0970c197939d0b03cd221ec4fef5093\">\u003Cp dir=\"auto\">Версия тарифа. Какие цены, интервалы, права и лимиты действуют вместе, когда версия вступает в силу и что происходит со старыми подписками.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ee2a761ead259b20a6c81514e1de6c3d4\">\u003Cp dir=\"auto\">Модель доступа. Где хранится набор прав и какой сервис принимает окончательное решение о доступе.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ebb3c8ffe5e4d9b17d5d2a0a556201686\">\u003Cp dir=\"auto\">Переходы. Как работают пробный период, апгрейд, понижение, пауза, просрочка, отмена и возврат.\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e1c5ecf47b7bae076fa9e5568a307e057\">\u003Cp dir=\"auto\">Проверка. Какие события попадут в аналитику и аудит, как система сверяет расчёты и что увидит поддержка при расхождении.\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">Этот список не требует заранее угадать идеальную цену. Он создаёт точки, в которых цену и упаковку можно менять без переписывания продукта. На старте достаточно одной рабочей модели, но её границы должны быть явными.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Новый тариф без нового релиза\u003C\u002Fh2>\u003Cp dir=\"auto\">Продакт снова переносит аналитику из Pro в Business. Теперь он создаёт новую версию тарифа и назначает дату действия. Система обновляет права по событию, сохраняет старые условия для действующих клиентов и показывает поддержке историю изменения. Команда разработки подключается только при изменении самого продуктового механизма.\u003C\u002Fp>\u003Cp dir=\"auto\">Правило простое: сначала определите единицу ценности и состояния подписки, затем проектируйте каталог тарифов, права и биллинг вокруг них.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы можем разобрать вашу модель монетизации и заложить тарифы, лимиты, пробный период и переходы в архитектуру SaaS-платформы. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fsaas\">Обсудить SaaS-проект с нами.\u003C\u002Fa>\u003C\u002Fp>",[3726,3727],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},[],{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17,"media":3730},[3731,3744,3757,3770],{"id":679,"documentId":680,"title":681,"date":682,"description":683,"order":684,"slug":685,"showOnMainPage":13,"createdAt":686,"updatedAt":687,"publishedAt":688,"locale":17,"cover":3732,"content":3738,"media_event":11,"media_areas":3740,"seo":11,"localizations":3743},{"id":690,"documentId":691,"name":692,"alternativeText":11,"caption":11,"width":23,"height":23,"formats":3733,"hash":718,"ext":26,"mime":29,"size":719,"url":720,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":721,"updatedAt":721,"publishedAt":721},{"large":3734,"small":3735,"medium":3736,"thumbnail":3737},{"ext":26,"url":695,"hash":696,"mime":29,"name":697,"path":11,"size":698,"width":32,"height":32,"sizeInBytes":699},{"ext":26,"url":701,"hash":702,"mime":29,"name":703,"path":11,"size":704,"width":40,"height":40,"sizeInBytes":705},{"ext":26,"url":707,"hash":708,"mime":29,"name":709,"path":11,"size":710,"width":48,"height":48,"sizeInBytes":711},{"ext":26,"url":713,"hash":714,"mime":29,"name":715,"path":11,"size":716,"width":56,"height":56,"sizeInBytes":717},[3739],{"__component":66,"id":56,"text":724},[3741,3742],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":790,"documentId":791,"title":792,"date":793,"description":794,"order":684,"slug":795,"showOnMainPage":13,"createdAt":796,"updatedAt":797,"publishedAt":798,"locale":17,"cover":3745,"content":3751,"media_event":11,"media_areas":3753,"seo":11,"localizations":3756},{"id":800,"documentId":801,"name":802,"alternativeText":11,"caption":11,"width":23,"height":23,"formats":3746,"hash":828,"ext":752,"mime":382,"size":829,"url":830,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":831,"updatedAt":831,"publishedAt":832},{"large":3747,"small":3748,"medium":3749,"thumbnail":3750},{"ext":752,"url":805,"hash":806,"mime":382,"name":807,"path":11,"size":808,"width":32,"height":32,"sizeInBytes":809},{"ext":752,"url":811,"hash":812,"mime":382,"name":813,"path":11,"size":814,"width":40,"height":40,"sizeInBytes":815},{"ext":752,"url":817,"hash":818,"mime":382,"name":819,"path":11,"size":820,"width":48,"height":48,"sizeInBytes":821},{"ext":752,"url":823,"hash":824,"mime":382,"name":825,"path":11,"size":826,"width":56,"height":56,"sizeInBytes":827},[3752],{"__component":66,"id":835,"text":836},[3754,3755],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":737,"documentId":738,"title":739,"date":740,"description":741,"order":684,"slug":742,"showOnMainPage":13,"createdAt":743,"updatedAt":744,"publishedAt":745,"locale":17,"cover":3758,"content":3764,"media_event":11,"media_areas":3766,"seo":11,"localizations":3769},{"id":747,"documentId":748,"name":749,"alternativeText":11,"caption":11,"width":23,"height":23,"formats":3759,"hash":776,"ext":752,"mime":382,"size":777,"url":778,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":779,"updatedAt":779,"publishedAt":780},{"large":3760,"small":3761,"medium":3762,"thumbnail":3763},{"ext":752,"url":753,"hash":754,"mime":382,"name":755,"path":11,"size":756,"width":32,"height":32,"sizeInBytes":757},{"ext":752,"url":759,"hash":760,"mime":382,"name":761,"path":11,"size":762,"width":40,"height":40,"sizeInBytes":763},{"ext":752,"url":765,"hash":766,"mime":382,"name":767,"path":11,"size":768,"width":48,"height":48,"sizeInBytes":769},{"ext":752,"url":771,"hash":772,"mime":382,"name":773,"path":11,"size":774,"width":56,"height":56,"sizeInBytes":775},[3765],{"__component":66,"id":783,"text":784},[3767,3768],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":1050,"documentId":1051,"title":1052,"date":1053,"description":1054,"order":684,"slug":1055,"showOnMainPage":13,"createdAt":1056,"updatedAt":1057,"publishedAt":1058,"locale":17,"cover":3771,"content":3777,"media_event":11,"media_areas":3780,"seo":11,"localizations":3783},{"id":1060,"documentId":1061,"name":1062,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":3772,"hash":1090,"ext":1066,"mime":29,"size":1091,"url":1092,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1093,"updatedAt":1093,"publishedAt":1094},{"large":3773,"small":3774,"medium":3775,"thumbnail":3776},{"ext":1066,"url":1067,"hash":1068,"mime":29,"name":1069,"path":11,"size":1070,"width":32,"height":32,"sizeInBytes":1071},{"ext":1066,"url":1073,"hash":1074,"mime":29,"name":1075,"path":11,"size":1076,"width":40,"height":40,"sizeInBytes":1077},{"ext":1066,"url":1079,"hash":1080,"mime":29,"name":1081,"path":11,"size":1082,"width":48,"height":48,"sizeInBytes":1083},{"ext":1066,"url":1085,"hash":1086,"mime":29,"name":1087,"path":11,"size":1088,"width":56,"height":56,"sizeInBytes":1089},[3778,3779],{"__component":66,"id":1097,"text":1098},{"__component":1100,"id":1101},[3781,3782],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":728,"documentId":729,"title":730,"slug":731,"order":40,"createdAt":732,"updatedAt":733,"publishedAt":734,"locale":17},[],{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17,"media":3785},[3786,3799,3812,3825,3838,3850,3863,3876,3889,3902],{"id":998,"documentId":999,"title":1000,"date":1001,"description":11,"order":40,"slug":1002,"showOnMainPage":13,"createdAt":1003,"updatedAt":1004,"publishedAt":1005,"locale":17,"cover":3787,"content":3793,"media_event":11,"media_areas":3795,"seo":11,"localizations":3798},{"id":1007,"documentId":1008,"name":1009,"alternativeText":11,"caption":11,"width":1010,"height":1011,"formats":3788,"hash":1037,"ext":752,"mime":382,"size":1038,"url":1039,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1040,"updatedAt":1040,"publishedAt":1040},{"large":3789,"small":3790,"medium":3791,"thumbnail":3792},{"ext":752,"url":1014,"hash":1015,"mime":382,"name":1016,"path":11,"size":1017,"width":32,"height":32,"sizeInBytes":1018},{"ext":752,"url":1020,"hash":1021,"mime":382,"name":1022,"path":11,"size":1023,"width":40,"height":40,"sizeInBytes":1024},{"ext":752,"url":1026,"hash":1027,"mime":382,"name":1028,"path":11,"size":1029,"width":48,"height":48,"sizeInBytes":1030},{"ext":752,"url":1032,"hash":1033,"mime":382,"name":1034,"path":11,"size":1035,"width":56,"height":56,"sizeInBytes":1036},[3794],{"__component":66,"id":1043,"text":1044},[3796,3797],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":893,"documentId":894,"title":895,"date":896,"description":11,"order":40,"slug":897,"showOnMainPage":13,"createdAt":898,"updatedAt":899,"publishedAt":900,"locale":17,"cover":3800,"content":3806,"media_event":11,"media_areas":3808,"seo":11,"localizations":3811},{"id":902,"documentId":903,"name":904,"alternativeText":11,"caption":11,"width":905,"height":905,"formats":3801,"hash":931,"ext":752,"mime":382,"size":932,"url":933,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":934,"updatedAt":935,"publishedAt":934},{"large":3802,"small":3803,"medium":3804,"thumbnail":3805},{"ext":752,"url":908,"hash":909,"mime":382,"name":910,"path":11,"size":911,"width":32,"height":32,"sizeInBytes":912},{"ext":752,"url":914,"hash":915,"mime":382,"name":916,"path":11,"size":917,"width":40,"height":40,"sizeInBytes":918},{"ext":752,"url":920,"hash":921,"mime":382,"name":922,"path":11,"size":923,"width":48,"height":48,"sizeInBytes":924},{"ext":752,"url":926,"hash":927,"mime":382,"name":928,"path":11,"size":929,"width":56,"height":56,"sizeInBytes":930},[3807],{"__component":66,"id":938,"text":939},[3809,3810],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":842,"documentId":843,"title":844,"date":845,"description":11,"order":40,"slug":846,"showOnMainPage":13,"createdAt":847,"updatedAt":848,"publishedAt":849,"locale":17,"cover":3813,"content":3819,"media_event":11,"media_areas":3821,"seo":11,"localizations":3824},{"id":851,"documentId":852,"name":853,"alternativeText":11,"caption":11,"width":854,"height":854,"formats":3814,"hash":880,"ext":26,"mime":29,"size":881,"url":882,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":883,"updatedAt":883,"publishedAt":883},{"large":3815,"small":3816,"medium":3817,"thumbnail":3818},{"ext":26,"url":857,"hash":858,"mime":29,"name":859,"path":11,"size":860,"width":32,"height":32,"sizeInBytes":861},{"ext":26,"url":863,"hash":864,"mime":29,"name":865,"path":11,"size":866,"width":40,"height":40,"sizeInBytes":867},{"ext":26,"url":869,"hash":870,"mime":29,"name":871,"path":11,"size":872,"width":48,"height":48,"sizeInBytes":873},{"ext":26,"url":875,"hash":876,"mime":29,"name":877,"path":11,"size":878,"width":56,"height":56,"sizeInBytes":879},[3820],{"__component":66,"id":886,"text":887},[3822,3823],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":783,"documentId":945,"title":946,"date":947,"description":11,"order":40,"slug":948,"showOnMainPage":13,"createdAt":949,"updatedAt":950,"publishedAt":951,"locale":17,"cover":3826,"content":3832,"media_event":11,"media_areas":3834,"seo":11,"localizations":3837},{"id":953,"documentId":954,"name":955,"alternativeText":11,"caption":11,"width":956,"height":957,"formats":3827,"hash":983,"ext":752,"mime":382,"size":984,"url":985,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":986,"updatedAt":987,"publishedAt":988},{"large":3828,"small":3829,"medium":3830,"thumbnail":3831},{"ext":752,"url":960,"hash":961,"mime":382,"name":962,"path":11,"size":963,"width":32,"height":32,"sizeInBytes":964},{"ext":752,"url":966,"hash":967,"mime":382,"name":968,"path":11,"size":969,"width":40,"height":40,"sizeInBytes":970},{"ext":752,"url":972,"hash":973,"mime":382,"name":974,"path":11,"size":975,"width":48,"height":48,"sizeInBytes":976},{"ext":752,"url":978,"hash":979,"mime":382,"name":980,"path":11,"size":981,"width":56,"height":56,"sizeInBytes":982},[3833],{"__component":66,"id":991,"text":992},[3835,3836],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1314,"documentId":1315,"title":1316,"date":1317,"description":11,"order":40,"slug":1318,"showOnMainPage":13,"createdAt":1319,"updatedAt":1320,"publishedAt":1321,"locale":17,"cover":3839,"content":3844,"media_event":11,"media_areas":3846,"seo":11,"localizations":3849},{"id":1323,"documentId":1324,"name":1325,"alternativeText":11,"caption":11,"width":1326,"height":1326,"formats":3840,"hash":1346,"ext":26,"mime":29,"size":1347,"url":1348,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1349,"updatedAt":1349,"publishedAt":1349},{"small":3841,"medium":3842,"thumbnail":3843},{"ext":26,"url":1329,"hash":1330,"mime":29,"name":1331,"path":11,"size":1332,"width":40,"height":40,"sizeInBytes":1333},{"ext":26,"url":1335,"hash":1336,"mime":29,"name":1337,"path":11,"size":1338,"width":48,"height":48,"sizeInBytes":1339},{"ext":26,"url":1341,"hash":1342,"mime":29,"name":1343,"path":11,"size":1344,"width":56,"height":56,"sizeInBytes":1345},[3845],{"__component":66,"id":1352,"text":1353},[3847,3848],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1211,"documentId":1212,"title":1213,"date":1214,"description":11,"order":40,"slug":1215,"showOnMainPage":13,"createdAt":1216,"updatedAt":1217,"publishedAt":1218,"locale":17,"cover":3851,"content":3857,"media_event":11,"media_areas":3859,"seo":11,"localizations":3862},{"id":1220,"documentId":1221,"name":1222,"alternativeText":11,"caption":11,"width":1223,"height":1223,"formats":3852,"hash":1249,"ext":752,"mime":382,"size":1250,"url":1251,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1252,"updatedAt":1253,"publishedAt":1252},{"large":3853,"small":3854,"medium":3855,"thumbnail":3856},{"ext":752,"url":1226,"hash":1227,"mime":382,"name":1228,"path":11,"size":1229,"width":32,"height":32,"sizeInBytes":1230},{"ext":752,"url":1232,"hash":1233,"mime":382,"name":1234,"path":11,"size":1235,"width":40,"height":40,"sizeInBytes":1236},{"ext":752,"url":1238,"hash":1239,"mime":382,"name":1240,"path":11,"size":1241,"width":48,"height":48,"sizeInBytes":1242},{"ext":752,"url":1244,"hash":1245,"mime":382,"name":1246,"path":11,"size":1247,"width":56,"height":56,"sizeInBytes":1248},[3858],{"__component":66,"id":1256,"text":1257},[3860,3861],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":835,"documentId":1263,"title":1264,"date":1265,"description":11,"order":40,"slug":1266,"showOnMainPage":13,"createdAt":1267,"updatedAt":1268,"publishedAt":1269,"locale":17,"cover":3864,"content":3870,"media_event":11,"media_areas":3872,"seo":11,"localizations":3875},{"id":1271,"documentId":1272,"name":1273,"alternativeText":11,"caption":11,"width":1274,"height":1274,"formats":3865,"hash":1300,"ext":752,"mime":382,"size":1301,"url":1302,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1303,"updatedAt":1304,"publishedAt":1303},{"large":3866,"small":3867,"medium":3868,"thumbnail":3869},{"ext":752,"url":1277,"hash":1278,"mime":382,"name":1279,"path":11,"size":1280,"width":32,"height":32,"sizeInBytes":1281},{"ext":752,"url":1283,"hash":1284,"mime":382,"name":1285,"path":11,"size":1286,"width":40,"height":40,"sizeInBytes":1287},{"ext":752,"url":1289,"hash":1290,"mime":382,"name":1291,"path":11,"size":1292,"width":48,"height":48,"sizeInBytes":1293},{"ext":752,"url":1295,"hash":1296,"mime":382,"name":1297,"path":11,"size":1298,"width":56,"height":56,"sizeInBytes":1299},[3871],{"__component":66,"id":1307,"text":1308},[3873,3874],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":56,"documentId":1107,"title":1108,"date":1109,"description":11,"order":40,"slug":1110,"showOnMainPage":13,"createdAt":1111,"updatedAt":1112,"publishedAt":1113,"locale":17,"cover":3877,"content":3883,"media_event":11,"media_areas":3885,"seo":11,"localizations":3888},{"id":1115,"documentId":1116,"name":1117,"alternativeText":11,"caption":11,"width":1118,"height":1118,"formats":3878,"hash":1144,"ext":752,"mime":382,"size":1145,"url":1146,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1147,"updatedAt":1148,"publishedAt":1149},{"large":3879,"small":3880,"medium":3881,"thumbnail":3882},{"ext":752,"url":1121,"hash":1122,"mime":382,"name":1123,"path":11,"size":1124,"width":32,"height":32,"sizeInBytes":1125},{"ext":752,"url":1127,"hash":1128,"mime":382,"name":1129,"path":11,"size":1130,"width":40,"height":40,"sizeInBytes":1131},{"ext":752,"url":1133,"hash":1134,"mime":382,"name":1135,"path":11,"size":1136,"width":48,"height":48,"sizeInBytes":1137},{"ext":752,"url":1139,"hash":1140,"mime":382,"name":1141,"path":11,"size":1142,"width":56,"height":56,"sizeInBytes":1143},[3884],{"__component":66,"id":1152,"text":1153},[3886,3887],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1159,"documentId":1160,"title":1161,"date":1162,"description":11,"order":520,"slug":1163,"showOnMainPage":13,"createdAt":1164,"updatedAt":1165,"publishedAt":1166,"locale":17,"cover":3890,"content":3896,"media_event":11,"media_areas":3898,"seo":11,"localizations":3901},{"id":1168,"documentId":1169,"name":1170,"alternativeText":11,"caption":11,"width":1171,"height":1171,"formats":3891,"hash":1197,"ext":752,"mime":382,"size":1198,"url":1199,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1200,"updatedAt":1201,"publishedAt":1200},{"large":3892,"small":3893,"medium":3894,"thumbnail":3895},{"ext":752,"url":1174,"hash":1175,"mime":382,"name":1176,"path":11,"size":1177,"width":32,"height":32,"sizeInBytes":1178},{"ext":752,"url":1180,"hash":1181,"mime":382,"name":1182,"path":11,"size":1183,"width":40,"height":40,"sizeInBytes":1184},{"ext":752,"url":1186,"hash":1187,"mime":382,"name":1188,"path":11,"size":1189,"width":48,"height":48,"sizeInBytes":1190},{"ext":752,"url":1192,"hash":1193,"mime":382,"name":1194,"path":11,"size":1195,"width":56,"height":56,"sizeInBytes":1196},[3897],{"__component":66,"id":1204,"text":1205},[3899,3900],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":139,"documentId":140,"title":141,"date":142,"description":11,"order":6,"slug":143,"showOnMainPage":13,"createdAt":144,"updatedAt":145,"publishedAt":146,"locale":17,"cover":3903,"content":3909,"media_event":11,"media_areas":3911,"seo":11,"localizations":3914},{"id":148,"documentId":149,"name":150,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3904,"hash":176,"ext":26,"mime":29,"size":177,"url":178,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":179,"updatedAt":179,"publishedAt":179},{"large":3905,"small":3906,"medium":3907,"thumbnail":3908},{"ext":26,"url":153,"hash":154,"mime":29,"name":155,"path":11,"size":156,"width":32,"height":33,"sizeInBytes":157},{"ext":26,"url":159,"hash":160,"mime":29,"name":161,"path":11,"size":162,"width":40,"height":41,"sizeInBytes":163},{"ext":26,"url":165,"hash":166,"mime":29,"name":167,"path":11,"size":168,"width":48,"height":40,"sizeInBytes":169},{"ext":26,"url":171,"hash":172,"mime":29,"name":173,"path":11,"size":174,"width":55,"height":56,"sizeInBytes":175},[3910],{"__component":66,"id":182,"text":183},[3912,3913],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":187,"documentId":188,"title":189,"slug":190,"order":40,"createdAt":191,"updatedAt":191,"publishedAt":192,"locale":17},[],{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17,"media":3916},[3917,3930,3943,3956,3969,3982,3995,4008,4021,4034,4047,4095,4143],{"id":1359,"documentId":1360,"title":1361,"date":1362,"description":11,"order":40,"slug":1363,"showOnMainPage":13,"createdAt":1364,"updatedAt":1365,"publishedAt":1366,"locale":17,"cover":3918,"content":3924,"media_event":11,"media_areas":3926,"seo":11,"localizations":3929},{"id":1368,"documentId":1369,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3919,"hash":1396,"ext":26,"mime":29,"size":1397,"url":1398,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1399,"updatedAt":1399,"publishedAt":1399},{"large":3920,"small":3921,"medium":3922,"thumbnail":3923},{"ext":26,"url":1373,"hash":1374,"mime":29,"name":1375,"path":11,"size":1376,"width":32,"height":33,"sizeInBytes":1377},{"ext":26,"url":1379,"hash":1380,"mime":29,"name":1381,"path":11,"size":1382,"width":40,"height":41,"sizeInBytes":1383},{"ext":26,"url":1385,"hash":1386,"mime":29,"name":1387,"path":11,"size":1388,"width":48,"height":40,"sizeInBytes":1389},{"ext":26,"url":1391,"hash":1392,"mime":29,"name":1393,"path":11,"size":1394,"width":55,"height":56,"sizeInBytes":1395},[3925],{"__component":66,"id":1402,"text":1403},[3927,3928],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":1927,"documentId":1928,"title":1929,"date":1930,"description":11,"order":40,"slug":1931,"showOnMainPage":13,"createdAt":1932,"updatedAt":1933,"publishedAt":1934,"locale":17,"cover":3931,"content":3937,"media_event":11,"media_areas":3939,"seo":11,"localizations":3942},{"id":1936,"documentId":1937,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":3932,"hash":1959,"ext":26,"mime":29,"size":1960,"url":1961,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1962,"updatedAt":1962,"publishedAt":1963},{"large":3933,"small":3934,"medium":3935,"thumbnail":3936},{"ext":26,"url":1940,"hash":1941,"mime":29,"name":1375,"path":11,"size":1942,"width":32,"height":1620,"sizeInBytes":1943},{"ext":26,"url":1945,"hash":1946,"mime":29,"name":1381,"path":11,"size":1947,"width":40,"height":1626,"sizeInBytes":1948},{"ext":26,"url":1950,"hash":1951,"mime":29,"name":1387,"path":11,"size":1952,"width":48,"height":1632,"sizeInBytes":1953},{"ext":26,"url":1955,"hash":1956,"mime":29,"name":1393,"path":11,"size":1957,"width":1638,"height":1639,"sizeInBytes":1958},[3938],{"__component":66,"id":1966,"text":1967},[3940,3941],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2019,"documentId":2020,"title":2021,"date":2022,"description":11,"order":71,"slug":2023,"showOnMainPage":13,"createdAt":2024,"updatedAt":2025,"publishedAt":2026,"locale":17,"cover":3944,"content":3950,"media_event":11,"media_areas":3952,"seo":11,"localizations":3955},{"id":2028,"documentId":2029,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3945,"hash":2051,"ext":26,"mime":29,"size":2052,"url":2053,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2054,"updatedAt":2054,"publishedAt":2054},{"large":3946,"small":3947,"medium":3948,"thumbnail":3949},{"ext":26,"url":2032,"hash":2033,"mime":29,"name":1375,"path":11,"size":2034,"width":32,"height":33,"sizeInBytes":2035},{"ext":26,"url":2037,"hash":2038,"mime":29,"name":1381,"path":11,"size":2039,"width":40,"height":41,"sizeInBytes":2040},{"ext":26,"url":2042,"hash":2043,"mime":29,"name":1387,"path":11,"size":2044,"width":48,"height":40,"sizeInBytes":2045},{"ext":26,"url":2047,"hash":2048,"mime":29,"name":1393,"path":11,"size":2049,"width":55,"height":56,"sizeInBytes":2050},[3951],{"__component":66,"id":86,"text":2057},[3953,3954],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2397,"documentId":2398,"title":2399,"date":2400,"description":11,"order":6,"slug":2401,"showOnMainPage":13,"createdAt":2402,"updatedAt":2403,"publishedAt":2404,"locale":17,"cover":3957,"content":3963,"media_event":11,"media_areas":3965,"seo":11,"localizations":3968},{"id":2406,"documentId":2407,"name":2408,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3958,"hash":2434,"ext":26,"mime":29,"size":2435,"url":2436,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2437,"updatedAt":2437,"publishedAt":2437},{"large":3959,"small":3960,"medium":3961,"thumbnail":3962},{"ext":26,"url":2411,"hash":2412,"mime":29,"name":2413,"path":11,"size":2414,"width":32,"height":33,"sizeInBytes":2415},{"ext":26,"url":2417,"hash":2418,"mime":29,"name":2419,"path":11,"size":2420,"width":40,"height":41,"sizeInBytes":2421},{"ext":26,"url":2423,"hash":2424,"mime":29,"name":2425,"path":11,"size":2426,"width":48,"height":40,"sizeInBytes":2427},{"ext":26,"url":2429,"hash":2430,"mime":29,"name":2431,"path":11,"size":2432,"width":55,"height":56,"sizeInBytes":2433},[3964],{"__component":66,"id":2440,"text":2441},[3966,3967],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2525,"documentId":2526,"title":2527,"date":2528,"description":11,"order":6,"slug":2529,"showOnMainPage":13,"createdAt":2530,"updatedAt":2531,"publishedAt":2532,"locale":17,"cover":3970,"content":3976,"media_event":11,"media_areas":3978,"seo":11,"localizations":3981},{"id":2534,"documentId":2535,"name":2536,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3971,"hash":2562,"ext":752,"mime":382,"size":2563,"url":2564,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2565,"updatedAt":2565,"publishedAt":2565},{"large":3972,"small":3973,"medium":3974,"thumbnail":3975},{"ext":752,"url":2539,"hash":2540,"mime":382,"name":2541,"path":11,"size":2542,"width":32,"height":33,"sizeInBytes":2543},{"ext":752,"url":2545,"hash":2546,"mime":382,"name":2547,"path":11,"size":2548,"width":40,"height":41,"sizeInBytes":2549},{"ext":752,"url":2551,"hash":2552,"mime":382,"name":2553,"path":11,"size":2554,"width":48,"height":40,"sizeInBytes":2555},{"ext":752,"url":2557,"hash":2558,"mime":382,"name":2559,"path":11,"size":2560,"width":55,"height":56,"sizeInBytes":2561},[3977],{"__component":66,"id":690,"text":2568},[3979,3980],{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1491,"documentId":2574,"title":2575,"date":2576,"description":11,"order":6,"slug":2577,"showOnMainPage":13,"createdAt":2578,"updatedAt":2579,"publishedAt":2580,"locale":17,"cover":3983,"content":3989,"media_event":11,"media_areas":3991,"seo":11,"localizations":3994},{"id":2582,"documentId":2583,"name":2584,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":3984,"hash":2610,"ext":26,"mime":29,"size":2611,"url":2612,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2613,"updatedAt":2613,"publishedAt":2614},{"large":3985,"small":3986,"medium":3987,"thumbnail":3988},{"ext":26,"url":2587,"hash":2588,"mime":29,"name":2589,"path":11,"size":2590,"width":32,"height":33,"sizeInBytes":2591},{"ext":26,"url":2593,"hash":2594,"mime":29,"name":2595,"path":11,"size":2596,"width":40,"height":41,"sizeInBytes":2597},{"ext":26,"url":2599,"hash":2600,"mime":29,"name":2601,"path":11,"size":2602,"width":48,"height":40,"sizeInBytes":2603},{"ext":26,"url":2605,"hash":2606,"mime":29,"name":2607,"path":11,"size":2608,"width":55,"height":56,"sizeInBytes":2609},[3990],{"__component":66,"id":2617,"text":2618},[3992,3993],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2723,"documentId":2724,"title":2725,"date":2726,"description":11,"order":6,"slug":2727,"showOnMainPage":13,"createdAt":2728,"updatedAt":2729,"publishedAt":2730,"locale":17,"cover":3996,"content":4002,"media_event":11,"media_areas":4004,"seo":11,"localizations":4007},{"id":2732,"documentId":2733,"name":2734,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":3997,"hash":2760,"ext":379,"mime":382,"size":2761,"url":2762,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2763,"updatedAt":2763,"publishedAt":2763},{"large":3998,"small":3999,"medium":4000,"thumbnail":4001},{"ext":379,"url":2737,"hash":2738,"mime":382,"name":2739,"path":11,"size":2740,"width":32,"height":32,"sizeInBytes":2741},{"ext":379,"url":2743,"hash":2744,"mime":382,"name":2745,"path":11,"size":2746,"width":40,"height":40,"sizeInBytes":2747},{"ext":379,"url":2749,"hash":2750,"mime":382,"name":2751,"path":11,"size":2752,"width":48,"height":48,"sizeInBytes":2753},{"ext":379,"url":2755,"hash":2756,"mime":382,"name":2757,"path":11,"size":2758,"width":56,"height":56,"sizeInBytes":2759},[4003],{"__component":66,"id":627,"text":2766},[4005,4006],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2772,"documentId":2773,"title":2774,"date":2775,"description":11,"order":6,"slug":2776,"showOnMainPage":13,"createdAt":2777,"updatedAt":2778,"publishedAt":2779,"locale":17,"cover":4009,"content":4015,"media_event":11,"media_areas":4017,"seo":11,"localizations":4020},{"id":2781,"documentId":2782,"name":2783,"alternativeText":11,"caption":11,"width":1614,"height":1614,"formats":4010,"hash":2808,"ext":379,"mime":382,"size":2809,"url":2810,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2811,"updatedAt":2811,"publishedAt":2811},{"large":4011,"small":4012,"medium":4013,"thumbnail":4014},{"ext":379,"url":2786,"hash":2787,"mime":382,"name":2788,"path":11,"size":2789,"width":32,"height":32,"sizeInBytes":2790},{"ext":379,"url":2792,"hash":2793,"mime":382,"name":2794,"path":11,"size":2795,"width":40,"height":40,"sizeInBytes":2796},{"ext":379,"url":2798,"hash":2799,"mime":382,"name":2800,"path":11,"size":2801,"width":48,"height":48,"sizeInBytes":2802},{"ext":379,"url":2804,"hash":2805,"mime":382,"name":2806,"path":11,"size":2560,"width":56,"height":56,"sizeInBytes":2807},[4016],{"__component":66,"id":747,"text":2814},[4018,4019],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2820,"documentId":2821,"title":2822,"date":2823,"description":11,"order":6,"slug":2824,"showOnMainPage":13,"createdAt":2825,"updatedAt":2826,"publishedAt":2827,"locale":17,"cover":4022,"content":4028,"media_event":11,"media_areas":4030,"seo":11,"localizations":4033},{"id":2829,"documentId":2830,"name":2831,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4023,"hash":2856,"ext":379,"mime":382,"size":2857,"url":2858,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2859,"updatedAt":2860,"publishedAt":2861},{"large":4024,"small":4025,"medium":4026,"thumbnail":4027},{"ext":379,"url":2834,"hash":2835,"mime":382,"name":2836,"path":11,"size":2837,"width":32,"height":1620,"sizeInBytes":2838},{"ext":379,"url":2840,"hash":2841,"mime":382,"name":2842,"path":11,"size":2843,"width":40,"height":1626,"sizeInBytes":2844},{"ext":379,"url":2846,"hash":2847,"mime":382,"name":2848,"path":11,"size":2608,"width":48,"height":1632,"sizeInBytes":2849},{"ext":379,"url":2851,"hash":2852,"mime":382,"name":2853,"path":11,"size":2854,"width":1638,"height":1639,"sizeInBytes":2855},[4029],{"__component":66,"id":2864,"text":2865},[4031,4032],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2871,"documentId":2872,"title":2873,"date":2874,"description":11,"order":6,"slug":2875,"showOnMainPage":13,"createdAt":2876,"updatedAt":2877,"publishedAt":2878,"locale":17,"cover":4035,"content":4041,"media_event":11,"media_areas":4043,"seo":11,"localizations":4046},{"id":2880,"documentId":2881,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4036,"hash":2903,"ext":26,"mime":29,"size":2904,"url":2905,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2906,"updatedAt":2906,"publishedAt":2906},{"large":4037,"small":4038,"medium":4039,"thumbnail":4040},{"ext":26,"url":2884,"hash":2885,"mime":29,"name":1375,"path":11,"size":2886,"width":32,"height":1620,"sizeInBytes":2887},{"ext":26,"url":2889,"hash":2890,"mime":29,"name":1381,"path":11,"size":2891,"width":40,"height":1626,"sizeInBytes":2892},{"ext":26,"url":2894,"hash":2895,"mime":29,"name":1387,"path":11,"size":2896,"width":48,"height":1632,"sizeInBytes":2897},{"ext":26,"url":2899,"hash":2900,"mime":29,"name":1393,"path":11,"size":2901,"width":1638,"height":1639,"sizeInBytes":2902},[4042],{"__component":66,"id":2909,"text":2910},[4044,4045],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":3513,"documentId":4048,"title":4049,"date":420,"description":11,"order":6,"slug":4050,"showOnMainPage":13,"createdAt":4051,"updatedAt":4052,"publishedAt":4053,"locale":17,"cover":4054,"content":4087,"media_event":11,"media_areas":4091,"seo":11,"localizations":4094},"n00161wjkx4xvvrj4cnrf3hg","Масштабирование веб-приложения: 5 признаков архитектурного предела\n","masshtabirovanie-veb-prilozheniya-arhitekturnyy-predel","2026-09-17T08:36:56.533Z","2026-09-17T11:45:30.430Z","2026-09-17T11:45:30.495Z",{"id":4055,"documentId":4056,"name":4057,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":4058,"hash":4083,"ext":379,"mime":382,"size":4084,"url":4085,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":4086,"updatedAt":4086,"publishedAt":4086},782,"g9qdbcga88x1rxwgs5ot5s6z","photo_2026-09-17 13.54.04.jpeg",{"large":4059,"small":4065,"medium":4071,"thumbnail":4077},{"ext":379,"url":4060,"hash":4061,"mime":382,"name":4062,"path":11,"size":4063,"width":32,"height":33,"sizeInBytes":4064},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","large_photo_2026_09_17_13_54_04_0398ab84ca","large_photo_2026-09-17 13.54.04.jpeg",54.31,54313,{"ext":379,"url":4066,"hash":4067,"mime":382,"name":4068,"path":11,"size":4069,"width":40,"height":41,"sizeInBytes":4070},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","small_photo_2026_09_17_13_54_04_0398ab84ca","small_photo_2026-09-17 13.54.04.jpeg",19.52,19519,{"ext":379,"url":4072,"hash":4073,"mime":382,"name":4074,"path":11,"size":4075,"width":48,"height":40,"sizeInBytes":4076},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","medium_photo_2026_09_17_13_54_04_0398ab84ca","medium_photo_2026-09-17 13.54.04.jpeg",35.78,35780,{"ext":379,"url":4078,"hash":4079,"mime":382,"name":4080,"path":11,"size":4081,"width":55,"height":56,"sizeInBytes":4082},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_04_0398ab84ca.jpeg","thumbnail_photo_2026_09_17_13_54_04_0398ab84ca","thumbnail_photo_2026-09-17 13.54.04.jpeg",6.42,6422,"photo_2026_09_17_13_54_04_0398ab84ca",91.46,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_04_0398ab84ca.jpeg","2026-09-17T11:43:26.335Z",[4088],{"__component":66,"id":4089,"text":4090},293,"\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В разработанном нами \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">интернет-магазине HOTZ Global\u003C\u002Fa> покупатель оформляет заказ: собирает корзину, выбирает доставку и доходит до оплаты. Перед окончательным списанием сайт должен подтвердить резерв товара в 1С. Пока ответа нет, заказ нельзя безопасно провести дальше: один пользовательский шаг зависит от учётной системы и платёжного контура.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Такая цепочка может годами выглядеть исправной. Страницы открываются, заказы проходят, команда выпускает обновления. При этом продукту всё труднее переваривать новый объём, добавлять бренды и сохранять предсказуемое время ответа. В этот момент рост уже тормозит, хотя явной аварии по-прежнему нет.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В наших проектах мы разбираем подобные ситуации с позиции продуктовой команды: какой пользовательский путь теряет устойчивость, где появляется ограничитель и какой эксперимент подтвердит гипотезу. Ниже перечислены пять сигналов, которые помогают начать такую диагностику без гадания по среднему времени ответа и загрузке процессора.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Среднее время ответа спокойно, а p99 уже портит сценарий\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.08.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_08_4c8fa65791.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_08_4c8fa65791.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Среднее значение удобно для отчёта, но оно сглаживает редкие задержки. Перцентиль p99 показывает границу, в которую укладывается 99% измерений; оставшийся процент запросов выполняется дольше. Эту медленную часть распределения называют tail latency, или хвостом задержки. Для пользователя именно она может стать обычным опытом: один экран собирает данные из нескольких запросов, и вероятность встретить медленный ответ растёт.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fsre.google\u002Fsre-book\u002Fmonitoring-distributed-systems\u002F\">руководстве Google SRE по мониторингу\u003C\u002Fa> советуют смотреть на четыре «золотых сигнала»: задержку, трафик, ошибки и насыщение ресурсов. Рост p99 иногда предупреждает о приближении к насыщению раньше, чем среднее значение. Google также рекомендует разделять задержку успешных и ошибочных запросов. Быстрый ответ с ошибкой улучшит общую среднюю, хотя сценарий для пользователя уже оборвался.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">У p99 нет универсальной красной линии. Нужный предел задаёт сам сценарий: ожидания покупателя, зависимые операции и допустимое время для бизнеса. Сам перцентиль показывает симптом, причины в нём нет. База данных, блокировка, сборка мусора, внешний API или один тяжёлый тип запроса могут выглядеть на графике похоже.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Начните со ступенчатого нагрузочного теста одного пути: увеличивайте поток запросов этапами и рядом снимайте p95, p99, ошибки, объём трафика и занятость ограниченных ресурсов. p95 устроен так же, как p99, только охватывает 95% измерений. Сравнение кривых покажет момент, когда хвост начинает расходиться со средним. После этого профилирование кода и запросов к базе уже отвечает на конкретный вопрос, а не ищет проблему по всему приложению.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Очередь не закончилась вместе с пиком\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.07.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_07_9ce2cdd22f.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_07_9ce2cdd22f.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Очередь отделяет приём задачи от её выполнения. Это полезно для импорта, синхронизации, генерации файлов и других операций, которые покупателю не нужно ждать в открытом запросе. Но длина очереди сама по себе мало что говорит. Десять тысяч коротких задач могут исчезнуть быстрее, чем сотня тяжёлых.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002Fwellarchitected\u002Flatest\u002Freliability-pillar\u002Frel_adapt_to_changes_proactive_adapt_auto.html\">рекомендациях AWS Well-Architected\u003C\u002Fa> глубина рабочей очереди названа одним из возможных сигналов для масштабирования. AWS предлагает выбирать метрику под нагрузочным тестом с фиксированным числом ресурсов: спрос растёт, а затем падает, и хороший индикатор должен двигаться вместе с ним. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Farchitecture\u002Fbest-practices\u002Fauto-scaling\">Руководство Microsoft Azure\u003C\u002Fa> добавляет более полезную для бизнеса величину: критическое время, то есть интервал от отправки сообщения до завершения обработки. Длинная очередь допустима, пока каждое сообщение обрабатывается в принятый для процесса срок.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Настораживает другая картина: после сопоставимого пика глубина не возвращается к исходному уровню, возраст старейшего сообщения увеличивается, а скорость обработки уступает скорости поступления. Это уже похоже на рассогласование нагрузки и доступной мощности. Сравнивать нужно одинаковые окна и типы задач. Иначе очередь после ночного импорта и очередь заказов дадут красивый, но бесполезный график.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В проекте HOTZ Global мы применили BullMQ, систему очередей для Node.js: синхронизация с 1С, импорт каталога, обработка изображений и пересборка товарного фида выполняются вне пользовательских запросов. Этот кейс показывает архитектурный приём. Он не доказывает, что у проекта накапливался хвост задач. Диагностировать очередь надо по её собственным метрикам и допустимому времени бизнес-процесса.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Новый сервер добавили, пропускная способность почти не выросла\u003C\u002Fh2>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Горизонтальное масштабирование добавляет экземпляры приложения. Пропускная способность показывает, сколько успешных операций система завершает за единицу времени. В идеальной схеме рост числа экземпляров заметно поднимает общий результат. Реальная кривая постепенно выравнивается, и её форма важнее обещания «добавим ещё сервер».\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Azure прямо предупреждает: новые экземпляры не гарантируют ускорения. Сервису нужна горизонтально масштабируемая архитектура. Stateless-компонент, то есть компонент без критичного состояния в памяти конкретного экземпляра, позволяет обработать следующий запрос на любом узле. Affinity, то есть привязка пользователя или серии запросов к одному узлу, сужает этот выбор. Нужен и запас мощности, или headroom: свободная ёмкость на время, пока автомасштабирование замечает нагрузку и запускает ресурсы.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Проверка довольно приземлённая. Зафиксируйте профиль запросов и прогоните одну ступенчатую нагрузку при разном количестве экземпляров. Смотрите на общую пропускную способность и результат каждого узла, соединения с базой, ожидание блокировок, чтение и запись. AWS рекомендует именно фиксировать ресурсы во время теста и постепенно повышать спрос, чтобы выбрать рабочую метрику масштабирования.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Слабый прирост означает, что следует искать общую границу. Ею может оказаться база, пул соединений, блокировка, локальное состояние или внешний сервис, но название причины появится только после измерений. Покупка вычислительных ресурсов до этого теста иногда увеличивает счёт и оставляет производительность на прежней полке.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Один внешний сервис определяет скорость всего заказа\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.06.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_06_16836fdb53.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_06_16836fdb53.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_06_16836fdb53.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_06_16836fdb53.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_06_16836fdb53.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Внешняя зависимость входит в критический путь, когда следующий шаг ждёт её ответа. Для диагностики полезно измерять задержку каждого такого вызова, тайм-ауты, повторные попытки и незавершённые операции. Тайм-аут ограничивает ожидание ответа. Повторная попытка, или retry, запускает операцию ещё раз после временной ошибки. Общая длительность пользовательского пути без этих разрезов скрывает, внутри приложения ушло время или на его границе.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В интернет-магазине HOTZ Global заказ проходит через СДЭК, 1С и ЮKassa. Сайт рассчитывает доставку, запрашивает резерв в 1С, после подтверждения авторизует платёж в ЮKassa, закрывает резерв продажей и завершает списание. При исчерпании попыток система отменяет платёж, а состояния резерва и оплаты остаются в журнале событий. Подробно эта последовательность разобрана в кейсе интернет-магазина HOTZ Global.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Ограничение выявляет трассировка: она раскладывает одну операцию на участки и показывает время каждого вызова.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Проведите в тестовой среде контролируемую задержку и отказ зависимости. Проверьте, что пользовательский запрос завершается предсказуемо, повтор не создаёт второй заказ или платёж, а незаконченная операция видна команде. Идемпотентность здесь означает безопасное повторение запроса без нового бизнес-эффекта. Журнал событий сохраняет последовательность шагов. Circuit breaker, или автоматический предохранитель, временно прекращает бесполезные обращения к нестабильной зависимости. Очередь переносит продолжение операции из пользовательского запроса в фоновую обработку.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Независимые релизы размножают общее исправление на четыре контура\u003C\u002Fh2>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Пятый сигнал заметен не на графике серверов, а в истории изменений. Одна продуктовая правка затрагивает несколько модулей или репозиториев, проходит несколько циклов проверки и ждёт несколько выпусков. Система выдерживает текущий трафик, однако скорость развития падает.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">В B2B-каталогах «Тепломаша», Sonniger, Volcano и WDB мы использовали переиспользованную архитектуру для четырёх независимых контуров. У каждого бренда свои фронтенд, бэкенд, база, административная часть и выпуск; код размещён в восьми репозиториях. Такая граница даёт независимые релизы и изолирует сбои одного бренда от остальных. Цена проявляется в общем изменении: одинаковое исправление приходится переносить по четырём контурам и отдельно проверять каждый.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Здесь нет автоматического вердикта в пользу объединения. Независимость оправдана, когда бренды выпускаются в разном ритме, по-разному развивают интерфейс или должны переживать сбои раздельно. Связанное развитие превращает ту же схему в множитель lead time, времени от решения о правке до её выхода.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Возьмите одно недавнее сквозное изменение и проследите весь путь: сколько модулей и репозиториев пришлось открыть, сколько выпусков дождаться, где повторилась одна проверка. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fteplomash\">Кейс B2B-каталога «Тепломаш»\u003C\u002Fa> полезен именно как пример компромисса: быстрое тиражирование архитектуры купило независимость контуров, а общие изменения получили четыре адреса.\u003C\u002Fp>\u003Ch2 style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:22px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;letter-spacing:normal;line-height:1.3;margin:40px 0px 14px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Переписывать систему пора после теста на ограничитель\u003C\u002Fh2>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Полную переработку архитектуры по одному тревожному графику мы не согласовываем. Это дорогой способ проверить гипотезу. Сначала соберите пять сигналов в одной картине и проведите короткие эксперименты. У каждого результата должен быть следующий кандидат на проверку, а не готовый диагноз.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Для очереди ограничьте приём новых задач, когда обработчики не успевают. Это обратное давление. Затем задайте число параллельных обработчиков и пропускайте срочные операции раньше фоновых с помощью приоритетов. Для пользовательского запроса профилирование покажет, где код тратит время; после этого проверьте запросы к базе, кэш и лимиты соединений. Каждая мера отвечает на своё ограничение, поэтому выбирайте её по результатам эксперимента.\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-17 13.54.11.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_17_13_54_11_7dd458b09d.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_17_13_54_11_7dd458b09d.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Такой разбор не назначает архитектуру заочно. Он заставляет связать симптом, измерение и проверяемое действие. После эксперимента решение может оказаться локальным: индекс в базе, отдельные обработчики очереди, ограничение параллелизма или изоляция одной интеграции. Переписывание оправдано, когда измеренный ограничитель лежит в самой границе компонентов и локальная правка сохраняет прежний потолок.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Вернёмся к заказу HOTZ Global. Покупатель видит один путь до оплаты, а система координирует доставку, резерв и платёж. Такой маршрут полезно тестировать целиком и по участкам: где растёт хвост задержки, как завершаются фоновые задачи, что происходит при контролируемом отказе внешней системы.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Сначала найдите ресурс или связь, которые ограничивают рост. Затем меняйте границы системы.\u003C\u002Fp>\u003Cp style=\"-webkit-text-stroke-width:0px;color:rgb(26, 26, 26);font-family:-apple-system, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;font-size:17px;font-style:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-weight:400;letter-spacing:normal;margin:0px 0px 18px;orphans:2;scrollbar-width:thin;text-align:start;text-decoration-color:initial;text-decoration-style:initial;text-decoration-thickness:initial;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;\">Разберите с нами узкие места, измеримые эксперименты и план изменений в рамках \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fproduct-support\">поддержки и развития цифрового продукта.\u003C\u002Fa>\u003C\u002Fp>",[4092,4093],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":2491,"documentId":4096,"title":4097,"date":580,"description":11,"order":6,"slug":4098,"showOnMainPage":13,"createdAt":4099,"updatedAt":4100,"publishedAt":4101,"locale":17,"cover":4102,"content":4135,"media_event":11,"media_areas":4139,"seo":11,"localizations":4142},"fpk51c4ejek3676dkx59luaw","Локализация цифрового продукта: что менять при выходе на новый рынок","lokalizaciya-cifrovogo-produkta-novyy-rynok","2026-09-21T11:12:00.474Z","2026-09-21T11:12:43.417Z","2026-09-21T11:12:43.477Z",{"id":3479,"documentId":4103,"name":4104,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4105,"hash":4130,"ext":379,"mime":382,"size":4131,"url":4132,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":4133,"updatedAt":4134,"publishedAt":4133},"klfyunx6a8zzgw4vag9gxm2l","photo_2026-09-21 14.06.52.jpeg",{"large":4106,"small":4112,"medium":4118,"thumbnail":4124},{"ext":379,"url":4107,"hash":4108,"mime":382,"name":4109,"path":11,"size":4110,"width":32,"height":33,"sizeInBytes":4111},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_14_06_52_6c7ae1efba.jpeg","large_photo_2026_09_21_14_06_52_6c7ae1efba","large_photo_2026-09-21 14.06.52.jpeg",45.32,45316,{"ext":379,"url":4113,"hash":4114,"mime":382,"name":4115,"path":11,"size":4116,"width":40,"height":41,"sizeInBytes":4117},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_14_06_52_6c7ae1efba.jpeg","small_photo_2026_09_21_14_06_52_6c7ae1efba","small_photo_2026-09-21 14.06.52.jpeg",17.16,17164,{"ext":379,"url":4119,"hash":4120,"mime":382,"name":4121,"path":11,"size":4122,"width":48,"height":40,"sizeInBytes":4123},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_14_06_52_6c7ae1efba.jpeg","medium_photo_2026_09_21_14_06_52_6c7ae1efba","medium_photo_2026-09-21 14.06.52.jpeg",30.18,30183,{"ext":379,"url":4125,"hash":4126,"mime":382,"name":4127,"path":11,"size":4128,"width":55,"height":56,"sizeInBytes":4129},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_14_06_52_6c7ae1efba.jpeg","thumbnail_photo_2026_09_21_14_06_52_6c7ae1efba","thumbnail_photo_2026-09-21 14.06.52.jpeg",5.91,5905,"photo_2026_09_21_14_06_52_6c7ae1efba",102.25,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_14_06_52_6c7ae1efba.jpeg","2026-09-21T11:11:35.795Z","2026-09-21T11:11:53.451Z",[4136],{"__component":66,"id":4137,"text":4138},320,"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">Кнопка «Оплатить» в двух странах выглядит примерно одинаково. За ней могут стоять разные банки, договоры и правила хранения данных. На макете это два одинаковых прямоугольника. В бэклоге один из них довольно быстро просит отдельную инфраструктуру.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы сталкивались с этой границей в разных проектах: в сервисе консультаций она прошла через юрисдикции и платежи, у HOTZ — через общий каталог и разные витрины. Разберём, какие части продукта можно переиспользовать, что вынести в настройки и когда стране нужен отдельный контур.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Одна страна добавляет в бэклог больше, чем один язык\u003C\u002Fh2>\u003Cp dir=\"auto\">Локализация интерфейса заметна первой, поэтому с неё удобно начинать разговор. Перевели тексты, добавили валюту, поменяли телефон поддержки. Кажется, что основная работа уже описана.\u003C\u002Fp>\u003Cp dir=\"auto\">Дальше приходит первый настоящий заказ. Товар недоступен в этой стране. Цена считается по другим правилам. Местный способ оплаты не умеет работать по привычному сценарию. Данные пользователя нельзя хранить там же, где данные остальных клиентов. Перевод остаётся небольшой частью запуска.\u003C\u002Fp>\u003Cp dir=\"auto\">Локальная валюта влияет на решение о покупке. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.dhl.com\u002Fglobal-en\u002Fmicrosites\u002Fec\u002Fecommerce-insights\u002Finsights\u002Fe-commerce-logistics\u002Fcross-border-trends.html\">опросе DHL 2026 года\u003C\u002Fa> участвовали 29 тысяч онлайн-покупателей из 29 стран; данные собирали с 15 декабря 2025-го по 11 февраля 2026-го. 41% выбрали цены в местной валюте среди факторов, которые подтолкнули бы их купить за рубежом. Цифра объясняет, почему валюта входит в локальное предложение. Какой банк подключать, как проводить возврат и где хранить данные, опрос уже не подскажет: здесь начинается архитектура продукта.\u003C\u002Fp>\u003Cp dir=\"auto\">Копия продукта для каждой страны решает вопрос быстро и создаёт следующий. Исправление приходится переносить в несколько кодовых баз, каталоги расходятся, а команда однажды обсуждает, почему кнопка в Казахстане ведёт себя как её российская родственница полгода назад.\u003C\u002Fp>\u003Cp dir=\"auto\">Полностью универсальная система тоже обходится дорого. В ней растёт слой настроек, исключений и проверок. В какой-то момент форма добавления страны начинает напоминать анкету на ипотеку.\u003C\u002Fp>\u003Cp dir=\"auto\">Мы раскладываем различия по трём уровням: общее ядро, настройки рынка и отдельная инсталляция. Этого хватает, чтобы оценить запуск без двух крайностей.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Один сценарий пришлось разнести по разным контурам\u003C\u002Fh2>\u003Cp dir=\"auto\">В одном из наших проектов пользователь выбирает специалиста, бронирует время и подключается к консультации. Этот путь одинаково понятен в любой стране. Архитектура вокруг него уже зависит от юрисдикции.\u003C\u002Fp>\u003Cp dir=\"auto\">Для разных стран мы предусмотрели самостоятельные развёртывания платформы. Пользовательские данные остаются внутри своего контура, а платёжные интеграции подключаются отдельно для каждого рынка.\u003C\u002Fp>\u003Cp dir=\"auto\">Общими остаются основные сущности и правила: пользователь, специалист, слот, консультация, роли и доступы. Локально живут инфраструктура, платёжная интеграция и требования к данным. Пользователь по-прежнему хочет одного — попасть к выбранному специалисту вовремя. География всей конструкции его интересует примерно до первой ошибки.\u003C\u002Fp>\u003Cp dir=\"auto\">Отдельные инсталляции увеличивают стоимость поддержки. Обновления, миграции и мониторинг приходится проводить в нескольких контурах. В этом проекте такая цена оправдана границами данных и платежей. Делить систему только потому, что в списке стран появился новый пункт, мы бы не стали.\u003C\u002Fp>\u003Ch2 dir=\"auto\">HOTZ показывает другую границу: каталог общий, витрины разные\u003C\u002Fh2>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fprojects\u002Fhotz\">HOTZ — мультбрендовый проект\u003C\u002Fa>. Четыре продуктовые линии работают на одной платформе. У каждой свой визуальный язык и контент, а каталог, данные и путь покупки общие.\u003C\u002Fp>\u003Cp dir=\"auto\">Русскую и английскую версии сотрудники заполняют отдельно. При этом новая вкладка в административной панели ещё не превращается в новый бренд. Уникальный внешний вид требует дизайна и разработки, повторяемые блоки и данные продолжают работать на общей модели.\u003C\u002Fp>\u003Cp dir=\"auto\">Для выхода на несколько рынков мы используем похожее разделение. У товара остаётся одна базовая карточка. Рядом появляется предложение для конкретной страны: доступность, цена, валюта, перевод, документы и доставка. Один и тот же товар можно продавать по разным правилам, не создавая трёх независимых каталогов.\u003C\u002Fp>\u003Cp dir=\"auto\">Это разделение полезно и за пределами интернет-магазинов. У услуги тоже есть общее ядро и локальное предложение: состав, цена, способ оплаты, ограничения и документы. Меняется рынок, а аналитика и интеграции по-прежнему видят один продукт.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Три коробки для любого отличия рынка\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 14.06.54.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_14_06_54_a6acd0dd72.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_14_06_54_a6acd0dd72.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_14_06_54_a6acd0dd72.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_14_06_54_a6acd0dd72.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_14_06_54_a6acd0dd72.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">На старте мы буквально раскладываем требования по трём коробкам.\u003C\u002Fp>\u003Ch3 dir=\"auto\">Общее ядро\u003C\u002Fh3>\u003Cp dir=\"auto\">Сюда попадает то, без чего продукт перестанет быть собой: учётная запись, товар или услуга, заказ, роли и статусы. Здесь же остаются правила обмена данными между системами и события аналитики. Эти части развиваются вместе для всех рынков.\u003C\u002Fp>\u003Ch3 dir=\"auto\">Настройки рынка\u003C\u002Fh3>\u003Cp dir=\"auto\">Здесь живут язык, валюта, локальный ассортимент, цены, способы оплаты, доставка, тексты документов и контакты поддержки. Их можно менять независимо, сохраняя общую модель.\u003C\u002Fp>\u003Ch3 dir=\"auto\">Отдельный контур\u003C\u002Fh3>\u003Cp dir=\"auto\">Он появляется, когда страна меняет место хранения данных, юридическое лицо или счёт продавца у платёжного провайдера. Сюда же относятся особые требования к доступности сервиса и другой сценарий заказа или услуги. Такой контур получает собственную инфраструктуру, секреты и процедуру выпуска.\u003C\u002Fp>\u003Cp dir=\"auto\">Критерий простой: смотрим на цену ошибки. Неверный перевод можно быстро исправить. Неверная цена, деньги на чужом юридическом лице или данные в другой юрисдикции требуют более жёсткой границы.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Один заказ проверяет архитектуру лучше десяти экранов\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-21 14.06.55.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_21_14_06_55_50396342f6.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_21_14_06_55_50396342f6.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_21_14_06_55_50396342f6.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_21_14_06_55_50396342f6.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_21_14_06_55_50396342f6.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">После раскладки берём один заказ и проводим его целиком. Пользователь открывает карточку, регистрируется, видит цену, оплачивает, получает уведомление, отменяет операцию и оформляет возврат. Для сервиса вместо товара подставляем запись, подписку или бронирование.\u003C\u002Fp>\u003Cp dir=\"auto\">На каждом шаге фиксируем владельца правила и источник данных. Кто определяет доступность? Откуда приходит цена? Какой банк принимает деньги? Где остаются персональные данные? Кто увидит ошибку и сможет её исправить?\u003C\u002Fp>\u003Cp dir=\"auto\">Так быстро находятся места, где красивый макет молчит. Особенно полезен возврат. Успешную оплату умеют показывать почти все прототипы, а обратная дорога денег почему-то появляется ближе к релизу, уже с характером.\u003C\u002Fp>\u003Cp dir=\"auto\">После такого прохода оценка становится честнее. Перевод и дизайн остаются видимой частью. Интеграции, данные и операционные правила получают собственные задачи, владельцев и сроки.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Слишком много общего тоже стоит денег\u003C\u002Fh2>\u003Cp dir=\"auto\">Универсальность легко превратить в отдельный продукт внутри продукта. Каждое поле получает условия показа, каждое правило — исключение, а тестирование начинает проверять комбинации, которыми никто не пользуется.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому мы выбираем минимальную достаточную изоляцию. Контент и рыночные параметры держим в настройках. Стабильную бизнес-логику оставляем в ядре. Данные, деньги и юридическую ответственность разделяем там, где ошибка становится дорогой или запрещённой.\u003C\u002Fp>\u003Cp dir=\"auto\">Эта схема не обещает один релиз на весь мир. Она даёт более полезный результат: команда понимает, какая часть продукта действительно общая и за что придётся платить отдельно.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Кнопка осталась кнопкой\u003C\u002Fh2>\u003Cp dir=\"auto\">В новой стране пользователь всё равно нажмёт «Оплатить» и будет ждать обычного результата. До этого момента команда должна договориться о каталоге, цене, банке, данных и возврате.\u003C\u002Fp>\u003Cp dir=\"auto\">Язык, валюта и ассортимент остаются в настройках. Смена получателя денег, места хранения данных или порядка операции требует отдельного контура.\u003C\u002Fp>\u003Cp dir=\"auto\">Готовитесь выводить цифровой продукт или интернет-магазин на новый рынок? Приходите с одним реальным заказом. Мы пройдём его от карточки до возврата и \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">соберём схему запуска\u003C\u002Fa> до того, как одинаковые кнопки превратятся в три разные системы.\u003C\u002Fp>",[4140,4141],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":3533,"documentId":3534,"title":3535,"date":3536,"description":11,"order":6,"slug":3537,"showOnMainPage":13,"createdAt":3538,"updatedAt":3539,"publishedAt":3540,"locale":17,"cover":4144,"content":4150,"media_event":11,"media_areas":4152,"seo":11,"localizations":4155},{"id":3542,"documentId":3543,"name":3544,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4145,"hash":3569,"ext":379,"mime":382,"size":3570,"url":3571,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3572,"updatedAt":3572,"publishedAt":3572},{"large":4146,"small":4147,"medium":4148,"thumbnail":4149},{"ext":379,"url":3547,"hash":3548,"mime":382,"name":3549,"path":11,"size":2697,"width":32,"height":33,"sizeInBytes":3550},{"ext":379,"url":3552,"hash":3553,"mime":382,"name":3554,"path":11,"size":3555,"width":40,"height":41,"sizeInBytes":3556},{"ext":379,"url":3558,"hash":3559,"mime":382,"name":3560,"path":11,"size":3561,"width":48,"height":40,"sizeInBytes":3562},{"ext":379,"url":3564,"hash":3565,"mime":382,"name":3566,"path":11,"size":3567,"width":55,"height":56,"sizeInBytes":3568},[4151],{"__component":66,"id":417,"text":3575},[4153,4154],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17,"media":4157},[4158,4180,4202,4216,4240,4263,4287,4312,4334],{"id":4159,"documentId":4160,"title":4161,"date":4162,"description":11,"order":40,"slug":4163,"showOnMainPage":13,"createdAt":4164,"updatedAt":4165,"publishedAt":4166,"locale":17,"cover":11,"content":4167,"media_event":4171,"media_areas":4177,"seo":11,"localizations":4179},364,"ce4eqcxpcxe2gueamlnk95az","Пых.конф’25","2025-10-19","pyh-konf-25-3","2026-02-27T12:25:42.556Z","2026-09-21T16:06:10.065Z","2026-09-21T16:06:10.173Z",[4168],{"__component":66,"id":4169,"text":4170},328,"\u003Cp>Наш спикер рассказал, как встроить Retrieval-Augmented Generation (RAG) в PHP-бэкенд. Технология помогает умным ассистентам и поисковым системам находить ответы быстрее и точнее. В докладе объяснит, как работать с векторными базами данных и эмбеддингами, чтобы прокачать проекты — от семантического поиска до персонализированных интерфейсов\u003C\u002Fp>\u003Cp class=\"p2\">&nbsp;\u003C\u002Fp>",{"id":4172,"documentId":4173,"place":4161,"dateFrom":3518,"dateTo":3518,"order":40,"createdAt":4174,"updatedAt":4175,"publishedAt":4176,"locale":17},38,"qyyaaq9uq01cybc9wdpu04ff","2026-02-27T12:26:23.517Z","2026-03-06T11:50:04.119Z","2026-03-06T11:50:04.142Z",[4178],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":4181,"documentId":4182,"title":4183,"date":4184,"description":11,"order":40,"slug":4185,"showOnMainPage":13,"createdAt":4186,"updatedAt":4187,"publishedAt":4188,"locale":17,"cover":11,"content":4189,"media_event":4193,"media_areas":4199,"seo":11,"localizations":4201},139,"f0107glw661ebgg7ket8b1cq","Стачка СПб’25","2025-10-03","stachka-s-pb-25","2026-02-27T12:06:21.197Z","2026-05-27T09:12:58.789Z","2026-05-27T09:12:58.872Z",[4190],{"__component":66,"id":4191,"text":4192},102,"\u003Cp class=\"p1\">Спикер рассказал как собрать фронтенд-команду мечты в условиях аутсорса и многозадачности\u003Cbr>&nbsp;\u003C\u002Fp>\u003Cp class=\"p1\">Это история не про идеальных кодеров, а про людей, которые горят желанием развиваться, умеют анализировать свои ошибки и быстро включаются в работу. И как выстраивать прозрачные процессы, давать честный фидбек и выбирать карьерный путь под свой текущий уровень знаний\u003C\u002Fp>",{"id":4194,"documentId":4195,"place":4183,"dateFrom":4184,"dateTo":4184,"order":40,"createdAt":4196,"updatedAt":4197,"publishedAt":4198,"locale":17},40,"weubed2puewbadi5kwo9dbe5","2026-02-27T12:05:57.549Z","2026-03-06T14:03:03.300Z","2026-03-06T14:03:03.376Z",[4200],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":3466,"documentId":3467,"title":3468,"date":3469,"description":3470,"order":684,"slug":3471,"showOnMainPage":13,"createdAt":3472,"updatedAt":3473,"publishedAt":3474,"locale":17,"cover":4203,"content":4209,"media_event":4211,"media_areas":4212,"seo":11,"localizations":4215},{"id":3476,"documentId":3477,"name":3478,"alternativeText":11,"caption":11,"width":23,"height":3479,"formats":4204,"hash":3506,"ext":752,"mime":382,"size":3507,"url":3508,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3509,"updatedAt":3510,"publishedAt":3509},{"large":4205,"small":4206,"medium":4207,"thumbnail":4208},{"ext":752,"url":3482,"hash":3483,"mime":382,"name":3484,"path":11,"size":3485,"width":32,"height":3486,"sizeInBytes":3487},{"ext":752,"url":3489,"hash":3490,"mime":382,"name":3491,"path":11,"size":3492,"width":40,"height":41,"sizeInBytes":3493},{"ext":752,"url":3495,"hash":3496,"mime":382,"name":3497,"path":11,"size":3498,"width":48,"height":40,"sizeInBytes":3499},{"ext":752,"url":3501,"hash":3502,"mime":382,"name":3503,"path":11,"size":3504,"width":55,"height":56,"sizeInBytes":3505},[4210],{"__component":66,"id":3513,"text":3514},{"id":3516,"documentId":3517,"place":3468,"dateFrom":3469,"dateTo":3518,"order":40,"createdAt":3519,"updatedAt":3520,"publishedAt":3521,"locale":17},[4213,4214],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":4217,"documentId":4218,"title":4219,"date":4220,"description":11,"order":40,"slug":4221,"showOnMainPage":13,"createdAt":4222,"updatedAt":4223,"publishedAt":4224,"locale":17,"cover":11,"content":4225,"media_event":4229,"media_areas":4237,"seo":11,"localizations":4239},143,"icg1p6xqq09s2u4yojqpmbif"," Merge Baltic ","2026-02-27","merge-baltic-1","2026-02-27T11:59:53.692Z","2026-05-27T09:13:51.419Z","2026-05-27T09:13:51.484Z",[4226],{"__component":66,"id":4227,"text":4228},106,"\u003Cp>Спикер от нашей компании рассказал, как связать TypeScript и OpenAPI, чтобы избавиться от рутины при разработке API‑клиентов\u003C\u002Fp>",{"id":4230,"documentId":4231,"place":4232,"dateFrom":4233,"dateTo":4233,"order":40,"createdAt":4234,"updatedAt":4235,"publishedAt":4236,"locale":17},42,"lakgjgfz0qogh4wbuzk9z21y"," Merge Baltic","2025-10-18","2026-02-27T12:00:06.298Z","2026-03-06T14:28:06.412Z","2026-03-06T14:28:06.437Z",[4238],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":4241,"documentId":4242,"title":4243,"date":4244,"description":11,"order":40,"slug":4245,"showOnMainPage":13,"createdAt":4246,"updatedAt":4247,"publishedAt":4248,"locale":17,"cover":11,"content":4249,"media_event":4253,"media_areas":4260,"seo":11,"localizations":4262},144,"n1cg6qcmbdxk9swk9uo0udss","DonDenConf","2026-05-23","don-den-conf","2026-05-08T13:50:28.915Z","2026-05-27T09:14:06.879Z","2026-05-27T09:14:07.165Z",[4250],{"__component":66,"id":4251,"text":4252},107,"\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Команда Qtim примет участие в DonDevFest 2026 — одной из крупнейших IT-конференций Юга России. От компании выступят два спикера: CEO Антон Фокин и эксперт направления фронтенд-разработки.\u003C\u002Fp>\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Антон выступит в треке специальных гостей фестиваля. Тема — про путь, который проходит почти каждая растущая IT-компания: от ручного управления и договорённостей «на словах» к выстроенным процессам и понятной структуре. И главный вопрос: как навести порядок и при этом сохранить ту самую культуру, ради которой люди приходят и остаются в компании.\u003C\u002Fp>\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">В основе доклада — несколько идей, которые Антон проверил на практике за более чем 10 лет в IT и путь от программиста до собственника бизнеса:\u003C\u002Fp>\u003Cul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\u003Cli class=\"font-claude-response-body whitespace-normal break-words pl-2\" data-list-item-id=\"e2f8853baf57b875672d8d7b4084a9506\">Хаос на этапе роста — это не ошибка управления, а энергия, на которой компания вообще движется вперёд. Задача лидера — не подавить её, а направить.\u003C\u002Fli>\u003Cli class=\"font-claude-response-body whitespace-normal break-words pl-2\" data-list-item-id=\"e39603b8c2ac80d0c633231a8e0b2beb0\">Система не противоречит свободе, если она построена из смыслов, а не из правил ради правил. Регламент работает только тогда, когда команда понимает, зачем он нужен.\u003C\u002Fli>\u003Cli class=\"font-claude-response-body whitespace-normal break-words pl-2\" data-list-item-id=\"ecf3a8e68e2759f3391b01296a0b2c5ac\">Прежде чем менять компанию, лидер должен пережить собственную трансформацию. Управленческая зрелость собственника напрямую определяет потолок зрелости бизнеса.\u003C\u002Fli>\u003Cli class=\"font-claude-response-body whitespace-normal break-words pl-2\" data-list-item-id=\"eecf59c756260d82897150b6723f83d4d\">Баланс между свободой и дисциплиной — это не формула, которую можно один раз вывести и применять. Это управленческое чувство, которое выстраивается со временем.\u003C\u002Fli>\u003Cli class=\"font-claude-response-body whitespace-normal break-words pl-2\" data-list-item-id=\"eeb11222c45089adae3a17de551b45ece\">Рост компании — это не только про масштаб, выручку и численность. Это в первую очередь про зрелость: команды, процессов и самого лидера.\u003C\u002Fli>\u003C\u002Ful>\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Разговор — не про универсальные методички, а про честный взгляд на то, как меняется компания и сам собственник, когда бизнес перестаёт помещаться в голове одного человека.\u003C\u002Fp>\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Второе выступление от Qtim — в треке Web-разработки. Доклад будет полезен тем, кто работает с большими, исторически сложными фронтенд-проектами: где накопился технический долг, замедлилась сборка, а скорость доставки фич перестала устраивать бизнес.\u003C\u002Fp>\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">В выступлении — три ключевые точки приложения усилий, которые дают наибольший эффект: от пересборки архитектуры и оптимизации бандла до изменений в процессе разработки, включая работу с AI-инструментами. Спикер — Team Lead Frontend в Qtim, во фронтенде с 2015 года, прошёл полный путь от написания кода в блокноте до AI-кодинга на боевых проектах.\u003C\u002Fp>\u003Ch3 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Где и когда\u003C\u002Fh3>\u003Cp class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">DonDevFest 2026 — IT-конференция и open-air фестиваль на Юге России. Полная программа, расписание выступлений и билеты — на сайте организаторов: \u003Ca class=\"underline underline-offset-2 decoration-1 decoration-current\u002F40 hover:decoration-current focus:decoration-current\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fddconf.ru\u002Fspeakers\">ddconf.ru\u003C\u002Fa>.\u003C\u002Fp>",{"id":4254,"documentId":4255,"place":4243,"dateFrom":4244,"dateTo":4256,"order":1220,"createdAt":4257,"updatedAt":4258,"publishedAt":4259,"locale":17},57,"d6gnqsswqvm819c4hhz1mzit","2026-05-24","2026-05-08T14:17:06.468Z","2026-05-12T13:21:17.559Z","2026-05-12T13:21:17.580Z",[4261],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":4264,"documentId":4265,"title":4266,"date":4267,"description":11,"order":40,"slug":4268,"showOnMainPage":13,"createdAt":4269,"updatedAt":4270,"publishedAt":4271,"locale":17,"cover":11,"content":4272,"media_event":4276,"media_areas":4284,"seo":11,"localizations":4286},145,"ssd4p6njpddkamkmdi85y7ba","People Sense","2026-06-04","people-sense","2026-04-23T11:25:38.089Z","2026-05-27T09:14:24.959Z","2026-05-27T09:14:25.009Z",[4273],{"__component":66,"id":4274,"text":4275},108,"\u003Cp>В&nbsp;проектном менеджменте долго существовал разрыв между бизнесом и&nbsp;разработкой, и&nbsp;это считалось нормой, хотя приводило к&nbsp;ошибкам в&nbsp;оценках, сроках и&nbsp;бюджете. Но&nbsp;сегодня, если задачи превращаются в&nbsp;цепочки уточнений и&nbsp;возвратов, оценки не&nbsp;сходятся из-за интеграций и&nbsp;граничных случаев, план и&nbsp;критический путь появляются постфактум, а&nbsp;ввод новых сотрудников в&nbsp;проект зависит от&nbsp;устных знаний отдельных людей,&nbsp;— разрыв между бизнесом и&nbsp;разработкой становится критическим риском\u003Cbr>\u003Cbr>Эксперт на&nbsp;реальных примерах расскажет, как искусственный интеллект позволяет менеджеру глубже понимать техническую реальность проекта без перехода в&nbsp;роль разработчика&nbsp;— и&nbsp;как это меняет точность планирования, скорость принятия решений и&nbsp;саму роль менеджера\u003Cbr>\u003Cbr>В&nbsp;рамках доклада разберет:\u003Cbr>&nbsp;\u003C\u002Fp>\u003Cul>\u003Cli data-list=\"bullet\" data-list-item-id=\"ed9bd96f827968800c9089c237c9896c9\">Почему «просто подключить» искусственный интеллект не&nbsp;работает&nbsp;— и&nbsp;как упаковать источники правды&nbsp;— код, документацию, ограничения&nbsp;— так, чтобы получать конкретные артефакты, а&nbsp;не&nbsp;текст в&nbsp;стиле общих рекомендаций\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"e5b5e13f8b6ee4604cf17f2e1c1f60c47\">Как меняется роль проектного менеджера в&nbsp;эпоху искусственного интеллекта и&nbsp;какие компетенции становятся ключевыми\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"ee516a275365982fc390db84bbdf0895f\">Как декомпозировать задачу и&nbsp;выстроить оценку: журнал задач, критерии готовности, зависимости, вероятностные сценарии и&nbsp;критический путь\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"e221d111f4c34f80e9aa97d6f776fdc72\">Как искусственный интеллект ускоряет ввод новых сотрудников через техническую документацию и&nbsp;снижает зависимость от&nbsp;носителей знаний\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"e6bf7ef5bbb73374d7743ac7e4d164999\">Как создавать команды из&nbsp;специализированных ИИ-агентов по&nbsp;ролям и&nbsp;организовывать их&nbsp;работу\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cbr>После доклада участники смогут:\u003Cbr>&nbsp;\u003C\u002Fp>\u003Cul>\u003Cli data-list=\"bullet\" data-list-item-id=\"e2c00fd912073149d01bc456a07f22659\">Применять искусственный интеллект для декомпозиции задач, оценки сроков и&nbsp;выявления технических рисков&nbsp;— без погружения в&nbsp;роль разработчика\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"ea9e4f53103ca603c4583c068b581bb4c\">Выстраивать структуру проекта с&nbsp;критическим путем и&nbsp;понятными артефактами вместо размытых договоренностей\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"ea302c3145c8dff8ae5079deb8382fa65\">Сократить количество возвратов и&nbsp;уточнений за&nbsp;счет ясно сформулированных задач и&nbsp;зафиксированных критериев готовности\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cbr>Доклад будет полезен:\u003Cbr>&nbsp;\u003C\u002Fp>\u003Cul>\u003Cli data-list=\"bullet\" data-list-item-id=\"eb824eae9394fd8370c7a67f96083d695\">Менеджерам проектов, менеджерам поставки и&nbsp;менеджерам по&nbsp;продукту среднего уровня, которые сами формируют задачи и&nbsp;отвечают за&nbsp;сроки\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"ed8b40c67a329b2cedc871d5c8f927733\">Тем, кто ведет несколько модулей или команд и&nbsp;хочет сократить количество возвратов задач из-за недопонимания\u003C\u002Fli>\u003Cli data-list=\"bullet\" data-list-item-id=\"e0a22c0a34ca3e0e6b8d9fee8298b4bb5\">Командам, которые уже пробовали работать с&nbsp;искусственным интеллектом, но&nbsp;получили нестабильный результат: избыточные ответы, галлюцинации, неполные постановки\u003C\u002Fli>\u003C\u002Ful>",{"id":4277,"documentId":4278,"place":4266,"dateFrom":4267,"dateTo":4279,"order":4280,"createdAt":4281,"updatedAt":4282,"publishedAt":4283,"locale":17},54,"kmbnq1m43om1xht2p0mzy6qf","2026-06-05",489,"2026-04-23T11:26:15.426Z","2026-04-23T11:27:06.790Z","2026-04-23T11:27:06.818Z",[4285],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":4288,"documentId":4289,"title":4290,"date":4291,"description":11,"order":40,"slug":4292,"showOnMainPage":13,"createdAt":4293,"updatedAt":4294,"publishedAt":4295,"locale":17,"cover":11,"content":4296,"media_event":4300,"media_areas":4309,"seo":11,"localizations":4311},146,"tk2dactwoh215eul3iw29pww","Синтез | Merge\n","2026-04-17","sintez-merge","2026-03-31T09:08:36.273Z","2026-05-27T09:14:34.810Z","2026-05-27T09:14:34.861Z",[4297],{"__component":66,"id":4298,"text":4299},109,"\u003Cp>\u003Cstrong>Как ИИ и инструменты разработки поменяли проектный менеджмент\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">В секции «Управление проектом» разберём, как ИИ и современные инструменты разработки сокращают разрыв между бизнесом и командой. Раньше менеджерам приходилось балансировать между требованиями заказчика и технической неопределённостью — сегодня ситуация меняется\u003C\u002Fp>\u003Cp class=\"p1\">На реальных кейсах покажем, как менеджеру глубже понимать техническую часть без погружения в разработку, точнее планировать сроки и быстрее принимать решения. Поговорим о том, как трансформируется сама роль PM и какие навыки становятся ключевыми в новой реальности\u003C\u002Fp>\u003Chr>\u003Cp class=\"p1\">\u003Cstrong>Собрать фронтенд-команду мечты: инструкция от выживших\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">В секции «Управление командой» обсудим, как выстроить сильную фронтенд-команду в условиях аутсорса, высокой нагрузки и постоянных изменений\u003C\u002Fp>\u003Cp class=\"p1\">Поделимся практическими принципами: почему важнее не «идеальные кодеры», а люди с желанием расти, как адаптивность становится критичнее опыта и зачем команде прозрачные процессы, регулярный фидбек и доверие. Это разговор про живую команду, которая действительно работает — и выдерживает реальность проектов\u003C\u002Fp>",{"id":4301,"documentId":4302,"place":4303,"dateFrom":4291,"dateTo":4304,"order":4305,"createdAt":4306,"updatedAt":4307,"publishedAt":4308,"locale":17},48,"ccs7hkccw5wfn09xebmh140p","Синтез | Merge","2026-04-18",498,"2026-03-31T09:29:11.830Z","2026-03-31T09:30:37.892Z","2026-03-31T09:30:37.922Z",[4310],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":4313,"documentId":4314,"title":4315,"date":4316,"description":11,"order":40,"slug":4317,"showOnMainPage":13,"createdAt":4318,"updatedAt":4319,"publishedAt":4320,"locale":17,"cover":11,"content":4321,"media_event":4322,"media_areas":4331,"seo":11,"localizations":4333},147,"xx92kedhzcjgflqbhwxa8uak","Город IT","2026-02-26","media-1","2026-02-26T12:41:06.332Z","2026-05-27T09:14:43.532Z","2026-05-27T09:14:43.581Z",[],{"id":1712,"documentId":4323,"place":4324,"dateFrom":4325,"dateTo":4326,"order":4327,"createdAt":4328,"updatedAt":4329,"publishedAt":4330,"locale":17},"hn0hcqte2ofyt1hkat7vt7q9","город it","2025-09-05","2025-09-06",503,"2026-02-25T15:04:33.887Z","2026-02-27T13:02:35.546Z","2026-02-27T13:02:35.574Z",[4332],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":1966,"documentId":4335,"title":4336,"date":4337,"description":11,"order":3584,"slug":4338,"showOnMainPage":13,"createdAt":4339,"updatedAt":4340,"publishedAt":4341,"locale":17,"cover":4342,"content":4378,"media_event":4381,"media_areas":4388,"seo":11,"localizations":4390},"zithllju8vltfyex2pc3aquf","Стачка СПб 26","2026-10-03","stachka1-2026","2026-09-22T12:53:53.887Z","2026-09-22T13:02:30.492Z","2026-09-22T13:02:30.548Z",{"id":4343,"documentId":4344,"name":4345,"alternativeText":11,"caption":11,"width":4346,"height":4347,"formats":4348,"hash":4373,"ext":26,"mime":29,"size":4374,"url":4375,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":4376,"updatedAt":4377,"publishedAt":4376},866,"wu2l1yllr8d3euezo38ty6cm","стачка 1.png",1560,1040,{"large":4349,"small":4355,"medium":4361,"thumbnail":4367},{"ext":26,"url":4350,"hash":4351,"mime":29,"name":4352,"path":11,"size":4353,"width":32,"height":33,"sizeInBytes":4354},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_stachka_1_2206fff486.png","large_stachka_1_2206fff486","large_стачка 1.png",1344.81,1344805,{"ext":26,"url":4356,"hash":4357,"mime":29,"name":4358,"path":11,"size":4359,"width":40,"height":41,"sizeInBytes":4360},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_stachka_1_2206fff486.png","small_stachka_1_2206fff486","small_стачка 1.png",366.59,366594,{"ext":26,"url":4362,"hash":4363,"mime":29,"name":4364,"path":11,"size":4365,"width":48,"height":40,"sizeInBytes":4366},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_stachka_1_2206fff486.png","medium_stachka_1_2206fff486","medium_стачка 1.png",779.27,779266,{"ext":26,"url":4368,"hash":4369,"mime":29,"name":4370,"path":11,"size":4371,"width":55,"height":56,"sizeInBytes":4372},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_stachka_1_2206fff486.png","thumbnail_stachka_1_2206fff486","thumbnail_стачка 1.png",92.59,92591,"stachka_1_2206fff486",580.71,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fstachka_1_2206fff486.png","2026-09-22T11:19:43.157Z","2026-09-22T12:43:05.800Z",[4379],{"__component":66,"id":527,"text":4380},"\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">3 октября в 11:00 на XVI международной IT-конференции «Стачка» в Санкт-Петербурге выступит Антон Фокин, CEO Qtim, с докладом «Как внедрить ИИ в компанию и заставить всех тебя ненавидеть».\u003C\u002Fp>\u003Cp dir=\"auto\">Многие компании начинают внедрение искусственного интеллекта одинаково: оплачивают сотрудникам доступ к нейросетям и ждут роста эффективности. Но доступ к инструменту ещё не меняет рабочие процессы. Без правил, ответственности и способов проверить результат индивидуальные эксперименты превращаются в хаос. Растут расходы, компания оплачивает личные задачи сотрудников, а ИИ порой делает работу дольше и дороже человека.\u003C\u002Fp>\u003Cp dir=\"auto\">Антон честно расскажет, как Qtim прошла этот путь: от бесплатного Claude для всех и счёта более $5 000 в месяц до добровольной аттестации сотрудников, корпоративных стандартов и пересмотра привычных ролей в командах. За время перестройки процессов штат сократился примерно с 80 до 44 человек, выручка выросла почти на 40%, а общая маржинальность достигла 35%, на отдельных проектах 50%.\u003C\u002Fp>\u003Cp dir=\"auto\">В рамках доклада разберёт:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"ed0921cdf32a9fc6a6a5acd4c4176a9c1\">\u003Cp dir=\"auto\">Почему оплатить всем доступ к искусственному интеллекту ещё не значит внедрить его в рабочие процессы\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e0c9f5ac7af7df1ea19486812e2beb7e7\">\u003Cp dir=\"auto\">Что изменилось, когда ответственность за изучение ИИ вернули самим сотрудникам: кто продолжил развиваться, а кто отказался от новых инструментов\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e15ec4ac1d7c3f2c63791e04bbbd1f0ed\">\u003Cp dir=\"auto\">Где проходит граница между ответственностью сотрудника и компании: личная подписка как инвестиция в собственное развитие, корпоративный доступ как часть производственного процесса\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e152ff1d91109acbdda18b90eb5535582\">\u003Cp dir=\"auto\">Как устроена добровольная аттестация по работе с ИИ, зачем компании семь внутренних AI-амбассадоров и почему компенсацию получили только трое из восьми прошедших оценку\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"eea0df19b2cc546a9156d4af1300180d0\">\u003Cp dir=\"auto\">Почему важнее стало не умение писать код, а способность проверить результат: качество, безопасность, производительность и соответствие бизнес-задаче\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e550c98ae9d41c57eb4c6de314b96d631\">\u003Cp dir=\"auto\">Как ИИ размывает роли: менеджеры разрабатывают продукты, фронтендеры пишут бэкенд, бэкендеры фронтенд, а дизайнеры передают готовые HTML-страницы\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e99f4a74fc92111ea03924ecfde195b2e\">\u003Cp dir=\"auto\">Почему без общей системы правил, инструментов, плагинов и способов передачи результата индивидуальное использование ИИ превращается в хаос\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e87e5d79fda2109d91145d3d8200bb3d1\">\u003Cp dir=\"auto\">Почему следующий этап — переход от добровольного использования ИИ к обязательным и строго регламентированным рабочим практикам\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">После доклада участники смогут:\u003C\u002Fp>\u003Cul data-spread=\"false\">\u003Cli data-list-item-id=\"efa82c77c343df705ecacf830039db241\">\u003Cp dir=\"auto\">Оптимизировать расходы на искусственный интеллект и отличать производственное использование от экспериментов за счёт компании\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"ec066c36127535f5a385d03aff6754869\">\u003Cp dir=\"auto\">Оценивать реальное владение инструментами у сотрудников\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e99860f03bdfa02a58dcf23ccba5f2119\">\u003Cp dir=\"auto\">Находить внутренних амбассадоров и работать с сопротивлением команды\u003C\u002Fp>\u003C\u002Fli>\u003Cli data-list-item-id=\"e764e893466a8e1842bde435c7be0130f\">\u003Cp dir=\"auto\">Превращать разрозненные эксперименты сотрудников в управляемый производственный процесс\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp dir=\"auto\">\u003Cstrong>Когда:\u003C\u002Fstrong> 3 октября, 11:00\u003Cbr>\u003Cstrong>Где:\u003C\u002Fstrong> Санкт-Петербург, XVI международная IT-конференция «Стачка», 3–4 октября\u003Cbr>\u003Cstrong>Билеты:\u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fspb.nastachku.ru\u002Fstranitsa-bilety\"> spb.nastachku.ru\u003C\u002Fa>\u003C\u002Fp>",{"id":4382,"documentId":4383,"place":4384,"dateFrom":4337,"dateTo":4337,"order":3584,"createdAt":4385,"updatedAt":4386,"publishedAt":4387,"locale":17},65,"g78a6xdpbio64v9tg6hsuv2l","Стачка 2026","2026-09-22T12:58:45.490Z","2026-09-22T13:04:11.643Z","2026-09-22T13:04:11.695Z",[4389],{"id":3524,"documentId":3525,"title":3526,"slug":3527,"order":40,"createdAt":3528,"updatedAt":3528,"publishedAt":3529,"locale":17},[],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17,"media":4392},[4393,4406,4419,4432,4446,4459,4472,4485,4498,4511],{"id":2063,"documentId":2064,"title":2065,"date":2066,"description":11,"order":40,"slug":2067,"showOnMainPage":13,"createdAt":2068,"updatedAt":2068,"publishedAt":2069,"locale":17,"cover":4394,"content":4400,"media_event":11,"media_areas":4402,"seo":11,"localizations":4405},{"id":2071,"documentId":2072,"name":2073,"alternativeText":11,"caption":11,"width":2074,"height":2074,"formats":4395,"hash":2100,"ext":26,"mime":29,"size":2101,"url":2102,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2103,"updatedAt":2103,"publishedAt":2104},{"large":4396,"small":4397,"medium":4398,"thumbnail":4399},{"ext":26,"url":2077,"hash":2078,"mime":29,"name":2079,"path":11,"size":2080,"width":32,"height":32,"sizeInBytes":2081},{"ext":26,"url":2083,"hash":2084,"mime":29,"name":2085,"path":11,"size":2086,"width":40,"height":40,"sizeInBytes":2087},{"ext":26,"url":2089,"hash":2090,"mime":29,"name":2091,"path":11,"size":2092,"width":48,"height":48,"sizeInBytes":2093},{"ext":26,"url":2095,"hash":2096,"mime":29,"name":2097,"path":11,"size":2098,"width":56,"height":56,"sizeInBytes":2099},[4401],{"__component":66,"id":2107,"text":2108},[4403,4404],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1626,"documentId":2916,"title":2917,"date":2874,"description":11,"order":40,"slug":2918,"showOnMainPage":13,"createdAt":2919,"updatedAt":2919,"publishedAt":2920,"locale":17,"cover":4407,"content":4413,"media_event":11,"media_areas":4415,"seo":11,"localizations":4418},{"id":2922,"documentId":2923,"name":2924,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":4408,"hash":2951,"ext":26,"mime":29,"size":2952,"url":2953,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2954,"updatedAt":2954,"publishedAt":2955},{"large":4409,"small":4410,"medium":4411,"thumbnail":4412},{"ext":26,"url":2928,"hash":2929,"mime":29,"name":2930,"path":11,"size":2931,"width":32,"height":1620,"sizeInBytes":2932},{"ext":26,"url":2934,"hash":2935,"mime":29,"name":2936,"path":11,"size":2937,"width":40,"height":1626,"sizeInBytes":2938},{"ext":26,"url":2940,"hash":2941,"mime":29,"name":2942,"path":11,"size":2943,"width":48,"height":1632,"sizeInBytes":2944},{"ext":26,"url":2946,"hash":2947,"mime":29,"name":2948,"path":11,"size":2949,"width":1638,"height":1639,"sizeInBytes":2950},[4414],{"__component":66,"id":2958,"text":2959},[4416,4417],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2965,"documentId":2966,"title":2967,"date":2968,"description":11,"order":40,"slug":2969,"showOnMainPage":13,"createdAt":2970,"updatedAt":2970,"publishedAt":2971,"locale":17,"cover":4420,"content":4426,"media_event":11,"media_areas":4428,"seo":11,"localizations":4431},{"id":2973,"documentId":2974,"name":2975,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":4421,"hash":3001,"ext":26,"mime":29,"size":3002,"url":3003,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3004,"updatedAt":3004,"publishedAt":3005},{"large":4422,"small":4423,"medium":4424,"thumbnail":4425},{"ext":26,"url":2978,"hash":2979,"mime":29,"name":2980,"path":11,"size":2981,"width":32,"height":1620,"sizeInBytes":2982},{"ext":26,"url":2984,"hash":2985,"mime":29,"name":2986,"path":11,"size":2987,"width":40,"height":1626,"sizeInBytes":2988},{"ext":26,"url":2990,"hash":2991,"mime":29,"name":2992,"path":11,"size":2993,"width":48,"height":1632,"sizeInBytes":2994},{"ext":26,"url":2996,"hash":2997,"mime":29,"name":2998,"path":11,"size":2999,"width":1638,"height":1639,"sizeInBytes":3000},[4427],{"__component":66,"id":3008,"text":3009},[4429,4430],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":669,"documentId":3269,"title":3270,"date":420,"description":11,"order":40,"slug":3271,"showOnMainPage":13,"createdAt":3272,"updatedAt":3272,"publishedAt":3273,"locale":17,"cover":4433,"content":4439,"media_event":11,"media_areas":4441,"seo":11,"localizations":4445},{"id":3275,"documentId":3276,"name":3277,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":4434,"hash":3303,"ext":26,"mime":29,"size":3304,"url":3305,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3306,"updatedAt":3306,"publishedAt":3307},{"large":4435,"small":4436,"medium":4437,"thumbnail":4438},{"ext":26,"url":3280,"hash":3281,"mime":29,"name":3282,"path":11,"size":3283,"width":32,"height":1620,"sizeInBytes":3284},{"ext":26,"url":3286,"hash":3287,"mime":29,"name":3288,"path":11,"size":3289,"width":40,"height":1626,"sizeInBytes":3290},{"ext":26,"url":3292,"hash":3293,"mime":29,"name":3294,"path":11,"size":3295,"width":48,"height":1632,"sizeInBytes":3296},{"ext":26,"url":3298,"hash":3299,"mime":29,"name":3300,"path":11,"size":3301,"width":1638,"height":1639,"sizeInBytes":3302},[4440],{"__component":66,"id":3310,"text":3311},[4442,4443,4444],{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3513,"documentId":4048,"title":4049,"date":420,"description":11,"order":6,"slug":4050,"showOnMainPage":13,"createdAt":4051,"updatedAt":4052,"publishedAt":4053,"locale":17,"cover":4447,"content":4453,"media_event":11,"media_areas":4455,"seo":11,"localizations":4458},{"id":4055,"documentId":4056,"name":4057,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":4448,"hash":4083,"ext":379,"mime":382,"size":4084,"url":4085,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":4086,"updatedAt":4086,"publishedAt":4086},{"large":4449,"small":4450,"medium":4451,"thumbnail":4452},{"ext":379,"url":4060,"hash":4061,"mime":382,"name":4062,"path":11,"size":4063,"width":32,"height":33,"sizeInBytes":4064},{"ext":379,"url":4066,"hash":4067,"mime":382,"name":4068,"path":11,"size":4069,"width":40,"height":41,"sizeInBytes":4070},{"ext":379,"url":4072,"hash":4073,"mime":382,"name":4074,"path":11,"size":4075,"width":48,"height":40,"sizeInBytes":4076},{"ext":379,"url":4078,"hash":4079,"mime":382,"name":4080,"path":11,"size":4081,"width":55,"height":56,"sizeInBytes":4082},[4454],{"__component":66,"id":4089,"text":4090},[4456,4457],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":417,"documentId":418,"title":419,"date":420,"description":11,"order":6,"slug":421,"showOnMainPage":13,"createdAt":422,"updatedAt":423,"publishedAt":424,"locale":17,"cover":4460,"content":4466,"media_event":11,"media_areas":4468,"seo":11,"localizations":4471},{"id":426,"documentId":427,"name":428,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4461,"hash":454,"ext":379,"mime":382,"size":455,"url":456,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":457,"updatedAt":457,"publishedAt":458},{"large":4462,"small":4463,"medium":4464,"thumbnail":4465},{"ext":379,"url":431,"hash":432,"mime":382,"name":433,"path":11,"size":434,"width":32,"height":33,"sizeInBytes":435},{"ext":379,"url":437,"hash":438,"mime":382,"name":439,"path":11,"size":440,"width":40,"height":41,"sizeInBytes":441},{"ext":379,"url":443,"hash":444,"mime":382,"name":445,"path":11,"size":446,"width":48,"height":40,"sizeInBytes":447},{"ext":379,"url":449,"hash":450,"mime":382,"name":451,"path":11,"size":452,"width":55,"height":56,"sizeInBytes":453},[4467],{"__component":66,"id":461,"text":462},[4469,4470],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2491,"documentId":4096,"title":4097,"date":580,"description":11,"order":6,"slug":4098,"showOnMainPage":13,"createdAt":4099,"updatedAt":4100,"publishedAt":4101,"locale":17,"cover":4473,"content":4479,"media_event":11,"media_areas":4481,"seo":11,"localizations":4484},{"id":3479,"documentId":4103,"name":4104,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4474,"hash":4130,"ext":379,"mime":382,"size":4131,"url":4132,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":4133,"updatedAt":4134,"publishedAt":4133},{"large":4475,"small":4476,"medium":4477,"thumbnail":4478},{"ext":379,"url":4107,"hash":4108,"mime":382,"name":4109,"path":11,"size":4110,"width":32,"height":33,"sizeInBytes":4111},{"ext":379,"url":4113,"hash":4114,"mime":382,"name":4115,"path":11,"size":4116,"width":40,"height":41,"sizeInBytes":4117},{"ext":379,"url":4119,"hash":4120,"mime":382,"name":4121,"path":11,"size":4122,"width":48,"height":40,"sizeInBytes":4123},{"ext":379,"url":4125,"hash":4126,"mime":382,"name":4127,"path":11,"size":4128,"width":55,"height":56,"sizeInBytes":4129},[4480],{"__component":66,"id":4137,"text":4138},[4482,4483],{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":1407,"documentId":1408,"title":1409,"slug":1410,"order":40,"createdAt":1411,"updatedAt":1411,"publishedAt":1412,"locale":17},[],{"id":3581,"documentId":3582,"title":3583,"date":3536,"description":11,"order":3584,"slug":3585,"showOnMainPage":13,"createdAt":3586,"updatedAt":3587,"publishedAt":3588,"locale":17,"cover":4486,"content":4492,"media_event":11,"media_areas":4494,"seo":11,"localizations":4497},{"id":3590,"documentId":3591,"name":3592,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4487,"hash":3618,"ext":379,"mime":382,"size":3619,"url":3620,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3621,"updatedAt":3621,"publishedAt":3621},{"large":4488,"small":4489,"medium":4490,"thumbnail":4491},{"ext":379,"url":3595,"hash":3596,"mime":382,"name":3597,"path":11,"size":3598,"width":32,"height":33,"sizeInBytes":3599},{"ext":379,"url":3601,"hash":3602,"mime":382,"name":3603,"path":11,"size":3604,"width":40,"height":41,"sizeInBytes":3605},{"ext":379,"url":3607,"hash":3608,"mime":382,"name":3609,"path":11,"size":3610,"width":48,"height":40,"sizeInBytes":3611},{"ext":379,"url":3613,"hash":3614,"mime":382,"name":3615,"path":11,"size":3616,"width":55,"height":56,"sizeInBytes":3617},[4493],{"__component":66,"id":3624,"text":3625},[4495,4496],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},[],{"id":3681,"documentId":3682,"title":3683,"date":3634,"description":11,"order":3584,"slug":3684,"showOnMainPage":13,"createdAt":3685,"updatedAt":3686,"publishedAt":3687,"locale":17,"cover":4499,"content":4505,"media_event":11,"media_areas":4507,"seo":11,"localizations":4510},{"id":3689,"documentId":3690,"name":3691,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4500,"hash":3717,"ext":379,"mime":382,"size":3718,"url":3719,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3720,"updatedAt":3720,"publishedAt":3721},{"large":4501,"small":4502,"medium":4503,"thumbnail":4504},{"ext":379,"url":3694,"hash":3695,"mime":382,"name":3696,"path":11,"size":3697,"width":32,"height":1620,"sizeInBytes":3698},{"ext":379,"url":3700,"hash":3701,"mime":382,"name":3702,"path":11,"size":3703,"width":40,"height":1626,"sizeInBytes":3704},{"ext":379,"url":3706,"hash":3707,"mime":382,"name":3708,"path":11,"size":3709,"width":48,"height":1632,"sizeInBytes":3710},{"ext":379,"url":3712,"hash":3713,"mime":382,"name":3714,"path":11,"size":3715,"width":1638,"height":1639,"sizeInBytes":3716},[4506],{"__component":66,"id":3533,"text":3724},[4508,4509],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},[],{"id":1466,"documentId":1467,"title":1468,"date":1469,"description":11,"order":40,"slug":1470,"showOnMainPage":13,"createdAt":1471,"updatedAt":1472,"publishedAt":1473,"locale":17,"cover":4512,"content":4518,"media_event":11,"media_areas":4520,"seo":11,"localizations":4523},{"id":1475,"documentId":1476,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4513,"hash":1498,"ext":26,"mime":29,"size":1499,"url":1500,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1501,"updatedAt":1501,"publishedAt":1501},{"large":4514,"small":4515,"medium":4516,"thumbnail":4517},{"ext":26,"url":1479,"hash":1480,"mime":29,"name":1375,"path":11,"size":1481,"width":32,"height":33,"sizeInBytes":1482},{"ext":26,"url":1484,"hash":1485,"mime":29,"name":1381,"path":11,"size":1486,"width":40,"height":41,"sizeInBytes":1487},{"ext":26,"url":1489,"hash":1490,"mime":29,"name":1387,"path":11,"size":1491,"width":48,"height":40,"sizeInBytes":1492},{"ext":26,"url":1494,"hash":1495,"mime":29,"name":1393,"path":11,"size":1496,"width":55,"height":56,"sizeInBytes":1497},[4519],{"__component":66,"id":1504,"text":1505},[4521,4522],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},[],{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17,"media":4525},[4526,4540,4554,4567,4581],{"id":2279,"documentId":2280,"title":2281,"date":2282,"description":11,"order":40,"slug":2283,"showOnMainPage":13,"createdAt":2284,"updatedAt":2285,"publishedAt":2286,"locale":17,"cover":4527,"content":4533,"media_event":11,"media_areas":4535,"seo":11,"localizations":4539},{"id":2288,"documentId":2289,"name":2290,"alternativeText":11,"caption":11,"width":1614,"height":1614,"formats":4528,"hash":2316,"ext":26,"mime":29,"size":2317,"url":2318,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2319,"updatedAt":2319,"publishedAt":2320},{"large":4529,"small":4530,"medium":4531,"thumbnail":4532},{"ext":26,"url":2293,"hash":2294,"mime":29,"name":2295,"path":11,"size":2296,"width":32,"height":32,"sizeInBytes":2297},{"ext":26,"url":2299,"hash":2300,"mime":29,"name":2301,"path":11,"size":2302,"width":40,"height":40,"sizeInBytes":2303},{"ext":26,"url":2305,"hash":2306,"mime":29,"name":2307,"path":11,"size":2308,"width":48,"height":48,"sizeInBytes":2309},{"ext":26,"url":2311,"hash":2312,"mime":29,"name":2313,"path":11,"size":2314,"width":56,"height":56,"sizeInBytes":2315},[4534],{"__component":66,"id":2323,"text":2324},[4536,4537,4538],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":2447,"documentId":2448,"title":2449,"date":2450,"description":11,"order":6,"slug":2451,"showOnMainPage":13,"createdAt":2452,"updatedAt":2453,"publishedAt":2454,"locale":17,"cover":4541,"content":4547,"media_event":11,"media_areas":4549,"seo":11,"localizations":4553},{"id":2456,"documentId":2457,"name":2458,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4542,"hash":2484,"ext":26,"mime":29,"size":2485,"url":2486,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2487,"updatedAt":2487,"publishedAt":2488},{"large":4543,"small":4544,"medium":4545,"thumbnail":4546},{"ext":26,"url":2461,"hash":2462,"mime":29,"name":2463,"path":11,"size":2464,"width":32,"height":33,"sizeInBytes":2465},{"ext":26,"url":2467,"hash":2468,"mime":29,"name":2469,"path":11,"size":2470,"width":40,"height":41,"sizeInBytes":2471},{"ext":26,"url":2473,"hash":2474,"mime":29,"name":2475,"path":11,"size":2476,"width":48,"height":40,"sizeInBytes":2477},{"ext":26,"url":2479,"hash":2480,"mime":29,"name":2481,"path":11,"size":2482,"width":55,"height":56,"sizeInBytes":2483},[4548],{"__component":66,"id":2491,"text":2492},[4550,4551,4552],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":3015,"documentId":3016,"title":3017,"date":3018,"description":11,"order":40,"slug":3019,"showOnMainPage":13,"createdAt":3020,"updatedAt":3020,"publishedAt":3021,"locale":17,"cover":4555,"content":4561,"media_event":11,"media_areas":4563,"seo":11,"localizations":4566},{"id":3023,"documentId":3024,"name":3025,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":4556,"hash":3051,"ext":26,"mime":29,"size":3052,"url":3053,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3054,"updatedAt":3054,"publishedAt":3055},{"large":4557,"small":4558,"medium":4559,"thumbnail":4560},{"ext":26,"url":3028,"hash":3029,"mime":29,"name":3030,"path":11,"size":3031,"width":32,"height":1620,"sizeInBytes":3032},{"ext":26,"url":3034,"hash":3035,"mime":29,"name":3036,"path":11,"size":3037,"width":40,"height":1626,"sizeInBytes":3038},{"ext":26,"url":3040,"hash":3041,"mime":29,"name":3042,"path":11,"size":3043,"width":48,"height":1632,"sizeInBytes":3044},{"ext":26,"url":3046,"hash":3047,"mime":29,"name":3048,"path":11,"size":3049,"width":1638,"height":1639,"sizeInBytes":3050},[4562],{"__component":66,"id":3058,"text":3059},[4564,4565],{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":669,"documentId":3269,"title":3270,"date":420,"description":11,"order":40,"slug":3271,"showOnMainPage":13,"createdAt":3272,"updatedAt":3272,"publishedAt":3273,"locale":17,"cover":4568,"content":4574,"media_event":11,"media_areas":4576,"seo":11,"localizations":4580},{"id":3275,"documentId":3276,"name":3277,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":4569,"hash":3303,"ext":26,"mime":29,"size":3304,"url":3305,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3306,"updatedAt":3306,"publishedAt":3307},{"large":4570,"small":4571,"medium":4572,"thumbnail":4573},{"ext":26,"url":3280,"hash":3281,"mime":29,"name":3282,"path":11,"size":3283,"width":32,"height":1620,"sizeInBytes":3284},{"ext":26,"url":3286,"hash":3287,"mime":29,"name":3288,"path":11,"size":3289,"width":40,"height":1626,"sizeInBytes":3290},{"ext":26,"url":3292,"hash":3293,"mime":29,"name":3294,"path":11,"size":3295,"width":48,"height":1632,"sizeInBytes":3296},{"ext":26,"url":3298,"hash":3299,"mime":29,"name":3300,"path":11,"size":3301,"width":1638,"height":1639,"sizeInBytes":3302},[4575],{"__component":66,"id":3310,"text":3311},[4577,4578,4579],{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":465,"documentId":466,"title":467,"slug":468,"order":40,"createdAt":469,"updatedAt":469,"publishedAt":470,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1415,"documentId":1416,"title":1417,"date":1418,"description":11,"order":40,"slug":1419,"showOnMainPage":13,"createdAt":1420,"updatedAt":1421,"publishedAt":1422,"locale":17,"cover":4582,"content":4588,"media_event":11,"media_areas":4590,"seo":11,"localizations":4593},{"id":1424,"documentId":1425,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4583,"hash":1447,"ext":26,"mime":29,"size":1448,"url":1449,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1450,"updatedAt":1450,"publishedAt":1450},{"large":4584,"small":4585,"medium":4586,"thumbnail":4587},{"ext":26,"url":1428,"hash":1429,"mime":29,"name":1375,"path":11,"size":1430,"width":32,"height":33,"sizeInBytes":1431},{"ext":26,"url":1433,"hash":1434,"mime":29,"name":1381,"path":11,"size":1435,"width":40,"height":41,"sizeInBytes":1436},{"ext":26,"url":1438,"hash":1439,"mime":29,"name":1387,"path":11,"size":1440,"width":48,"height":40,"sizeInBytes":1441},{"ext":26,"url":1443,"hash":1444,"mime":29,"name":1393,"path":11,"size":1445,"width":55,"height":56,"sizeInBytes":1446},[4589],{"__component":66,"id":1453,"text":1454},[4591,4592],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},[],{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17,"media":4595},[4596,4609,4623,4636,4650,4663],{"id":1973,"documentId":1974,"title":1975,"date":1976,"description":11,"order":1821,"slug":1977,"showOnMainPage":13,"createdAt":1978,"updatedAt":1979,"publishedAt":1980,"locale":17,"cover":4597,"content":4603,"media_event":11,"media_areas":4605,"seo":11,"localizations":4608},{"id":1982,"documentId":1983,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4598,"hash":2005,"ext":26,"mime":29,"size":2006,"url":2007,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2008,"updatedAt":2008,"publishedAt":2009},{"large":4599,"small":4600,"medium":4601,"thumbnail":4602},{"ext":26,"url":1986,"hash":1987,"mime":29,"name":1375,"path":11,"size":1988,"width":32,"height":33,"sizeInBytes":1989},{"ext":26,"url":1991,"hash":1992,"mime":29,"name":1381,"path":11,"size":1993,"width":40,"height":41,"sizeInBytes":1994},{"ext":26,"url":1996,"hash":1997,"mime":29,"name":1387,"path":11,"size":1998,"width":48,"height":40,"sizeInBytes":1999},{"ext":26,"url":2001,"hash":2002,"mime":29,"name":1393,"path":11,"size":2003,"width":55,"height":56,"sizeInBytes":2004},[4604],{"__component":66,"id":2012,"text":2013},[4606,4607],{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":251,"documentId":252,"title":253,"date":254,"description":11,"order":6,"slug":255,"showOnMainPage":13,"createdAt":256,"updatedAt":257,"publishedAt":258,"locale":17,"cover":4610,"content":4616,"media_event":11,"media_areas":4618,"seo":4621,"localizations":4622},{"id":260,"documentId":261,"name":262,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4611,"hash":288,"ext":26,"mime":29,"size":289,"url":290,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":291,"updatedAt":291,"publishedAt":291},{"large":4612,"small":4613,"medium":4614,"thumbnail":4615},{"ext":26,"url":265,"hash":266,"mime":29,"name":267,"path":11,"size":268,"width":32,"height":33,"sizeInBytes":269},{"ext":26,"url":271,"hash":272,"mime":29,"name":273,"path":11,"size":274,"width":40,"height":41,"sizeInBytes":275},{"ext":26,"url":277,"hash":278,"mime":29,"name":279,"path":11,"size":280,"width":48,"height":40,"sizeInBytes":281},{"ext":26,"url":283,"hash":284,"mime":29,"name":285,"path":11,"size":286,"width":55,"height":56,"sizeInBytes":287},[4617],{"__component":66,"id":294,"text":295},[4619,4620],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},{"id":306,"metaTitle":11,"metaDescription":11},[],{"id":2345,"documentId":2346,"title":2347,"date":2348,"description":11,"order":6,"slug":2349,"showOnMainPage":13,"createdAt":2350,"updatedAt":2351,"publishedAt":2352,"locale":17,"cover":4624,"content":4630,"media_event":11,"media_areas":4632,"seo":11,"localizations":4635},{"id":2354,"documentId":2355,"name":2356,"alternativeText":11,"caption":11,"width":2357,"height":2358,"formats":4625,"hash":2384,"ext":26,"mime":29,"size":2385,"url":2386,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2387,"updatedAt":2387,"publishedAt":2387},{"large":4626,"small":4627,"medium":4628,"thumbnail":4629},{"ext":26,"url":2361,"hash":2362,"mime":29,"name":2363,"path":11,"size":2364,"width":32,"height":1620,"sizeInBytes":2365},{"ext":26,"url":2367,"hash":2368,"mime":29,"name":2369,"path":11,"size":2370,"width":40,"height":1626,"sizeInBytes":2371},{"ext":26,"url":2373,"hash":2374,"mime":29,"name":2375,"path":11,"size":2376,"width":48,"height":1632,"sizeInBytes":2377},{"ext":26,"url":2379,"hash":2380,"mime":29,"name":2381,"path":11,"size":2382,"width":1638,"height":1639,"sizeInBytes":2383},[4631],{"__component":66,"id":2390,"text":2391},[4633,4634],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":2447,"documentId":2448,"title":2449,"date":2450,"description":11,"order":6,"slug":2451,"showOnMainPage":13,"createdAt":2452,"updatedAt":2453,"publishedAt":2454,"locale":17,"cover":4637,"content":4643,"media_event":11,"media_areas":4645,"seo":11,"localizations":4649},{"id":2456,"documentId":2457,"name":2458,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4638,"hash":2484,"ext":26,"mime":29,"size":2485,"url":2486,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2487,"updatedAt":2487,"publishedAt":2488},{"large":4639,"small":4640,"medium":4641,"thumbnail":4642},{"ext":26,"url":2461,"hash":2462,"mime":29,"name":2463,"path":11,"size":2464,"width":32,"height":33,"sizeInBytes":2465},{"ext":26,"url":2467,"hash":2468,"mime":29,"name":2469,"path":11,"size":2470,"width":40,"height":41,"sizeInBytes":2471},{"ext":26,"url":2473,"hash":2474,"mime":29,"name":2475,"path":11,"size":2476,"width":48,"height":40,"sizeInBytes":2477},{"ext":26,"url":2479,"hash":2480,"mime":29,"name":2481,"path":11,"size":2482,"width":55,"height":56,"sizeInBytes":2483},[4644],{"__component":66,"id":2491,"text":2492},[4646,4647,4648],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":1817,"documentId":1818,"title":1819,"date":1820,"description":11,"order":1821,"slug":1822,"showOnMainPage":13,"createdAt":1823,"updatedAt":1824,"publishedAt":1825,"locale":17,"cover":4651,"content":4657,"media_event":11,"media_areas":4659,"seo":11,"localizations":4662},{"id":1827,"documentId":1828,"name":1829,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4652,"hash":1855,"ext":26,"mime":29,"size":1856,"url":1857,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1858,"updatedAt":1858,"publishedAt":1858},{"large":4653,"small":4654,"medium":4655,"thumbnail":4656},{"ext":26,"url":1832,"hash":1833,"mime":29,"name":1834,"path":11,"size":1835,"width":32,"height":33,"sizeInBytes":1836},{"ext":26,"url":1838,"hash":1839,"mime":29,"name":1840,"path":11,"size":1841,"width":40,"height":41,"sizeInBytes":1842},{"ext":26,"url":1844,"hash":1845,"mime":29,"name":1846,"path":11,"size":1847,"width":48,"height":40,"sizeInBytes":1848},{"ext":26,"url":1850,"hash":1851,"mime":29,"name":1852,"path":11,"size":1853,"width":55,"height":56,"sizeInBytes":1854},[4658],{"__component":66,"id":1861,"text":1862},[4660,4661],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":3166,"documentId":3167,"title":3168,"date":3018,"description":11,"order":40,"slug":3169,"showOnMainPage":13,"createdAt":3170,"updatedAt":3171,"publishedAt":3172,"locale":17,"cover":4664,"content":4670,"media_event":11,"media_areas":4672,"seo":11,"localizations":4675},{"id":3174,"documentId":3175,"name":3176,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":4665,"hash":3202,"ext":26,"mime":29,"size":3203,"url":3204,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3205,"updatedAt":3205,"publishedAt":3205},{"large":4666,"small":4667,"medium":4668,"thumbnail":4669},{"ext":26,"url":3179,"hash":3180,"mime":29,"name":3181,"path":11,"size":3182,"width":32,"height":1620,"sizeInBytes":3183},{"ext":26,"url":3185,"hash":3186,"mime":29,"name":3187,"path":11,"size":3188,"width":40,"height":1626,"sizeInBytes":3189},{"ext":26,"url":3191,"hash":3192,"mime":29,"name":3193,"path":11,"size":3194,"width":48,"height":1632,"sizeInBytes":3195},{"ext":26,"url":3197,"hash":3198,"mime":29,"name":3199,"path":11,"size":3200,"width":1638,"height":1639,"sizeInBytes":3201},[4671],{"__component":66,"id":800,"text":3208},[4673,4674],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":299,"documentId":300,"title":301,"slug":302,"order":40,"createdAt":303,"updatedAt":303,"publishedAt":304,"locale":17},[],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17,"media":4677},[4678,4691,4704,4717,4730,4743,4756,4769],{"id":2114,"documentId":2115,"title":2116,"date":2117,"description":11,"order":2118,"slug":2119,"showOnMainPage":13,"createdAt":2120,"updatedAt":2121,"publishedAt":2122,"locale":17,"cover":4679,"content":4685,"media_event":11,"media_areas":4687,"seo":11,"localizations":4690},{"id":2124,"documentId":2125,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4680,"hash":2147,"ext":26,"mime":29,"size":2148,"url":2149,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2150,"updatedAt":2150,"publishedAt":2151},{"large":4681,"small":4682,"medium":4683,"thumbnail":4684},{"ext":26,"url":2128,"hash":2129,"mime":29,"name":1375,"path":11,"size":2130,"width":32,"height":33,"sizeInBytes":2131},{"ext":26,"url":2133,"hash":2134,"mime":29,"name":1381,"path":11,"size":2135,"width":40,"height":41,"sizeInBytes":2136},{"ext":26,"url":2138,"hash":2139,"mime":29,"name":1387,"path":11,"size":2140,"width":48,"height":40,"sizeInBytes":2141},{"ext":26,"url":2143,"hash":2144,"mime":29,"name":1393,"path":11,"size":2145,"width":55,"height":56,"sizeInBytes":2146},[4686],{"__component":66,"id":2154,"text":2155},[4688,4689],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":195,"documentId":196,"title":197,"date":198,"description":11,"order":6,"slug":199,"showOnMainPage":13,"createdAt":200,"updatedAt":201,"publishedAt":202,"locale":17,"cover":4692,"content":4698,"media_event":11,"media_areas":4700,"seo":11,"localizations":4703},{"id":204,"documentId":205,"name":206,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4693,"hash":232,"ext":26,"mime":29,"size":233,"url":234,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":235,"updatedAt":235,"publishedAt":235},{"large":4694,"small":4695,"medium":4696,"thumbnail":4697},{"ext":26,"url":209,"hash":210,"mime":29,"name":211,"path":11,"size":212,"width":32,"height":33,"sizeInBytes":213},{"ext":26,"url":215,"hash":216,"mime":29,"name":217,"path":11,"size":218,"width":40,"height":41,"sizeInBytes":219},{"ext":26,"url":221,"hash":222,"mime":29,"name":223,"path":11,"size":224,"width":48,"height":40,"sizeInBytes":225},{"ext":26,"url":227,"hash":228,"mime":29,"name":229,"path":11,"size":230,"width":55,"height":56,"sizeInBytes":231},[4699],{"__component":66,"id":238,"text":239},[4701,4702],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1511,"documentId":1512,"title":1513,"date":1514,"description":11,"order":520,"slug":1515,"showOnMainPage":13,"createdAt":1516,"updatedAt":1517,"publishedAt":1518,"locale":17,"cover":4705,"content":4711,"media_event":11,"media_areas":4713,"seo":11,"localizations":4716},{"id":1520,"documentId":1521,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4706,"hash":1543,"ext":26,"mime":29,"size":1544,"url":1545,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1546,"updatedAt":1546,"publishedAt":1547},{"large":4707,"small":4708,"medium":4709,"thumbnail":4710},{"ext":26,"url":1524,"hash":1525,"mime":29,"name":1375,"path":11,"size":1526,"width":32,"height":33,"sizeInBytes":1527},{"ext":26,"url":1529,"hash":1530,"mime":29,"name":1381,"path":11,"size":1531,"width":40,"height":41,"sizeInBytes":1532},{"ext":26,"url":1534,"hash":1535,"mime":29,"name":1387,"path":11,"size":1536,"width":48,"height":40,"sizeInBytes":1537},{"ext":26,"url":1539,"hash":1540,"mime":29,"name":1393,"path":11,"size":1541,"width":55,"height":56,"sizeInBytes":1542},[4712],{"__component":66,"id":1550,"text":1551},[4714,4715],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":1603,"documentId":1604,"title":1605,"date":1606,"description":11,"order":40,"slug":1607,"showOnMainPage":13,"createdAt":1608,"updatedAt":1609,"publishedAt":1610,"locale":17,"cover":4718,"content":4724,"media_event":11,"media_areas":4726,"seo":11,"localizations":4729},{"id":1612,"documentId":1613,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4719,"hash":1641,"ext":26,"mime":29,"size":1642,"url":1643,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1644,"updatedAt":1644,"publishedAt":1645},{"large":4720,"small":4721,"medium":4722,"thumbnail":4723},{"ext":26,"url":1617,"hash":1618,"mime":29,"name":1375,"path":11,"size":1619,"width":32,"height":1620,"sizeInBytes":1621},{"ext":26,"url":1623,"hash":1624,"mime":29,"name":1381,"path":11,"size":1625,"width":40,"height":1626,"sizeInBytes":1627},{"ext":26,"url":1629,"hash":1630,"mime":29,"name":1387,"path":11,"size":1631,"width":48,"height":1632,"sizeInBytes":1633},{"ext":26,"url":1635,"hash":1636,"mime":29,"name":1393,"path":11,"size":1637,"width":1638,"height":1639,"sizeInBytes":1640},[4725],{"__component":66,"id":1648,"text":1649},[4727,4728],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":2674,"documentId":2675,"title":2676,"date":2677,"description":11,"order":6,"slug":2678,"showOnMainPage":13,"createdAt":2679,"updatedAt":2680,"publishedAt":2681,"locale":17,"cover":4731,"content":4737,"media_event":11,"media_areas":4739,"seo":11,"localizations":4742},{"id":2683,"documentId":2684,"name":2685,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":4732,"hash":2711,"ext":379,"mime":382,"size":2712,"url":2713,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2714,"updatedAt":2714,"publishedAt":2714},{"large":4733,"small":4734,"medium":4735,"thumbnail":4736},{"ext":379,"url":2688,"hash":2689,"mime":382,"name":2690,"path":11,"size":2691,"width":32,"height":32,"sizeInBytes":2692},{"ext":379,"url":2694,"hash":2695,"mime":382,"name":2696,"path":11,"size":2697,"width":40,"height":40,"sizeInBytes":2698},{"ext":379,"url":2700,"hash":2701,"mime":382,"name":2702,"path":11,"size":2703,"width":48,"height":48,"sizeInBytes":2704},{"ext":379,"url":2706,"hash":2707,"mime":382,"name":2708,"path":11,"size":2709,"width":56,"height":56,"sizeInBytes":2710},[4738],{"__component":66,"id":577,"text":2717},[4740,4741],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":3318,"documentId":3319,"title":3320,"date":420,"description":11,"order":40,"slug":3321,"showOnMainPage":13,"createdAt":3322,"updatedAt":3323,"publishedAt":3324,"locale":17,"cover":4744,"content":4750,"media_event":11,"media_areas":4752,"seo":11,"localizations":4755},{"id":3326,"documentId":3327,"name":3328,"alternativeText":11,"caption":11,"width":3125,"height":854,"formats":4745,"hash":3354,"ext":26,"mime":29,"size":3355,"url":3356,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3357,"updatedAt":3357,"publishedAt":3357},{"large":4746,"small":4747,"medium":4748,"thumbnail":4749},{"ext":26,"url":3331,"hash":3332,"mime":29,"name":3333,"path":11,"size":3334,"width":32,"height":33,"sizeInBytes":3335},{"ext":26,"url":3337,"hash":3338,"mime":29,"name":3339,"path":11,"size":3340,"width":40,"height":41,"sizeInBytes":3341},{"ext":26,"url":3343,"hash":3344,"mime":29,"name":3345,"path":11,"size":3346,"width":48,"height":40,"sizeInBytes":3347},{"ext":26,"url":3349,"hash":3350,"mime":29,"name":3351,"path":11,"size":3352,"width":55,"height":56,"sizeInBytes":3353},[4751],{"__component":66,"id":3360,"text":3361},[4753,4754],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":527,"documentId":528,"title":529,"date":530,"description":11,"order":6,"slug":531,"showOnMainPage":13,"createdAt":532,"updatedAt":532,"publishedAt":533,"locale":17,"cover":4757,"content":4763,"media_event":11,"media_areas":4765,"seo":11,"localizations":4768},{"id":535,"documentId":536,"name":537,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4758,"hash":563,"ext":379,"mime":382,"size":564,"url":565,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":566,"updatedAt":566,"publishedAt":567},{"large":4759,"small":4760,"medium":4761,"thumbnail":4762},{"ext":379,"url":540,"hash":541,"mime":382,"name":542,"path":11,"size":543,"width":32,"height":33,"sizeInBytes":544},{"ext":379,"url":546,"hash":547,"mime":382,"name":548,"path":11,"size":549,"width":40,"height":41,"sizeInBytes":550},{"ext":379,"url":552,"hash":553,"mime":382,"name":554,"path":11,"size":555,"width":48,"height":40,"sizeInBytes":556},{"ext":379,"url":558,"hash":559,"mime":382,"name":560,"path":11,"size":561,"width":55,"height":56,"sizeInBytes":562},[4764],{"__component":66,"id":570,"text":571},[4766,4767],{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1766,"documentId":1767,"title":1768,"date":1769,"description":11,"order":40,"slug":1770,"showOnMainPage":13,"createdAt":1771,"updatedAt":1772,"publishedAt":1773,"locale":17,"cover":4770,"content":4776,"media_event":11,"media_areas":4778,"seo":11,"localizations":4781},{"id":1775,"documentId":1776,"name":1777,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4771,"hash":1803,"ext":26,"mime":29,"size":1804,"url":1805,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1806,"updatedAt":1806,"publishedAt":1807},{"large":4772,"small":4773,"medium":4774,"thumbnail":4775},{"ext":26,"url":1780,"hash":1781,"mime":29,"name":1782,"path":11,"size":1783,"width":32,"height":33,"sizeInBytes":1784},{"ext":26,"url":1786,"hash":1787,"mime":29,"name":1788,"path":11,"size":1789,"width":40,"height":41,"sizeInBytes":1790},{"ext":26,"url":1792,"hash":1793,"mime":29,"name":1794,"path":11,"size":1795,"width":48,"height":40,"sizeInBytes":1796},{"ext":26,"url":1798,"hash":1799,"mime":29,"name":1800,"path":11,"size":1801,"width":55,"height":56,"sizeInBytes":1802},[4777],{"__component":66,"id":1810,"text":1811},[4779,4780],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":242,"documentId":243,"title":244,"slug":245,"order":40,"createdAt":246,"updatedAt":246,"publishedAt":247,"locale":17},[],{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17,"media":4783},[4784,4797,4810],{"id":1668,"documentId":1669,"title":1670,"date":1671,"description":11,"order":40,"slug":1672,"showOnMainPage":13,"createdAt":1673,"updatedAt":1674,"publishedAt":1675,"locale":17,"cover":4785,"content":4791,"media_event":11,"media_areas":4793,"seo":11,"localizations":4796},{"id":1677,"documentId":1678,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4786,"hash":1700,"ext":26,"mime":29,"size":1701,"url":1702,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1703,"updatedAt":1703,"publishedAt":1704},{"large":4787,"small":4788,"medium":4789,"thumbnail":4790},{"ext":26,"url":1681,"hash":1682,"mime":29,"name":1375,"path":11,"size":1683,"width":32,"height":1620,"sizeInBytes":1684},{"ext":26,"url":1686,"hash":1687,"mime":29,"name":1381,"path":11,"size":1688,"width":40,"height":1626,"sizeInBytes":1689},{"ext":26,"url":1691,"hash":1692,"mime":29,"name":1387,"path":11,"size":1693,"width":48,"height":1632,"sizeInBytes":1694},{"ext":26,"url":1696,"hash":1697,"mime":29,"name":1393,"path":11,"size":1698,"width":1638,"height":1639,"sizeInBytes":1699},[4792],{"__component":66,"id":1707,"text":1708},[4794,4795],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17},[],{"id":3115,"documentId":3116,"title":3117,"date":3018,"description":11,"order":40,"slug":3118,"showOnMainPage":13,"createdAt":3119,"updatedAt":3119,"publishedAt":3120,"locale":17,"cover":4798,"content":4804,"media_event":11,"media_areas":4806,"seo":11,"localizations":4809},{"id":3122,"documentId":3123,"name":3124,"alternativeText":11,"caption":11,"width":3125,"height":3126,"formats":4799,"hash":3152,"ext":26,"mime":29,"size":3153,"url":3154,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3155,"updatedAt":3155,"publishedAt":3156},{"large":4800,"small":4801,"medium":4802,"thumbnail":4803},{"ext":26,"url":3129,"hash":3130,"mime":29,"name":3131,"path":11,"size":3132,"width":32,"height":1620,"sizeInBytes":3133},{"ext":26,"url":3135,"hash":3136,"mime":29,"name":3137,"path":11,"size":3138,"width":40,"height":1626,"sizeInBytes":3139},{"ext":26,"url":3141,"hash":3142,"mime":29,"name":3143,"path":11,"size":3144,"width":48,"height":1632,"sizeInBytes":3145},{"ext":26,"url":3147,"hash":3148,"mime":29,"name":3149,"path":11,"size":3150,"width":1638,"height":1639,"sizeInBytes":3151},[4805],{"__component":66,"id":3159,"text":3160},[4807,4808],{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3631,"documentId":3632,"title":3633,"date":3634,"description":11,"order":40,"slug":3635,"showOnMainPage":13,"createdAt":3636,"updatedAt":3637,"publishedAt":3638,"locale":17,"cover":4811,"content":4817,"media_event":11,"media_areas":4819,"seo":11,"localizations":4822},{"id":3640,"documentId":3641,"name":3642,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4812,"hash":3668,"ext":379,"mime":382,"size":3669,"url":3670,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3671,"updatedAt":3671,"publishedAt":3672},{"large":4813,"small":4814,"medium":4815,"thumbnail":4816},{"ext":379,"url":3645,"hash":3646,"mime":382,"name":3647,"path":11,"size":3648,"width":32,"height":1620,"sizeInBytes":3649},{"ext":379,"url":3651,"hash":3652,"mime":382,"name":3653,"path":11,"size":3654,"width":40,"height":1626,"sizeInBytes":3655},{"ext":379,"url":3657,"hash":3658,"mime":382,"name":3659,"path":11,"size":3660,"width":48,"height":1632,"sizeInBytes":3661},{"ext":379,"url":3663,"hash":3664,"mime":382,"name":3665,"path":11,"size":3666,"width":1638,"height":1639,"sizeInBytes":3667},[4818],{"__component":66,"id":1720,"text":3675},[4820,4821],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1712,"documentId":1713,"title":1714,"slug":1715,"order":40,"createdAt":1716,"updatedAt":1716,"publishedAt":1717,"locale":17},[],{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17,"media":4824},[4825,4838,4851,4864,4877,4890,4904],{"id":1557,"documentId":1558,"title":1559,"date":1560,"description":11,"order":71,"slug":1561,"showOnMainPage":13,"createdAt":1562,"updatedAt":1563,"publishedAt":1564,"locale":17,"cover":4826,"content":4832,"media_event":11,"media_areas":4834,"seo":11,"localizations":4837},{"id":1566,"documentId":1567,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4827,"hash":1589,"ext":26,"mime":29,"size":1590,"url":1591,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1592,"updatedAt":1592,"publishedAt":1593},{"large":4828,"small":4829,"medium":4830,"thumbnail":4831},{"ext":26,"url":1570,"hash":1571,"mime":29,"name":1375,"path":11,"size":1572,"width":32,"height":33,"sizeInBytes":1573},{"ext":26,"url":1575,"hash":1576,"mime":29,"name":1381,"path":11,"size":1577,"width":40,"height":41,"sizeInBytes":1578},{"ext":26,"url":1580,"hash":1581,"mime":29,"name":1387,"path":11,"size":1582,"width":48,"height":40,"sizeInBytes":1583},{"ext":26,"url":1585,"hash":1586,"mime":29,"name":1393,"path":11,"size":1587,"width":55,"height":56,"sizeInBytes":1588},[4833],{"__component":66,"id":1596,"text":1597},[4835,4836],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":86,"documentId":87,"title":88,"date":89,"description":11,"order":6,"slug":90,"showOnMainPage":13,"createdAt":91,"updatedAt":92,"publishedAt":93,"locale":17,"cover":4839,"content":4845,"media_event":11,"media_areas":4847,"seo":11,"localizations":4850},{"id":95,"documentId":96,"name":97,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":4840,"hash":125,"ext":26,"mime":29,"size":126,"url":127,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":128,"updatedAt":128,"publishedAt":129},{"large":4841,"small":4842,"medium":4843,"thumbnail":4844},{"ext":26,"url":102,"hash":103,"mime":29,"name":104,"path":11,"size":105,"width":32,"height":33,"sizeInBytes":106},{"ext":26,"url":108,"hash":109,"mime":29,"name":110,"path":11,"size":111,"width":40,"height":41,"sizeInBytes":112},{"ext":26,"url":114,"hash":115,"mime":29,"name":116,"path":11,"size":117,"width":48,"height":40,"sizeInBytes":118},{"ext":26,"url":120,"hash":121,"mime":29,"name":122,"path":11,"size":123,"width":55,"height":56,"sizeInBytes":124},[4846],{"__component":66,"id":132,"text":133},[4848,4849],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":1881,"documentId":1882,"title":1883,"date":1884,"description":11,"order":40,"slug":1885,"showOnMainPage":13,"createdAt":1886,"updatedAt":1887,"publishedAt":1888,"locale":17,"cover":4852,"content":4858,"media_event":11,"media_areas":4860,"seo":11,"localizations":4863},{"id":1890,"documentId":1891,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4853,"hash":1913,"ext":26,"mime":29,"size":1914,"url":1915,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1916,"updatedAt":1916,"publishedAt":1917},{"large":4854,"small":4855,"medium":4856,"thumbnail":4857},{"ext":26,"url":1894,"hash":1895,"mime":29,"name":1375,"path":11,"size":1896,"width":32,"height":1620,"sizeInBytes":1897},{"ext":26,"url":1899,"hash":1900,"mime":29,"name":1381,"path":11,"size":1901,"width":40,"height":1626,"sizeInBytes":1902},{"ext":26,"url":1904,"hash":1905,"mime":29,"name":1387,"path":11,"size":1906,"width":48,"height":1632,"sizeInBytes":1907},{"ext":26,"url":1909,"hash":1910,"mime":29,"name":1393,"path":11,"size":1911,"width":1638,"height":1639,"sizeInBytes":1912},[4859],{"__component":66,"id":1920,"text":1921},[4861,4862],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":2161,"documentId":2162,"title":2163,"date":2164,"description":11,"order":2165,"slug":2166,"showOnMainPage":13,"createdAt":2167,"updatedAt":2168,"publishedAt":2169,"locale":17,"cover":4865,"content":4871,"media_event":11,"media_areas":4873,"seo":11,"localizations":4876},{"id":2171,"documentId":2172,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4866,"hash":2194,"ext":26,"mime":29,"size":2195,"url":2196,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2197,"updatedAt":2197,"publishedAt":2198},{"large":4867,"small":4868,"medium":4869,"thumbnail":4870},{"ext":26,"url":2175,"hash":2176,"mime":29,"name":1375,"path":11,"size":2177,"width":32,"height":33,"sizeInBytes":2178},{"ext":26,"url":2180,"hash":2181,"mime":29,"name":1381,"path":11,"size":2182,"width":40,"height":41,"sizeInBytes":2183},{"ext":26,"url":2185,"hash":2186,"mime":29,"name":1387,"path":11,"size":2187,"width":48,"height":40,"sizeInBytes":2188},{"ext":26,"url":2190,"hash":2191,"mime":29,"name":1393,"path":11,"size":2192,"width":55,"height":56,"sizeInBytes":2193},[4872],{"__component":66,"id":2201,"text":2202},[4874,4875],{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":2208,"documentId":2209,"title":2210,"date":2211,"description":11,"order":71,"slug":2212,"showOnMainPage":13,"createdAt":2213,"updatedAt":2214,"publishedAt":2215,"locale":17,"cover":4878,"content":4884,"media_event":11,"media_areas":4886,"seo":11,"localizations":4889},{"id":2217,"documentId":2218,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4879,"hash":2240,"ext":26,"mime":29,"size":2241,"url":2242,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2243,"updatedAt":2243,"publishedAt":2243},{"large":4880,"small":4881,"medium":4882,"thumbnail":4883},{"ext":26,"url":2221,"hash":2222,"mime":29,"name":1375,"path":11,"size":2223,"width":32,"height":33,"sizeInBytes":2224},{"ext":26,"url":2226,"hash":2227,"mime":29,"name":1381,"path":11,"size":2228,"width":40,"height":41,"sizeInBytes":2229},{"ext":26,"url":2231,"hash":2232,"mime":29,"name":1387,"path":11,"size":2233,"width":48,"height":40,"sizeInBytes":2234},{"ext":26,"url":2236,"hash":2237,"mime":29,"name":1393,"path":11,"size":2238,"width":55,"height":56,"sizeInBytes":2239},[4885],{"__component":66,"id":2246,"text":2247},[4887,4888],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":2279,"documentId":2280,"title":2281,"date":2282,"description":11,"order":40,"slug":2283,"showOnMainPage":13,"createdAt":2284,"updatedAt":2285,"publishedAt":2286,"locale":17,"cover":4891,"content":4897,"media_event":11,"media_areas":4899,"seo":11,"localizations":4903},{"id":2288,"documentId":2289,"name":2290,"alternativeText":11,"caption":11,"width":1614,"height":1614,"formats":4892,"hash":2316,"ext":26,"mime":29,"size":2317,"url":2318,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2319,"updatedAt":2319,"publishedAt":2320},{"large":4893,"small":4894,"medium":4895,"thumbnail":4896},{"ext":26,"url":2293,"hash":2294,"mime":29,"name":2295,"path":11,"size":2296,"width":32,"height":32,"sizeInBytes":2297},{"ext":26,"url":2299,"hash":2300,"mime":29,"name":2301,"path":11,"size":2302,"width":40,"height":40,"sizeInBytes":2303},{"ext":26,"url":2305,"hash":2306,"mime":29,"name":2307,"path":11,"size":2308,"width":48,"height":48,"sizeInBytes":2309},{"ext":26,"url":2311,"hash":2312,"mime":29,"name":2313,"path":11,"size":2314,"width":56,"height":56,"sizeInBytes":2315},[4898],{"__component":66,"id":2323,"text":2324},[4900,4901,4902],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":1458,"documentId":1459,"title":1460,"slug":1461,"order":40,"createdAt":1462,"updatedAt":1462,"publishedAt":1463,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":7,"documentId":8,"title":9,"date":10,"description":11,"order":6,"slug":12,"showOnMainPage":13,"createdAt":14,"updatedAt":15,"publishedAt":16,"locale":17,"cover":4905,"content":4911,"media_event":11,"media_areas":4913,"seo":11,"localizations":4916},{"id":19,"documentId":20,"name":21,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4906,"hash":58,"ext":26,"mime":29,"size":59,"url":60,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":62,"updatedAt":62,"publishedAt":63},{"large":4907,"small":4908,"medium":4909,"thumbnail":4910},{"ext":26,"url":27,"hash":28,"mime":29,"name":30,"path":11,"size":31,"width":32,"height":33,"sizeInBytes":34},{"ext":26,"url":36,"hash":37,"mime":29,"name":38,"path":11,"size":39,"width":40,"height":41,"sizeInBytes":42},{"ext":26,"url":44,"hash":45,"mime":29,"name":46,"path":11,"size":47,"width":48,"height":40,"sizeInBytes":49},{"ext":26,"url":51,"hash":52,"mime":29,"name":53,"path":11,"size":54,"width":55,"height":56,"sizeInBytes":57},[4912],{"__component":66,"id":67,"text":68},[4914,4915],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":78,"documentId":79,"title":80,"slug":81,"order":40,"createdAt":82,"updatedAt":82,"publishedAt":83,"locale":17},[],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17,"media":4918},[4919,4932,4945,4958,4971,4984,4997,5010],{"id":309,"documentId":310,"title":311,"date":312,"description":11,"order":6,"slug":313,"showOnMainPage":13,"createdAt":314,"updatedAt":315,"publishedAt":316,"locale":17,"cover":4920,"content":4926,"media_event":11,"media_areas":4928,"seo":11,"localizations":4931},{"id":318,"documentId":319,"name":320,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4921,"hash":346,"ext":26,"mime":29,"size":347,"url":348,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":349,"updatedAt":349,"publishedAt":349},{"large":4922,"small":4923,"medium":4924,"thumbnail":4925},{"ext":26,"url":323,"hash":324,"mime":29,"name":325,"path":11,"size":326,"width":32,"height":33,"sizeInBytes":327},{"ext":26,"url":329,"hash":330,"mime":29,"name":331,"path":11,"size":332,"width":40,"height":41,"sizeInBytes":333},{"ext":26,"url":335,"hash":336,"mime":29,"name":337,"path":11,"size":338,"width":48,"height":40,"sizeInBytes":339},{"ext":26,"url":341,"hash":342,"mime":29,"name":343,"path":11,"size":344,"width":55,"height":56,"sizeInBytes":345},[4927],{"__component":66,"id":352,"text":353},[4929,4930],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":474,"documentId":475,"title":476,"date":477,"description":11,"order":6,"slug":478,"showOnMainPage":13,"createdAt":479,"updatedAt":480,"publishedAt":481,"locale":17,"cover":4933,"content":4939,"media_event":11,"media_areas":4941,"seo":11,"localizations":4944},{"id":483,"documentId":484,"name":485,"alternativeText":11,"caption":11,"width":486,"height":487,"formats":4934,"hash":513,"ext":26,"mime":29,"size":514,"url":515,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":516,"updatedAt":516,"publishedAt":517},{"large":4935,"small":4936,"medium":4937,"thumbnail":4938},{"ext":26,"url":490,"hash":491,"mime":29,"name":492,"path":11,"size":493,"width":32,"height":33,"sizeInBytes":494},{"ext":26,"url":496,"hash":497,"mime":29,"name":498,"path":11,"size":499,"width":40,"height":41,"sizeInBytes":500},{"ext":26,"url":502,"hash":503,"mime":29,"name":504,"path":11,"size":505,"width":48,"height":40,"sizeInBytes":506},{"ext":26,"url":508,"hash":509,"mime":29,"name":510,"path":11,"size":511,"width":55,"height":56,"sizeInBytes":512},[4940],{"__component":66,"id":520,"text":521},[4942,4943],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":2624,"documentId":2625,"title":2626,"date":2627,"description":11,"order":6,"slug":2628,"showOnMainPage":13,"createdAt":2629,"updatedAt":2630,"publishedAt":2631,"locale":17,"cover":4946,"content":4952,"media_event":11,"media_areas":4954,"seo":11,"localizations":4957},{"id":2633,"documentId":2634,"name":2635,"alternativeText":11,"caption":11,"width":1063,"height":1063,"formats":4947,"hash":2661,"ext":379,"mime":382,"size":2662,"url":2663,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":2664,"updatedAt":2664,"publishedAt":2664},{"large":4948,"small":4949,"medium":4950,"thumbnail":4951},{"ext":379,"url":2638,"hash":2639,"mime":382,"name":2640,"path":11,"size":2641,"width":32,"height":32,"sizeInBytes":2642},{"ext":379,"url":2644,"hash":2645,"mime":382,"name":2646,"path":11,"size":2647,"width":40,"height":40,"sizeInBytes":2648},{"ext":379,"url":2650,"hash":2651,"mime":382,"name":2652,"path":11,"size":2653,"width":48,"height":48,"sizeInBytes":2654},{"ext":379,"url":2656,"hash":2657,"mime":382,"name":2658,"path":11,"size":2659,"width":56,"height":56,"sizeInBytes":2660},[4953],{"__component":66,"id":2667,"text":2668},[4955,4956],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":3065,"documentId":3066,"title":3067,"date":2874,"description":11,"order":40,"slug":3068,"showOnMainPage":13,"createdAt":3069,"updatedAt":3070,"publishedAt":3071,"locale":17,"cover":4959,"content":4965,"media_event":11,"media_areas":4967,"seo":11,"localizations":4970},{"id":3073,"documentId":3074,"name":3075,"alternativeText":11,"caption":11,"width":2925,"height":1326,"formats":4960,"hash":3101,"ext":26,"mime":29,"size":3102,"url":3103,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3104,"updatedAt":3104,"publishedAt":3105},{"large":4961,"small":4962,"medium":4963,"thumbnail":4964},{"ext":26,"url":3078,"hash":3079,"mime":29,"name":3080,"path":11,"size":3081,"width":32,"height":1620,"sizeInBytes":3082},{"ext":26,"url":3084,"hash":3085,"mime":29,"name":3086,"path":11,"size":3087,"width":40,"height":1626,"sizeInBytes":3088},{"ext":26,"url":3090,"hash":3091,"mime":29,"name":3092,"path":11,"size":3093,"width":48,"height":1632,"sizeInBytes":3094},{"ext":26,"url":3096,"hash":3097,"mime":29,"name":3098,"path":11,"size":3099,"width":1638,"height":1639,"sizeInBytes":3100},[4966],{"__component":66,"id":3108,"text":3109},[4968,4969],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1810,"documentId":3214,"title":3215,"date":3216,"description":11,"order":1821,"slug":3217,"showOnMainPage":13,"createdAt":3218,"updatedAt":3218,"publishedAt":3219,"locale":17,"cover":4972,"content":4978,"media_event":11,"media_areas":4980,"seo":11,"localizations":4983},{"id":3221,"documentId":3222,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":1614,"formats":4973,"hash":3244,"ext":26,"mime":29,"size":1499,"url":3245,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3246,"updatedAt":3246,"publishedAt":3247},{"large":4974,"small":4975,"medium":4976,"thumbnail":4977},{"ext":26,"url":3225,"hash":3226,"mime":29,"name":1375,"path":11,"size":3227,"width":32,"height":1620,"sizeInBytes":3228},{"ext":26,"url":3230,"hash":3231,"mime":29,"name":1381,"path":11,"size":3232,"width":40,"height":1626,"sizeInBytes":3233},{"ext":26,"url":3235,"hash":3236,"mime":29,"name":1387,"path":11,"size":3237,"width":48,"height":1632,"sizeInBytes":3238},{"ext":26,"url":3240,"hash":3241,"mime":29,"name":1393,"path":11,"size":3242,"width":1638,"height":1639,"sizeInBytes":3243},[4979],{"__component":66,"id":1626,"text":3250},[4981,4982],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":365,"documentId":366,"title":367,"date":368,"description":11,"order":6,"slug":369,"showOnMainPage":13,"createdAt":370,"updatedAt":371,"publishedAt":372,"locale":17,"cover":4985,"content":4991,"media_event":11,"media_areas":4993,"seo":11,"localizations":4996},{"id":374,"documentId":375,"name":376,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":4986,"hash":404,"ext":379,"mime":382,"size":405,"url":406,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":407,"updatedAt":407,"publishedAt":407},{"large":4987,"small":4988,"medium":4989,"thumbnail":4990},{"ext":379,"url":380,"hash":381,"mime":382,"name":383,"path":11,"size":384,"width":32,"height":33,"sizeInBytes":385},{"ext":379,"url":387,"hash":388,"mime":382,"name":389,"path":11,"size":390,"width":40,"height":41,"sizeInBytes":391},{"ext":379,"url":393,"hash":394,"mime":382,"name":395,"path":11,"size":396,"width":48,"height":40,"sizeInBytes":397},{"ext":379,"url":399,"hash":400,"mime":382,"name":401,"path":11,"size":402,"width":55,"height":56,"sizeInBytes":403},[4992],{"__component":66,"id":410,"text":411},[4994,4995],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[],{"id":3405,"documentId":3406,"title":3407,"date":3408,"description":11,"order":40,"slug":3409,"showOnMainPage":13,"createdAt":3410,"updatedAt":3410,"publishedAt":3411,"locale":17,"cover":4998,"content":5004,"media_event":11,"media_areas":5006,"seo":11,"localizations":5009},{"id":3413,"documentId":3414,"name":3415,"alternativeText":11,"caption":11,"width":98,"height":99,"formats":4999,"hash":3441,"ext":26,"mime":29,"size":3442,"url":3443,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":3444,"updatedAt":3444,"publishedAt":3444},{"large":5000,"small":5001,"medium":5002,"thumbnail":5003},{"ext":26,"url":3418,"hash":3419,"mime":29,"name":3420,"path":11,"size":3421,"width":32,"height":33,"sizeInBytes":3422},{"ext":26,"url":3424,"hash":3425,"mime":29,"name":3426,"path":11,"size":3427,"width":40,"height":41,"sizeInBytes":3428},{"ext":26,"url":3430,"hash":3431,"mime":29,"name":3432,"path":11,"size":3433,"width":48,"height":40,"sizeInBytes":3434},{"ext":26,"url":3436,"hash":3437,"mime":29,"name":3438,"path":11,"size":3439,"width":55,"height":56,"sizeInBytes":3440},[5005],{"__component":66,"id":3447,"text":3448},[5007,5008],{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},[],{"id":1720,"documentId":1721,"title":1722,"date":1723,"description":11,"order":40,"slug":1724,"showOnMainPage":13,"createdAt":1725,"updatedAt":1726,"publishedAt":1727,"locale":17,"cover":5011,"content":5017,"media_event":11,"media_areas":5019,"seo":11,"localizations":5022},{"id":1729,"documentId":1730,"name":1370,"alternativeText":11,"caption":11,"width":22,"height":23,"formats":5012,"hash":1752,"ext":26,"mime":29,"size":1753,"url":1754,"previewUrl":11,"provider":61,"provider_metadata":11,"createdAt":1755,"updatedAt":1755,"publishedAt":1756},{"large":5013,"small":5014,"medium":5015,"thumbnail":5016},{"ext":26,"url":1733,"hash":1734,"mime":29,"name":1375,"path":11,"size":1735,"width":32,"height":33,"sizeInBytes":1736},{"ext":26,"url":1738,"hash":1739,"mime":29,"name":1381,"path":11,"size":1740,"width":40,"height":41,"sizeInBytes":1741},{"ext":26,"url":1743,"hash":1744,"mime":29,"name":1387,"path":11,"size":1745,"width":48,"height":40,"sizeInBytes":1746},{"ext":26,"url":1748,"hash":1749,"mime":29,"name":1393,"path":11,"size":1750,"width":55,"height":56,"sizeInBytes":1751},[5018],{"__component":66,"id":1759,"text":1760},[5020,5021],{"id":71,"documentId":72,"title":73,"slug":74,"order":40,"createdAt":75,"updatedAt":75,"publishedAt":76,"locale":17},{"id":357,"documentId":358,"title":359,"slug":360,"order":40,"createdAt":361,"updatedAt":361,"publishedAt":362,"locale":17},[]]