Направление работ: AdmLk Код раздела: 2.1 Раздел: Настройки > Основные Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 31.07.26
1. Назначение
Раздел обеспечивает сотруднику сервисной зоны главный экран группы настроек «Основные».
Сотрудник видит доступные подразделы основных настроек и переходит из карточки в выбранный подраздел.
2. Ключевые понятия
Основные — главный экран группы основных настроек, на котором собраны карточки доступных подразделов.
Настройки — раздел админского кабинета, в котором сотрудник переходит к нужной группе настроек.
Карточка подраздела — элемент главного экрана «Основные» с названием, кратким описанием и действием перехода в выбранный подраздел настроек.
3. Scope
Входит
S1: Открытие и просмотр главного экрана «Основные».
S2: Переход из карточек экрана в связанные подразделы основных настроек.
S3: Адаптация экрана для поддерживаемых разрешений.
Не входит
Детальная работа внутри подразделов:
- 2.1.1 «Сферы».
- 2.1.2 «Опции».
- 2.1.3 «Источники заказа».
- 2.1.4 «Типы и параметры фильтрации».
- 2.1.5 «Типы позиций».
- 2.1.6 «Города».
- 2.1.7 «Станции метро».
- 2.1.8 «Типы расходов».
4. BR
Указаны в пункте 4 раздела Back: 8.2 Сервисные справочники.
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR2.1-1 | Сотрудник открывает главный экран группы настроек «Основные» | Интерфейс показывает заголовок «Основные», путь «Настройки > Основные» и действие возврата на предыдущий уровень настроек. | 1 | Частично OQ2.1-2 | |
| S1: FR2.1-2 | Сотрудник просматривает состав группы настроек «Основные» | Интерфейс показывает карточки «Сферы», «Опции», «Источники заказов», «Типы и параметры фильтрации», «Типы позиций», «Города», «Типы расхода» и «Станции метро». Каждая карточка содержит название, краткое описание подраздела и действие перехода. | 1 | Частично OQ2.1-3, OQ2.1-4 | |
| S2: FR2.1-3 | Сотрудник выбирает карточку «Сферы» | Интерфейс открывает подраздел 2.1.1 «Сферы». | 1 | Реализовано OQ2.1-9 | |
| S2: FR2.1-4 | Сотрудник выбирает карточку «Опции» | Интерфейс открывает подраздел 2.1.2 «Опции». | 1 | Реализовано OQ2.1-9 | |
| S2: FR2.1-5 | Сотрудник выбирает карточку «Источники заказов» | Интерфейс открывает подраздел 2.1.3 «Источники заказа». | 1 | Реализовано OQ2.1-9, OQ2.1-3 | |
| S2: FR2.1-6 | Сотрудник выбирает карточку «Типы и параметры фильтрации» | Интерфейс открывает подраздел 2.1.4 «Типы и параметры фильтрации». | 1 | Реализовано OQ2.1-9 | |
| S2: FR2.1-7 | Сотрудник выбирает карточку «Типы позиций» | Интерфейс открывает подраздел 2.1.5 «Типы позиций». | 1 | Реализовано OQ2.1-9 | |
| S2: FR2.1-8 | Сотрудник выбирает карточку «Города» | Интерфейс открывает подраздел 2.1.6 «Города». | 1 | Реализовано OQ2.1-9 | |
| S2: FR2.1-9 | Сотрудник выбирает карточку «Типы расхода» | Интерфейс открывает подраздел 2.1.8 «Типы расходов». | 1 | Реализовано OQ2.1-9, OQ2.1-3 | |
| S2: FR2.1-10 | Сотрудник выбирает карточку «Станции метро» | Интерфейс открывает подраздел 2.1.7 «Станции метро». | 1 | Реализовано OQ2.1-9 | |
| S3: FR2.1-12 | Сотрудник открывает главный экран «Основные» на поддерживаемом устройстве | Интерфейс адаптирует страницу раздела и карточки подразделов для desktop, laptop и tablet. | 2 | Частично OQ2.1-5 |
6. Открытые вопросы
Пин контекста: BRD 2.1 «Основные» v0.1 · репозиторий
musbooking.weblk.adminpanel· commitb0d9185/ веткаmain· дата сверки 2026-09-03 · якорь:pages/settings/main/index.vue,pages/settings/index.vue,pages/settings/main/*.vue(8 подразделов),shared/ui/settings-section/SettingsSection.vue,layouts/default.vue,shared/ui/button/BackButton.vue,shared/lib/useSafeBack.ts,features/header-breadcrumbs/,widgets/app-header/,features/sidebar-navigation/,middleware/auth.global.tsСводка: 8 вопросов — Open бизнесу 3 · Open разработке 4 · Подтверждено 1. Статусы требований: Реализовано 8, Частично 3, Не реализовано 0. Отрезано находок обратного прохода: 10. Маршрутизация без сверки с гайдбуком (гайдбук на вход не передавался — там, где нужно решение «как должно быть», вопрос уходит бизнесу со статусом Open, а не закрывается сам). Главное: экран-хаб существует и работает. Все восемь карточек на месте и в том же порядке, что в BRD, все восемь переходов ведут в живые подразделы (ни одной заглушки), возврат на уровень «Настройки» работает, и других входов в эти восемь экранов в интерфейсе нет — хаб «Основные» единственная точка входа. Разблокирующего вопроса в разделе нет, расхождения на уровне отделки: путь «Настройки > Основные» показывается наполовину (код осознанно отбрасывает первую крошку, «Настройки» остаются только иконкой без подписи), заголовок «Основные» выводит не заголовок страницы, а подпись кнопки «Назад», и два названия карточек не совпадают с BRD. Требование FR2.1-12 (адаптив) нельзя ни проверить, ни принять, пока бизнес не зафиксирует, какие ширины считаются desktop, laptop и tablet: в самом продукте «desktop» уже означает одновременно и 1024, и 1200 точек. Об обходе: обход полный по репозиторию — поиск поsettings/main,Основные,SettingsSection,breadcrumb,meta.icon,hasAccess,useHead/useSeoMeta,media/брейкпоинтам во всех слоях (pages/,layouts/,app/,widgets/,features/,entities/,shared/,middleware/,plugins/,server/,generated/,lib/,assets/,nuxt.config.ts,.gitlab-ci.yml,docs/technical debt/), усечения нет. Экран не делает ни одного запроса на сервер: состав карточек — константа во фронте, поэтому состояний загрузки, пустоты и ошибки у него нет и быть не может. Автотестов на раздел в репозитории нет вообще — ни unit, ни e2e, проверка только чтением кода. Словарей локализации в проекте нет, все подписи заданы русскими строками в коде; фича-флагов, которые могли бы прятать раздел или отдельные карточки, тоже нет. Вdocs/technical debt/файла по этому экрану нет. Подразделы 2.1.1–2.1.8 по существу не проверялись — они вне Scope 2.1 («Не входит»); проверено только то, что переходы в них ведут на реальные экраны. Отрезано 10 находок обратного прохода как несущественные или вне раздела 2.1: заголовок вкладки браузера для экрана не задаётся (useHead/useSeoMetaесть только на экране входа —pages/auth/authorization.vue:13); состав карточек не проходит проверку схемой, хотя для бокового меню и главной в проекте это принято (pages/settings/main/index.vue:12-54противfeatures/sidebar-navigation/model/useSidebarNavigation.ts:38-41); плагин истории переходов зарегистрирован, но потребителей у него нет — мёртвый код (plugins/navigation-history.client.ts:44-62,nuxt.config.ts:77); неиспользуемая переменная левого логотипа (widgets/app-header/ui/AppHeader.vue:32); у страниц «Города» и «Станции метро» не заданtitleв мета-данных, только подпись возврата (pages/settings/main/cities.vue:6-9,pages/settings/main/metro-stations.vue:6-9— разделы 2.1.6 и 2.1.7); адрес/settings/status-codesне заведён в карте возврата и работает через запасную ветку (shared/lib/useSafeBack.ts:2-48— раздел 2.x; все восемь детей «Основных» в карте есть); Vuetify поднимается дважды — модулем и собственным плагином (nuxt.config.ts:97,plugins/vuetify.ts:6-12); комментарий у кнопки «Назад» обещает скрывать её «на корневых разделах с сеткой карточек», но на трёх таких экранах она показывается (shared/ui/button/BackButton.vue:59-60); размер иконки кнопки «Назад» задаётся пропом и тут же перебивается локальным стилем (shared/ui/button/BackButton.vue:4,87-91); косметика карточек — фиксированная высота 132 точки и подъём при наведении (shared/ui/settings-section/SettingsSection.vue:102-119).
| ID | Источник | Вопрос | Кому | Статус | Рекомендации | Итоговое решение |
|---|---|---|---|---|---|---|
| OQ2.1-1 | ||||||
| OQ2.1-2 | Код (FR2.1-1) | Требование говорит: при открытии экрана сотрудник видит заголовок «Основные», путь «Настройки > Основные» и действие возврата на предыдущий уровень настроек. В коде из трёх частей требования полностью выполнена одна. Путь показывается наполовину: в шапке рисуется значок настроек, а сразу за ним — «Основные»; слово «Настройки» текстом не выводится, потому что при сборке пути код осознанно отбрасывает первую крошку («если крошек больше одной — показать все, кроме первой»). Верхний уровень остаётся только значком: он ведёт на экран «Настройки», но подписи, подсказки при наведении и текстовой альтернативы у него нет — сотрудник видит картинку, а не название уровня. Заголовок «Основные» на экране есть, но выводит его не заголовок страницы, а подпись кнопки «Назад» над карточками: страница передаёт в свой блок пустой заголовок, и настоящий заголовок в разметку не попадает (начертание подписи кнопки при этом ровно такое же, как у неотрисованного заголовка, поэтому на глаз подмена не видна). Из-за этого родительский экран «Настройки» и экран «Основные» выглядят по-разному — у «Настроек» заголовок в белой панели, у «Основных» только строка рядом со стрелкой возврата; так же сделаны и два соседних хаба второго уровня, «Тарифы» и «Параметры», то есть это сложившийся приём, а не разовая ошибка. Действие возврата работает именно так, как требует BRD: стрелка ведёт на предыдущий уровень настроек, а не «назад по истории браузера». Мелочь по этому же экрану: в мета-данных страницы задана иконка раздела, но её никто не читает — значок в шапке берётся из общей карты разделов. \ features/header-breadcrumbs/model/useHeaderBreadcrumbs.ts:60-75,84; значок без подписи — features/header-breadcrumbs/ui/HeaderBreadcrumbs.vue:4-6, features/header-breadcrumbs/model/useHeaderBreadcrumbs.ts:23-31,52-53; pages/settings/main/index.vue:2,7-9; shared/ui/settings-section/SettingsSection.vue:3,32,76-82; соседние хабы — pages/settings/tariffs/index.vue:2, pages/settings/parameters/index.vue:2, родительский экран — pages/settings/index.vue:2; layouts/default.vue:14-16; shared/ui/button/BackButton.vue:51-57,60,92-99; shared/lib/useSafeBack.ts:8,79-82 | Разработка | Open | (А) Показывать путь целиком — «Настройки > Основные» — и выводить название экрана штатным заголовком страницы, как это сделано на «Настройках» (рекомендуется): обе правки локальны (снять отбрасывание первой крошки и передать заголовок в блок карточек), после них FR2.1-1 выполняется дословно, а соседние экраны перестают выглядеть по-разному. Завести тикет в Bitrix: «Основные: полный путь в шапке и заголовок страницы». Учесть при оценке: отбрасывание первой крошки — общий механизм всей админки, поэтому правка меняет вид пути во всех разделах сразу и требует отдельной проверки; заодно убрать из мета-данных иконку, которую никто не читает. (Б) Признать текущее поведение целевым и переписать FR2.1-1 под него — «в шапке показывается значок раздела и название текущего экрана, название выводится рядом с действием возврата» → правка BRD. Довод в пользу (Б): так устроены все три хаба второго уровня, и (А) придётся раскатывать на них тоже. | |
| OQ2.1-3 | Код (FR2.1-2, FR2.1-5, FR2.1-9) | Требование говорит: на экране восемь карточек с названиями «Сферы», «Опции», «Источники заказов», «Типы и параметры фильтрации», «Типы позиций», «Города», «Типы расхода», «Станции метро». В коде все восемь карточек есть и идут в том же порядке, но два названия отличаются от BRD: карточка называется «Источники заказа» (в BRD — «Источники заказов») и «Тип расхода» в единственном числе (в BRD — «Типы расхода»). Разнобой при этом не только между BRD и кодом, но и внутри каждого из них: BRD в перечне карточек пишет «Источники заказов» и «Типы расхода», а в списке подразделов и в тексте самих требований — «Источники заказа» и «Типы расходов»; в коде карточка ведёт на экран, у которого в заголовке стоит «Источники заказов» и «Типы расходов». То есть у одного подраздела до трёх написаний, и сотрудник видит на карточке одно название, а сразу после перехода — другое, в шапке и на кнопке возврата. Тот же класс расхождения есть на родительском экране «Настройки» — в меню «Канал оплаты», на карточке «Каналы оплат»; это раздел 2, вне 2.1, но чинить разумно одним проходом. \ pages/settings/main/index.vue:14,20,25,30,35,40,45,50; заголовки целевых экранов — pages/settings/main/sources.vue:9, pages/settings/main/cost-items-type.vue:9-10; BRD 2.1 v0.1, раздел 3 «Не входит» и раздел 5 (FR2.1-2, FR2.1-5, FR2.1-9); родительский экран — features/sidebar-navigation/model/menuItems.ts:21 против pages/settings/index.vue:46 | Разработка | Open | (А) Зафиксировать по одному названию на подраздел и привести к нему карточку, заголовок целевого экрана и текст BRD (рекомендуется) — расхождение чисто в словах, но именно оно ломает узнаваемость перехода: сотрудник уходит с карточки «Тип расхода» на экран «Типы расходов». Завести тикет в Bitrix: «Основные: выровнять названия „Источники заказов“ и „Типы расходов“ на карточке и на экране подраздела». (Б) Оставить названия в коде как есть и переписать FR2.1-2 под фактические подписи → правка BRD; но и тогда придётся решить, какое из трёх написаний считать верным, иначе расхождение «карточка против экрана» останется. | |
| OQ2.1-4 | BRD 2.1, раздел 1 · Код (FR2.1-2) | Требование говорит: раздел 1 BRD — «сотрудник видит доступные подразделы основных настроек»; FR2.1-2 — интерфейс показывает все восемь карточек. В коде состав карточек — неизменяемый список из восьми пунктов, прописанный прямо в файле экрана: он одинаков для любого сотрудника, права не проверяются, с сервера состав не приходит. Ограничение доступа в продукте при этом есть — в админке заведён раздел ролей и прав, а в боковом меню предусмотрен признак «нет доступа», который гасит пункт и запрещает по нему переход, — но этот признак нигде не выставляется, поэтому не работает; права текущего сотрудника фронт вообще не запрашивает, он умеет только редактировать чужие роли на экране «Сотрудники и доступ». Итог: слово «доступные» из раздела 1 сейчас ничем не обеспечено, а добавить или скрыть подраздел можно только новой сборкой фронта. \ pages/settings/main/index.vue:12-54; признак доступа — shared/types/sidebar.ts:5, features/sidebar-navigation/ui/SidebarNavigationItemExpanded.vue:39,115, нигде не задан — features/sidebar-navigation/model/menuItems.ts:14-23; права запрашиваются только для чужих ролей — features/available-functionality-drawer/model/useAvailableFunctionalityDrawer.ts:14,66; вход только для авторизованного сотрудника, без проверки прав — middleware/auth.global.ts:45-51 | Бизнес | Open | (А) Подтвердить, что в сервисной зоне список подразделов одинаков для всех сотрудников, и убрать из раздела 1 слово «доступные», чтобы оно не читалось как требование к правам (рекомендуется, если разграничение доступа в 2.1 не планируется) — тогда код уже соответствует BRD и работы нет. (Б) Если состав карточек должен зависеть от прав — сформулировать это отдельным требованием (что скрывать полностью, а что показывать неактивным) и передать разработке: механизм признака «нет доступа» уже написан, нужно начать его заполнять и добавить запрос прав текущего сотрудника. | |
| OQ2.1-5 | Код (FR2.1-12) | Требование говорит: экран раздела и карточки подразделов адаптируются под desktop, laptop и tablet. В коде адаптация есть, но её пороги никем не зафиксированы: сетка карточек перестраивается из трёх колонок в две при ширине окна 1200 точек и в одну колонку — при 720; отступы страницы обнуляются на 640; боковое меню целиком скрывается тоже на 640. Ни в BRD, ни в коде нет определения, какие ширины считаются desktop, laptop и tablet: общего набора порогов в проекте нет, встроенные пороги библиотеки интерфейса (600 / 960 / 1280 / 1920) не переопределены и на этом экране не используются, а всего по репозиторию встречается девять разных значений (480, 640, 720, 768, 900, 960, 1024, 1200, 1280). Единственное место, где порог назван словом, определяет desktop как 1024 точки — то есть внутри одного продукта «desktop» уже означает и 1024, и 1200. Отдельного порога под laptop нет вообще: ноутбук попадает в ту же ветку, что и настольный монитор, поэтому часть требования про laptop проверить нечем. \ shared/ui/settings-section/SettingsSection.vue:86,90-93,96-99; layouts/default.vue:43-46,56-58; features/sidebar-navigation/ui/SidebarNavigation.vue:53-55; «desktop = 1024» — widgets/employee-access/ui/EmployeeAccessWidget.vue:235,295; пороги библиотеки не переопределены — plugins/vuetify.ts:6-12, nuxt.config.ts:102-109; общего конфига порогов не найдено за обход (shared/config/, app/styles/global.scss, nuxt.config.ts) | Бизнес | Open | (А) Зафиксировать в BRD, какие ширины экрана означают desktop, laptop и tablet и сколько колонок карточек ожидается на каждой (рекомендуется) — без этих цифр FR2.1-12 нельзя ни проверить, ни принять, и любая приёмка адаптива упирается в спор о трактовке; после решения бизнеса разработка сводит разрозненные пороги к одному общему набору. (Б) Считать текущее поведение целевым и записать в FR2.1-12 фактические пороги (три колонки шире 1200, две — от 720 до 1200, одна — уже 720) → правка BRD; тогда отдельно решить, устраивает ли исчезновение бокового меню на узких экранах (связать с OQ2.1-7). | |
| OQ2.1-6 | Код вне BRD | Что нашли: у каждой карточки в коде задан свой текст описания, и часть слов в нём выделяется цветом — например, «Здесь настраиваются сферы деятельности, их параметры и иерархия зон партнёров», где «сферы деятельности, их параметры» и «иерархия зон» рисуются чёрным, а остальное серым. BRD требует от карточки «краткое описание подраздела», но самих описаний не фиксирует, поэтому восемь пользовательских текстов и правило их подсветки живут только в коде и никем не согласованы. Разметка при этом самодельная и хрупкая: подсвечивается только текст, обёрнутый в парные двойные звёздочки, любые другие символы разметки выведутся сотруднику как есть, а непарная звёздочка молча погасит подсветку. \ pages/settings/main/index.vue:16-17,22,27,32,37,42,47,52; механизм подсветки — shared/ui/settings-section/SettingsSection.vue:13-17,41-60,156-158 | Разработка | Open | (А) Перенести восемь фактических описаний в FR2.1-2 или в приложение к разделу и там же указать, что часть текста выводится акцентом (рекомендуется) → правка BRD: тексты уже видят сотрудники, и без них требование о «кратком описании» проверить нечем. (Б) Оставить описания на стороне кода как редакционный текст, но тогда явно записать в FR2.1-2, что их содержание вне BRD и меняется без правки требований. | |
| OQ2.1-7 | Код вне BRD | Что нашли: при ширине окна меньше 640 точек боковое меню админки не сворачивается в полосу с иконками, а полностью пропадает с экрана, и замены ему нет — ни кнопки-гамбургера, ни выдвижной панели в шапке. На экране «Основные» вместе с меню исчезает единственный способ уйти в другой раздел: карточки ведут только вниз, в подразделы, и у сотрудника остаётся лишь стрелка «Назад» на один уровень и значок раздела в шапке. В BRD такого поведения нет — FR2.1-12 говорит про адаптацию страницы и карточек, но не про пропажу навигации. \ features/sidebar-navigation/ui/SidebarNavigation.vue:53-55; в шапке замены нет — features/header-shell/ui/HeaderShell.vue:3-11, widgets/app-header/ui/AppHeader.vue:4-11; переходы экрана — pages/settings/main/index.vue:12-54; возврат — layouts/default.vue:14-16 | Разработка | Open | (А) Завести тикет в Bitrix: на узких экранах сохранять доступ к меню — кнопкой-гамбургером или выдвижной панелью (рекомендуется) — сейчас на узком экране сотрудник может уйти из раздела только назад, по одному уровню за раз. (Б) Если поддержка ширин меньше 640 не входит в планы — записать в FR2.1-12 нижнюю границу поддерживаемых разрешений, чтобы поведение ниже неё не считалось дефектом; решение зависит от OQ2.1-5. | |
| OQ2.1-8 | BRD 2.1, раздел 5 и раздел 6 | Проблема: в таблице требований нет FR2.1-11 — нумерация идёт с FR2.1-10 сразу на FR2.1-12, и по документу нельзя понять, требование удалили осознанно или потеряли при переносе. Кроме этого колонка «BR» пуста во всех одиннадцати строках, хотя раздел 4 BRD прямо отсылает к пункту 4 раздела Back: 8.2 «Сервисные справочники»: ни одно требование интерфейса нельзя проследить до конкретного бизнес-правила, и при сверке нечем проверить, полон ли набор требований. В разделе 6 осталась пустая строка-заготовка OQ2.1-1 без содержания. \ BRD 2.1 v0.1, раздел 5 (FR2.1-11 отсутствует; колонка BR пуста в 11 строках из 11), раздел 6 (строка OQ2.1-1) | Бизнес | Open | (А) Восстановить или явно снять FR2.1-11, проставить в колонке BR ссылки на конкретные правила Back 8.2 и убрать либо заполнить заготовку OQ2.1-1 (рекомендуется) → правка BRD: пропуск в нумерации — единственное место раздела, где сверка не может сказать, всё ли требование учтено. (Б) Если FR2.1-11 удалено намеренно — оставить пропуск, но добавить в раздел 5 сноску об этом, чтобы следующая сверка не искала потерянное требование. | |
| OQ2.1-9 | Код (FR2.1-3 … FR2.1-10) | Что подтверждено: все восемь переходов из карточек работают и ведут в живые подразделы, а не в заглушки. «Сферы» открывают экран сфер, «Опции» — опций, «Источники заказа» — источников заказов, «Типы и параметры фильтрации» — типов и параметров фильтрации, «Типы позиций» — типов позиций, «Города» — городов, «Тип расхода» — типов расходов, «Станции метро» — станций метро. Каждая карточка целиком является ссылкой и дополнена значком-стрелкой, у каждого адреса есть своя страница, и каждая страница подключает реальный раздел со списком записей и формой создания и редактирования — ни один из восьми адресов не открывает страницу-заглушку. Возврат из любого подраздела заведён обратно на «Основные», то есть путь «Основные → подраздел → Основные» замкнут. Вход на все восемь экранов — только для авторизованного сотрудника. Отдельно к сведению: других входов в эти восемь экранов в интерфейсе нет — в боковом меню «Основные» показаны как один пункт без вложенного списка (третий уровень меню не рисуется вовсе), на главной ссылок на них тоже нет. То есть хаб «Основные» — единственная точка входа в восемь справочников, и его отказ отрезает их целиком. \ pages/settings/main/index.vue:12-54 (адреса карточек), shared/ui/settings-section/SettingsSection.vue:6-18 (карточка-ссылка со стрелкой), страницы подразделов — pages/settings/main/spheres.vue:2,6, options.vue:2,6, sources.vue:2,6, feature-type.vue:2,6, position-groups.vue:2,6, cities.vue:2, cost-items-type.vue:2,6, metro-stations.vue:2; наполнение подразделов — например widgets/spheres/ui/SpheresWidget.vue:6,9, widgets/cities/ui/CitiesWidget.vue:5,8; возврат в «Основные» — shared/lib/useSafeBack.ts:23-30; вход только для авторизованных — middleware/auth.global.ts:45-51; единственность входа — features/sidebar-navigation/model/menuItems.ts:15, features/sidebar-navigation/ui/SidebarNavigationItemExpanded.vue:32-33, features/home-links/model/homeLinksConfig.ts:9-40 | — | Подтверждено | Расхождения нет. Оговорка к сведению: два названия карточек расходятся с BRD (см. OQ2.1-3) — сам переход это не ломает. | — |