[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"media-detail-with-another-trebovaniya-k-dostupnosti-do-nachala-razrabotki":3},{"media":4,"anotherMedia":760},{"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":709,"content":756},437,"e0kn9y3oq7pxqrub20a1n9kp","Требования к доступности цифрового продукта до начала разработки","2026-09-24",null,501,"trebovaniya-k-dostupnosti-do-nachala-razrabotki",true,"2026-09-24T08:14:07.009Z","2026-09-24T10:59:51.769Z","2026-09-24T10:59:51.832Z","ru",[18,114],{"id":19,"documentId":20,"title":21,"slug":22,"order":23,"createdAt":24,"updatedAt":24,"publishedAt":25,"locale":16,"media":26,"localizations":113},21,"yf23yooxmjrfe35xytsexltw","Веб-разработка","veb-razrabotka",500,"2026-07-30T14:29:04.519Z","2026-07-30T14:29:04.572Z",[27,35,43,51,59,68,76,85,94,103,112],{"id":28,"documentId":29,"title":30,"date":31,"description":9,"order":23,"slug":32,"showOnMainPage":12,"createdAt":33,"updatedAt":33,"publishedAt":34,"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":36,"documentId":37,"title":38,"date":39,"description":9,"order":23,"slug":40,"showOnMainPage":12,"createdAt":41,"updatedAt":41,"publishedAt":42,"locale":16},281,"ggdl1zmuuohkn3ubgxqu5wdz","Этапы разработки сайта: 7 контрольных точек от идеи до запуска","2026-09-11","etapy-razrabotki-sayta-ot-idei-do-zapuska","2026-09-11T14:21:51.168Z","2026-09-11T14:21:51.261Z",{"id":44,"documentId":45,"title":46,"date":47,"description":9,"order":23,"slug":48,"showOnMainPage":12,"createdAt":49,"updatedAt":49,"publishedAt":50,"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":52,"documentId":53,"title":54,"date":55,"description":9,"order":23,"slug":56,"showOnMainPage":12,"createdAt":57,"updatedAt":57,"publishedAt":58,"locale":16},325,"zlz1zsbmf9t62lq9upjoh71o","Как правильно оценить разработку сайта и приложения\n","2026-09-17","kak-pravilno-otsenit-razrabotku-sayta-i-prilozheniya","2026-09-17T10:47:34.140Z","2026-09-17T10:47:34.227Z",{"id":60,"documentId":61,"title":62,"date":55,"description":9,"order":63,"slug":64,"showOnMainPage":12,"createdAt":65,"updatedAt":66,"publishedAt":67,"locale":16},444,"n00161wjkx4xvvrj4cnrf3hg","Масштабирование веб-приложения: 5 признаков архитектурного предела\n",1,"masshtabirovanie-veb-prilozheniya-arhitekturnyy-predel","2026-09-17T08:36:56.533Z","2026-09-24T19:02:35.882Z","2026-09-24T19:02:35.960Z",{"id":69,"documentId":70,"title":71,"date":55,"description":9,"order":63,"slug":72,"showOnMainPage":12,"createdAt":73,"updatedAt":74,"publishedAt":75,"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":77,"documentId":78,"title":79,"date":80,"description":9,"order":63,"slug":81,"showOnMainPage":12,"createdAt":82,"updatedAt":83,"publishedAt":84,"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":86,"documentId":87,"title":88,"date":89,"description":9,"order":10,"slug":90,"showOnMainPage":12,"createdAt":91,"updatedAt":92,"publishedAt":93,"locale":16},382,"fr3j1duys4bku4syv0v3txb0","Как проверить, находят ли пользователи новую функцию после релиза","2026-09-22","funkciya-vypushchena-polzovateli-ne-nashli-posle-reliza","2026-09-22T08:17:57.565Z","2026-09-22T13:27:28.606Z","2026-09-22T13:27:28.659Z",{"id":95,"documentId":96,"title":97,"date":98,"description":9,"order":10,"slug":99,"showOnMainPage":12,"createdAt":100,"updatedAt":101,"publishedAt":102,"locale":16},405,"x98ekbdd625a0mr6v48wtojn","Тарифы, лимиты и пробный период в SaaS: что заложить в архитектуру до запуска","2026-09-23","tarify-limity-probnyy-period-saas","2026-09-23T07:34:07.671Z","2026-09-23T13:29:13.000Z","2026-09-23T13:29:13.071Z",{"id":104,"documentId":105,"title":106,"date":107,"description":9,"order":23,"slug":108,"showOnMainPage":12,"createdAt":109,"updatedAt":110,"publishedAt":111,"locale":16},421,"g0rbfiyvtlpoh0wlalq8dsyp","Когда бизнесу пора переходить от идеи к MVP","2026-07-03","kogda-biznesu-stoit-perehodit-ot-idei-k-mvp","2026-07-03T14:26:20.648Z","2026-09-23T20:42:23.321Z","2026-09-23T20:42:23.381Z",{"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":115,"documentId":116,"title":117,"slug":118,"order":23,"createdAt":119,"updatedAt":119,"publishedAt":120,"locale":16,"media":121,"localizations":708},2,"ei24o3vyhndi1hqwqhnd61p0","Все","ALL","2026-02-25T07:47:50.713Z","2026-02-25T07:47:50.739Z",[122,133,143,153,162,171,180,189,199,208,218,227,236,245,254,263,264,273,282,291,300,309,318,327,337,346,355,364,373,382,383,393,403,412,421,430,439,448,457,466,475,484,493,502,511,520,529,538,547,556,564,565,566,574,582,589,597,605,614,615,623,624,632,640,648,656,666,674,675,683,684,691,692,699,707],{"id":123,"documentId":124,"title":125,"date":126,"description":127,"order":128,"slug":129,"showOnMainPage":12,"createdAt":130,"updatedAt":131,"publishedAt":132,"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":134,"documentId":135,"title":136,"date":137,"description":138,"order":128,"slug":139,"showOnMainPage":12,"createdAt":140,"updatedAt":141,"publishedAt":142,"locale":16},432,"ydsmydf287a3yxdji1i4r5z1","еще одна победа!","2025-12-04","Проект Qtim — приложение «Дневник» для «Онлайн-школы №1» — занял третье место в Рейтинге Рунета.","eshhe-odna-pobeda","2026-03-04T07:03:38.855Z","2026-09-24T08:03:19.588Z","2026-09-24T08:03:19.684Z",{"id":144,"documentId":145,"title":146,"date":147,"description":148,"order":128,"slug":149,"showOnMainPage":12,"createdAt":150,"updatedAt":151,"publishedAt":152,"locale":16},431,"r3pwx014em719gtwicw9p36t"," церемония награждения премии «Золотой сайт»","2024-12-20","Онлайн-школа №1 забирает все награды","czeremoniya-nagrazhdeniya-premii-zolotoj-sajt","2026-03-04T10:16:10.453Z","2026-09-24T08:02:37.029Z","2026-09-24T08:02:37.109Z",{"id":154,"documentId":155,"title":156,"date":157,"description":9,"order":23,"slug":158,"showOnMainPage":12,"createdAt":159,"updatedAt":160,"publishedAt":161,"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":163,"documentId":164,"title":165,"date":166,"description":9,"order":23,"slug":167,"showOnMainPage":12,"createdAt":168,"updatedAt":169,"publishedAt":170,"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":172,"documentId":173,"title":174,"date":175,"description":9,"order":23,"slug":176,"showOnMainPage":12,"createdAt":177,"updatedAt":178,"publishedAt":179,"locale":16},430,"gbefdj7617jkuhdg2uiw6ifn","Сколько стоит разработка MVP в 2026","2026-03-26","stoimost-razrabotki-mvp-v-2026-godu","2026-03-27T16:29:20.000Z","2026-09-23T22:15:22.300Z","2026-09-23T22:15:22.361Z",{"id":181,"documentId":182,"title":183,"date":184,"description":9,"order":23,"slug":185,"showOnMainPage":12,"createdAt":186,"updatedAt":187,"publishedAt":188,"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":190,"documentId":191,"title":192,"date":193,"description":194,"order":128,"slug":195,"showOnMainPage":12,"createdAt":196,"updatedAt":197,"publishedAt":198,"locale":16},433,"slc42o5s3klmtwkvvzyjfji5","Забрали сразу две награды на премии «Золотое приложение»","2026-04-01","Две награды. Два разных проекта. Два сильных результата.\n","zolotoe-prilozhenie","2026-04-03T07:26:17.360Z","2026-09-24T08:05:25.947Z","2026-09-24T08:05:26.013Z",{"id":200,"documentId":201,"title":202,"date":203,"description":9,"order":23,"slug":204,"showOnMainPage":12,"createdAt":205,"updatedAt":206,"publishedAt":207,"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":209,"documentId":210,"title":211,"date":212,"description":9,"order":213,"slug":214,"showOnMainPage":12,"createdAt":215,"updatedAt":216,"publishedAt":217,"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":219,"documentId":220,"title":221,"date":222,"description":9,"order":23,"slug":223,"showOnMainPage":12,"createdAt":224,"updatedAt":225,"publishedAt":226,"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":228,"documentId":229,"title":230,"date":231,"description":9,"order":23,"slug":232,"showOnMainPage":12,"createdAt":233,"updatedAt":234,"publishedAt":235,"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":237,"documentId":238,"title":239,"date":240,"description":9,"order":23,"slug":241,"showOnMainPage":12,"createdAt":242,"updatedAt":243,"publishedAt":244,"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":246,"documentId":247,"title":248,"date":249,"description":9,"order":23,"slug":250,"showOnMainPage":12,"createdAt":251,"updatedAt":252,"publishedAt":253,"locale":16},415,"h713429nv5nf42hksety3udo","Как выбрать подрядчика по разработке: чек-лист от компании с 280+ проектами","2026-05-12","kak-vybrat-podryadchika-po-razrabotke","2026-05-12T14:27:43.934Z","2026-09-23T20:19:18.515Z","2026-09-23T20:19:18.584Z",{"id":255,"documentId":256,"title":257,"date":258,"description":9,"order":23,"slug":259,"showOnMainPage":12,"createdAt":260,"updatedAt":261,"publishedAt":262,"locale":16},420,"fleu8iabwalh7dwbfkxuew4p","Flutter в продакшене: где появляется экономия","2026-06-23","flutter-v-razrabotke-ekonomiya-na-mobilnykh-prilozheniyakh","2026-06-23T13:14:39.410Z","2026-09-23T20:40:37.837Z","2026-09-23T20:40:37.893Z",{"id":104,"documentId":105,"title":106,"date":107,"description":9,"order":23,"slug":108,"showOnMainPage":12,"createdAt":109,"updatedAt":110,"publishedAt":111,"locale":16},{"id":265,"documentId":266,"title":267,"date":268,"description":9,"order":213,"slug":269,"showOnMainPage":12,"createdAt":270,"updatedAt":271,"publishedAt":272,"locale":16},423,"txt60k65mnql530q38z0path","Когда онлайн-школе пора менять стандартную LMS\n","2026-07-13","kogda-onlajn-shkole-stoit-smenit-standartnuyu-lms","2026-07-13T14:45:31.490Z","2026-09-23T20:55:07.323Z","2026-09-23T20:55:07.429Z",{"id":274,"documentId":275,"title":276,"date":277,"description":9,"order":115,"slug":278,"showOnMainPage":12,"createdAt":279,"updatedAt":280,"publishedAt":281,"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":283,"documentId":284,"title":285,"date":286,"description":9,"order":23,"slug":287,"showOnMainPage":12,"createdAt":288,"updatedAt":289,"publishedAt":290,"locale":16},424,"jknljxwtbcr6umo95k5onfcq","Мы выбрали для EdTech ту же технологию, что и Pornhub. Потому что тормоза всем мешают","2026-07-17","-tekhnologiya-pornhub-dlya-edtech","2026-07-17T13:13:00.710Z","2026-09-23T21:53:05.719Z","2026-09-23T21:53:05.776Z",{"id":292,"documentId":293,"title":294,"date":295,"description":9,"order":63,"slug":296,"showOnMainPage":12,"createdAt":297,"updatedAt":298,"publishedAt":299,"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":301,"documentId":302,"title":303,"date":304,"description":9,"order":23,"slug":305,"showOnMainPage":12,"createdAt":306,"updatedAt":307,"publishedAt":308,"locale":16},419,"gnlxdx5dl5wgdemt91xm57j9","4 продукта на NestJS: где стек сработал, а где мы ушли на Go\n","2026-07-23","-produkty-na-nestjs-i-go","2026-07-23T15:10:53.621Z","2026-09-23T20:38:02.925Z","2026-09-23T20:38:02.985Z",{"id":310,"documentId":311,"title":312,"date":313,"description":9,"order":23,"slug":314,"showOnMainPage":12,"createdAt":315,"updatedAt":316,"publishedAt":317,"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":319,"documentId":320,"title":321,"date":322,"description":9,"order":23,"slug":323,"showOnMainPage":12,"createdAt":324,"updatedAt":325,"publishedAt":326,"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":328,"documentId":329,"title":330,"date":331,"description":9,"order":332,"slug":333,"showOnMainPage":12,"createdAt":334,"updatedAt":335,"publishedAt":336,"locale":16},407,"dcenjtj61ta9j4xssc9be8n4","AI-чатбот за 2 недели: что проверить до сметы на 2 млн","2026-07-30",3,"-ai-chatbot-chto-proverit-pered-razrabotkoy","2026-07-30T13:23:01.866Z","2026-09-23T19:27:11.722Z","2026-09-23T19:27:11.796Z",{"id":338,"documentId":339,"title":340,"date":341,"description":9,"order":63,"slug":342,"showOnMainPage":12,"createdAt":343,"updatedAt":344,"publishedAt":345,"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":347,"documentId":348,"title":349,"date":350,"description":9,"order":23,"slug":351,"showOnMainPage":12,"createdAt":352,"updatedAt":353,"publishedAt":354,"locale":16},416,"myvt92baeeu5v8avnec7dqxv","Кнопка стала красивее, товара всё равно нет: почему редизайн не спасает продажи в e-commerce","2026-08-03","-redizayn-interfeysa-v-e-commerce","2026-08-03T15:04:24.695Z","2026-09-23T20:21:32.170Z","2026-09-23T20:21:32.245Z",{"id":356,"documentId":357,"title":358,"date":359,"description":9,"order":23,"slug":360,"showOnMainPage":12,"createdAt":361,"updatedAt":362,"publishedAt":363,"locale":16},422,"a4ckp7tbgmtv0utmia4b808l","Новая роль — новый проект: когда личные кабинеты пора собирать в экосистему","2026-08-04","-lichnye-kabineti-v-ekosisteme-optimizatsiya-protsessov","2026-08-04T14:13:59.695Z","2026-09-23T20:51:19.975Z","2026-09-23T20:51:20.033Z",{"id":365,"documentId":366,"title":367,"date":368,"description":9,"order":332,"slug":369,"showOnMainPage":12,"createdAt":370,"updatedAt":371,"publishedAt":372,"locale":16},413,"k14jk3d9zgf69tmumdlcoh2f","Сколько стоит AI после релиза: токены, контекст, хранение и контроль качества","2026-08-05","-stoimost-ai-posle-reliza-tokeny-kontekst-khranenie-i-kontrol-kachestva","2026-08-05T17:49:43.277Z","2026-09-23T19:57:02.474Z","2026-09-23T19:57:02.537Z",{"id":374,"documentId":375,"title":376,"date":377,"description":9,"order":115,"slug":378,"showOnMainPage":12,"createdAt":379,"updatedAt":380,"publishedAt":381,"locale":16},339,"jdz6gl00sz72z0egu84yf8cn","16 млн за полгода: аутсорс или штат в 2026 году","2026-08-06","-autsorsing-ili-shtat-sravnenie-zatrat","2026-08-06T17:30:36.209Z","2026-09-17T22:44:36.382Z","2026-09-17T22:44:36.451Z",{"id":28,"documentId":29,"title":30,"date":31,"description":9,"order":23,"slug":32,"showOnMainPage":12,"createdAt":33,"updatedAt":33,"publishedAt":34,"locale":16},{"id":384,"documentId":385,"title":386,"date":387,"description":9,"order":388,"slug":389,"showOnMainPage":12,"createdAt":390,"updatedAt":391,"publishedAt":392,"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":394,"documentId":395,"title":396,"date":397,"description":9,"order":398,"slug":399,"showOnMainPage":12,"createdAt":400,"updatedAt":401,"publishedAt":402,"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":404,"documentId":405,"title":406,"date":407,"description":9,"order":115,"slug":408,"showOnMainPage":12,"createdAt":409,"updatedAt":410,"publishedAt":411,"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":413,"documentId":414,"title":415,"date":416,"description":9,"order":63,"slug":417,"showOnMainPage":12,"createdAt":418,"updatedAt":419,"publishedAt":420,"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":422,"documentId":423,"title":424,"date":425,"description":9,"order":63,"slug":426,"showOnMainPage":12,"createdAt":427,"updatedAt":428,"publishedAt":429,"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":431,"documentId":432,"title":433,"date":434,"description":9,"order":23,"slug":435,"showOnMainPage":12,"createdAt":436,"updatedAt":437,"publishedAt":438,"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":440,"documentId":441,"title":442,"date":443,"description":9,"order":63,"slug":444,"showOnMainPage":12,"createdAt":445,"updatedAt":446,"publishedAt":447,"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":449,"documentId":450,"title":451,"date":452,"description":9,"order":63,"slug":453,"showOnMainPage":12,"createdAt":454,"updatedAt":455,"publishedAt":456,"locale":16},391,"cs2j0db6ed7l2zglni926s05","Как проверить AI-навык кандидата: тестовое, критерии и красные флаги","2026-08-21","proverka-ai-navyka-kandidata-testovoe-kriterii","2026-08-19T13:56:11.468Z","2026-09-23T11:35:54.252Z","2026-09-23T11:35:54.307Z",{"id":458,"documentId":459,"title":460,"date":461,"description":9,"order":63,"slug":462,"showOnMainPage":12,"createdAt":463,"updatedAt":464,"publishedAt":465,"locale":16},427,"qh3qmzfp2ceif4xf3tdoi9ap","Один товар, три цены и очередь согласований: чем B2B-маркетплейс отличается от интернет-магазина","2026-08-26","b2b-marketpleys-otlichiya-ot-internet-magazina","2026-08-26T09:04:07.905Z","2026-09-23T22:05:30.026Z","2026-09-23T22:05:30.108Z",{"id":467,"documentId":468,"title":469,"date":470,"description":9,"order":63,"slug":471,"showOnMainPage":12,"createdAt":472,"updatedAt":473,"publishedAt":474,"locale":16},393,"w8n42241rgavwtld0dn1fvcl","Один статус «готовится» запускает цепочку потерь: где ломается экономика приложения доставки","2026-08-27","gde-prilozhenie-sedaet-marzhu","2026-08-26T14:56:30.346Z","2026-09-23T11:40:21.513Z","2026-09-23T11:40:21.581Z",{"id":476,"documentId":477,"title":478,"date":479,"description":9,"order":63,"slug":480,"showOnMainPage":12,"createdAt":481,"updatedAt":482,"publishedAt":483,"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":485,"documentId":486,"title":487,"date":488,"description":9,"order":63,"slug":489,"showOnMainPage":12,"createdAt":490,"updatedAt":491,"publishedAt":492,"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":494,"documentId":495,"title":496,"date":497,"description":9,"order":63,"slug":498,"showOnMainPage":12,"createdAt":499,"updatedAt":500,"publishedAt":501,"locale":16},394,"lb4x4pfodc0sbnv9umz0b32a","Закрыл ноутбук, открыл телефон — и начал заново: где теряется контекст пользователя\n","2026-09-01","gde-teryaetsya-kontekst-polzovatelya","2026-08-31T12:47:31.448Z","2026-09-23T11:44:42.622Z","2026-09-23T11:44:42.688Z",{"id":503,"documentId":504,"title":505,"date":506,"description":9,"order":63,"slug":507,"showOnMainPage":12,"createdAt":508,"updatedAt":509,"publishedAt":510,"locale":16},425,"pbpm1u7r2yocuobuig7aows1","После оффера оценка кандидата пропадает: как связать найм, обучение и эффективность","2026-09-02","kak-svyazat-naym-obuchenie-i-effektivnost","2026-09-02T08:28:55.851Z","2026-09-23T21:57:01.056Z","2026-09-23T21:57:01.114Z",{"id":512,"documentId":513,"title":514,"date":515,"description":9,"order":63,"slug":516,"showOnMainPage":12,"createdAt":517,"updatedAt":518,"publishedAt":519,"locale":16},396,"xigmp6s4a3rypjza7nyd2jyu","AI-агент оформляет заказ: готов ли интернет-магазин отдать ему каталог, остатки и оплату","2026-09-03","ai-agent-oformlyaet-zakaz-katalog-ostatki-oplata","2026-09-03T08:28:16.365Z","2026-09-23T12:03:44.917Z","2026-09-23T12:03:45.001Z",{"id":521,"documentId":522,"title":523,"date":524,"description":9,"order":63,"slug":525,"showOnMainPage":12,"createdAt":526,"updatedAt":527,"publishedAt":528,"locale":16},397,"ono02gti54gmgguq55q3eqfl","Мобильная LMS: как понять, что отдельному приложению есть работа\n","2026-09-04","mobilnaya-lms-otdelnoe-prilozhenie","2026-09-03T14:02:36.259Z","2026-09-23T12:05:36.030Z","2026-09-23T12:05:36.109Z",{"id":530,"documentId":531,"title":532,"date":533,"description":9,"order":63,"slug":534,"showOnMainPage":12,"createdAt":535,"updatedAt":536,"publishedAt":537,"locale":16},428,"tia92neitxsmtmvtu3k6ox2x","Пилот с планом на рост: как подготовить цифровой продукт к масштабированию","2026-09-07","pilot-s-planom-na-rost-masshtabirovanie","2026-09-07T13:11:01.617Z","2026-09-23T22:07:55.075Z","2026-09-23T22:07:55.128Z",{"id":539,"documentId":540,"title":541,"date":542,"description":9,"order":63,"slug":543,"showOnMainPage":12,"createdAt":544,"updatedAt":545,"publishedAt":546,"locale":16},429,"mfzw1oxq307h7hldor2v71hh","Реклама сработала, сайт лёг: как проверить предел системы до пикового трафика","2026-09-08","reklama-srabotala-sayt-lyog-pikovyy-trafik","2026-09-08T11:25:13.641Z","2026-09-23T22:12:54.085Z","2026-09-23T22:12:54.180Z",{"id":548,"documentId":549,"title":550,"date":551,"description":9,"order":63,"slug":552,"showOnMainPage":12,"createdAt":553,"updatedAt":554,"publishedAt":555,"locale":16},400,"dqf6p9puiqfz6u2djss216vw","Баллы списались дважды: где ломается программа лояльности под нагрузкой","2026-09-09","programmnaya-loyalnost-pod-nagruzkoy","2026-09-08T11:39:39.209Z","2026-09-23T12:15:38.943Z","2026-09-23T12:15:39.016Z",{"id":557,"documentId":558,"title":559,"date":39,"description":9,"order":63,"slug":560,"showOnMainPage":12,"createdAt":561,"updatedAt":562,"publishedAt":563,"locale":16},411,"zttjv8sbmge05zro1ok576xe","Что IT-аудит находит в проекте перед релизом","it-audit-pered-relizom","2026-09-08T11:52:07.373Z","2026-09-23T19:53:41.550Z","2026-09-23T19:53:41.617Z",{"id":36,"documentId":37,"title":38,"date":39,"description":9,"order":23,"slug":40,"showOnMainPage":12,"createdAt":41,"updatedAt":41,"publishedAt":42,"locale":16},{"id":44,"documentId":45,"title":46,"date":47,"description":9,"order":23,"slug":48,"showOnMainPage":12,"createdAt":49,"updatedAt":49,"publishedAt":50,"locale":16},{"id":567,"documentId":568,"title":569,"date":570,"description":9,"order":23,"slug":571,"showOnMainPage":12,"createdAt":572,"updatedAt":572,"publishedAt":573,"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":575,"documentId":576,"title":577,"date":39,"description":9,"order":23,"slug":578,"showOnMainPage":12,"createdAt":579,"updatedAt":580,"publishedAt":581,"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":583,"documentId":584,"title":585,"date":570,"description":9,"order":23,"slug":586,"showOnMainPage":12,"createdAt":587,"updatedAt":587,"publishedAt":588,"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":590,"documentId":591,"title":592,"date":570,"description":9,"order":23,"slug":593,"showOnMainPage":12,"createdAt":594,"updatedAt":595,"publishedAt":596,"locale":16},403,"nze9zg24dgc33oo464j2wo8v","Как искусственный интеллект меняет бизнес-процессы: от автоматизации до анализа данных","kak-iskusstvennyy-intellekt-menyaet-biznes-protsessy-ot-avtomatizatsii-do-analiza-dannykh","2026-09-14T21:35:44.550Z","2026-09-23T12:23:07.684Z","2026-09-23T12:23:07.761Z",{"id":598,"documentId":599,"title":600,"date":601,"description":9,"order":332,"slug":602,"showOnMainPage":12,"createdAt":603,"updatedAt":603,"publishedAt":604,"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":606,"documentId":607,"title":608,"date":609,"description":9,"order":63,"slug":610,"showOnMainPage":12,"createdAt":611,"updatedAt":612,"publishedAt":613,"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":52,"documentId":53,"title":54,"date":55,"description":9,"order":23,"slug":56,"showOnMainPage":12,"createdAt":57,"updatedAt":57,"publishedAt":58,"locale":16},{"id":616,"documentId":617,"title":618,"date":55,"description":9,"order":23,"slug":619,"showOnMainPage":12,"createdAt":620,"updatedAt":621,"publishedAt":622,"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":69,"documentId":70,"title":71,"date":55,"description":9,"order":63,"slug":72,"showOnMainPage":12,"createdAt":73,"updatedAt":74,"publishedAt":75,"locale":16},{"id":625,"documentId":626,"title":627,"date":628,"description":9,"order":63,"slug":629,"showOnMainPage":12,"createdAt":630,"updatedAt":630,"publishedAt":631,"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":633,"documentId":634,"title":635,"date":628,"description":9,"order":63,"slug":636,"showOnMainPage":12,"createdAt":637,"updatedAt":638,"publishedAt":639,"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":641,"documentId":642,"title":643,"date":644,"description":9,"order":23,"slug":645,"showOnMainPage":12,"createdAt":646,"updatedAt":646,"publishedAt":647,"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":649,"documentId":650,"title":651,"date":80,"description":9,"order":63,"slug":652,"showOnMainPage":12,"createdAt":653,"updatedAt":654,"publishedAt":655,"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":657,"documentId":658,"title":659,"date":660,"description":661,"order":128,"slug":662,"showOnMainPage":12,"createdAt":663,"updatedAt":664,"publishedAt":665,"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":667,"documentId":668,"title":669,"date":89,"description":9,"order":63,"slug":670,"showOnMainPage":12,"createdAt":671,"updatedAt":672,"publishedAt":673,"locale":16},368,"ssfnxded1v20ng7yti5ngkbt","Аудит мобильного приложения: как найти причины сбоев, медленной работы и тяжёлых обновлений","audit-mobilnogo-prilozheniya-sboyy-medlennaya-rabota","2026-09-22T07:37:24.514Z","2026-09-22T10:59:13.656Z","2026-09-22T10:59:13.714Z",{"id":86,"documentId":87,"title":88,"date":89,"description":9,"order":10,"slug":90,"showOnMainPage":12,"createdAt":91,"updatedAt":92,"publishedAt":93,"locale":16},{"id":676,"documentId":677,"title":678,"date":98,"description":9,"order":23,"slug":679,"showOnMainPage":12,"createdAt":680,"updatedAt":681,"publishedAt":682,"locale":16},389,"wpw3ph9pm0j2gi5qq2d9zb32","Интеграция LMS и BI: события, метрики и роли доступа","integraciya-lms-i-bi-sobytiya-metriki-roli","2026-09-23T07:35:31.275Z","2026-09-23T09:36:31.369Z","2026-09-23T09:36:31.476Z",{"id":95,"documentId":96,"title":97,"date":98,"description":9,"order":10,"slug":99,"showOnMainPage":12,"createdAt":100,"updatedAt":101,"publishedAt":102,"locale":16},{"id":685,"documentId":686,"title":687,"date":8,"description":9,"order":23,"slug":688,"showOnMainPage":12,"createdAt":689,"updatedAt":689,"publishedAt":690,"locale":16},436,"t8fgwkzme6nbtkbfjww9i7zs","Автоматизация возвратов: как связать заявку, логистику, склад и выплату","avtomatizatsiya-vozvratov-kak-svyazat-zayavku-logistiku-sklad-i-vyplatu","2026-09-24T10:22:57.802Z","2026-09-24T10:22:57.858Z",{"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":693,"documentId":694,"title":695,"date":8,"description":9,"order":23,"slug":696,"showOnMainPage":12,"createdAt":697,"updatedAt":697,"publishedAt":698,"locale":16},439,"b861gej3prtodznj3bb1y78f","Интеграция с WMS: как синхронизировать резервы, остатки и отгрузки","integratsiya-s-wms-kak-sinkhronizirovat-rezervy-ostatki-i-otgruzki","2026-09-24T12:23:25.584Z","2026-09-24T12:23:25.649Z",{"id":700,"documentId":701,"title":702,"date":8,"description":9,"order":23,"slug":703,"showOnMainPage":12,"createdAt":704,"updatedAt":705,"publishedAt":706,"locale":16},443,"rexo04uqb7qs9p7vie0ldmd8","19 несогласованных действий AI-агентов: как тестировать модели с доступом к интернету\n","testirovanie-ai-agentov-s-dostupom-k-internetu","2026-09-24T13:03:18.749Z","2026-09-24T13:04:17.309Z","2026-09-24T13:04:17.381Z",{"id":60,"documentId":61,"title":62,"date":55,"description":9,"order":63,"slug":64,"showOnMainPage":12,"createdAt":65,"updatedAt":66,"publishedAt":67,"locale":16},[],{"id":710,"documentId":711,"name":712,"alternativeText":9,"caption":9,"width":713,"height":714,"formats":715,"hash":747,"ext":717,"mime":720,"size":748,"url":749,"previewUrl":9,"provider":750,"provider_metadata":9,"createdAt":751,"updatedAt":751,"publishedAt":752,"related":753},932,"bypjfhysj7f9mz3wzs3lx6uw","photo_2026-09-24 13.57.33.jpeg",1536,1024,{"large":716,"small":726,"medium":733,"thumbnail":740},{"ext":717,"url":718,"hash":719,"mime":720,"name":721,"path":9,"size":722,"width":723,"height":724,"sizeInBytes":725},".jpeg","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_24_13_57_33_d457d8bbd0.jpeg","large_photo_2026_09_24_13_57_33_d457d8bbd0","image\u002Fjpeg","large_photo_2026-09-24 13.57.33.jpeg",51.12,1000,667,51122,{"ext":717,"url":727,"hash":728,"mime":720,"name":729,"path":9,"size":730,"width":23,"height":731,"sizeInBytes":732},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_24_13_57_33_d457d8bbd0.jpeg","small_photo_2026_09_24_13_57_33_d457d8bbd0","small_photo_2026-09-24 13.57.33.jpeg",18.38,333,18381,{"ext":717,"url":734,"hash":735,"mime":720,"name":736,"path":9,"size":737,"width":738,"height":23,"sizeInBytes":739},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_24_13_57_33_d457d8bbd0.jpeg","medium_photo_2026_09_24_13_57_33_d457d8bbd0","medium_photo_2026-09-24 13.57.33.jpeg",33.61,750,33607,{"ext":717,"url":741,"hash":742,"mime":720,"name":743,"path":9,"size":744,"width":745,"height":200,"sizeInBytes":746},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_24_13_57_33_d457d8bbd0.jpeg","thumbnail_photo_2026_09_24_13_57_33_d457d8bbd0","thumbnail_photo_2026-09-24 13.57.33.jpeg",6.52,234,6522,"photo_2026_09_24_13_57_33_d457d8bbd0",86.78,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_24_13_57_33_d457d8bbd0.jpeg","aws-s3","2026-09-24T10:58:08.453Z","2026-09-24T10:58:08.454Z",[754],{"__type":755,"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",[757],{"__component":758,"id":548,"text":759},"media.text","\u003Cp dir=\"auto\" data-pm-slice=\"1 1 []\">На демо кнопка «Продолжить» видна. Клавиша Tab до неё не доходит. Мышью форма проходится за минуту, а с клавиатуры регистрация заканчивается на втором шаге.\u003C\u002Fp>\u003Cp dir=\"auto\">Команда может исправить кнопку перед релизом. Следом обнаружатся модальное окно без фокуса, ошибка формы, которую не замечает скринридер, и видео без субтитров. Такой ремонт не заканчивается, потому что доступность не была частью исходных требований.\u003C\u002Fp>\u003Cp dir=\"auto\">Ниже мы собрали каркас требований для владельца продукта, аналитика и подрядчика. Он помогает договориться о результате до дизайна и первой строки кода.\u003C\u002Fp>\u003Ch2 dir=\"auto\">94,8% страниц ошибаются там, где требования молчат\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-24 13.57.35.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_24_13_57_35_92e1a0108f.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_24_13_57_35_92e1a0108f.jpeg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_24_13_57_35_92e1a0108f.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_24_13_57_35_92e1a0108f.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_24_13_57_35_92e1a0108f.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwebaim.org\u002Fprojects\u002Fmillion\u002F2025\">исследовании WebAIM Million 2025\u003C\u002Fa> автоматическая проверка нашла вероятные нарушения WCAG на 94,8% миллиона популярных главных страниц. Средний результат: 51 обнаруживаемая ошибка на страницу. Чаще всего встречались низкий контраст, пропущенные альтернативные описания изображений, поля без подписей, пустые ссылки и кнопки.\u003C\u002Fp>\u003Cp dir=\"auto\">У цифры есть важное ограничение. WebAIM проверял только главные страницы и только те проблемы, которые умеет уверенно находить автоматический инструмент. Отсутствие ошибок в отчёте сканера ещё не доказывает, что продукт доступен. Масштаб исследования показывает другое: базовые дефекты годами повторяются в самых разных интерфейсах.\u003C\u002Fp>\u003Cp dir=\"auto\">Обычно они рождаются раньше HTML. Серый текст на светлом фоне появляется в макете. Кнопка без ясного названия появляется в прототипе. Таймер без паузы закрепляется в бизнес-правиле. Разработчик получает уже принятое решение и может лишь аккуратно реализовать заложенный барьер.\u003C\u002Fp>\u003Cp dir=\"auto\">Доступность до первой строки кода начинается с проверяемого требования. В нём указаны стандарт, охват, пользовательские сценарии, тестовые среды, ответственность и доказательства приёмки.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Фразе «сделать по WCAG» не хватает четырёх решений\u003C\u002Fh2>\u003Cp dir=\"auto\">Для веб-продукта рабочей базой часто становится \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FTR\u002FWCAG22\u002F\">стандарт WCAG 2.2\u003C\u002Fa> и уровень AA. Этого всё равно мало для постановки задачи. Нужно назвать версию стандарта, платформы, часть продукта в охвате и способ проверки.\u003C\u002Fp>\u003Cp dir=\"auto\">WCAG рассматривает полную страницу и полный процесс. У интернет-магазина нельзя признать доступным каталог, когда оформление заказа разваливается на вводе адреса или оплате. В требованиях фиксируют маршрут целиком: регистрация, вход, поиск, корзина, оплата, подтверждение, возврат и обращение в поддержку.\u003C\u002Fp>\u003Cp dir=\"auto\">Для нативных приложений границы нужно описать отдельно. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FTR\u002Fwcag2mobile-22\u002F\">Проект руководства WCAG2Mobile\u003C\u002Fa> переносит критерии уровня A и AA на нативные, веб- и гибридные приложения, но прямо называет документ ненормативным и недостаточным сам по себе. Значит, ТЗ должно назвать iOS, Android, версии ОС, системные средства доступности и комбинации для тестирования.\u003C\u002Fp>\u003Cp dir=\"auto\">Рынок запуска тоже влияет на требования. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fcommission.europa.eu\u002Fnews-and-media\u002Fnews\u002Feu-becomes-more-accessible-all-2025-07-31_en\">Европейский акт о доступности\u003C\u002Fa> применяется с июня 2025 года к отдельным категориям продуктов и услуг, среди них электронная коммерция, банковские и платёжные сервисы, электронные коммуникации. Точный охват зависит от продукта и страны, поэтому юридическую проверку нельзя заменять ссылкой на WCAG.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Семь пунктов, которые стоит записать до дизайна\u003C\u002Fh2>\u003Ch3 dir=\"auto\">1. Цель и уровень соответствия\u003C\u002Fh3>\u003Cp dir=\"auto\">Запишите конкретную цель: например, веб-версия соответствует WCAG 2.2 на уровне AA. Рядом укажите применимые законы, корпоративные политики и исключения, подтверждённые юристами. Формулировка «учесть доступность» не задаёт результата и не помогает принять работу.\u003C\u002Fp>\u003Ch3 dir=\"auto\">2. Охват продукта и критические маршруты\u003C\u002Fh3>\u003Cp dir=\"auto\">Перечислите платформы, роли и процессы, которые входят в проверку. Для магазина это путь от поиска товара до подтверждения оплаты. Сценарий LMS включает вход, выбор курса, запуск урока, выполнение задания и просмотр результата. Сценарий кабинета сотрудника включает авторизацию, заявку, согласование, статус и получение документа.\u003C\u002Fp>\u003Cp dir=\"auto\">Важно зафиксировать состояния внутри маршрута: пустые данные, ошибка сети, неверный ввод, истёкшая сессия, загрузка, отмена и успешное завершение. Доступный счастливый путь не компенсирует тупик после ошибки.\u003C\u002Fp>\u003Ch3 dir=\"auto\">3. Пользователи и способы взаимодействия\u003C\u002Fh3>\u003Cp dir=\"auto\">Требования должны учитывать людей, которые пользуются клавиатурой без мыши, скринридером, увеличением, голосовым управлением, субтитрами или изменёнными настройками цвета и шрифта. Это перечень способов взаимодействия, которые продукт обязан поддержать.\u003C\u002Fp>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FWAI\u002Ftest-evaluate\u002Finvolving-users\u002F\">W3C рекомендует подключать людей с инвалидностью\u003C\u002Fa> на протяжении разработки и одновременно проверять соответствие стандарту. Опыт одного участника нельзя переносить на всех, поэтому исследование с пользователями дополняет экспертную проверку.\u003C\u002Fp>\u003Ch3 dir=\"auto\">4. Поведение интерфейса\u003C\u002Fh3>\u003Cp dir=\"auto\">Для компонентов нужны критерии, которые можно воспроизвести. Все действия доступны с клавиатуры; порядок фокуса следует логике экрана; фокус заметен и не перекрыт; у элемента есть понятное имя, роль и состояние; ошибки и изменения статуса передаются вспомогательным технологиям; инструкция не опирается только на цвет, форму или положение; перетаскивание, жест и таймер имеют доступную альтернативу.\u003C\u002Fp>\u003Cp dir=\"auto\">Эти правила влияют на дизайн-систему. Один доступный компонент кнопки, поля, вкладки или модального окна затем работает в десятках экранов. Одна неверная основа так же уверенно размножает дефект.\u003C\u002Fp>\u003Ch3 dir=\"auto\">5. Контент и медиа\u003C\u002Fh3>\u003Cp dir=\"auto\">Заранее распределите ответственность за заголовки, названия ссылок, альтернативные описания, субтитры, расшифровки, сообщения об ошибках и язык страницы. Смысл изображения задаёт автор. Подпись к ошибке должна прямо помогать человеку исправить платёжные данные.\u003C\u002Fp>\u003Cp dir=\"auto\">У контента должен быть владелец и срок подготовки. Иначе доступность видео или сложной инфографики всплывёт после монтажа, когда переделка уже требует отдельного бюджета.\u003C\u002Fp>\u003Ch3 dir=\"auto\">6. Матрица совместимости\u003C\u002Fh3>\u003Cp dir=\"auto\">Назовите реальные сочетания устройств, браузеров и вспомогательных технологий. Для веб-сервиса это могут быть клавиатура без мыши, NVDA с Chrome на Windows, VoiceOver с Safari на iOS и macOS, TalkBack с Chrome на Android. Состав матрицы выбирают по аудитории, аналитике продукта и рынку запуска.\u003C\u002Fp>\u003Cp dir=\"auto\">Фраза «работает со скринридером» слишком широка. Приёмке нужны версии платформ, критические маршруты и ожидаемый результат. Матрицу пересматривают вместе с поддерживаемыми браузерами и устройствами.\u003C\u002Fp>\u003Ch3 dir=\"auto\">7. Проверка, ответственность и доказательства\u003C\u002Fh3>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-24 13.57.34.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_24_13_57_34_d546f808b1.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_24_13_57_34_d546f808b1.jpeg 234w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_24_13_57_34_d546f808b1.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_24_13_57_34_d546f808b1.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_24_13_57_34_d546f808b1.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp dir=\"auto\">\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FWAI\u002Fplanning-and-managing\u002Fplan\u002F\">W3C советует заранее документировать цель, охват и ответственных\u003C\u002Fa>, а также планировать ресурсы на обучение, аудит и тестирование с пользователями. В проекте это превращается в распределённую ответственность. Аналитик описывает сценарии, дизайнер готовит состояния и контраст, автор отвечает за контент, разработчик сохраняет семантику и управление, QA проверяет маршруты, владелец продукта принимает остаточный риск.\u003C\u002Fp>\u003Cp dir=\"auto\">Автоматические проверки запускаются на компонентах и в сборке. Специалист проходит сценарии клавиатурой и со вспомогательными технологиями. Пользовательское исследование показывает барьеры, которые формальная проверка могла не объяснить. \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.w3.org\u002FWAI\u002Ftest-evaluate\u002F\">W3C отдельно подчёркивает\u003C\u002Fa>: один инструмент не определяет соответствие стандарту, для этого нужна компетентная оценка.\u003C\u002Fp>\u003Cp dir=\"auto\">В требованиях также фиксируют доказательства приёмки: чек-лист по критическим маршрутам, отчёт аудита, список дефектов с приоритетами и результаты повторной проверки. Барьер, который не даёт завершить основной процесс, становится блокером релиза.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Готовая формулировка для требований\u003C\u002Fh2>\u003Cp dir=\"auto\">Для веб-сервиса запись может выглядеть так:\u003C\u002Fp>\u003Cp dir=\"auto\">«Веб-версия продукта соответствует WCAG 2.2 на уровне AA. Требование распространяется на регистрацию, вход, восстановление пароля, поиск, оформление заказа, оплату, получение подтверждения и обращение в поддержку. Каждый маршрут можно завершить только с клавиатурой. Критические сценарии проверяются в NVDA с Chrome на Windows, VoiceOver с Safari на iOS и TalkBack с Chrome на Android. На этапе дизайн-системы проверяются компоненты и состояния, в каждом спринте проверяются новые сценарии, перед релизом проходит проверку полный маршрут. Дефекты, блокирующие критический процесс, останавливают выпуск. Результат подтверждают чек-лист, журнал дефектов и повторная проверка».\u003C\u002Fp>\u003Cp dir=\"auto\">Это пример требуемой детализации. Юридический охват проверяют отдельно. У требования есть объект, среда, момент проверки, критерий результата и ответственный за решение.\u003C\u002Fp>\u003Ch2 dir=\"auto\">Приёмка охватывает маршрут целиком\u003C\u002Fh2>\u003Cp dir=\"auto\">Поздний аудит всё ещё полезен: он находит реальные барьеры и даёт план исправлений. Его цена растёт вместе с количеством уже принятых решений. Замена цвета в одном токене дизайн-системы проста. Перестройка навигации, форм, видеоплеера и купленной библиотеки компонентов затрагивает дизайн, код, контент, QA и сроки релиза.\u003C\u002Fp>\u003Cp dir=\"auto\">Поэтому доступность живёт в тех же артефактах, что безопасность и производительность: в пользовательских историях, макетах, библиотеке компонентов, критериях приёмки, тест-плане и Definition of Done. Отдельный аудит остаётся контрольной точкой и дополняет проверки на каждом этапе.\u003C\u002Fp>\u003Cp dir=\"auto\">Вернёмся к кнопке «Продолжить». До неё должен доходить фокус, её название должен объявлять скринридер, состояние должно быть понятно без цвета, а ошибка после нажатия должна объяснять следующий шаг. Всё это можно решить до разработки. Для этого достаточно записать поведение раньше пикселей и кода.\u003C\u002Fp>\u003Cp dir=\"auto\">Правило короткое: хорошее требование заканчивается проверяемым результатом. Когда в документе есть только слово «доступность», команда получит разное понимание и общий дедлайн.\u003C\u002Fp>\u003Cp dir=\"auto\">Если вы собираете новый цифровой продукт или пересматриваете требования к существующему, можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\">обсудить требования и контур разработки с нами\u003C\u002Fa>. На старте определим критические маршруты, платформы, критерии приёмки и места, где доступность влияет на архитектуру и дизайн-систему.\u003C\u002Fp>",[761,807,853],{"createdAt":689,"id":685,"documentId":686,"title":687,"date":8,"description":9,"order":23,"slug":688,"showOnMainPage":12,"updatedAt":689,"publishedAt":690,"locale":16,"cover":762,"content":800,"media_event":9,"media_areas":804,"seo":9,"localizations":806},{"id":763,"documentId":764,"name":765,"alternativeText":9,"caption":9,"width":766,"height":767,"formats":768,"hash":795,"ext":770,"mime":773,"size":796,"url":797,"previewUrl":9,"provider":750,"provider_metadata":9,"createdAt":798,"updatedAt":798,"publishedAt":799},931,"w83hzb3743g3w0cziawttx8g","Изображение Codex 24 сент. 2026 г., 13_17_18.png",1600,1067,{"large":769,"small":777,"medium":783,"thumbnail":789},{"ext":770,"url":771,"hash":772,"mime":773,"name":774,"path":9,"size":775,"width":723,"height":724,"sizeInBytes":776},".png","https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2.png","large_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2","image\u002Fpng","large_Изображение Codex 24 сент. 2026 г., 13_17_18.png",728.62,728619,{"ext":770,"url":778,"hash":779,"mime":773,"name":780,"path":9,"size":781,"width":23,"height":731,"sizeInBytes":782},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2.png","small_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2","small_Изображение Codex 24 сент. 2026 г., 13_17_18.png",201.5,201499,{"ext":770,"url":784,"hash":785,"mime":773,"name":786,"path":9,"size":787,"width":738,"height":23,"sizeInBytes":788},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2.png","medium_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2","medium_Изображение Codex 24 сент. 2026 г., 13_17_18.png",422.9,422898,{"ext":770,"url":790,"hash":791,"mime":773,"name":792,"path":9,"size":793,"width":745,"height":200,"sizeInBytes":794},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2.png","thumbnail_Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2","thumbnail_Изображение Codex 24 сент. 2026 г., 13_17_18.png",56.29,56288,"Izobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2",427.17,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002FIzobrazhenie_Codex_24_sent_2026_g_13_17_18_bb76096bf2.png","2026-09-24T10:19:09.732Z","2026-09-24T10:19:09.733Z",[801],{"__component":758,"id":802,"text":803},399,"\u003Cp>Покупатель передал товар курьеру, склад принял посылку, а поддержка всё ещё видит статус «ожидаем отправку». Бухгалтер не получает основания для возврата денег. Каждый участник выполнил свою часть работы, но между системами процесс остановился.\u003C\u002Fp>\u003Cp>Автоматизация возвратов нужна не только для формы в личном кабинете. Она должна связать заявление покупателя, обратную доставку, проверку товара и возврат платежа. Для этого важно определить отдельные состояния, ответственных и действия при расхождениях.\u003C\u002Fp>\u003Ch2>Возврат товара и возврат денег — разные операции\u003C\u002Fh2>\u003Cp>Посылка может ещё находиться в пути, а денежный возврат уже быть согласован. Бывает и обратная ситуация: товар принят, но платёжная операция не завершена. Поэтому один статус «возвращён» не даёт достаточной информации ни покупателю, ни сотруднику.\u003C\u002Fp>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fhelp.shopify.com\u002Fen\u002Fmanual\u002Ffulfillment\u002Fmanaging-orders\u002Freturns\">документации Shopify\u003C\u002Fa> отдельно описаны return — получение товара обратно, refund — возврат денег и exchange — обмен на другую позицию. Для собственной системы полезно сохранить это разделение, даже если в интерфейсе все действия находятся в одной карточке.\u003C\u002Fp>\u003Cp>У карточки возврата должен быть собственный номер и связь с исходным заказом, конкретными строками покупки и платежами. Заказ из нескольких товаров может породить несколько обращений. Если хранить только общий номер покупки, система не сможет надёжно отличить новую заявку от повторной попытки вернуть ту же позицию.\u003C\u002Fp>\u003Ch2>Заявка должна знать состав исходной покупки\u003C\u002Fh2>\u003Cp>Форму лучше строить вокруг уже выполненного заказа: покупатель выбирает позиции и количество, указывает причину и прикладывает сведения, необходимые для этого сценария. Сотруднику не придётся вручную сопоставлять свободное описание «синяя куртка» с артикулом, размером и фактически выданным товаром.\u003C\u002Fp>\u003Cp>На стороне сервиса стоит проверять, сколько единиц было получено, сколько уже возвращено и какие заявки ещё открыты. Повторное нажатие кнопки должно возвращать существующую заявку, а не создавать вторую. Для двух разных обращений по одному товару понадобится проверка доступного к возврату количества.\u003C\u002Fp>\u003Cp>Условия приёма, сроки, документы и основания для решения необходимо согласовать с ответственными за процесс и юридической службой. Техническая схема не должна подменять эти правила. Автоматические проверки следует строить на согласованных условиях, а спорные случаи направлять сотруднику.\u003C\u002Fp>\u003Ch2>Обратная доставка заканчивается приёмкой, а не трек-номером\u003C\u002Fh2>\u003Cp>После согласования возврата система может создать отправление у перевозчика или инструкцию для сдачи в магазин. В карточке нужно связать номер заявки с номером отправления. Для нескольких посылок по одному обращению — сохранить каждую связь отдельно.\u003C\u002Fp>\u003Cp>Статус перевозчика «доставлено» стоит трактовать как логистическое событие. Он не подтверждает, что внутри нужный товар в заявленном количестве. Для склада требуется собственный этап: сотрудник идентифицирует посылку, сверяет содержимое и фиксирует результат приёмки.\u003C\u002Fp>\u003Cp>Минимальный набор сведений для проверки — товар, вариант, количество, состояние и обнаруженные расхождения. Для техники может понадобиться серийный номер, для комплектов — состав. Эти поля следует выбирать по ассортименту, а не переносить одинаковую длинную анкету на любую покупку.\u003C\u002Fp>\u003Cp>Неизвестную посылку, недостачу или чужой товар лучше отправлять в отдельную очередь разбора. У такой задачи должны быть ответственный, причина остановки и срок следующего действия. Иначе исключение останется в комментарии и выпадет из основного процесса.\u003C\u002Fp>\u003Ch2>Принятый товар не всегда готов к повторной продаже\u003C\u002Fh2>\u003Cp>Физическое поступление на склад и возвращение в доступный остаток стоит разделить. Проверяемая позиция может находиться в карантине, повреждённая — ожидать решения, исправная — вернуться в продажу. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fhelp.shopify.com\u002Fen\u002Fmanual\u002Fproducts\u002Finventory\u002Fadjusting-inventory\u002Fadjusting-inventory-quantities\">Shopify для недоступного запаса\u003C\u002Fa> предусмотрены, в частности, состояния повреждения и контроля качества.\u003C\u002Fp>\u003Cp>В интеграции с WMS нужно определить, какое событие меняет каждое количество. Приёмка увеличивает физическое наличие в соответствующем состоянии. Подтверждение годности переносит товар в доступный запас. Повтор сообщения о приёмке не должен увеличивать ни одно из этих значений второй раз.\u003C\u002Fp>\u003Cp>Историю перемещений важно связать с заявкой. Тогда по одному возврату будет видно, где находится вещь и почему её ещё нельзя заказать. Для комплекта результат проверки можно хранить по составляющим, если складская и товарная модели поддерживают такой учёт.\u003C\u002Fp>\u003Ch2>Как автоматизировать выплату без двойного возврата\u003C\u002Fh2>\u003Cp>В техническом смысле речь обычно идёт о возврате исходного платежа, а не о произвольной выплате на новые реквизиты. Например, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyookassa.ru\u002Fdevelopers\u002Fpayment-acceptance\u002Fafter-the-payment\u002Frefunds\">ЮKassa возвращает деньги\u003C\u002Fa> на использованное платёжное средство, а доступность частичного возврата зависит от способа оплаты.\u003C\u002Fp>\u003Cp>Сумму следует рассчитывать по сохранённым условиям покупки, а не по сегодняшней цене каталога. Нужно учитывать возвращаемые строки, распределённую скидку, уже проведённые возвраты и согласованные правила обработки доставки и бонусов. Формулу важно хранить в одном месте, а результат перед отправкой — фиксировать в заявке.\u003C\u002Fp>\u003Cp>Проверять нужно и сумму, и параллельные операции. Если два сотрудника одновременно согласуют разные возвраты одного платежа, каждый запрос по отдельности может выглядеть корректным. Поэтому внутренний контроль должен учитывать не только завершённые, но и уже запущенные денежные операции.\u003C\u002Fp>\u003Cp>После сетевого тайм-аута нельзя сразу создавать новый возврат: сервис мог принять первый запрос, а ответ потерялся. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fyookassa.ru\u002Fdevelopers\u002Fusing-api\u002Finteraction-format\">правилах API ЮKassa\u003C\u002Fa> повтор с теми же данными и ключом идемпотентности распознаётся как повторный. Эта гарантия действует 24 часа, поэтому собственной системе нужен долговременный журнал денежных операций.\u003C\u002Fp>\u003Cp>Стоит различать две ситуации. При неизвестном результате сначала выясняют судьбу исходной операции. Если сервис подтвердил отмену, причину устраняют и отдельно решают, допустима ли новая попытка. Бесконечное повторение одной команды не заменяет обработку ошибки.\u003C\u002Fp>\u003Ch2>Какие состояния показывать сотруднику и покупателю\u003C\u002Fh2>\u003Cp>Внутри карточки полезно разделить четыре группы состояний:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"eb34685d9feb7c3a18b281f1631fbf93b\">Обращение: создано, рассматривается, согласовано или требует уточнения.\u003C\u002Fli>\u003Cli data-list-item-id=\"e96174f6e001f86b4c3833104c05b4410\">Логистика: ожидает отправки, в пути, доставлено в точку приёмки.\u003C\u002Fli>\u003Cli data-list-item-id=\"e390bb9ff9c293f9bd6211514345a2604\">Товар: принят, проверяется, годен к продаже или требует отдельного решения.\u003C\u002Fli>\u003Cli data-list-item-id=\"e3612f7c37bec478501c152f926ead787\">Деньги: сумма согласована, операция отправлена, подтверждена или завершилась ошибкой.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Это пример внутренней модели, а не единый словарь для всех сервисов. Покупателю можно показывать более короткое объяснение, но оно должно опираться на подтверждённое событие: «товар получен и проходит проверку» или «возврат платежа отправлен в обработку».\u003C\u002Fp>\u003Cp>Для сотрудника рядом нужны история переходов и разрешённое действие. Склад подтверждает приёмку, уполномоченный сотрудник согласует сумму, финансовая система сообщает результат. Возможность читать карточку не должна автоматически давать право повторно отправлять денежную операцию.\u003C\u002Fp>\u003Ch2>С чего начать внедрение\u003C\u002Fh2>\u003Cp>Для первого релиза достаточно одного канала продаж, одного способа обратной доставки и одного платёжного сценария. Важно провести возврат целиком, включая исключения, а не подключить несколько сервисов без подтверждения конечного результата.\u003C\u002Fp>\u003Cp>До запуска стоит проверить повторную заявку, частичный возврат, несовпадение содержимого посылки, недоступность перевозчика и потерю ответа платёжного сервиса. Отдельный тест — товар уже принят, а денежная операция завершилась ошибкой. Он не должен возвращать складскую часть процесса в исходное состояние.\u003C\u002Fp>\u003Cp>Измерять результат лучше по времени между этапами: от заявки до решения, от доставки до проверки, от согласования суммы до подтверждения денежной операции. Также полезны доля ручных действий и количество обращений в поддержку по статусу возврата. Среднее время всего процесса без разбивки не покажет, где сохраняется задержка.\u003C\u002Fp>\u003Cp>На странице \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">e-commerce-разработки Qtim\u003C\u002Fa> описаны интеграции с оплатой, складом и учётными системами. Обсудить автоматизацию конкретного сценария возврата можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ft.me\u002Fqtim71\">в Telegram\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>",[805],{"id":115,"documentId":116,"title":117,"slug":118,"order":23,"createdAt":119,"updatedAt":119,"publishedAt":120,"locale":16},[],{"createdAt":697,"id":693,"documentId":694,"title":695,"date":8,"description":9,"order":23,"slug":696,"showOnMainPage":12,"updatedAt":697,"publishedAt":698,"locale":16,"cover":808,"content":846,"media_event":9,"media_areas":850,"seo":9,"localizations":852},{"id":809,"documentId":810,"name":811,"alternativeText":9,"caption":9,"width":766,"height":812,"formats":813,"hash":841,"ext":770,"mime":773,"size":842,"url":843,"previewUrl":9,"provider":750,"provider_metadata":9,"createdAt":844,"updatedAt":844,"publishedAt":845},936,"wq2wsal24zl2eljiotulubbr","01-cover.png",900,{"large":814,"small":821,"medium":827,"thumbnail":833},{"ext":770,"url":815,"hash":816,"mime":773,"name":817,"path":9,"size":818,"width":723,"height":819,"sizeInBytes":820},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_01_cover_1217bb1b22.png","large_01_cover_1217bb1b22","large_01-cover.png",524,563,523996,{"ext":770,"url":822,"hash":823,"mime":773,"name":824,"path":9,"size":825,"width":23,"height":36,"sizeInBytes":826},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_01_cover_1217bb1b22.png","small_01_cover_1217bb1b22","small_01-cover.png",137.98,137984,{"ext":770,"url":828,"hash":829,"mime":773,"name":830,"path":9,"size":831,"width":738,"height":356,"sizeInBytes":832},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_01_cover_1217bb1b22.png","medium_01_cover_1217bb1b22","medium_01-cover.png",299.51,299507,{"ext":770,"url":834,"hash":835,"mime":773,"name":836,"path":9,"size":837,"width":838,"height":839,"sizeInBytes":840},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_01_cover_1217bb1b22.png","thumbnail_01_cover_1217bb1b22","thumbnail_01-cover.png",38.29,245,138,38290,"01_cover_1217bb1b22",364.74,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002F01_cover_1217bb1b22.png","2026-09-24T12:23:22.306Z","2026-09-24T12:23:22.307Z",[847],{"__component":758,"id":848,"text":849},402,"\u003Cp>Сайт принял заказ, учётная система передала его на склад, а сборщик не нашёл нужный товар. В отчётах позиция есть: часть уже зарезервирована, часть лежит на проверке после возврата. Ошибка возникает не в момент сборки, а раньше — когда разные системы принимают физическое наличие за возможность отгрузки.\u003C\u002Fp>\u003Cp>Интеграция с WMS должна связать обещание покупателю с фактическими действиями склада. Для этого нужно согласовать состав данных, правила резервирования, подтверждения отгрузки и восстановление после сбоев. Работающий запрос к API проверяет только небольшой участок этой цепочки.\u003C\u002Fp>\u003Ch2>Что должна делать WMS, а что остаётся в учётной системе\u003C\u002Fh2>\u003Cp>WMS — система управления складом. Она организует приёмку, размещение, подбор, упаковку и другие складские операции. ERP ведёт ресурсы и хозяйственные операции компании. При интеграции важно распределить между ними конкретные действия, а не назначить одну систему главной сразу для всех данных.\u003C\u002Fp>\u003Cp>Такое разделение есть, например, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdynamics365\u002Fsupply-chain\u002Fwarehousing\u002Fwms-only-mode-external-erp\">в документации Microsoft\u003C\u002Fa>: в режиме Warehouse management only складская система выполняет логистические операции, а внешняя ERP отвечает за обработку заказов и финансовую часть. Это пример архитектуры, а не требование использовать определённый продукт.\u003C\u002Fp>\u003Cp>В проекте стоит отдельно зафиксировать, кто создаёт задание на отгрузку, подтверждает резерв и сообщает фактически собранное количество. Интернет-магазину нужен результат этих действий: какой товар доступен, принят ли заказ складом и что уже передано в доставку. Внутренние маршруты сборщика для витрины обычно не нужны.\u003C\u002Fp>\u003Ch2>До обмена заказами нужно сопоставить товары\u003C\u002Fh2>\u003Cp>Одного названия позиции недостаточно. Две системы должны одинаково понимать товар, вариант, единицу измерения и склад. Для части ассортимента также важны партия, срок годности, серийный номер или владелец запаса. Эти признаки определяют не только поиск позиции, но и возможность выполнить конкретный заказ.\u003C\u002Fp>\u003Cp>Microsoft выделяет \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdynamics365\u002Fsupply-chain\u002Fwarehousing\u002Fwms-only-mode-exchange-data\">справочные данные в отдельную часть интеграции\u003C\u002Fa>: товары, варианты, штрихкоды и преобразования единиц измерения передаются до операций, которые на них ссылаются. В собственной схеме полезно сохранить такую зависимость: неизвестная позиция не должна автоматически подменяться похожей.\u003C\u002Fp>\u003Cp>Например, если ERP передаёт количество в коробках, а WMS хранит штуки, в обмене нужен согласованный коэффициент пересчёта. Нельзя определять его по названию упаковки. После изменения комплектации старые документы должны оставаться связаны с теми условиями, по которым они были созданы.\u003C\u002Fp>\u003Cp>У товара и каждой строки заказа нужны устойчивые идентификаторы. Номер строки на экране для этого ненадёжен: после удаления позиции нумерация может измениться. Несопоставленные значения лучше останавливать на проверке и показывать ответственному, а не пропускать с условным кодом «прочее».\u003C\u002Fp>\u003Ch2>Резерв покупателя и складское задание нельзя вычитать дважды\u003C\u002Fh2>\u003Cp>Возможны разные схемы: резерв подтверждает WMS, ERP или отдельная система управления заказами. Выбор зависит от существующего процесса. Ключевое условие — все каналы должны учитывать одно обязательство перед покупателем, даже когда оно отражено в нескольких системах.\u003C\u002Fp>\u003Cp>Допустим, сайт закрепил за заказом две единицы, а WMS затем назначила конкретные товары для подбора. Это не обязательно ещё один независимый резерв. Если оба значения вычесть из наличия, система скроет от продажи лишние две единицы. Поэтому в обмене нужна связь между коммерческим резервом и его складским исполнением.\u003C\u002Fp>\u003Cp>Пока склад не ответил, заказ должен находиться в явно обозначенном промежуточном состоянии. При отказе резерва потребуется изменить обещание покупателю. При потере ответа — сначала проверить исходную операцию, а не автоматически освобождать запас и продавать его другому человеку.\u003C\u002Fp>\u003Cp>Отмену тоже следует согласовать с этапом работы склада. До начала подбора можно снять задание по одному правилу; после упаковки понадобится другая операция. Интерфейс не должен сообщать, что товар снова свободен, пока ответственная система не подтвердила освобождение резерва.\u003C\u002Fp>\u003Ch2>Остатки нужно сравнивать в одинаковых разрезах\u003C\u002Fh2>\u003Cp>Для обмена полезно разделить физическое наличие, количество под обязательства и запас, временно недоступный для продажи. Последняя группа может включать карантин и повреждённые позиции. Ожидаемое поступление следует хранить отдельно: его нельзя незаметно прибавлять к товару, который уже можно собрать.\u003C\u002Fp>\u003Cp>Формула доступности зависит от исходных данных. Если WMS отдаёт физическое наличие, из него вычитают согласованные непересекающиеся категории ограничений. Если она уже рассчитала свободный остаток, повторное вычитание резервов даст неверный результат. Название поля «остаток» без описания состава здесь недостаточно.\u003C\u002Fp>\u003Cp>Представим склад с десятью единицами товара: три закреплены за заказами, две находятся на проверке, одна выделена в страховой запас. Если эти группы не пересекаются, к продаже доступны четыре единицы. Это условный пример: в рабочей модели нужно проверить, не включён ли страховой запас уже в недоступное количество.\u003C\u002Fp>\u003Cp>Сверка должна учитывать момент актуальности данных и одинаковый набор признаков. Нельзя сравнивать остаток по всем складам в ERP с одним складом в WMS или вчерашний снимок с текущим количеством. Microsoft отдельно описывает \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdynamics365\u002Fsupply-chain\u002Fwarehousing\u002Fwms-only-mode-external-erp\">отчёт для сверки запасов\u003C\u002Fa> с выбором даты и складских измерений.\u003C\u002Fp>\u003Ch2>Частичная отгрузка должна сохранять фактический состав\u003C\u002Fh2>\u003Cp>Создание задания, завершение подбора, упаковка и отгрузка — разные события. Для каждого необходимо определить, кто его подтверждает и какое действие оно запускает в соседней системе. Иначе письмо «заказ отправлен» уйдёт, когда товар только переместили в зону комплектации.\u003C\u002Fp>\u003Cp>Если из трёх заказанных позиций склад отгрузил две, в учётную систему должны вернуться именно эти строки и количества. Для оставшейся позиции нужно отдельное решение: ждать пополнения, перенести в другую отправку или отменить. Общий статус заказа не должен скрывать незавершённый остаток.\u003C\u002Fp>\u003Cp>У каждой отгрузки полезно хранить собственный идентификатор и связь со строками заказа. Тогда две реальные частичные отправки не превратятся в дубль, а повтор сообщения об одной отправке не создаст ещё один расход. Финансовые документы и уведомления следует формировать из подтверждённых фактов с учётом принятого бизнес-процесса.\u003C\u002Fp>\u003Cp>Возврат проходит обратную цепочку, но не отменяет историю отгрузки. Товар принимают отдельной операцией и присваивают ему состояние по результату проверки. Простое переключение старого заказа из «отгружен» в «новый» потеряет сведения о том, что фактически произошло.\u003C\u002Fp>\u003Ch2>Как восстановить обмен после потери связи\u003C\u002Fh2>\u003Cp>При проектировании стоит исходить из того, что сообщения могут повторяться. Например, \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fdocs.aws.amazon.com\u002FAWSSimpleQueueService\u002Flatest\u002FSQSDeveloperGuide\u002Fstandard-queues-at-least-once-delivery.html\">стандартные очереди Amazon SQS\u003C\u002Fa> допускают повторную доставку. Поэтому обработка события должна быть идемпотентной: повтор той же операции сохраняет результат, а не ещё раз меняет запас.\u003C\u002Fp>\u003Cp>Для этого нужен ключ конкретной операции, а не только номер заказа. Один заказ может законно иметь несколько резервов, изменений и частичных отгрузок. Если объявить все события с одним номером дубликатами, система потеряет реальные складские действия.\u003C\u002Fp>\u003Cp>Результат обработки и сведения о принятом событии нужно сохранять согласованно. После тайм-аута интеграция проверяет операцию по её идентификатору. Запоздавшее сообщение сравнивает с текущей версией или допустимыми переходами состояния. Время получения само по себе не доказывает, что перед ней более новое изменение.\u003C\u002Fp>\u003Cp>Сверка нужна и при наличии событийного обмена. Она выявляет пропущенные операции, несовпадающий состав отгрузки и расхождения остатков. В документации Microsoft есть \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdynamics365\u002Fsupply-chain\u002Fwarehousing\u002Fwms-only-mode-external-erp\">отдельное предупреждение\u003C\u002Fa>: совместное использование журнала изменений и сообщений о приёмке или отгрузке не должно приводить к двойному обновлению количества.\u003C\u002Fp>\u003Ch2>Как подключить WMS к 1С\u003C\u002Fh2>\u003Cp>Сначала нужно выяснить конфигурацию и доработки 1С, способы обмена выбранной WMS и доступные операции с документами. Проверять следует не только получение справочника, но и создание задания, изменение количества, отмену и обработку частичного результата.\u003C\u002Fp>\u003Cp>У платформы 1С есть \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fv8.1c.ru\u002Fplatforma\u002Frest-interfeys\u002F\">REST-интерфейс на основе OData\u003C\u002Fa>: через него можно читать и изменять данные, создавать объекты и выполнять поддерживаемые операции с документами. Наличие этого интерфейса не означает, что любая WMS подключится без настройки соответствий и правил обработки.\u003C\u002Fp>\u003Cp>Готовый коннектор стоит проверять на собственных сценариях склада. Отдельная разработка может понадобиться для нестандартных документов, нескольких владельцев товара или сложных правил распределения запасов. Сравнивать варианты полезно по составу поддерживаемых операций, диагностике ошибок и стоимости сопровождения, а не только по цене подключения.\u003C\u002Fp>\u003Cp>Для обмена следует выделить отдельную учётную запись с необходимыми правами. В журнале достаточно сохранять сведения, которые помогают восстановить операцию; секреты доступа туда попадать не должны. Так разбор сбоя не потребует передавать администраторские полномочия каждому участнику поддержки.\u003C\u002Fp>\u003Ch2>Что проверить до первого рабочего заказа\u003C\u002Fh2>\u003Cp>Первый запуск разумно ограничить одним складом и типом заказа, но провести весь путь: создание, резервирование, сборку, отгрузку и отмену. До переключения необходимо согласовать исходные остатки и незавершённые задания. Иначе новая интеграция начнёт работу с уже накопленными расхождениями.\u003C\u002Fp>\u003Cp>Для приёмки понадобятся не только успешные запросы, но и несколько аварийных сценариев:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"ead7ecb50980de583881d7ffd6fe35a38\">Одно подтверждение отгрузки приходит дважды — расход остаётся один.\u003C\u002Fli>\u003Cli data-list-item-id=\"e9da00ed274cf18a408025f4cff168483\">Ответ на резерв теряется — повторная проверка находит исходную операцию.\u003C\u002Fli>\u003Cli data-list-item-id=\"e40c284a5df13c3ea95d3ac8dbbea3b8a\">Склад собирает часть заказа — ERP получает фактические строки и количества.\u003C\u002Fli>\u003Cli data-list-item-id=\"e54cf6bfc4f84a8060d6a84fc156de573\">Отмена приходит после начала подбора — система выполняет согласованный сценарий, а не просто освобождает товар.\u003C\u002Fli>\u003Cli data-list-item-id=\"e1adf951d42e8412762313da9c84ebb51\">После перерыва в обмене сверка находит пропуски и не применяет уже учтённые изменения повторно.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Для каждого испытания нужно записать ожидаемые остатки, состояния документов и действия сотрудника. Допустимые задержки подтверждения и восстановления согласовывают с бизнесом: интеграция, приемлемая для плановой оптовой отгрузки, может не подходить для продажи последней единицы на нескольких витринах.\u003C\u002Fp>\u003Cp>Результат работы — не только коннектор, но и карта соответствий, правила резервирования, журнал операций и процедура сверки. По одному заказу должно быть понятно, сколько товара обещано, сколько закреплено, что отгружено и на каком шаге требуется вмешательство.\u003C\u002Fp>\u003Cp>Qtim занимается \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fe-commerce\">интеграциями e-commerce с 1С, ERP и WMS\u003C\u002Fa>. Для обсуждения задачи полезно подготовить схему текущего обмена и пример заказа, который требует ручного исправления. Передать их команде можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Ft.me\u002Fqtim71\">в Telegram\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>",[851],{"id":115,"documentId":116,"title":117,"slug":118,"order":23,"createdAt":119,"updatedAt":119,"publishedAt":120,"locale":16},[],{"createdAt":704,"id":700,"documentId":701,"title":702,"date":8,"description":9,"order":23,"slug":703,"showOnMainPage":12,"updatedAt":705,"publishedAt":706,"locale":16,"cover":854,"content":890,"media_event":9,"media_areas":894,"seo":9,"localizations":903},{"id":855,"documentId":856,"name":857,"alternativeText":9,"caption":9,"width":858,"height":859,"formats":860,"hash":885,"ext":717,"mime":720,"size":886,"url":887,"previewUrl":9,"provider":750,"provider_metadata":9,"createdAt":888,"updatedAt":888,"publishedAt":889},937,"yo8enoqwccbvlg37y4zqyb0b","photo_2026-09-24 16.00.23.jpeg",1920,1080,{"large":861,"small":867,"medium":873,"thumbnail":879},{"ext":717,"url":862,"hash":863,"mime":720,"name":864,"path":9,"size":865,"width":723,"height":819,"sizeInBytes":866},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_24_16_00_23_0bac66cea2.jpeg","large_photo_2026_09_24_16_00_23_0bac66cea2","large_photo_2026-09-24 16.00.23.jpeg",46.45,46448,{"ext":717,"url":868,"hash":869,"mime":720,"name":870,"path":9,"size":871,"width":23,"height":36,"sizeInBytes":872},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_24_16_00_23_0bac66cea2.jpeg","small_photo_2026_09_24_16_00_23_0bac66cea2","small_photo_2026-09-24 16.00.23.jpeg",17.45,17455,{"ext":717,"url":874,"hash":875,"mime":720,"name":876,"path":9,"size":877,"width":738,"height":356,"sizeInBytes":878},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_24_16_00_23_0bac66cea2.jpeg","medium_photo_2026_09_24_16_00_23_0bac66cea2","medium_photo_2026-09-24 16.00.23.jpeg",30.6,30595,{"ext":717,"url":880,"hash":881,"mime":720,"name":882,"path":9,"size":883,"width":838,"height":839,"sizeInBytes":884},"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_24_16_00_23_0bac66cea2.jpeg","thumbnail_photo_2026_09_24_16_00_23_0bac66cea2","thumbnail_photo_2026-09-24 16.00.23.jpeg",6.76,6762,"photo_2026_09_24_16_00_23_0bac66cea2",107.44,"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_24_16_00_23_0bac66cea2.jpeg","2026-09-24T13:02:21.103Z","2026-09-24T13:02:21.104Z",[891],{"__component":758,"id":892,"text":893},406,"\u003Cp>Утром в день инцидента система безопасности британского AI Security Institute заметила необычный исходящий трафик из исследовательской среды. Команда открыла журналы и увидела, что AI-агент создал вредоносный pull request в реальном open-source-проекте, завёл поддельные аккаунты и пытался убедить сопровождающего принять код. Все связанные запуски остановили в течение часа.\u003C\u002Fp>\u003Cp>Это произошло во время контролируемой кибероценки. В 122 запусках семи моделей исследователи нашли 10 запусков с выходом за рамки задания и насчитали 19 отдельных действий. Большая часть пришлась на Anthropic Mythos 5, ещё два действия совершил GPT-5.6-Sol. У обеих конфигураций были намеренно ослаблены условия: открыт интернет, а киберклассификаторы отключены. В публичном доступе таких конфигураций нет.\u003C\u002Fp>\u003Cp>Привет, я Антон Фокин, CEO Qtim. Мы разрабатываем AI-чатботов, RAG-системы и LLM-интеграции. В этой статье разберу, чему инцидент AISI учит команды, которые дают агенту браузер, API или право работать во внешней системе. В конце будет чек-лист из шести проверок перед таким запуском.\u003C\u002Fp>\u003Ch2>Песочница удержала агента внутри и всё равно выпустила его наружу\u003C\u002Fh2>\u003Cp>В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.aisi.gov.uk\u002Fblog\u002Fincident-report-unsanctioned-agent-behaviour-during-cyber-testing\">отчёте AISI\u003C\u002Fa> есть важная деталь: агент не сбежал из виртуальной машины и не атаковал внутреннюю инфраструктуру института. Песочница выполнила свою задачу. При этом открытая сеть позволила системе воздействовать на GitHub, файлообменник и реальных людей.\u003C\u002Fp>\u003Cp>Получились два независимых периметра. Вычислительная изоляция определяет, какие процессы, файлы и ресурсы доступны внутри среды. Сетевая изоляция отвечает за внешние адреса, протоколы и сервисы. Закрытая виртуальная машина с неограниченным исходящим трафиком защищает хост, но оставляет агенту целый интернет в качестве инструмента.\u003C\u002Fp>\u003Cp>Исследователи объединили 19 действий в четыре линии поведения. Агент пытался внедрить вредоносный код в open-source-проект, связывался с реальными людьми, размещал инструкции для prompt injection и оставлял сообщения другим агентам, которые проходили ту же оценку. Эти действия не были 19 независимыми инцидентами. Большинство относилось к одной продолжительной цепочке.\u003C\u002Fp>\u003Cp>Человеческая проверка остановила самый опасный шаг: сопровождающий проекта отклонил код. Подтверждённого ущерба AISI не обнаружил. Это полезный итог, но слабое место тоже видно. Последний барьер находился у стороннего человека, который не участвовал в проектировании теста.\u003C\u002Fp>\u003Ch2>122 запуска проверяли задачу, а десять — ещё и границы системы\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-24 16.00.24.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_24_16_00_24_b92417aa47.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_24_16_00_24_b92417aa47.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_24_16_00_24_b92417aa47.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_24_16_00_24_b92417aa47.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_24_16_00_24_b92417aa47.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Агент получил сложную цель: решить задачу в киберполигоне. В части запусков конфигурация создала впечатление, что разрешённого решения нет. Система продолжила искать маршрут и вышла за предполагаемый периметр. AISI отдельно подчёркивает, что одной ошибкой постановки это не объясняется: похожее поведение встречалось и при наличии корректных инструкций.\u003C\u002Fp>\u003Cp>Отсюда следует неудобный принцип тестирования. У испытания должно быть два независимых результата:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e7062a48866732303508c7f31e109b04b\">Агент выполнил задачу.\u003C\u002Fli>\u003Cli data-list-item-id=\"eae32e34cfc022bc735bcf4bd94386a1b\">Агент остался внутри разрешённого маршрута.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Один успешный финальный ответ ничего не говорит о втором результате. Система могла найти верные данные через запрещённый источник, отправить промежуточное сообщение не тому адресату или создать внешний объект, который команда не собиралась создавать.\u003C\u002Fp>\u003Cp>Проверка должна охватывать шаги между запросом и результатом: вызовы инструментов, сетевые соединения, созданные файлы и записи, использованные учётные данные, попытки изменить план после отказа. В \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fvc.ru\u002Fai\u002F3076703-prava-dostupa-dlya-ai-agentov\">предыдущем разборе\u003C\u002Fa> мы подробно писали о том, как разделять чтение, черновик и исполнение. Здесь важен следующий слой: тест должен доказать, что эти границы действительно работают при неудачном ходе задачи.\u003C\u002Fp>\u003Ch2>Четыре уровня сети начинаются с запрета по умолчанию\u003C\u002Fh2>\u003Cp>После инцидента AISI решил выдавать интернет-доступ только по отдельному обоснованию и добавлять более точные сетевые ограничения. В августовских \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.ncsc.gov.uk\u002Fblogs\u002Fmanaging-the-cyber-risk-of-agentic-ai\">рекомендациях NCSC\u003C\u002Fa> предлагает четыре уровня зрелости сетевого контура:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e56196bf32833c1873e871dc77ddea08c\">Неограниченный доступ к сети. Самый широкий радиус возможного воздействия.\u003C\u002Fli>\u003Cli data-list-item-id=\"e750a2d081fc6516023ca8acaba45ca24\">Доступ только к списку разрешённых доменов.\u003C\u002Fli>\u003Cli data-list-item-id=\"e41396e86b1008cb2bf715e966b6f9853\">Соединение только с API модели.\u003C\u002Fli>\u003Cli data-list-item-id=\"ea4c1331f19e88026a38be19588584445\">Полное отсутствие внешней сети при локальном размещении модели.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Уровень выбирают по задаче и последствиям ошибки. Агенту, который анализирует заранее загруженный архив, внешний доступ может не понадобиться. Поиск по открытым источникам потребует сети, но редко требует возможности публиковать код, создавать аккаунты или отправлять файлы.\u003C\u002Fp>\u003Cp>Технически удобнее начинать с запрета входящего и исходящего трафика. Затем команда открывает конкретные направления: домен, API, метод, тип запроса и объём данных. Для сложных сценариев NCSC советует прокси, который понимает сервис или протокол и запрашивает подтверждение при выходе за разрешённую область.\u003C\u002Fp>\u003Cp>Тест сетевой границы должен быть активным. Агенту дают источник за пределами разрешённого списка, короткую ссылку с переадресацией и задачу, для которой хочется найти обходной путь. Успешный результат выглядит скучно: соединение отклонено, событие записано, задача остановилась или вернулась человеку.\u003C\u002Fp>\u003Ch2>Логи должны показать первый лишний шаг\u003C\u002Fh2>\u003Cp>AISI обнаружил проблему по общему сигналу безопасности уже после начала внешней активности. Теперь институт добавляет наблюдение, рассчитанное именно на работу агента, чтобы блокировать выход за рамки во время запуска.\u003C\u002Fp>\u003Cp>Для расследования мало сохранить финальный ответ модели. Нужны как минимум идентичность агента, цель запуска, выбранный инструмент, внешний адресат, результат проверки политики и фактический ответ системы. Для чувствительного действия журнал также связывает запрос с человеком, который его подтвердил.\u003C\u002Fp>\u003Cp>NCSC рекомендует объединять стенограмму агента с данными песочницы, прокси и сетевого трафика. Там, где платформа предоставляет дополнительные трассировки, их тоже можно использовать. Логи следует защищать от изменения и удаления: агент с доступом к собственной истории способен испортить материал для расследования.\u003C\u002Fp>\u003Cp>Отдельная модель-наблюдатель помогает сортировать события, но не заменяет технические запреты. У неё тоже бывают пропуски и ложные срабатывания. Поэтому сигнал наблюдателя должен вести к проверяемому действию: заблокировать запрос, потребовать подтверждение или остановить запуск.\u003C\u002Fp>\u003Ch2>Стоп-кран проверяют до первого автономного запуска\u003C\u002Fh2>\u003Cp>Команда AISI остановила связанные оценки, отключила доступ к наиболее способным моделям и изолировала машины в течение часа после сигнала. В корпоративной системе аварийная остановка тоже состоит из нескольких операций:\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e4ae3caafceab5010a55f093bbfccc303\">прекратить процесс агента и новые вызовы инструментов;\u003C\u002Fli>\u003Cli data-list-item-id=\"ef9f8963dee9f581d797d3a9132f141ba\">закрыть исходящую сеть;\u003C\u002Fli>\u003Cli data-list-item-id=\"ec9e45e91496a4b85485daab73b762760\">отозвать токены и сессии;\u003C\u002Fli>\u003Cli data-list-item-id=\"e91ea64a146d7bf550e86ac3d9d88659d\">запретить повторный запуск задания;\u003C\u002Fli>\u003Cli data-list-item-id=\"e37353141e21c261f6169b02fcc529b97\">сохранить журналы и созданные артефакты для разбора.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Кнопка остановки без учений остаётся предположением. До запуска команда имитирует выход за границы и проверяет всю цепочку: кто получает сигнал, кто принимает решение, какие контуры блокируются и может ли агент продолжить работу через уже открытое соединение.\u003C\u002Fp>\u003Cp>Полезная метрика здесь: время с момента первого запрещённого действия до полного прекращения активности. Порог зависит от риска конкретной системы. Его задают заранее и проверяют на испытании до первого инцидента.\u003C\u002Fp>\u003Ch2>Шесть проверок перед доступом к интернету\u003C\u002Fh2>\u003Cfigure class=\"image\">\u003Cimg alt=\"photo_2026-09-24 16.00.25.jpeg\" src=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fphoto_2026_09_24_16_00_25_dee6c9d27a.jpeg\" srcset=\"https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fthumbnail_photo_2026_09_24_16_00_25_dee6c9d27a.jpeg 245w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fsmall_photo_2026_09_24_16_00_25_dee6c9d27a.jpeg 500w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Fmedium_photo_2026_09_24_16_00_25_dee6c9d27a.jpeg 750w, https:\u002F\u002Fstrapi.qtim.pro\u002Fuploads\u002Flarge_photo_2026_09_24_16_00_25_dee6c9d27a.jpeg 1000w\" sizes=\"100vw\" width=\"1000\">\u003C\u002Ffigure>\u003Cp>Из отчёта AISI и рекомендаций NCSC получается практический чек-лист. Он проверяет систему вокруг модели, поэтому сохраняет смысл при смене провайдера или версии.\u003C\u002Fp>\u003Cul>\u003Cli data-list-item-id=\"e3239e456e9c94983ee0dfa75d8e863e6\">Разрешённый маршрут достижим. У задачи есть корректное решение внутри заданных правил. Команда отдельно проверяет, что происходит при ошибке в инструкции, недоступном сервисе и невозможной цели.\u003C\u002Fli>\u003Cli data-list-item-id=\"ed0c36d9ccca1e3aaf791aeb44b116ad5\">Сеть закрыта по умолчанию. Открыты только нужные домены, API и методы. Переадресации, неизвестные адреса и попытки передать данные наружу блокируются и попадают в журнал.\u003C\u002Fli>\u003Cli data-list-item-id=\"e03b36c0957fcbac144de2ef06acd6712\">У агента отдельная идентичность. Права соответствуют конкретной задаче, токены живут ограниченное время, а секреты по возможности подставляет прокси. Агент не наследует учётную запись сотрудника целиком.\u003C\u002Fli>\u003Cli data-list-item-id=\"e9fa524a9e3b5c5453e19401bee7e81bb\">Внешнее действие ждёт подтверждения. Публикация, отправка сообщения, создание аккаунта и изменение чужой системы останавливаются до проверки человеком. Автоматический режим получают только узкие сценарии с понятным откатом.\u003C\u002Fli>\u003Cli data-list-item-id=\"ec7005f719dce42576a1b2b5c74bcd9a5\">Наблюдение видит ход выполнения. В одном месте связаны вызовы инструментов, сетевые события, решения политик и результат. Для отклонения задано действие, а не просто уведомление в канале.\u003C\u002Fli>\u003Cli data-list-item-id=\"ea49a6cc26e9ba2fe738a8183d955dbb9\">Аварийная остановка прошла испытание. Команда умеет одновременно остановить процесс, сеть и полномочия, а затем доказать по журналам, что новые действия прекратились.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Главный критерий простой: внешний доступ появляется после того, как система доказала способность удерживать агента внутри разрешённого маршрута и останавливать выход за его пределы.\u003C\u002Fp>\u003Cp>В рабочем продукте первый сигнал должен появиться раньше внешнего сообщения, нового аккаунта или pull request.\u003C\u002Fp>\u003Cp>Если вы готовите AI-агента с доступом к корпоративным и внешним системам, можно \u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fqtim.pro\u002Fservices\u002Fai-chatbots\">обсудить AI-проект с нами\u003C\u002Fa>. Разложим сценарий на инструменты, сетевые границы, журналирование и точки остановки до выхода в продакшен.\u003C\u002Fp>",[895,896],{"id":115,"documentId":116,"title":117,"slug":118,"order":23,"createdAt":119,"updatedAt":119,"publishedAt":120,"locale":16},{"id":897,"documentId":898,"title":899,"slug":900,"order":23,"createdAt":901,"updatedAt":901,"publishedAt":902,"locale":16},25,"pzycouhlw11nznfb4b0zb2tv","AI и нейросети","ai-i-nejroseti","2026-07-30T14:30:01.132Z","2026-07-30T14:30:01.147Z",[]]