При работе с веб-клиентом «1С:Предприятие» пользователи часто сталкиваются с ситуацией, когда при открытии отчетов или обработок, содержащих табличный документ, происходит внезапное закрытие сеанса. Проблема сопровождается техническим сообщением в консоли браузера Cannot read property 'toUpperCase' of undefined. Давайте подробно разберем, почему это происходит, и какие шаги необходимо предпринять для стабилизации работы системы.
Рассмотрим природу данной проблемы. Ошибка имеет технологический характер и напрямую связана с тем, как JavaScript-движок платформы взаимодействует с объектной моделью документа (DOM) в браузерах на базе Chromium (Google Chrome, Microsoft Edge, Яндекс.Браузер). Проанализируем ситуацию: при движении курсора мыши в области ТабличныйДокумент, который находится в режиме загрузки или интерактивной отрисовки, платформа пытается обратиться к свойствам ячеек, которые еще не были полностью инициализированы в памяти браузера.
Поскольку современные версии Chrome (начиная с 88-й версии) изменили алгоритмы обработки событий прокрутки и фокуса, возникла рассинхронизация. Скрипт платформы вызывает метод toUpperCase() для текстового значения, которое в данный момент имеет статус undefined. Это приводит к необрабатываемому исключению и аварийному завершению работы вкладки веб-клиента. Примечательно, что в Mozilla Firefox данная проблема практически не встречается из-за иных механизмов обработки очереди событий отрисовки, хотя скорость работы в этом браузере может быть субъективно ниже.
Выясним, в каких версиях проблема была официально устранена фирмой «1С». Ошибке был присвоен код 10228928. Согласно официальным баг-трекерам, исправление вошло в следующие релизы:
Если вы используете релизы веток 8.3.18 (например, 1208 или 1289), первым делом рекомендуем выполнить обновление сервера и клиентских лицензий до актуальных сборок. После обновления платформы необходимо обязательно переопубликовать информационную базу на веб-сервере (IIS или Apache), чтобы обновить статические файлы JS-клиента.
Разберем ситуацию, когда обновление платформы временно невозможно по организационным причинам. В этом случае наиболее надежным методом является переход на использование Тонкого клиента. Рассмотрим преимущества этого подхода:
toUpperCase.Для реализации этого метода пользователям достаточно установить платформу один раз. В строке подключения в стартере 1С указывается адрес веб-сервера (URL), что позволяет работать через интернет без использования VPN, сохраняя преимущества веб-протокола, но используя стабильную программную оболочку.
Если вы вынуждены продолжать работу именно в браузере, проанализируем настройки веб-сервера. Иногда ошибку провоцирует некорректная работа протокола WebSocket, который используется для обмена данными между сервером 1С и браузером. Попробуем переключить механизм взаимодействия:
Это заставит веб-клиент перейти на использование длинных HTTP-запросов (long polling). Скорость отклика может незначительно снизиться, но стабильность передачи данных при формировании тяжелых отчетов (например, «Оборотно-сальдовая ведомость» с большим количеством группировок) повысится, так как данные будут передаваться более предсказуемыми порциями.
Посмотрим, какие манипуляции на стороне пользователя могут помочь избежать падения вкладки. Выделим несколько практических советов:
1. Отключение аппаратного ускорения. В некоторых случаях отрисовка сложной сетки табличного документа конфликтует с видеодрайвером через браузер. Зайдите в «Настройки» -> «Система» и отключите параметр «Использовать аппаратное ускорение (при наличии)». Перезапустите браузер.
2. Масштаб страницы. Ошибка чаще проявляется, если масштаб в браузере отличен от 100%. Округление координат ячеек при 90% или 110% масштабе может приводить к тому, что событие мыши попадает на пустую область, вызывая исключение в коде 1С. Установите масштаб 100%.
3. Глубокая очистка кэша. Обычной очистки истории недостаточно. Разберем, как очистить специфические данные веб-клиента:
F12 в браузере для открытия консоли разработчика.IndexedDB и Local Storage, где могут храниться устаревшие и конфликтующие настройки компоновки форм.Рассмотрим вариант установки базы как отдельного приложения через Chrome. Несмотря на то, что PWA использует тот же движок, оно работает в изолированном контексте. Чтобы создать PWA, нажмите на иконку «установки» в правой части адресной строки браузера при открытом веб-клиенте. По отзывам системных администраторов, PWA работает более отзывчиво, хотя при наличии бага в самой платформе (как в случае с 8.3.18.1208) оно не является панацеей, но может снизить частоту проявления ошибки за счет более эффективного кэширования статических ресурсов платформы.
Подводя итог, отметим: если вы столкнулись с ошибкой toUpperCase в веб-клиенте на платформе 8.3.18, наиболее правильным и долгосрочным решением является переход на релиз 8.3.18.1363 или ветку 8.3.19. Все остальные методы, такие как использование Firefox или настройка IIS, являются временными мерами (workarounds), позволяющими поддерживать работоспособность системы до момента планового обновления платформы.