[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"media-detail-with-another-gde-teryaetsya-kontekst-polzovatelya":3},{"media":4,"anotherMedia":688},{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16,"media_areas":17,"cover":638,"content":684},341,"lb4x4pfodc0sbnv9umz0b32a","Закрыл ноутбук, открыл телефон — и начал заново: где теряется контекст пользователя\n","2026-09-01",null,1,"gde-teryaetsya-kontekst-polzovatelya",true,"2026-08-31T12:47:31.448Z","2026-09-17T23:18:23.484Z","2026-09-17T23:18:23.551Z","ru",[18,127],{"id":19,"documentId":20,"title":21,"slug":22,"order":23,"createdAt":24,"updatedAt":24,"publishedAt":25,"locale":16,"media":26,"localizations":126},15,"w2syds6h6g6w4q901gfyrw0j","Экспертиза ","media-area-3",500,"2026-05-27T09:11:34.563Z","2026-05-27T09:11:34.578Z",[27,36,44,54,63,64,73,81,90,99,108,117],{"id":28,"documentId":29,"title":30,"date":31,"description":9,"order":23,"slug":32,"showOnMainPage":12,"createdAt":33,"updatedAt":34,"publishedAt":35,"locale":16},137,"h713429nv5nf42hksety3udo","Как выбрать подрядчика по разработке: чек-лист от компании с 280+ проектами","2026-05-12","kak-vybrat-podryadchika-po-razrabotke","2026-05-12T14:27:43.934Z","2026-05-27T09:11:52.833Z","2026-05-27T09:11:52.888Z",{"id":37,"documentId":38,"title":39,"date":40,"description":9,"order":23,"slug":41,"showOnMainPage":12,"createdAt":42,"updatedAt":42,"publishedAt":43,"locale":16},202,"a4ckp7tbgmtv0utmia4b808l","Новая роль — новый проект: когда личные кабинеты пора собирать в экосистему","2026-08-04","-lichnye-kabineti-v-ekosisteme-optimizatsiya-protsessov","2026-08-04T14:13:59.695Z","2026-08-04T14:13:59.762Z",{"id":45,"documentId":46,"title":47,"date":48,"description":9,"order":49,"slug":50,"showOnMainPage":12,"createdAt":51,"updatedAt":52,"publishedAt":53,"locale":16},339,"jdz6gl00sz72z0egu84yf8cn","16 млн за полгода: аутсорс или штат в 2026 году","2026-08-06",2,"-autsorsing-ili-shtat-sravnenie-zatrat","2026-08-06T17:30:36.209Z","2026-09-17T22:44:36.382Z","2026-09-17T22:44:36.451Z",{"id":55,"documentId":56,"title":57,"date":58,"description":9,"order":10,"slug":59,"showOnMainPage":12,"createdAt":60,"updatedAt":61,"publishedAt":62,"locale":16},307,"qh3qmzfp2ceif4xf3tdoi9ap","Один товар, три цены и очередь согласований: чем B2B-маркетплейс отличается от интернет-магазина","2026-08-26","b2b-marketpleys-otlichiya-ot-internet-magazina","2026-08-26T09:04:07.905Z","2026-09-14T12:16:42.675Z","2026-09-14T12:16:42.754Z",{"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},{"id":65,"documentId":66,"title":67,"date":68,"description":9,"order":10,"slug":69,"showOnMainPage":12,"createdAt":70,"updatedAt":71,"publishedAt":72,"locale":16},337,"pbpm1u7r2yocuobuig7aows1","После оффера оценка кандидата пропадает: как связать найм, обучение и эффективность","2026-09-02","kak-svyazat-naym-obuchenie-i-effektivnost","2026-09-02T08:28:55.851Z","2026-09-17T22:35:13.146Z","2026-09-17T22:35:13.232Z",{"id":74,"documentId":75,"title":76,"date":77,"description":9,"order":10,"slug":78,"showOnMainPage":12,"createdAt":79,"updatedAt":79,"publishedAt":80,"locale":16},270,"tia92neitxsmtmvtu3k6ox2x","Пилот с планом на рост: как подготовить цифровой продукт к масштабированию","2026-09-07","pilot-s-planom-na-rost-masshtabirovanie","2026-09-07T13:11:01.617Z","2026-09-07T13:11:01.691Z",{"id":82,"documentId":83,"title":84,"date":85,"description":9,"order":10,"slug":86,"showOnMainPage":12,"createdAt":87,"updatedAt":88,"publishedAt":89,"locale":16},274,"mfzw1oxq307h7hldor2v71hh","Реклама сработала, сайт лёг: как проверить предел системы до пикового трафика","2026-09-08","reklama-srabotala-sayt-lyog-pikovyy-trafik","2026-09-08T11:25:13.641Z","2026-09-08T12:47:04.929Z","2026-09-08T12:47:04.999Z",{"id":91,"documentId":92,"title":93,"date":94,"description":9,"order":10,"slug":95,"showOnMainPage":12,"createdAt":96,"updatedAt":97,"publishedAt":98,"locale":16},277,"dqf6p9puiqfz6u2djss216vw","Баллы списались дважды: где ломается программа лояльности под нагрузкой","2026-09-09","programmnaya-loyalnost-pod-nagruzkoy","2026-09-08T11:39:39.209Z","2026-09-09T12:52:38.507Z","2026-09-09T12:52:38.592Z",{"id":100,"documentId":101,"title":102,"date":103,"description":9,"order":10,"slug":104,"showOnMainPage":12,"createdAt":105,"updatedAt":106,"publishedAt":107,"locale":16},279,"zttjv8sbmge05zro1ok576xe","Что IT-аудит находит в проекте перед релизом","2026-09-11","it-audit-pered-relizom","2026-09-08T11:52:07.373Z","2026-09-11T12:36:23.593Z","2026-09-11T12:36:23.659Z",{"id":109,"documentId":110,"title":111,"date":112,"description":9,"order":10,"slug":113,"showOnMainPage":12,"createdAt":114,"updatedAt":115,"publishedAt":116,"locale":16},329,"n00161wjkx4xvvrj4cnrf3hg","Масштабирование веб-приложения: 5 признаков архитектурного предела\n","2026-09-17","masshtabirovanie-veb-prilozheniya-arhitekturnyy-predel","2026-09-17T08:36:56.533Z","2026-09-17T11:45:30.430Z","2026-09-17T11:45:30.495Z",{"id":118,"documentId":119,"title":120,"date":121,"description":9,"order":10,"slug":122,"showOnMainPage":12,"createdAt":123,"updatedAt":124,"publishedAt":125,"locale":16},356,"fpk51c4ejek3676dkx59luaw","Локализация цифрового продукта: что менять при выходе на новый рынок","2026-09-21","lokalizaciya-cifrovogo-produkta-novyy-rynok","2026-09-21T11:12:00.474Z","2026-09-21T11:12:43.417Z","2026-09-21T11:12:43.477Z",[],{"id":49,"documentId":128,"title":129,"slug":130,"order":23,"createdAt":131,"updatedAt":131,"publishedAt":132,"locale":16,"media":133,"localizations":637},"ei24o3vyhndi1hqwqhnd61p0","Все","ALL","2026-02-25T07:47:50.713Z","2026-02-25T07:47:50.739Z",[134,145,155,165,174,183,192,201,211,220,230,239,248,257,258,267,276,285,294,303,312,321,330,339,349,358,366,367,375,376,384,394,404,413,422,431,440,449,458,459,468,477,486,487,488,497,506,507,508,509,510,517,525,533,541,548,555,563,572,579,587,595,603,611,619,627],{"id":135,"documentId":136,"title":137,"date":138,"description":139,"order":140,"slug":141,"showOnMainPage":12,"createdAt":142,"updatedAt":143,"publishedAt":144,"locale":16},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":146,"documentId":147,"title":148,"date":149,"description":150,"order":140,"slug":151,"showOnMainPage":12,"createdAt":152,"updatedAt":153,"publishedAt":154,"locale":16},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":156,"documentId":157,"title":158,"date":159,"description":160,"order":140,"slug":161,"showOnMainPage":12,"createdAt":162,"updatedAt":163,"publishedAt":164,"locale":16},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":166,"documentId":167,"title":168,"date":169,"description":9,"order":23,"slug":170,"showOnMainPage":12,"createdAt":171,"updatedAt":172,"publishedAt":173,"locale":16},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":175,"documentId":176,"title":177,"date":178,"description":9,"order":23,"slug":179,"showOnMainPage":12,"createdAt":180,"updatedAt":181,"publishedAt":182,"locale":16},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":184,"documentId":185,"title":186,"date":187,"description":9,"order":23,"slug":188,"showOnMainPage":12,"createdAt":189,"updatedAt":190,"publishedAt":191,"locale":16},149,"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":193,"documentId":194,"title":195,"date":196,"description":9,"order":23,"slug":197,"showOnMainPage":12,"createdAt":198,"updatedAt":199,"publishedAt":200,"locale":16},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":202,"documentId":203,"title":204,"date":205,"description":206,"order":140,"slug":207,"showOnMainPage":12,"createdAt":208,"updatedAt":209,"publishedAt":210,"locale":16},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":212,"documentId":213,"title":214,"date":215,"description":9,"order":23,"slug":216,"showOnMainPage":12,"createdAt":217,"updatedAt":218,"publishedAt":219,"locale":16},156,"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":221,"documentId":222,"title":223,"date":224,"description":9,"order":225,"slug":226,"showOnMainPage":12,"createdAt":227,"updatedAt":228,"publishedAt":229,"locale":16},195,"ersgie5e85wpniq47fuqbstp","Почему дешевые обходные схемы становятся дорогими","2026-04-14",300,"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":231,"documentId":232,"title":233,"date":234,"description":9,"order":23,"slug":235,"showOnMainPage":12,"createdAt":236,"updatedAt":237,"publishedAt":238,"locale":16},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":240,"documentId":241,"title":242,"date":243,"description":9,"order":23,"slug":244,"showOnMainPage":12,"createdAt":245,"updatedAt":246,"publishedAt":247,"locale":16},155,"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":249,"documentId":250,"title":251,"date":252,"description":9,"order":23,"slug":253,"showOnMainPage":12,"createdAt":254,"updatedAt":255,"publishedAt":256,"locale":16},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":28,"documentId":29,"title":30,"date":31,"description":9,"order":23,"slug":32,"showOnMainPage":12,"createdAt":33,"updatedAt":34,"publishedAt":35,"locale":16},{"id":259,"documentId":260,"title":261,"date":262,"description":9,"order":23,"slug":263,"showOnMainPage":12,"createdAt":264,"updatedAt":265,"publishedAt":266,"locale":16},160,"fleu8iabwalh7dwbfkxuew4p","Flutter в продакшене: где появляется экономия","2026-06-23","flutter-v-razrabotke-ekonomiya-na-mobilnykh-prilozheniyakh","2026-06-23T13:14:39.410Z","2026-06-23T13:18:38.472Z","2026-06-23T13:18:38.525Z",{"id":268,"documentId":269,"title":270,"date":271,"description":9,"order":23,"slug":272,"showOnMainPage":12,"createdAt":273,"updatedAt":274,"publishedAt":275,"locale":16},175,"g0rbfiyvtlpoh0wlalq8dsyp","Когда бизнесу пора переходить от идеи к MVP","2026-07-03","kogda-biznesu-stoit-perehodit-ot-idei-k-mvp","2026-07-03T14:26:20.648Z","2026-07-27T08:28:26.249Z","2026-07-27T08:28:26.319Z",{"id":277,"documentId":278,"title":279,"date":280,"description":9,"order":225,"slug":281,"showOnMainPage":12,"createdAt":282,"updatedAt":283,"publishedAt":284,"locale":16},256,"txt60k65mnql530q38z0path","Когда онлайн-школе пора менять стандартную LMS\n","2026-07-13","kogda-onlajn-shkole-stoit-smenit-standartnuyu-lms","2026-07-13T14:45:31.490Z","2026-08-31T12:15:47.434Z","2026-08-31T12:15:47.500Z",{"id":286,"documentId":287,"title":288,"date":289,"description":9,"order":49,"slug":290,"showOnMainPage":12,"createdAt":291,"updatedAt":292,"publishedAt":293,"locale":16},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":295,"documentId":296,"title":297,"date":298,"description":9,"order":23,"slug":299,"showOnMainPage":12,"createdAt":300,"updatedAt":301,"publishedAt":302,"locale":16},257,"jknljxwtbcr6umo95k5onfcq","Мы выбрали для EdTech ту же технологию, что и Pornhub. Потому что тормоза всем мешают","2026-07-17","-tekhnologiya-pornhub-dlya-edtech","2026-07-17T13:13:00.710Z","2026-08-31T12:17:25.061Z","2026-08-31T12:17:25.155Z",{"id":304,"documentId":305,"title":306,"date":307,"description":9,"order":10,"slug":308,"showOnMainPage":12,"createdAt":309,"updatedAt":310,"publishedAt":311,"locale":16},297,"yazmsp31df1ggv8saaix8dkd","«Тут почти стандартно, пара нюансов»: как эта фраза убивает экономику подписки\n","2026-07-22","-tut-pochti-standartno-para-nyuansov-kak-eta-fraza-ubivaet-ekonomiku-podpiski","2026-07-22T11:46:36.625Z","2026-09-13T23:21:38.544Z","2026-09-13T23:21:38.602Z",{"id":313,"documentId":314,"title":315,"date":316,"description":9,"order":23,"slug":317,"showOnMainPage":12,"createdAt":318,"updatedAt":319,"publishedAt":320,"locale":16},258,"gnlxdx5dl5wgdemt91xm57j9","4 продукта на NestJS: где стек сработал, а где мы ушли на Go\n","2026-07-23","-produkty-na-nestjs-i-go","2026-07-23T15:10:53.621Z","2026-08-31T12:18:05.700Z","2026-08-31T12:18:05.791Z",{"id":322,"documentId":323,"title":324,"date":325,"description":9,"order":23,"slug":326,"showOnMainPage":12,"createdAt":327,"updatedAt":328,"publishedAt":329,"locale":16},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":331,"documentId":332,"title":333,"date":334,"description":9,"order":23,"slug":335,"showOnMainPage":12,"createdAt":336,"updatedAt":337,"publishedAt":338,"locale":16},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":340,"documentId":341,"title":342,"date":343,"description":9,"order":344,"slug":345,"showOnMainPage":12,"createdAt":346,"updatedAt":347,"publishedAt":348,"locale":16},292,"dcenjtj61ta9j4xssc9be8n4","AI-чатбот за 2 недели: что проверить до сметы на 2 млн","2026-07-30",3,"-ai-chatbot-chto-proverit-pered-razrabotkoy","2026-07-30T13:23:01.866Z","2026-09-13T22:34:22.404Z","2026-09-13T22:34:22.481Z",{"id":350,"documentId":351,"title":352,"date":353,"description":9,"order":10,"slug":354,"showOnMainPage":12,"createdAt":355,"updatedAt":356,"publishedAt":357,"locale":16},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":359,"documentId":360,"title":361,"date":362,"description":9,"order":23,"slug":363,"showOnMainPage":12,"createdAt":364,"updatedAt":364,"publishedAt":365,"locale":16},200,"myvt92baeeu5v8avnec7dqxv","Кнопка стала красивее, товара всё равно нет: почему редизайн не спасает продажи в e-commerce","2026-08-03","-redizayn-interfeysa-v-e-commerce","2026-08-03T15:04:24.695Z","2026-08-03T15:04:24.753Z",{"id":37,"documentId":38,"title":39,"date":40,"description":9,"order":23,"slug":41,"showOnMainPage":12,"createdAt":42,"updatedAt":42,"publishedAt":43,"locale":16},{"id":368,"documentId":369,"title":370,"date":371,"description":9,"order":344,"slug":372,"showOnMainPage":12,"createdAt":373,"updatedAt":373,"publishedAt":374,"locale":16},204,"k14jk3d9zgf69tmumdlcoh2f","Сколько стоит AI после релиза: токены, контекст, хранение и контроль качества","2026-08-05","-stoimost-ai-posle-reliza-tokeny-kontekst-khranenie-i-kontrol-kachestva","2026-08-05T17:49:43.277Z","2026-08-05T17:49:43.342Z",{"id":45,"documentId":46,"title":47,"date":48,"description":9,"order":49,"slug":50,"showOnMainPage":12,"createdAt":51,"updatedAt":52,"publishedAt":53,"locale":16},{"id":377,"documentId":378,"title":379,"date":380,"description":9,"order":23,"slug":381,"showOnMainPage":12,"createdAt":382,"updatedAt":382,"publishedAt":383,"locale":16},210,"imbbxnbft75duehba72yjk23","Любая правка — мини-проект: 6 признаков, что корпоративный сайт пора пересобирать","2026-08-10","-priznaki-neobhodimosti-peresborki-korporativnogo-sajta","2026-08-11T23:47:18.300Z","2026-08-11T23:47:18.367Z",{"id":385,"documentId":386,"title":387,"date":388,"description":9,"order":389,"slug":390,"showOnMainPage":12,"createdAt":391,"updatedAt":392,"publishedAt":393,"locale":16},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":395,"documentId":396,"title":397,"date":398,"description":9,"order":399,"slug":400,"showOnMainPage":12,"createdAt":401,"updatedAt":402,"publishedAt":403,"locale":16},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":405,"documentId":406,"title":407,"date":408,"description":9,"order":49,"slug":409,"showOnMainPage":12,"createdAt":410,"updatedAt":411,"publishedAt":412,"locale":16},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":414,"documentId":415,"title":416,"date":417,"description":9,"order":10,"slug":418,"showOnMainPage":12,"createdAt":419,"updatedAt":420,"publishedAt":421,"locale":16},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":423,"documentId":424,"title":425,"date":426,"description":9,"order":10,"slug":427,"showOnMainPage":12,"createdAt":428,"updatedAt":429,"publishedAt":430,"locale":16},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":432,"documentId":433,"title":434,"date":435,"description":9,"order":23,"slug":436,"showOnMainPage":12,"createdAt":437,"updatedAt":438,"publishedAt":439,"locale":16},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":441,"documentId":442,"title":443,"date":444,"description":9,"order":10,"slug":445,"showOnMainPage":12,"createdAt":446,"updatedAt":447,"publishedAt":448,"locale":16},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":450,"documentId":451,"title":452,"date":453,"description":9,"order":10,"slug":454,"showOnMainPage":12,"createdAt":455,"updatedAt":456,"publishedAt":457,"locale":16},275,"cs2j0db6ed7l2zglni926s05","Как проверить AI-навык кандидата: тестовое, критерии и красные флаги","2026-08-21","proverka-ai-navyka-kandidata-testovoe-kriterii","2026-08-19T13:56:11.468Z","2026-09-09T12:26:24.517Z","2026-09-09T12:26:24.590Z",{"id":55,"documentId":56,"title":57,"date":58,"description":9,"order":10,"slug":59,"showOnMainPage":12,"createdAt":60,"updatedAt":61,"publishedAt":62,"locale":16},{"id":460,"documentId":461,"title":462,"date":463,"description":9,"order":10,"slug":464,"showOnMainPage":12,"createdAt":465,"updatedAt":466,"publishedAt":467,"locale":16},308,"w8n42241rgavwtld0dn1fvcl","Один статус «готовится» запускает цепочку потерь: где ломается экономика приложения доставки","2026-08-27","gde-prilozhenie-sedaet-marzhu","2026-08-26T14:56:30.346Z","2026-09-14T12:18:58.975Z","2026-09-14T12:18:59.071Z",{"id":469,"documentId":470,"title":471,"date":472,"description":9,"order":10,"slug":473,"showOnMainPage":12,"createdAt":474,"updatedAt":475,"publishedAt":476,"locale":16},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":478,"documentId":479,"title":480,"date":481,"description":9,"order":10,"slug":482,"showOnMainPage":12,"createdAt":483,"updatedAt":484,"publishedAt":485,"locale":16},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":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},{"id":65,"documentId":66,"title":67,"date":68,"description":9,"order":10,"slug":69,"showOnMainPage":12,"createdAt":70,"updatedAt":71,"publishedAt":72,"locale":16},{"id":489,"documentId":490,"title":491,"date":492,"description":9,"order":10,"slug":493,"showOnMainPage":12,"createdAt":494,"updatedAt":495,"publishedAt":496,"locale":16},266,"xigmp6s4a3rypjza7nyd2jyu","AI-агент оформляет заказ: готов ли интернет-магазин отдать ему каталог, остатки и оплату","2026-09-03","ai-agent-oformlyaet-zakaz-katalog-ostatki-oplata","2026-09-03T08:28:16.365Z","2026-09-03T12:51:46.475Z","2026-09-03T12:51:46.548Z",{"id":498,"documentId":499,"title":500,"date":501,"description":9,"order":10,"slug":502,"showOnMainPage":12,"createdAt":503,"updatedAt":504,"publishedAt":505,"locale":16},268,"ono02gti54gmgguq55q3eqfl","Мобильная LMS: как понять, что отдельному приложению есть работа\n","2026-09-04","mobilnaya-lms-otdelnoe-prilozhenie","2026-09-03T14:02:36.259Z","2026-09-04T12:25:32.211Z","2026-09-04T12:25:32.283Z",{"id":74,"documentId":75,"title":76,"date":77,"description":9,"order":10,"slug":78,"showOnMainPage":12,"createdAt":79,"updatedAt":79,"publishedAt":80,"locale":16},{"id":82,"documentId":83,"title":84,"date":85,"description":9,"order":10,"slug":86,"showOnMainPage":12,"createdAt":87,"updatedAt":88,"publishedAt":89,"locale":16},{"id":91,"documentId":92,"title":93,"date":94,"description":9,"order":10,"slug":95,"showOnMainPage":12,"createdAt":96,"updatedAt":97,"publishedAt":98,"locale":16},{"id":100,"documentId":101,"title":102,"date":103,"description":9,"order":10,"slug":104,"showOnMainPage":12,"createdAt":105,"updatedAt":106,"publishedAt":107,"locale":16},{"id":511,"documentId":512,"title":513,"date":103,"description":9,"order":23,"slug":514,"showOnMainPage":12,"createdAt":515,"updatedAt":515,"publishedAt":516,"locale":16},281,"ggdl1zmuuohkn3ubgxqu5wdz","Этапы разработки сайта: 7 контрольных точек от идеи до запуска","etapy-razrabotki-sayta-ot-idei-do-zapuska","2026-09-11T14:21:51.168Z","2026-09-11T14:21:51.261Z",{"id":518,"documentId":519,"title":520,"date":521,"description":9,"order":23,"slug":522,"showOnMainPage":12,"createdAt":523,"updatedAt":523,"publishedAt":524,"locale":16},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":526,"documentId":527,"title":528,"date":529,"description":9,"order":23,"slug":530,"showOnMainPage":12,"createdAt":531,"updatedAt":531,"publishedAt":532,"locale":16},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":534,"documentId":535,"title":536,"date":103,"description":9,"order":23,"slug":537,"showOnMainPage":12,"createdAt":538,"updatedAt":539,"publishedAt":540,"locale":16},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":542,"documentId":543,"title":544,"date":529,"description":9,"order":23,"slug":545,"showOnMainPage":12,"createdAt":546,"updatedAt":546,"publishedAt":547,"locale":16},313,"yv49ig9l4j8vggzenf8rdxm3","Этапы управления проектом по разработке сайта или приложения","etapy-upravleniya-proektom-po-razrabotke-sayta-ili-prilozheniya","2026-09-14T15:36:41.687Z","2026-09-14T15:36:41.763Z",{"id":549,"documentId":550,"title":551,"date":529,"description":9,"order":23,"slug":552,"showOnMainPage":12,"createdAt":553,"updatedAt":553,"publishedAt":554,"locale":16},315,"nze9zg24dgc33oo464j2wo8v","Как искусственный интеллект меняет бизнес-процессы: от автоматизации до анализа данных","kak-iskusstvennyy-intellekt-menyaet-biznes-protsessy-ot-avtomatizatsii-do-analiza-dannykh","2026-09-14T21:35:44.550Z","2026-09-14T21:35:44.618Z",{"id":556,"documentId":557,"title":558,"date":559,"description":9,"order":344,"slug":560,"showOnMainPage":12,"createdAt":561,"updatedAt":561,"publishedAt":562,"locale":16},317,"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":564,"documentId":565,"title":566,"date":567,"description":9,"order":10,"slug":568,"showOnMainPage":12,"createdAt":569,"updatedAt":570,"publishedAt":571,"locale":16},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":573,"documentId":574,"title":575,"date":112,"description":9,"order":23,"slug":576,"showOnMainPage":12,"createdAt":577,"updatedAt":577,"publishedAt":578,"locale":16},325,"zlz1zsbmf9t62lq9upjoh71o","Как правильно оценить разработку сайта и приложения\n","kak-pravilno-otsenit-razrabotku-sayta-i-prilozheniya","2026-09-17T10:47:34.140Z","2026-09-17T10:47:34.227Z",{"id":580,"documentId":581,"title":582,"date":112,"description":9,"order":23,"slug":583,"showOnMainPage":12,"createdAt":584,"updatedAt":585,"publishedAt":586,"locale":16},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":588,"documentId":589,"title":590,"date":112,"description":9,"order":10,"slug":591,"showOnMainPage":12,"createdAt":592,"updatedAt":593,"publishedAt":594,"locale":16},331,"m3jg0ix87senqmdibgb089zk","Настройка резервного копирования: как проверить восстановление сервиса\n","rezervnoe-kopirovanie-proverka-vosstanovleniya","2026-09-17T08:38:21.082Z","2026-09-17T14:08:08.647Z","2026-09-17T14:08:08.708Z",{"id":596,"documentId":597,"title":598,"date":599,"description":9,"order":10,"slug":600,"showOnMainPage":12,"createdAt":601,"updatedAt":601,"publishedAt":602,"locale":16},343,"c4qw6xwuehgz8lo5zyabldkb","Платформа обучения сотрудников: почему курс заканчивается раньше рабочего результата","2026-09-18","platforma-obucheniya-sotrudnikov-rabochiy-rezultat","2026-09-18T10:17:38.082Z","2026-09-18T10:17:38.173Z",{"id":604,"documentId":605,"title":606,"date":599,"description":9,"order":10,"slug":607,"showOnMainPage":12,"createdAt":608,"updatedAt":609,"publishedAt":610,"locale":16},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":612,"documentId":613,"title":614,"date":615,"description":9,"order":23,"slug":616,"showOnMainPage":12,"createdAt":617,"updatedAt":617,"publishedAt":618,"locale":16},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":620,"documentId":621,"title":622,"date":121,"description":9,"order":10,"slug":623,"showOnMainPage":12,"createdAt":624,"updatedAt":625,"publishedAt":626,"locale":16},360,"idkoix18t80we76tz6g5li5g","Как проектировать редкие пользовательские сценарии в цифровом продукте","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":628,"documentId":629,"title":630,"date":631,"description":632,"order":140,"slug":633,"showOnMainPage":12,"createdAt":634,"updatedAt":635,"publishedAt":636,"locale":16},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":639,"documentId":640,"name":641,"alternativeText":9,"caption":9,"width":642,"height":643,"formats":644,"hash":676,"ext":646,"mime":649,"size":677,"url":678,"previewUrl":9,"provider":679,"provider_metadata":9,"createdAt":680,"updatedAt":680,"publishedAt":680,"related":681},818,"ixaxdgejwdf7llypqa47ye85","Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",1920,1280,{"large":645,"small":655,"medium":662,"thumbnail":669},{"ext":646,"url":647,"hash":648,"mime":649,"name":650,"path":9,"size":651,"width":652,"height":653,"sizeInBytes":654},".jpg","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","image\u002Fjpeg","large_Изображение Codex 18 сент. 2026 г., 02_17_48.jpg",31.16,1000,667,31159,{"ext":646,"url":656,"hash":657,"mime":649,"name":658,"path":9,"size":659,"width":23,"height":660,"sizeInBytes":661},"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,333,11921,{"ext":646,"url":663,"hash":664,"mime":649,"name":665,"path":9,"size":666,"width":667,"height":23,"sizeInBytes":668},"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,750,21317,{"ext":646,"url":670,"hash":671,"mime":649,"name":672,"path":9,"size":673,"width":674,"height":212,"sizeInBytes":675},"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,234,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","aws-s3","2026-09-17T23:18:20.564Z",[682],{"__type":683,"id":5,"documentId":6,"title":7,"date":8,"description":9,"order":10,"slug":11,"showOnMainPage":12,"createdAt":13,"updatedAt":14,"publishedAt":15,"locale":16},"api::media.media",[685],{"__component":686,"id":423,"text":687},"media.text","\u003Cp>Человек отвечает на тест в браузере, закрывает ноутбук и через минуту открывает приложение. Вместо продолжения система показывает главную. Курс, тест и место остановки приходится искать заново. Формально аккаунт тот же; для пользователя прогресс пропал.\u003C\u002Fp>\u003Cp>Без сети устройство какое-то время живёт со своей копией данных. Пользователь меняет заявку в приложении, а сотрудник обновляет ту же запись в вебе. После подключения на сервер приходят две версии. Синхронизация состоялась, но серверу всё равно нужно решить, какая версия допустима.\u003C\u002Fp>\u003Cp>Политику выбирают по типу данных. Независимые поля заявки можно объединить, права доступа сервер пересчитывает по актуальной роли, а два изменения одного поля требуют проверки. Одно правило здесь опасно: конфликт в переключателе и потеря черновика имеют разную цену.\u003C\u002Fp>\u003Cp>Для этого у записи должна быть версия, а у действия — время и автор. Получив устаревшую версию, сервер отклоняет изменение или возвращает конфликт в интерфейс. Политику разрешения конфликтов задают до запуска офлайн-режима, особенно для черновиков и необратимых действий.\u003Cbr>\u003Cbr>\u003Cbr>\u003Cstrong>Логин не помнит, на каком вопросе остановился пользователь\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Авторизация сообщает, кто вошёл. Чтобы продолжить задачу, система хранит роль, открытый объект, этап процесса, прогресс, черновик, версию данных и статус последнего действия.\u003C\u002Fp>\u003Cp>Возьмём учебный тест. Запись «пользователь 42 авторизован» почти бесполезна без номера попытки, ответов, оставшегося времени и правил повторного входа. Если проверка файла идёт в фоне, к контексту добавляется статус: работа принята, обрабатывается, проверена или требует повторной загрузки.\u003C\u002Fp>\u003Cp>Даже знакомое поле может оказаться спорным. Таймер, сохранённый на телефоне как «12 минут», устареет, пока устройство лежит без сети. Надёжнее хранить на сервере время начала и дедлайн, а на каждом клиенте заново рассчитывать остаток. Тогда часы на ноутбуке и смартфоне не проводят собственное совещание.\u003C\u002Fp>\u003Cp>У разных сценариев свой состав состояния. В доставке это активный заказ, маршрут и изменения, сделанные без сети. В личном кабинете — выбранная организация, права и незавершённая заявка. В семейном аккаунте — профиль ребёнка, который родитель открыл перед тем, как свернуть приложение.\u003C\u002Fp>\u003Cp>Это требование мы раскладываем на сущности и действия, которые человек продолжит на другом устройстве. Чаще всего мобильная и серверная команды расходятся именно здесь: первая описывает текущий экран, вторая — последнюю сохранённую запись. У каждой записи поэтому появляются владелец, версия и правило обновления\u003Cbr>&nbsp;\u003C\u002Fp>\u003Cp>\u003Cstrong>Сервер хранит маршрут, устройство — ближайший шаг\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-02 16.19.21.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_19_21_388c931192.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>\u003Cp>\u003Cstrong>Двойной тап не должен превращаться в две сдачи\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-02 16.19.23.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_19_23_c3b1ffb716.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>Пользователю при этом нужен понятный статус. «Принято, обрабатываем» лучше бесконечной загрузки. Если ответ потерялся по дороге, другое устройство запрашивает состояние операции по этому ключу.\u003Cbr>\u003Cbr>\u003Cstrong>Офлайн превращает синхронизацию в спор двух версий\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Без сети устройство какое-то время живёт со своей копией данных. Пользователь меняет заявку в приложении, а сотрудник обновляет ту же запись в вебе. После подключения на сервер приходят две версии. Синхронизация состоялась, но серверу всё равно нужно решить, какая версия допустима.\u003C\u002Fp>\u003Cp>Политику выбирают по типу данных. Независимые поля заявки можно объединить, права доступа сервер пересчитывает по актуальной роли, а два изменения одного поля требуют проверки. Одно правило здесь опасно: конфликт в переключателе и потеря черновика имеют разную цену.\u003C\u002Fp>\u003Cp>Для этого у записи должна быть версия, а у действия — время и автор. Получив устаревшую версию, сервер отклоняет изменение или возвращает конфликт в интерфейс. Политику разрешения конфликтов задают до запуска офлайн-режима, особенно для черновиков и необратимых действий.\u003Cbr>\u003Cbr>\u003Cstrong>«Принято» должно пережить закрытую вкладку\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-02 16.19.15.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_19_15_86870adfb5.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>\u003Cp>\u003Cbr>\u003Cstrong>Проверка начинается с незавершённого действия\u003C\u002Fstrong>\u003C\u002Fp>\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>",[689,733,783],{"createdAt":70,"id":65,"documentId":66,"title":67,"date":68,"description":9,"order":10,"slug":69,"showOnMainPage":12,"updatedAt":71,"publishedAt":72,"locale":16,"cover":690,"content":726,"media_event":9,"media_areas":729,"seo":9,"localizations":732},{"id":691,"documentId":692,"name":693,"alternativeText":9,"caption":9,"width":642,"height":643,"formats":694,"hash":721,"ext":696,"mime":699,"size":722,"url":723,"previewUrl":9,"provider":679,"provider_metadata":9,"createdAt":724,"updatedAt":724,"publishedAt":725},810,"zl315oaxwzz50p46g2whlnuu","Изображение Codex 18 сент. 2026 г., 01_31_12.png",{"large":695,"small":703,"medium":709,"thumbnail":715},{"ext":696,"url":697,"hash":698,"mime":699,"name":700,"path":9,"size":701,"width":652,"height":653,"sizeInBytes":702},".png","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","image\u002Fpng","large_Изображение Codex 18 сент. 2026 г., 01_31_12.png",630.45,630445,{"ext":696,"url":704,"hash":705,"mime":699,"name":706,"path":9,"size":707,"width":23,"height":660,"sizeInBytes":708},"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":696,"url":710,"hash":711,"mime":699,"name":712,"path":9,"size":713,"width":667,"height":23,"sizeInBytes":714},"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":696,"url":716,"hash":717,"mime":699,"name":718,"path":9,"size":719,"width":674,"height":212,"sizeInBytes":720},"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",[727],{"__component":686,"id":526,"text":728},"\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>\u003Cp class=\"p1\">\u003Cstrong>После оффера данные расходятся по четырём системам\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Один навык получает три имени – и перестаёт считаться\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Оценка кандидата должна пережить первый рабочий день\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Между тестом и рабочей метрикой нужен мост из событий\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-02 16.16.31.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_16_31_f3a06bc910.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>\u003Cp class=\"p1\">\u003Cstrong>Пилот начинается с одной роли\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-02 16.14.18.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_02_16_14_18_6b5d29d7c3.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>\u003Cp class=\"p1\">\u003Cstrong>Плохая модель компетенций автоматизирует спор\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Сквозная аналитика легко переходит в цифровой микроменеджмент. Особенно когда компания подменяет результат активностью: временем в LMS, числом кликов, количеством задач или частотой входа в корпоративный портал. Эти показатели удобно собирать, поэтому они быстро начинают выглядеть важнее самой работы.\u003C\u002Fp>\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\">Оценка кандидата может стать началом плана развития. 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>",[730,731],{"id":49,"documentId":128,"title":129,"slug":130,"order":23,"createdAt":131,"updatedAt":131,"publishedAt":132,"locale":16},{"id":19,"documentId":20,"title":21,"slug":22,"order":23,"createdAt":24,"updatedAt":24,"publishedAt":25,"locale":16},[],{"createdAt":494,"id":489,"documentId":490,"title":491,"date":492,"description":9,"order":10,"slug":493,"showOnMainPage":12,"updatedAt":495,"publishedAt":496,"locale":16,"cover":734,"content":769,"media_event":9,"media_areas":773,"seo":9,"localizations":782},{"id":735,"documentId":736,"name":737,"alternativeText":9,"caption":9,"width":738,"height":738,"formats":739,"hash":765,"ext":741,"mime":649,"size":766,"url":767,"previewUrl":9,"provider":679,"provider_metadata":9,"createdAt":768,"updatedAt":768,"publishedAt":768},694,"zbr3rwphnt7py6h0deqoy0fx","photo_2026-09-03 15.47.52.jpeg",1200,{"large":740,"small":747,"medium":753,"thumbnail":759},{"ext":741,"url":742,"hash":743,"mime":649,"name":744,"path":9,"size":745,"width":652,"height":652,"sizeInBytes":746},".jpeg","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":741,"url":748,"hash":749,"mime":649,"name":750,"path":9,"size":751,"width":23,"height":23,"sizeInBytes":752},"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":741,"url":754,"hash":755,"mime":649,"name":756,"path":9,"size":757,"width":667,"height":667,"sizeInBytes":758},"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":741,"url":760,"hash":761,"mime":649,"name":762,"path":9,"size":763,"width":212,"height":212,"sizeInBytes":764},"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",[770],{"__component":686,"id":771,"text":772},228,"\u003Cp class=\"p1\">Покупатель пишет: «Найди мне чёрную куртку без натурального меха, до 20 тысяч рублей, с доставкой к субботе. Если итоговая цена выше 18 тысяч — сначала спроси». Дальше он хочет увидеть готовый заказ, а не восемь вкладок, три почти одинаковые модели и промокод, который оказался недействителен уже перед оплатой.\u003C\u002Fp>\u003Cp class=\"p1\">Для AI-агента такой запрос звучит как маршрут: понять требования, найти подходящий вариант, проверить остаток, посчитать доставку, получить разрешение на списание и оформить покупку. Для интернет-магазина это проверка всей системы: данные о товаре, остатке, цене, доставке и оплате должны совпадать в каталоге, ERP и складском контуре.\u003C\u002Fp>\u003Cp class=\"p1\">Когда покупатель передаёт часть заказа AI-агенту, интернет-магазину приходится пересматривать не только интерфейс, но и саму архитектуру взаимодействия с клиентом. Агенту нужны актуальные данные, понятные правила и безопасный способ выполнять действия от имени покупателя. Поэтому задача начинается не с кнопки «Подключить AI», а с проверки того, готовы ли каталог, остатки, цены, доставка и оплата работать как единая система.\u003Cbr>\u003Cbr>\u003Cstrong>Покупатель уходит из интерфейса. Магазин остаётся продавцом\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Комиссия — только одна строка в экономике агентного канала\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Атрибуты становятся новой витриной для AI-агента\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-03 15.47.50.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_50_beb22f190b.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>\u003Cp class=\"p1\">\u003Cstrong>«В наличии» живёт до первого запроса на доставку\u003C\u002Fstrong>\u003C\u002Fp>\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 alt=\"photo_2026-09-03 15.47.49.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_49_31604df9b8.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>\u003Cp class=\"p1\">\u003Cstrong>Цена меняется быстрее, чем агент дочитывает правила акции\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Платёж требует лимита и доказательства полномочий\u003C\u002Fstrong>\u003C\u002Fp>\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 alt=\"photo_2026-09-03 15.47.56.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_03_15_47_56_ebcefd093a.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>\u003Cp class=\"p1\">\u003Cstrong>Повторный запрос не должен заказать две куртки\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Агенты будут повторять запросы. Сеть оборвалась после отправки платежа, ответ задержался, клиент не понял, создался ли заказ, и попробовал ещё раз. Для обычной страницы это неприятный крайний случай. Для программного клиента — штатное поведение.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому операции с последствиями должны поддерживать идемпотентность. Агент отправляет уникальный ключ, а магазин при повторе возвращает прежний результат вместо второго списания и нового заказа. В актуальной спецификации ACP такой ключ обязателен для создания, обновления, завершения и отмены сессии оформления заказа.\u003C\u002Fp>\u003Cp class=\"p1\">Сессию оформления заказа полезно хранить как конечный автомат с понятными состояниями: собирается, ждёт данных, готова к оплате, требует подтверждения, завершена, отменена. Переходы проверяет сервер. Агент не может перескочить от подбора товара к оплате, если адрес не прошёл валидацию или магазин ещё не подтвердил итог.\u003C\u002Fp>\u003Cp class=\"p1\">Логи тоже меняются. Для каждого действия нужны идентификаторы пользователя, агента, поручения, сессии оформления заказа, заказа и платежа. Тогда спор «я просил до 18 тысяч, откуда взялось 21 400?» разбирается по цепочке событий с точными состояниями и временем.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>После оплаты агенту понадобятся статусы и возврат\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">После успешной оплаты заказ могут собирать частями, переносить между складами, отменять из-за брака, выдавать в пункте или отправлять курьером. Покупатель захочет спросить того же агента: «Где куртка?» Через неделю — «Как вернуть размер?»\u003C\u002Fp>\u003Cp class=\"p1\">Магазину нужен API жизненного цикла заказа: стабильный ID, состав, статусы, трекинг, документы, правила отмены и возврата. События лучше передавать асинхронно, а текущий статус всегда уметь получить повторным запросом. Агент может объяснить событие человеческим языком, но факт «передан в доставку» приходит из системы управления заказами, складом или самой службы доставки.\u003C\u002Fp>\u003Cp class=\"p1\">Поддержка тоже остаётся в контуре продавца. Агент должен знать, в каких случаях он может отменить заказ по поручению, когда запросить подтверждение и когда передать диалог оператору. Передача оператору вместе с контекстом становится частью контракта, который проверяют до запуска.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Шесть вопросов к бэкенду становятся шестью контрактами\u003C\u002Fstrong>\u003C\u002Fp>\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>\u003Cp class=\"p1\">\u003Cstrong>Пилот ограничивают одним продающим маршрутом\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Стартовый сценарий — одна категория с понятными вариантами, один регион, один способ доставки и верхний лимит заказа. Пользователь подтверждает состав и итоговую сумму; нестандартная скидка, замена товара, частичная доставка или ошибка интеграции передают заказ оператору. Если остатки обновляются раз в сутки, маршрут заканчивается передачей корзины человеку. Автономную оплату подключают после резервов, правил, токенов и аудита.\u003C\u002Fp>\u003Cp class=\"p1\">На таком маршруте быстро видны реальные разрывы: каталог не различает товар и SKU, ERP отдаёт остаток без резервов, промокод рассчитывается только во фронтенде, платёж создаётся отдельно от заказа. После стабильного цикла добавляют по одному измерению — категорию, регион, способ получения, программу лояльности или более высокий лимит. Так команда понимает, какой контракт изменился и где искать ошибку.\u003C\u002Fp>",[774,781],{"id":775,"documentId":776,"title":777,"slug":778,"order":23,"createdAt":779,"updatedAt":779,"publishedAt":780,"locale":16},33,"xhke7f1vzoqyx9nzqc1sukc6","e-commerce","ecommerce-blog","2026-08-31T12:06:40.235Z","2026-08-31T12:06:40.258Z",{"id":49,"documentId":128,"title":129,"slug":130,"order":23,"createdAt":131,"updatedAt":131,"publishedAt":132,"locale":16},[],{"createdAt":503,"id":498,"documentId":499,"title":500,"date":501,"description":9,"order":10,"slug":502,"showOnMainPage":12,"updatedAt":504,"publishedAt":505,"locale":16,"cover":784,"content":817,"media_event":9,"media_areas":821,"seo":9,"localizations":830},{"id":785,"documentId":786,"name":787,"alternativeText":9,"caption":9,"width":738,"height":738,"formats":788,"hash":813,"ext":741,"mime":649,"size":814,"url":815,"previewUrl":9,"provider":679,"provider_metadata":9,"createdAt":816,"updatedAt":816,"publishedAt":816},698,"k50ygwpde7r8rzi8dtisstrl","photo_2026-09-04 15.05.29.jpeg",{"large":789,"small":795,"medium":801,"thumbnail":807},{"ext":741,"url":790,"hash":791,"mime":649,"name":792,"path":9,"size":793,"width":652,"height":652,"sizeInBytes":794},"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":741,"url":796,"hash":797,"mime":649,"name":798,"path":9,"size":799,"width":23,"height":23,"sizeInBytes":800},"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":741,"url":802,"hash":803,"mime":649,"name":804,"path":9,"size":805,"width":667,"height":667,"sizeInBytes":806},"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":741,"url":808,"hash":809,"mime":649,"name":810,"path":9,"size":811,"width":212,"height":212,"sizeInBytes":812},"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",[818],{"__component":686,"id":819,"text":820},230,"\u003Cp class=\"p1\">Родитель открывает расписание двух детей между станциями метро. Ему нужна минута: проверить уроки на завтра, оценки и домашние задания. Если в этот момент показать ему мобильную версию всей LMS с курсами, отчётами и инструментами преподавателя, получится экскурсия по школе вместо ответа на простой вопрос.\u003C\u002Fp>\u003Cp class=\"p1\">Запрос «к веб-версии нужно ещё приложение» звучит просто. Но за ним стоят отдельная разработка и выпуск, проверка на разных устройствах, публикация в App Store и Google Play и дальнейшая поддержка после обновлений.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому начинать стоит не с решения «делаем приложение», а с учебной ситуации. Что именно телефон должен изменить для ученика, преподавателя или родителя? Если ответ сводится к уменьшенной копии личного кабинета, сначала стоит привести в порядок мобильный веб. В Qtim мы придерживаемся этого подхода при разработке EdTech-платформ: сначала определяем сценарий и его ценность для пользователя, а уже затем выбираем технологический формат.\u003Cbr>\u003Cbr>\u003Cstrong>Телефон должен получить отдельную задачу\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Отдельное приложение имеет смысл при двух условиях. Смартфон даёт учебному сценарию полезную возможность за пределами браузера. Человек возвращается к этому сценарию достаточно часто, чтобы установка окупилась удобством.\u003C\u002Fp>\u003Cp class=\"p1\">Рабочий критерий такой: учебный путь должен заметно выигрывать от телефона хотя бы в одном месте. Если выигрыша нет, приложение добавит продукту второй цикл выпуска, а ученику — ещё одну иконку.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>PWA хватает для коротких возвращений с телефона\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">Основной учебный путь часто хорошо живёт в браузере. Ученик переходит по ссылке, входит в кабинет, смотрит урок, сдаёт тест и возвращается к расписанию. Ему не приходится искать сервис в сторе и разбираться с разрешениями до первого занятия.\u003C\u002Fp>\u003Cp class=\"p1\">Между адаптивным вебом и полноценным приложением есть PWA — сайт, который можно вынести на домашний экран и частично использовать без сети. Общий разбор выбора для первой версии я делал в отдельной статье. Такой формат подходит, когда учебный путь остаётся браузерным, а мобильному сценарию нужны уведомления и часть материалов без сети.\u003C\u002Fp>\u003Cp class=\"p1\">Например, расписание, короткие тесты и конспекты можно оставить в PWA, если ученик открывает их с телефона несколько раз в неделю. Если он часами учится без сети, выполняет задания и затем продолжает курс с другого устройства, нужен более строгий контур хранения и синхронизации. Тогда мы отдельно сравниваем PWA и приложение на целевых устройствах.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Формат онлайн-урока определяет устройство\u003C\u002Fstrong>\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>\u003Cp class=\"p1\">\u003Cstrong>Шесть курсов в вебе: карточки ещё не делают приложение\u003C\u002Fstrong>\u003C\u002Fp>\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 alt=\"photo_2026-09-04 15.05.28.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_28_de67b338c1.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>\u003Cp class=\"p1\">\u003Cstrong>460 экзаменов с камерой — и ни одного мобильного клиента\u003C\u002Fstrong>\u003C\u002Fp>\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 alt=\"photo_2026-09-04 15.05.31.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_31_2bc03c00a0.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>\u003Cp class=\"p1\">\u003Cstrong>Три месяца на дневник, а не на всю LMS\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-04 15.05.26.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_26_d4041ddd9c.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 alt=\"photo_2026-09-04 15.05.32.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_04_15_05_32_ebf1f4dffb.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>\u003Cp class=\"p1\">\u003Cstrong>Копия веб-кабинета превращает каждое изменение в два выпуска\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp class=\"p1\">У приложения появляется собственная жизнь ещё до публикации. Команда настраивает сертификаты и подписи, готовит страницы в сторах, запрашивает разрешения и проверяет сборки на разных устройствах. После запуска этот цикл повторяется с каждым заметным обновлением.\u003C\u002Fp>\u003Cp class=\"p1\">Flutter позволяет вести один мобильный продукт для iOS и Android, когда экраны и основная логика совпадают. Публикация, тестирование и часть интеграций с возможностями телефона всё равно остаются раздельными. Полная копия веб-кабинета заставит каждую новую роль, оценку или отчёт приезжать сразу в два интерфейса.\u003C\u002Fp>\u003Cp class=\"p1\">Поэтому бэкенд строим по принципу API-first: бизнес-логика, роли, права, прогресс и аналитика остаются на сервере, а веб и приложение используют общий серверный API как разные клиенты. Такой подход позволяет добавить мобильный сценарий после проверки спроса, не перевозя LMS целиком в новый интерфейс.\u003C\u002Fp>\u003Cp class=\"p1\">\u003Cstrong>Пять вопросов отделяют учебный сценарий от списка экранов\u003C\u002Fstrong>\u003C\u002Fp>\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>",[822,823],{"id":49,"documentId":128,"title":129,"slug":130,"order":23,"createdAt":131,"updatedAt":131,"publishedAt":132,"locale":16},{"id":824,"documentId":825,"title":826,"slug":827,"order":23,"createdAt":828,"updatedAt":828,"publishedAt":829,"locale":16},27,"x6rulaa9s3473663k7mutmd7","EdTech ","ed-tech","2026-07-30T14:30:19.041Z","2026-07-30T14:30:19.062Z",[]]