# Релиз 20.01.2026 - 21.01.2026 (Для поддержки)

##### **Версия Веб-приложения:** 4.1.71

##### **Версия Мобильного приложения:** 4.1.58

---

##### **Исправление багов:**

<table border="1" id="bkmrk-%E2%84%96-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-%D0%9F%D1%80" style="border-collapse: collapse; width: 100%; height: 454.891px;"><colgroup><col style="width: 4.44994%;"></col><col style="width: 70.4577%;"></col><col style="width: 13.5967%;"></col><col style="width: 11.4957%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;">№</td><td style="height: 46.5938px;">Описание бага</td><td style="height: 46.5938px;">Приложение</td><td style="height: 46.5938px;">Задача в Трекере</td></tr><tr style="height: 192.125px;"><td style="height: 192.125px;">1</td><td style="height: 192.125px;">**Ранее:**   
При работе с графиком веб-клиент мог падать с «красным экраном» из-за обращения к данным пользователя, которые были undefined. Это приводило к ошибке и сбросу интерфейса календаря.

**Теперь:**

Добавлена проверка наличия данных пользователя перед отрисовкой элементов графика.

</td><td style="height: 192.125px;">Веб-приложение / Мобильное приложение</td><td style="height: 192.125px;">[ALLY-5912](https://tracker.yandex.ru/ALLY-5912)</td></tr><tr style="height: 96.9844px;"><td style="height: 96.9844px;">2</td><td style="height: 96.9844px;">**Ранее:**

На главном экране МП в графике работы могли отображаться некорректные данные. Удалённые смены продолжали участвовать в выборке из-за сохранённой связи в userEvents, что приводило к ошибочному отображению выходов, в том числе на будущие даты.

**Теперь:**

Запросы к данным графика доработаны: в МП отображаются только смены со статусом PUBLISHED. Удалённые выходы больше не попадают в график.

</td><td style="height: 96.9844px;">Мобильное приложение</td><td style="height: 96.9844px;">[ALLY-4773](https://tracker.yandex.ru/ALLY-4773)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">3</td><td style="height: 29.7969px;">**Ранее:**

Очистка уведомлений календаря могла завершаться ошибкой из-за обработки слишком большого количества записей за один запрос.

**Теперь:**

Уведомления обрабатываются пакетами. Очистка выполняется стабильно, ошибки API устранены.

</td><td style="height: 29.7969px;">Веб-приложение / Мобильное приложение</td><td style="height: 29.7969px;">[ALLY-5673](https://tracker.yandex.ru/ALLY-5673)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">4</td><td style="height: 29.7969px;">**Ранее:**

При переходе к редактированию пользователя сначала отображался пустой экран/серое полотно, затем с задержкой (до ~10 секунд) подгружались данные формы. Лоадер не перекрывал весь процесс загрузки и выглядел некорректно.

**Теперь:**

Добавлен корректный лоадер. Форма редактирования отображается только после загрузки данных, без визуальных скачков.

</td><td style="height: 29.7969px;">Веб-приложение</td><td style="height: 29.7969px;">[ALLY-5875](https://tracker.yandex.ru/ALLY-5875)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">5</td><td style="height: 29.7969px;">**Ранее:**

В календаре в отдельных случаях возникала ошибка undefined is not an object. Из-за отсутствующих данных в ломалась часть логики отображения.

**Теперь:**

Добавлена проверка наличия пользователей при обработке данных в Calendar.web.jsx. Календарь корректно работает даже если часть данных не загрузилась.

</td><td style="height: 29.7969px;">Веб-приложение / Мобильное приложение</td><td style="height: 29.7969px;">[ALLY-5732](https://tracker.yandex.ru/ALLY-5732)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">6</td><td style="height: 29.7969px;">**Ранее:**

При входе по паролю в редких случаях ошибка авторизации обрабатывалась некорректно. В результате в консоли появлялась ошибка "Cannot read properties of undefined", а после авторизации мог бесконечно грузиться график.

**Теперь:**

Добавлена безопасная обработка ошибки и уточнена типизация. Сценарий больше не приводит к исключению.

</td><td style="height: 29.7969px;">Веб-приложение / Мобильное приложение</td><td style="height: 29.7969px;">[ALLY-5994](https://tracker.yandex.ru/ALLY-5994)</td></tr><tr><td>7</td><td>**Ранее:**

В календаре в отдельных сценариях приложение могло падать с ошибкой "Cannot read properties of undefined", в момент выполнения не было данных users.

**Теперь:**

Добавлена безопасная обработка отсутствующих данных: календарь проверяет наличие users перед использованием и больше не падает при неполной загрузке данных графика.

</td><td>Веб-приложение</td><td>[ALLY-5506](https://tracker.yandex.ru/ALLY-5506)</td></tr><tr><td>8</td><td>**Ранее:**

После логина, смены ТТ или диапазона календарь мог падать с ошибкой "Cannot read properties of undefined". В момент выполнения не успевали загрузиться данные schedules.

**Теперь:**

Добавлены проверки на наличие данных перед обращением к schedules.

</td><td>Веб-приложение</td><td>[ALLY-5505](https://tracker.yandex.ru/ALLY-5505)</td></tr><tr><td>9</td><td>**Ранее:**

На ally-test календарь мог падать при загрузке графика под определённым пользователем.

**Теперь:**

Добавлены проверки на наличие users перед обработкой данных и формированием userIds.

</td><td>Веб-приложение</td><td>[ALLY-6166](https://tracker.yandex.ru/ALLY-6166)</td></tr><tr><td>10</td><td>**Ранее:**

При добавлении смены форма открывалась, но кнопка "Сохранить" была неактивна, пока пользователь не изменит любое поле.

**Теперь:**

Кнопка "Сохранить" активна сразу при открытии формы добавления смены без необходимости вносить фиктивные изменения.

</td><td>Веб-приложение / Мобильное приложение</td><td>[ALLY-6137](https://tracker.yandex.ru/ALLY-6137)</td></tr><tr><td>11</td><td>**Ранее:**

При формировании чеклистов и выгрузке графика не учитывалась кадровая история. После увольнения сотрудника, смены за период до даты увольнения могли отображаться некорректно по типу занятости.

**Теперь:**

Кадровая история учитывается, тип занятости определяется корректно для нужных дат.

</td><td>Репликатор</td><td>[ALLY-5982](https://tracker.yandex.ru/ALLY-5982)</td></tr><tr><td>12</td><td>**Ранее:**

Если смены начинали пересекаться, Ally показывал только предупреждение, но не ограничивал сохранение/публикацию таких пересечений.

**Теперь:**

Пересекающиеся смены нельзя корректно провести. Такие ситуации выявляются и требуют исправления.

</td><td>Репликатор</td><td>[ALLY-6181](https://tracker.yandex.ru/ALLY-6181)</td></tr><tr><td>13</td><td>**Ранее:**

Данные по основным ПР для торговых точек не заполнялись/обновлялись корректно из-за чего в системе могли оставаться пустые или неактуальные значения

**Теперь:**

Очередь Ally.RolesOfResponsible исправлена. Основные ПР для ТТ корректно подтягиваются и сохраняются из событий очереди.

</td><td>Репликатор</td><td>[ALLY-6101](https://tracker.yandex.ru/ALLY-6101)</td></tr><tr><td>14</td><td>**Ранее:**

При открытии статьи из Базы знаний на iOS приложение могло падать из-за ошибки в компоненте рендеринга.

**Теперь:**

Компонент рендеринга переработан и стабилизирован. Добавлена безопасная обработка ошибок и корректный рендер HTML-контента, чтобы статьи открывались без падений.

</td><td>Мобильное приложение</td><td>[ALLY-5939](https://tracker.yandex.ru/ALLY-5939)</td></tr><tr><td>15</td><td>**Ранее:**

Если при сохранении смены серверная проверка не проходила, в МП показывалось общее сообщение "Ошибка. Ошибка сохранения" без объяснения причины.

**Теперь:**

МП отображает текст ошибки, который возвращает сервер, поэтому пользователю сразу понятно, почему смена не сохраняется.

</td><td>Мобильное приложение</td><td>[ALLY-5674](https://tracker.yandex.ru/ALLY-5674)</td></tr><tr><td>16</td><td>**Ранее:**

В мобильном приложении не открывались некоторые внешние ссылки, особенно если в URL попадали лишние кавычки/артефакты, из-за чего переход мог не срабатывать.

**Теперь:**

Добавили очистку и валидацию URL. Ссылки корректно открываются во внешнем браузере (в т.ч. с артефактами вроде \\"...\\", %22...%22, &amp;quot;...&amp;quot;, //...). Опасные протоколы (javascript:, data:) блокируются.

</td><td>Мобильное приложение</td><td>[ALLY-5796](https://tracker.yandex.ru/ALLY-5796)</td></tr><tr><td>17</td><td>**Ранее:**

При получении push-уведомлений в МП могла возникать ошибка из-за чего счётчик непрочитанных новостей обновлялся нестабильно.

**Теперь:**

Добавлена корректная обработка ситуации, когда данные счётчика отсутствуют. Ошибка больше не возникает, счётчик непрочитанных обновляется корректно.

</td><td>Мобильное приложение</td><td>[ALLY-5678](https://tracker.yandex.ru/ALLY-5678)</td></tr><tr><td>18</td><td>**Ранее:**

При загрузке аватара запрос мог завершаться сетевой ошибкой, из-за чего появлялось исключение и пользователю было непонятно, почему фото не загрузилось.

**Теперь:**

Улучшена обработка сетевых ошибок при загрузке аватара: пользователю показывается локализованное сообщение об ошибке, а приложение корректно обрабатывает исключение без падений.

</td><td>Мобильное приложение</td><td>[ALLY-6000](https://tracker.yandex.ru/ALLY-6000)</td></tr><tr><td>19</td><td>**Ранее:**

Если приложение было свернуто, при переходе по пушу открывался последний экран, который был открыт в МП, а не нужный раздел.

**Теперь:**

При переходе по пуш-уведомлению МП корректно открывает целевой экран, даже если до этого был открыт другой раздел и приложение было свернуто.

</td><td>Мобильное приложение</td><td>[ALLY-3130](https://tracker.yandex.ru/ALLY-3130)</td></tr><tr><td>20</td><td>**Ранее:**

При обновлении страницы в МП иногда возникала ошибка, из-за которой обновление проходило нестабильно.

**Теперь:**

Добавили защитную проверку перед вызовом reloadPage, чтобы ошибка не возникала.

</td><td>Мобильное приложение</td><td>[ALLY-5298](https://tracker.yandex.ru/ALLY-5298)</td></tr><tr><td>21</td><td>**Ранее:**

При добавлении фото в комментарий возникала ошибка "The "uri" argument must be a string".

**Теперь:**

Исправлена обработка uri при загрузке фото в комментариях. В передаётся корректное строковое значение, ошибка больше не возникает.

</td><td>Мобильное приложение</td><td>[ALLY-5795](https://tracker.yandex.ru/ALLY-5795)</td></tr><tr><td>22</td><td>**Ранее:**

Экран "Команда" мог показывать ошибку при загрузке списка коллег.

**Теперь:**

Список коллег переработан. Экран стабильно открывается и корректно обновляет данные при свайпе вниз.

</td><td>Мобильное приложение</td><td>[ALLY-5444](https://tracker.yandex.ru/ALLY-5444)</td></tr><tr><td>23</td><td>**Ранее:**

При попытке выбрать изображение из галереи на Android могла возникать ошибка. Из-за этого загрузка изображения работала нестабильно.

**Теперь:**

Исправлена работа выбора изображения из галереи на Android.

</td><td>Мобильное приложение</td><td>[ALLY-5669](https://tracker.yandex.ru/ALLY-5669)</td></tr><tr><td>24</td><td>**Ранее:**

На iOS приложение могло падать при навигации в модуле Team.

**Теперь:**

Исключили обновление состояния после размонтирования, добавили проверку данных перед трансформацией и корректную обработку GraphQL-ошибок.

</td><td>Мобильное приложение</td><td>[ALLY-6002](https://tracker.yandex.ru/ALLY-6002)</td></tr><tr><td>25</td><td>**Ранее:**

При переходе на следующий месяц в календаре на датах из "хвостика" предыдущего месяца мог отображаться красный индикатор непросмотренной смены, хотя сама смена не показывалась.

**Теперь:**

В "хвостах" месяца убрали отображение красных индикаторов, чтобы не вводить пользователя в заблуждение.

</td><td>Мобильное приложение</td><td>[ALLY-5509](https://tracker.yandex.ru/ALLY-5509)</td></tr><tr><td>26</td><td>**Ранее:**

Если в базе было две активные учётки с одинаковым email, при попытке сохранить изменения в разделе "Обо мне" в МП возникала необработанная ошибка.

**Теперь:**

Ошибка при сохранении обрабатывается и показывается пользователю понятным сообщением. Редактирование профиля больше не ломается из-за дубля email.

</td><td>Мобильное приложение</td><td>[ALLY-5811](https://tracker.yandex.ru/ALLY-5811)</td></tr><tr><td>27</td><td>**Ранее:**

Если просмотреть смену, а затем переключиться в представление "Отклонения по моим местам" и вернуться в календарь, ранее просмотренные смены снова помечались как непросмотренные.

**Теперь:**

После переключения представления индикатор непросмотренной смены не появляется повторно на уже просмотренных сменах.

</td><td>Мобильное приложение</td><td>[ALLY-5641](https://tracker.yandex.ru/ALLY-5641)</td></tr><tr><td>28</td><td>**Ранее:**

На iOS 18+ в календаре тоггл "Только из моих мест" отображался слишком крупным и "упирался" в край экрана.

**Теперь:**

Исправили отображение системного тоггла на iOS 18+. Элемент корректно помещается на экране и выглядит нормально.

</td><td>Мобильное приложение</td><td>[ALLY-5879](https://tracker.yandex.ru/ALLY-5879)</td></tr><tr><td>29</td><td>**Ранее:**

В StaffRequestsStub useLoadedUser() мог возвращать null, из-за чего появлялась ошибка из-за которой экран работал нестабильно.

**Теперь:**

Добавили проверки и скорректировали получение пользователя чтобы экран не падал при null.

</td><td>Мобильное приложение</td><td>[ALLY-5606](https://tracker.yandex.ru/ALLY-5606)</td></tr><tr><td>30</td><td>**Ранее:**

В календаре в редких случаях возникала ошибка Cannot read property 'users' of undefined, из-за чего появлялись ошибки.

**Теперь:**

Добавлена проверка перед трансформацией scheduleBindings. Ошибка больше не возникает.

</td><td>Мобильное приложение</td><td>[ALLY-5911](https://tracker.yandex.ru/ALLY-5911)</td></tr><tr><td>31</td><td>**Ранее:**

В разделе "Окна" отображался устаревший текст-заглушка.

**Теперь:**

Текст обновлён на актуальный.

</td><td>Мобильное приложение</td><td>[ALLY-5901](https://tracker.yandex.ru/ALLY-5901)</td></tr><tr><td>32</td><td>**Ранее:**

После ввода кода из СМС приложение могло падать при запуске.

**Теперь:**

Исправили загрузку полифиллов. Приложение запускается корректно, без краша после ввода кода.

</td><td>Мобильное приложение</td><td>[ALLY-6184](https://tracker.yandex.ru/ALLY-6184)</td></tr><tr><td>33</td><td>**Ранее:**

После ухода приложения в фон и возвращения к работе с интерфейсом, при переходе с экрана редактирования смены на Profile приложение могло падать с ошибкой.

**Теперь:**

Переход на Profile стабилен. Краш устранён, экран профиля и редактирование профиля открываются корректно без падений.

</td><td>Мобильное приложение</td><td>[ALLY-5814](https://tracker.yandex.ru/ALLY-5814)</td></tr><tr><td>34</td><td>**Ранее:**

На Android приложение могло падать на экране splash screen.

**Теперь:**

Добавили задержку отображения splash screen и скорректировали отображение логотипа. Падение на старте устранено.

</td><td>Мобильное приложение</td><td>[ALLY-5601](https://tracker.yandex.ru/ALLY-5601)</td></tr><tr><td>35</td><td>**Ранее:**

При открытии календаря в могла возникать ошибка TypeError: Cannot read property 'users' of null. В schedulesData приходил null, из-за чего интерфейс работал нестабильно.

**Теперь:**

Исправили структуру хранения данных смен. schedulesData больше не бывает null, ошибка в CalendarView не возникает.

</td><td>Мобильное приложение</td><td>[ALLY-5445](https://tracker.yandex.ru/ALLY-5445)</td></tr><tr><td>36</td><td>**Ранее:**

При открытии формы добавления смены в МП могло возникать исключение Cannot read property 'restaurant' of undefined.

**Теперь:**

Добавили защиту от отсутствующих данных при инициализации AddShift. Форма открывается корректно, без ошибки.

</td><td>Мобильное приложение</td><td>[ALLY-5478](https://tracker.yandex.ru/ALLY-5478)</td></tr><tr><td>37</td><td>**Ранее:**

В контейнере Calendar при некоторых условиях restaurants мог быть пустым, из-за чего возникала ошибка Cannot read property 'reduce' of undefined.

**Теперь:**

Добавили проверку. Если restaurants не пришли, то используется пустой объект, и ошибка не возникает.

</td><td>Мобильное приложение</td><td>[ALLY-5480](https://tracker.yandex.ru/ALLY-5480)</td></tr><tr><td>38</td><td>**Ранее:**

Меню в МП отображалась не полностью. Часть контента обрезалась, потому что шторка открывалась не поверх нижнего меню.

**Теперь:**

Шторки отображаются поверх нижнего меню, от самого низа экрана, поэтому контент не обрезается и элементы доступны.

</td><td>Мобильное приложение</td><td>[ALLY-5773](https://tracker.yandex.ru/ALLY-5773)</td></tr><tr><td>39</td><td>**Ранее:**

После ввода фильтра несколько секунд "ничего не происходит", нет лоадера и анимации.

**Теперь:**

При поиске показывается лоадер, видно что фильтр применятся

</td><td>Мобильное приложение</td><td>[ALLY-5876](https://tracker.yandex.ru/ALLY-5876)</td></tr></tbody></table>

---

##### **Технические задачи:**

<table border="1" id="bkmrk-%E2%84%96-%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8-%D0%9F%D1%80-1" style="border-collapse: collapse; width: 100%; height: 454.891px;"><colgroup><col style="width: 4.44994%;"></col><col style="width: 70.4577%;"></col><col style="width: 13.5967%;"></col><col style="width: 11.4957%;"></col></colgroup><tbody><tr style="height: 46.5938px;"><td style="height: 46.5938px;">№</td><td style="height: 46.5938px;">Описание задачи</td><td style="height: 46.5938px;">Приложение</td><td style="height: 46.5938px;">Задача в Трекере</td></tr><tr><td>1</td><td>Для повышения качества анализа пользовательских сценариев и ошибок обновлены настройки Sentry Replay.

Теперь записи сессий отображают реальное содержимое интерфейса.

</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-6089](https://tracker.yandex.ru/ALLY-6089)</span></td></tr><tr><td>2</td><td>Расширены возможности гибких настроек.

Теперь в них доступны биндинги из scheduleBindings. Это позволяет загружать данные календаря и связанные данные один раз и переиспользовать их в разных частях интерфейса.

</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-4256](https://tracker.yandex.ru/ALLY-4256)</span></td></tr><tr><td>3</td><td>Проведена оптимизация серверной функции getIdentity, которая влияет на время отклика системы.

</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-3268](https://tracker.yandex.ru/ALLY-3268)</span></td></tr><tr><td>4</td><td>Введено ограничение ролям Оператор и Поддержка которые могли редактировать и удалять плановые смены.

Теперь они имеют права только на просмотр.

</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-5617](https://tracker.yandex.ru/ALLY-5617)</span></td></tr><tr><td>5</td><td>Улучшено управление отображением пользовательских комментариев в формах веб-версии и мобильного приложения.

Теперь сообщения можно контролировать точечно через настройки.

</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-5892](https://tracker.yandex.ru/ALLY-5892)</span></td></tr><tr><td>6</td><td>Реализована доработка, которая убирает жёстко зашитую логику загрузки данных для строки "Потребность в исполнителях" и переносит её в конфигурационные настройки.

</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-4365](https://tracker.yandex.ru/ALLY-4365)</span></td></tr><tr><td>7</td><td>Проведено обновление сборочной инфраструктуры веб-приложения.</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-5118](https://tracker.yandex.ru/ALLY-5118)</span></td></tr><tr><td>8</td><td>Проведена очистка веб-проекта от неиспользуемых и устаревших модулей.</td><td>Веб-приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-5455](https://tracker.yandex.ru/ALLY-5455)</span></td></tr><tr><td>9</td><td>В мобильном приложении выполнена очистка кодовой базы от неиспользуемого и устаревшего кода.</td><td>Мобильное приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-6123](https://tracker.yandex.ru/ALLY-6123)</span></td></tr><tr><td>10</td><td>Проведена очистка мобильного приложения от неиспользуемых и устаревших модулей.</td><td>Мобильное приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-6149](https://tracker.yandex.ru/ALLY-6149)</span></td></tr><tr><td>11</td><td>В мобильном приложении выполнена очистка продакшн-кода от отладочных логов,</td><td>Мобильное приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-3342](https://tracker.yandex.ru/ALLY-3342)</span></td></tr><tr><td>12</td><td>В мобильном приложении установлен пакет expo-system-ui для корректной работы настроек на Android.</td><td>Мобильное приложение</td><td><span style="color: rgb(35, 111, 161);">[ALLY-6054](https://tracker.yandex.ru/ALLY-6054)</span></td></tr><tr><td>13</td><td>В мобильном приложении настроен сбор продуктовой и технической аналитики с помощью Яндекс AppMetrica.</td><td>Мобильное приложение</td><td>[<span style="color: rgb(35, 111, 161);">ALLY-4532</span>](https://tracker.yandex.ru/ALLY-4532)</td></tr></tbody></table>