Когда на участке меняют насосную станцию, не проверив давление в магистрали, результат предсказуем: разрыв трубы или отказ всей системы полива. В ИТ-миграциях та же логика — конфликт версий или неучтённая зависимость способны обрушить инфраструктуру так же верно, как гидроудар разрушает неподготовленную сеть. За годы работы с корпоративными миграциями Active Directory, Exchange и облачных платформ я вывел правило: примерно 70% проблем при переходе на новую версию ПО или оборудования связаны не с качеством самого продукта, а с неучтёнными зависимостями и несовпадением форматов данных. Тот же принцип работает на участке: замена контроллера освещения без проверки протоколов DALI превращает «умный дом» в набор мёртвых датчиков.
Этот материал — практическое руководство для инженеров, проектных менеджеров и владельцев сложных объектов. Мы разберём, как провести аудит, выявить скрытые конфликты, выбрать стратегию миграции и минимизировать риски потери устойчивости системы. Все примеры — из реальной практики, где ИТ-логика и ландшафтная инженерия идут рука об руку.
Почему миграция ломает системы: природа конфликтов версий
Конфликт версий возникает, когда новая компонента требует функций, отсутствующих в старой, или наоборот — старая компонента не может работать с обновлённым протоколом. В мире IT это проявляется как ошибка dependency not found или incompatible API. В инженерии участка — как несовместимость насоса полива с новым контроллером или «битый» сигнал от датчика освещённости в обновлённой системе умного дома. Представьте: вы установили современный блок управления поливом, который ожидает цифровой сигнал от датчика дождя, а старый датчик выдаёт аналоговый. Результат: система не видит осадки и заливает газон. Это классический версионный конфликт на уровне протокола.
Основные типы конфликтов
| Тип конфликта | Описание | Пример в IT | Пример в инженерии участка |
|---|---|---|---|
| Версионный | Новая версия ПО требует API, отсутствующего в старой версии | Приложение требует Python 3.10, но сервер работает на 3.8 | Новый контроллер освещения требует протокол DALI 2, а старые драйверы работают на DALI 1 |
| Форматный | Различия в структуре данных (типы, поля, справочники) | Смена типа поля date из string в timestamp |
Разные стандарты штекеров для подключения датчиков (разные пины, разное назначение контактов) |
| Протокольный | Несоответствие каналов передачи данных | SSL/TLS версии не совпадают между сервером и клиентом | Несовместимость частот радиосигнала между датчиком и приёмником (433 МГц против 868 МГц) |
| Зависимый | Скрытая связь компонентов, о которой не знали | Обновление библиотеки ломает работу другого модуля | Замена насоса меняет давление в системе, что нарушает работу дозатора удобрений или капельной линии |
Ключевая ошибка при миграции — думать, что система состоит из независимых блоков. В реальности все компоненты связаны. При переносе Active Directory на новый сервер, если вы не обновите доверенные отношения (trust relationships) с Exchange, пользователи не смогут получить доступ к почте. При замене центральной станции полива, если не проверить давление и тип соединений, система может просто не запуститься или разрушить трубы. В ландшафтной практике я не раз сталкивался с ситуацией, когда после замены насоса в дренажном колодце «вдруг» переставала работать система автополива, потому что оба контура были запитаны от одного источника, и изменение напора в одном узле ломало гидравлический баланс.
Важно: Совместимость нужно проверять на двух уровнях: стратегия (как организован процесс) и инструменты (технические средства переноса). Без первого даже лучшие инструменты не спасут от провала.
Этап 1: Аудит и анализ текущего состояния (Карта системы)
Перед любыми изменениями критически важно понять, что именно вы мигрируете. Без этого этапа миграция превращается в «чёрный ящик», где вы не знаете, что сломается. В ландшафтном проектировании этому соответствует топографическая съёмка и анализ почвы: если не знать уровень грунтовых вод и состав грунта, любой дренаж будет спроектирован вслепую. Так и здесь — сначала составляем карту системы со всеми связями.
Что входит в аудит
-
Составление «карты» системы
- Какие компоненты участвуют (сервисы, базы данных, внешние интеграции, датчики, насосы, клапаны)?
- Где хранятся данные (физические серверы, облако, локальные контроллеры, программируемые реле)?
- Какие зависимости существуют между компонентами? Например, контроллер полива может зависеть от метеостанции, а та — от датчика ветра.
- Какие SLA, RPO (допустимая потеря данных) и RTO (допустимое время простоя) действуют? Для участка это может означать: сколько часов система полива может не работать без ущерба для растений.
-
Оценка объёма и структуры данных
- Сколько данных нужно перенести? В ИТ — гигабайты, на участке — количество зон полива, расписания, настройки датчиков.
- Нужна ли трансформация (преобразование) данных или можно переносить «как есть»? Часто старые контроллеры хранят программы в проприетарном формате, который не читается новым оборудованием.
- Есть ли отсутствующие поля, различия в типах данных, справочниках? Например, в старом контроллере зоны назывались «Газон 1», а новый требует числовой индекс.
-
Проверка совместимости исходной и целевой систем
- Есть ли API для переноса? У современных систем умного дома может быть открытый API, у старых — только физические контакты.
- Совпадают ли форматы и структуры баз данных?
- Нужно ли обновлять текущую инфраструктуру для совместимости с новой платформой (агенты, версии ПО, конфигурация, переходники для разъёмов)?
Практический чек-лист аудита
Выполните следующие действия перед началом миграции:
- [ ] Составить полный список всех компонентов системы (сервисы, базы, интеграции, датчики, исполнительные устройства).
- [ ] Зафиксировать текущие версии ПО и оборудования (вплоть до версий прошивок контроллеров).
- [ ] Выявить все внешние интеграции и зависимости (например, подключение к погодному сервису или к центральному пульту охраны).
- [ ] Определить критичные данные и их SLA (время простоя, потеря данных).
- [ ] Проверить наличие API и протоколов обмена данными (Modbus, DALI, Wi-Fi, Zigbee).
- [ ] Оценить необходимость трансформации данных (конвертация расписаний полива, перепривязка датчиков).
- [ ] Зафиксировать риски потери или искажения данных.
- [ ] Обозначить планируемые сроки завершения миграции.
Нюанс: Часто при аудите обнаруживаются «зомби-компоненты» — старые сервисы или устройства, которые формально работают, но не используются. Например, датчик влажности, который давно не опрашивается, но висит в конфигурации. Их миграция не нужна, но их удаление может нарушить работу других систем, если они зависят от этих компонентов. Всегда проверяйте обратную совместимость: old client → new server и new client → old server. На участке это означает: сможет ли старый пульт управления включить новый насос, и наоборот.
Этап 2: Стратегия миграции и выбор подхода
После аудита вы должны выбрать стратегию. Нет универсального решения: для критичных систем (например, база данных клиентов или основная магистраль полива) нужна одна стратегия, для тестовых — другая. В благоустройстве участка это похоже на выбор между «сделать всё сразу» (Big Bang) и поэтапным освоением территории: сначала дренаж и вертикальная планировка, затем дорожки и подпорные стены, и только потом — посадки и автополив.
Основные стратегии миграции
| Стратегия | Описание | Когда применять | Риски |
|---|---|---|---|
| Big Bang (Единый взрыв) | Полный переход в один момент, старая система отключается сразу | Малые системы, низкая критичность, короткие сроки | Высокий риск потери данных, длительный простой, сложно откатиться |
| Поэтапная (Step-by-step) | Перенос компонентов по очереди, с сохранением обратной совместимости | Крупные системы, высокие требования к SLA, сложные зависимости | Долгий процесс, требует тщательного планирования, риск конфликтов на стыке этапов |
| Rolling Upgrade (Постепенное) | Обновление нод без остановки всего кластера (по одной) | Кластерные системы, облачные платформы, высокие требования к доступности | Сложность управления, риск несогласованности версий в кластере |
| Blue/Green (Двойной запуск) | Запуск новой системы параллельно со старой, переключение трафика при готовности | Критичные системы, где простой недопустим | Высокая стоимость (нужны две инфраструктуры), риск рассинхронизации данных |
Для сложных систем, таких как Active Directory, Exchange или инженерные сети участка, поэтапная миграция (Step-by-step) является наиболее надёжным вариантом. Она позволяет:
- Анализируя текущую систему, заранее выявлять зависимости.
- Планировать маршрут миграции с чёткими шагами (например, сначала переводим датчики, затем клапаны, затем контроллер).
- Обеспечивать обратную совместимость между шагами.
- Использовать фиче-флаги, версионирование и техники dual write (двойная запись) — в ландшафте это аналогично временной прокладке байпаса на период замены узла.
Многоступенчатость как правило
Независимо от выбранной стратегии, всегда используйте многоступенчатый подход:
- Тестовый кластер: Подготовка среды, не влияющей на продакшн. На участке — это тестовый стенд на одном контуре полива или временная сборка на верстаке.
- Тестовый прогон: Проверка на практике совместимости компонентов. Включаем новый контроллер с одним датчиком и смотрим логи.
- Поэтапная миграция на продуктивной среде: Минимальное время простоя. Например, ночью переключаем зоны полива по одной.
- Валидация после миграции: Проверка целостности данных, тестирование поведения клиента, проверка мониторинга и алертинг. Убеждаемся, что все зоны поливаются по расписанию, а датчики передают корректные значения.
Важно: На этапе запуска новой системы целесообразно сохранить доступ к старой хотя бы в режиме чтения, а в ряде случаев и с возможностью ведения части операций. Это критически важно для отката в случае сбоя. На участке это означает: не демонтировать старый контроллер сразу, а оставить его подключённым в режиме «только мониторинг» или с возможностью ручного пуска.
Этап 3: Выявление и устранение конфликтов зависимостей
Это самый сложный этап, где чаще всего возникают проблемы. Зависимости могут быть явными (через API, провода) и скрытыми (через конфигурационные файлы, общие библиотеки, физические соединения в распределительных коробках). В ландшафтной практике типичный скрытый конфликт: замена дренажного насоса на более мощный без учёта того, что он подключён к тому же электрическому автомату, что и насос полива. При одновременном включении выбивает автомат — система встаёт.
Как выявить скрытые зависимости
-
Адресная оценка приложений (и устройств)
- Проведите тестирование каждого приложения/устройства на совместимость с новой версией ОС или ПО.
- Используйте цветовую маркировку готовности:
- Тёмно-зелёный: полностью совместимо.
- Светло-зелёный: совместимо частично, есть обходные решения.
- Жёлтый: совместимо частично, но есть негативное влияние на деятельность.
- Красный: точно несовместимо.
- Серый: необходимо проведение тестирования.
-
Тестирование в изолированной среде
- Используйте подменный фонд, тестовый стенд или выборочную миграцию. На участке это может быть один выделенный контур полива или временная коммутация на столе.
- Проверяйте на практике совместимость: подменный фонд, тестовый стенд или выборочная миграция.
- Запускайте модульные тесты (проверка отдельных частей), интеграционные тесты (взаимодействие компонентов) и миграционные тесты (проверка изменений схемы/данных).
-
Анализ структуры данных
- Сравнивайте структуру данных в текущей и целевой системах.
- Фиксируйте отсутствующие поля, различия в типах данных, справочниках и правилах заполнения. Например, старый контроллер полива оперирует временем в минутах, новый — в секундах, и простое копирование расписания приведёт к 60-кратной ошибке.
- Именно на этом этапе становится понятно, какие преобразования потребуются при переносе информации.
Устранение конфликтов
Если выявлен конфликт, есть три пути решения:
-
Обновление компонента: Обновить ПО или оборудование до версии, совместимой с новой системой.
- Пример: Обновить версию Python на сервере до требуемой 3.10.
- Пример: Заменить старые драйверы DALI на версии 2 для работы с новым контроллером освещения.
-
Использование обходных решений (Wrapper): Создать промежуточный слой, который адаптирует старый протокол к новому.
- Пример: Использовать API-шлюз для перевода запросов от старого приложения в формат новой системы.
- Пример: Использовать адаптер-переходник для подключения старого датчика дождя с аналоговым выходом к цифровому входу нового контроллера.
-
Замена компонента: Если компонент несовместим и обновление невозможно, заменить его на новый.
- Пример: При наличии возможности поменять несовместимые компоненты или оборудование совместить замену ОС с заменой компьютера.
- Пример: При замене насоса полива, если он несовместим с новой системой управления, заменить его на модель с нужным интерфейсом (например, с поддержкой Modbus).
Нюанс: Часто при обновлении одной библиотеки ломается работа другого модуля. Всегда проверяйте обратную совместимость: old client → new server и new client → old server. В контексте участка: если вы обновили центральный контроллер, проверьте, что старые беспроводные датчики всё ещё могут к нему подключиться, и что новый датчик работает со старым исполнительным модулем.
Этап 4: Резервное копирование и план отката (Rollback)
Без резервной копии и плана отката миграция — это игра в рулетку. В любой момент может возникнуть ошибка, и система встанет. В ландшафтной инженерии аналог бэкапа — это документированная схема коммутации, сохранённые настройки контроллеров и, возможно, временная байпасная линия, позволяющая быстро вернуться к старой конфигурации.
Обязательные правила резервного копирования
- Бэкап нужен обязательно и всегда. Для миграции это критично: вы должны иметь резервную копию всего, с чем вам доводилось работать — от баз данных до конфигурационных файлов контроллеров.
- Резервное копирование должно быть актуальным. Включайте снимки (snapshots) и журналы транзакций (logs). Это позволяет быстро восстановиться в случае проблем. Для контроллера полива это может быть экспорт текущей программы на SD-карту или в облако.
- Шифрование данных. Перед миграцией шифровать данные, чтобы обеспечить их конфиденциальность во время миграции. Использовать протоколы шифрования, такие как SSL/TLS. При передаче конфигураций умного дома через публичные сети это обязательно.
- Безопасные каналы связи. При передаче данных между исходной системой и облачной инфраструктурой использовать VPN или защищённые протоколы передачи данных.
План отката (Rollback)
План отката должен быть готов до начала миграции. В нём должны быть чётко описаны:
- Цель шага: Что именно мы делаем (например, переносим зоны полива 1-4 на новый контроллер).
- Предполагаемое изменение: Код, схема, конфигурация, коммутация проводов.
- Как будет происходить откат: Чёткая инструкция на случай сбоя (какие провода перекинуть обратно, какой файл конфигурации загрузить).
- Как вы поймёте, что шаг прошёл успешно: Критерии успеха (метрики, тесты). Например, все клапаны открываются по расписанию, датчик дождя корректно блокирует полив.
Важно: Риск-менеджмент включает план аварийного восстановления, rollback-процедуры, эвристики по времени простоя и допустимым отклонениям. Если вы не можете откатиться, значит, миграция не готова. На участке это означает: не закапывайте траншеи с новыми кабелями, пока не убедитесь, что всё работает, и всегда оставляйте возможность быстро вернуть старую схему.
Этап 5: Тестирование и валидация на каждом этапе
Тестирование — это не один этап в конце, а процесс, который должен сопровождать каждый шаг миграции. В ландшафте это аналогично проверке герметичности трубопровода под давлением до обратной засыпки грунта. Лучше обнаружить протечку сейчас, чем когда всё закопано и засажено.
Что тестировать на каждом этапе
- Модульные тесты: Проверка отдельных частей системы (например, одного сервиса или одного датчика). Убеждаемся, что датчик влажности почвы передаёт корректные значения на новый контроллер.
- Интеграционные тесты: Проверка взаимодействия компонентов (как сервис общается с базой данных, как контроллер общается с группой клапанов). Включаем цепочку «датчик дождя → контроллер → клапан» и смотрим реакцию.
- Миграционные тесты: Проверка изменений схемы и данных (например, корректность переноса расписаний, отсутствие потери зон). Сравниваем исходную программу полива с тем, что загрузилось в новый контроллер.
- Обратная совместимость: Проверка работы old client с new server и new client с old server. Может ли старый пульт дистанционного управления включить новый насос? Может ли новое приложение увидеть старый датчик?
Метрики для мониторинга
Перед миграцией настройте:
- Метрики ошибок (error rate): Количество ошибок в системе (сбои связи, отказы клапанов).
- Время ответа: Как быстро система реагирует на запросы (задержка между командой и включением насоса).
- Количество запросов: Сколько запросов идёт к старому и новому пути (полезно при параллельной работе).
- Отдельные алерты для новых компонентов: Чтобы быстро реагировать на сбои в новой системе. Например, если новый контроллер перестал отвечать на пинг.
Валидация после миграции
После завершения миграции необходимо:
- Проверить целостность данных (данные не были повреждены в ходе передачи или хранения). Сравнить контрольные суммы конфигураций.
- Тестировать поведение клиента (работает ли система для пользователей). Реально ли поливается газон по заданному расписанию?
- Проверить мониторинг и алертинг (работают ли системы наблюдения). Приходят ли уведомления о статусе насоса?
- Обновить систему безопасности на новом месте назначения для предотвращения возможных угроз (сменить пароли по умолчанию, закрыть ненужные порты).
Нюанс: На каждом шаге полезно запускать тесты, чтобы убедиться, что шаг прошёл успешно. Если тесты не пройдены, не переходите к следующему шагу. В ландшафтной практике это железное правило: не засыпаем траншею, пока не опрессовали трубу.
Практические кейсы: как избежать ошибок в реальных проектах
Кейс 1: Миграция Active Directory и Exchange
Ситуация: Компания переносит Active Directory на новый сервер, но не обновляет доверенные отношения с Exchange.
Проблема: Пользователи не могут получить доступ к почте, так как система не может проверить права доступа. Бизнес встал.
Решение:
- Провести аудит всех зависимостей (включая Exchange, а также сопутствующие сервисы вроде Skype for Business).
- Обновить доверенные отношения (trust relationships) перед миграцией.
- Проверить обратную совместимость: old client → new server и new client → old server.
- Запустить тестовый прогон в тестовой среде с участием всех заинтересованных сторон.
Этот кейс — классика. Та же ошибка на участке: замена роутера умного дома без перенастройки привязок устройств. Датчики остаются в старой сети и не видят новый контроллер.
Кейс 2: Замена контроллера полива на участке
Ситуация: Владелец участка заменяет старый контроллер полива на новый, с Wi-Fi и погодными сценариями, но не проверяет совместимость с датчиками и насосами.
Проблема: Новый контроллер не распознаёт старые датчики (аналоговые против цифровых), система не запускается. Более того, выходное реле нового контроллера рассчитано на 24V AC, а старый насос управляется напрямую 220V — риск короткого замыкания.
Решение:
- Провести аудит всех компонентов (датчики, насосы, клапаны, блоки питания).
- Проверить совместимость протоколов (например, DALI 1 vs DALI 2, сухой контакт vs аналоговый сигнал).
- Если компонент несовместим, заменить его на новый или использовать обходное решение (промежуточное реле, адаптер).
- Запустить тестовый прогон на одном контуре перед полным запуском.
Кейс 3: Миграция на российское ПО
Ситуация: Компания переходит на российское ПО, но не проверяет структуру данных.
Проблема: В новой системе отсутствуют поля, различия в типах данных, справочники не совпадают. Отчётность «поехала».
Решение:
- Сравнить структуру данных в текущей и целевой системах.
- Фиксировать отсутствующие поля, различия в типах данных, справочниках и правилах заполнения.
- Определить, какие преобразования потребуются при переносе информации (написать скрипты маппинга).
- Разделить стратегию миграции и инструменты миграции.
В ландшафтном контексте это напоминает переход с одного стандарта оформления планов на другой: если не учесть различия в слоях и условных обозначениях, проект станет нечитаемым для подрядчиков.
Типовые ошибки и как их избежать
Ошибка 1: Пропуск этапа аудита
Суть: Миграция начинается без понимания текущей системы.
Риск: Скрытые зависимости ломают систему. На участке это выливается в то, что после замены контроллера перестаёт работать освещение, потому что оно было запитано через тот же блок.
Как избежать: Всегда составлять «карту» системы, фиксировать версии, выявлять зависимости.
Ошибка 2: Отсутствие плана отката
Суть: Миграция без резервной копии и плана отката.
Риск: При сбое система встанет, и восстановить её будет невозможно. Представьте, что вы демонтировали старый щит автоматики, а новый не запустился — и схема утеряна.
Как избежать: Всегда иметь резервную копию, включая снимки и журналы транзакций. Готовить план отката до начала миграции.
Ошибка 3: Тестирование только в конце
Суть: Тесты запускаются только после завершения миграции.
Риск: Сбои обнаруживаются поздно, откат сложен. Как если бы вы закопали все трубы и только потом включили воду.
Как избежать: Тестировать на каждом этапе: модульные, интеграционные, миграционные тесты.
Ошибка 4: Неучёт обратной совместимости
Суть: Обновление системы без проверки работы старых клиентов с новой версией.
Риск: Старые приложения (или старые датчики) не работают с новой системой.
Как избежать: Всегда проверять обратную совместимость: old client → new server и new client → old server.
Ошибка 5: Игнорирование шифрования и безопасности
Суть: Перенос данных без шифрования и безопасных каналов.
Риск: Несанкционированный доступ к данным. В умном доме это может означать перехват управления поливом или освещением.
Как избежать: Шифровать данные перед миграцией, использовать SSL/TLS, VPN, защищённые протоколы.
FAQ: Ответы на частые вопросы
Что делать, если старая система несовместима с новой?
Если компонент несовместим, есть три пути:
- Обновить компонент: Обновить ПО или оборудование до версии, совместимой с новой системой.
- Использовать обходное решение: Создать промежуточный слой (адаптер, шлюз), который адаптирует старый протокол к новому. Например, преобразователь интерфейсов RS-485 в Wi-Fi.
- Заменить компонент: Если обновление невозможно, заменить компонент на новый, соответствующий требованиям новой системы.
Как проверить совместимость систем перед миграцией?
Для проверки совместимости нужно:
- Сравнить структуру данных в текущей и целевой системах.
- Проверить наличие API и протоколов обмена данными.
- Запустить тестирование в изолированной среде (тестовый стенд, подменный фонд).
- Использовать цветовую маркировку готовности (тёмно-зелёный, светло-зелёный, жёлтый, красный, серый).
Нужно ли обновлять текущую инфраструктуру перед миграцией?
Да, часто необходимо обновить и настроить текущую инфраструктуру и приложения для совместимости с облачной платформой или новым оборудованием. Это может включать установку агентов или инструментов, обновление версий ПО или внесение изменений в конфигурацию. На участке — прокладку дополнительных кабелей или замену блоков питания.
Как долго нужно сохранять доступ к старой системе после миграции?
На этапе запуска новой системы целесообразно сохранить доступ к старой хотя бы в режиме чтения, а в ряде случаев и с возможностью ведения части операций. Это критически важно для отката в случае сбоя. Я рекомендую не демонтировать старый контроллер минимум неделю после полного перехода, а лучше — до окончания гарантийного периода новой системы.
Что делать, если при миграции потеряны данные?
Если при миграции потеряны данные:
- Немедленно откатиться к резервной копии (rollback).
- Проверить целостность данных после миграции, чтобы удостовериться, что данные не были повреждены.
- Использовать журналы транзакций (logs) для восстановления данных.
- Обновить систему безопасности на новом месте назначения для предотвращения возможных угроз.
Как подготовить персонал к работе с новой системой?
Системный администратор (или интегратор умного дома) должен подготовить персонал компании (или владельца участка) к работе с новой системой, обучив их новым функциям и возможностям. Это включает:
- Обучение новым функциям (например, погодозависимое управление поливом).
- Обучение новым возможностям (удалённый доступ через приложение).
- Проверку подлинности пользователей и установление политик доступа для минимизации рисков несанкционированного доступа.
Заключение: Миграция как проект, а не как операция
Миграция систем — это не просто техническая операция, а комплексный проект изменений, требующий планирования, этапности, аудита, минимизации рисков и работы с документацией. Опыт показывает, что успешная миграция зависит не от качества нового продукта, а от того, насколько тщательно вы подготовились к переходу. Эта логика едина для ИТ-инфраструктуры и для инженерных сетей загородного участка: сначала обследование, потом схема, этапы, совместимость решений и обслуживание.
Ключевые принципы успешной миграции:
- Аудит: Всегда начинайте с глубокого анализа текущего состояния и карты системы.
- Поэтапность: Не переходите на «Big Bang», используйте пошаговую миграцию с обратной совместимостью.
- Тестирование: Тестируйте на каждом этапе, не только в конце.
- Откат: Всегда имейте готовый план отката и резервную копию.
- Безопасность: Шифруйте данные, используйте защищённые каналы, обновляйте безопасность.
Если вы применяете эти принципы, вы сможете переносить, обновлять и перестраивать системы без потери устойчивости. Будь то облачная платформа или система автополива с десятком зон — логика неизменна. Миграция — это путь к новой, более устойчивой системе. Но без грамотного планирования и учёта зависимостей этот путь может стать ловушкой. Будьте внимательны, тестируйте, откатывайтесь, если нужно, и помните: совместимость — это не опция, а обязательное условие.