Многие технические специалисты и пользователи сталкиваются с крайне неприятной ситуацией: при заполнении длинного комментария или уточнении данных в поле доставки в программах «1С:Управление торговлей 11.5» или «1С:Бухгалтерия 3.0» набранный текст внезапно исчезает. Это может происходить прямо в процессе печати или сразу после нажатия кнопки проведения документа. В данной статье мы подробно разберем причины этого поведения и способы его устранения.
Проанализируем ситуацию: чаще всего корень проблемы кроется не в ошибке самого пользователя и даже не в коде конкретного документа, а в особенностях работы платформы 1С:Предприятие 8.3. Основной технический виновник — некорректная обработка фокуса ввода при срабатывании фоновых процессов обновления формы.
Рассмотрим механизм возникновения ошибки подробнее. В современных типовых конфигурациях активно используется Библиотека стандартных подсистем (БСП). Она включает в себя механизмы динамического считывания данных и различные обработчики ожидания. Проблема возникает из-за следующей последовательности событий:
Комментарий).8.3.23.1786 и смежных), система «сбрасывает» текущее незафиксированное состояние текстового поля, возвращая в него то значение, которое было в базе данных до начала ввода.Опыт эксплуатации показывает, что наиболее подвержены этой ошибке релизы платформы 8.3.23. Хотя в обсуждениях иногда упоминаются и другие версии, именно в этой ветке баг с удержанием фокуса и очисткой строковых полей при интерактивном вводе был признан официально. Если вы используете версию 8.3.23.1786, то риск столкнуться с потерей данных в комментариях крайне высок.
Исправление было выпущено в последующих сборках. Разберем, какие версии считаются стабильными в отношении данной проблемы:
8.3.23.1912 и выше.8.3.24.1342 и выше.В конфигурации «Управление торговлей 11.5» ситуация усугубляется наличием механизма длительных операций. Когда вы работаете с документом, система в фоновом режиме может выполнять проверку остатков или расчет автоматических скидок. Посмотрим, какой код в типовых решениях может провоцировать обновление формы:
// Пример типичного подключения обработчика в БСП
ПодключитьОбработчикОжидания("Подключаемый_ПриИзмененииДанныхНаСервере", 10, Истина);
Если интервал проверки слишком мал, а время отклика сервера (пинг) нестабильно, данные «затираются» ответом от сервера, который приходит позже того момента, как пользователь набрал часть предложения. Проанализируем, как это можно временно «приглушить», если обновление платформы невозможно в ближайшие часы.
Рассмотрим основные шаги по исправлению ситуации, начиная от самых эффективных.
Это единственный надежный способ полностью устранить баг. Необходимо обновить платформу 1С:Предприятие на всех серверах и рабочих станциях (или в кластере серверов). При переходе на стабильный релиз (например, 8.3.24.хх) проблема исчезает без изменения кода конфигурации.
В некоторых случаях (например, в БП 3.0 или УТ 11) помогает отключение динамического обновления итогов или полнотекстового поиска. Это снижает нагрузку на форму и уменьшает количество фоновых вызовов сервера.
Иногда после обновления платформы проблема сохраняется из-за «зависших» данных в локальном кэше. Рассмотрим, как правильно выполнить очистку:
%AppData%\1C\1cv8\ (папки с длинными идентификаторами).В качестве временного костыля для конкретного пользователя можно попробовать отключить автоматическое сохранение данных в настройках формы (кнопка Еще — Изменить форму). Однако это помогает редко, так как основная причина кроется в системных вызовах БСП.
Если ваши пользователи работают через браузер (Chrome, Edge), выясним, не связана ли проблема с расширениями для проверки орфографии. В браузерах на базе Chromium существует специфический конфликт: если включена встроенная проверка правописания, она может перехватывать событие изменения текста раньше, чем это сделает платформа 1С. В этом случае попробуйте отключить проверку орфографии в настройках браузера или использовать Тонкий клиент 1С.
Резюмируем: если вы столкнулись с исчезновением текста в полях «Комментарий» или «Доставка» в «1С:Управлении торговлей 11.5», первым делом проверьте версию вашей платформы. Если она ниже 8.3.23.1912, планируйте обновление — это решит проблему раз и навсегда.