Многие пользователи 1С:Бухгалтерия 3.0 на последних версиях платформы (8.3.25, 8.3.26 и 8.3.27) столкнулись с крайне неприятным поведением программы: при заполнении карточки контрагента введенный текст в полях Наименование, Дополнительная информация или Адрес внезапно исчезает через 15–60 секунд после начала редактирования. При этом курсор сбрасывается в начало строки, а символ "звездочка" (*), сигнализирующий об изменении объекта, пропадает. Проанализируем причины этой проблемы и разберем все доступные способы её решения.
Давайте разберем механику ошибки. Основная причина кроется в конфликте между интерактивным вводом данных пользователем и автоматическим фоновым обновлением управляемой формы. В современных конфигурациях 1С, таких как "Бухгалтерия предприятия 3.0", реализовано множество сервисов мониторинга:
Оповещение, которое заставляет форму "перечитаться".Рассмотрим по шагам, как можно исправить это поведение в зависимости от ваших возможностей (прав доступа и наличия программиста).
Компания 1С признала наличие проблемы и выпустила специальное исправление (патч). Это самый правильный и быстрый способ решения для типовых конфигураций.
Проанализируем процесс установки:
EF_60021748. Если его нет, нажмите Поиск и установка исправлений (требуется доступ к интернету и подписка ИТС).Если вы не можете оперативно установить патч или обновление конфигурации, попробуем временно отключить функционал, вызывающий принудительное обновление формы. Выясним, какой именно сервис мешает работе:
Это позволит пользователю спокойно вводить данные без вмешательства фоновых заданий, которые "перехватывают" фокус формы.
Разберем более глубокий технический метод. Если у вас доработанная конфигурация или вы используете расширение, можно повлиять на поведение конкретных полей ввода. Проблема часто связана со свойством Обновление текста редактирования.
Посмотрим на алгоритм действий в конфигураторе:
Контрагенты.ДополнительнаяИнформация).Обновление текста редактирования.Никогда вместо Авто.Что это дает: Платформа перестанет пытаться синхронизировать текст в поле до того момента, пока пользователь не нажмет Enter или не перейдет в другое поле. Это предотвратит внезапное "затирание" текста при приходе серверных оповещений.
Рассмотрим способ, который применяют разработчики внутри типовых конфигураций для обхода платформенных невязок. Смысл заключается в том, чтобы в процедуре ОбработкаОповещения явно вызывать методы обновления интерфейса, которые корректно обрабатывают текущее состояние элементов.
Пример программного кода, который добавляется в модуль формы:
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Стандартная логика обработки оповещений
Если ИмяСобытия = "ДанныеКонтрагентаИзменены" Тогда
// Вместо простого перечитывания вызываем обновление интерфейса
УправлениеФормой(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
Метод УправлениеФормой (или аналогичные процедуры в БСП) позволяет системе более "мягко" обновить данные, не сбрасывая состояние активного элемента управления, в котором находится курсор пользователя.
Проанализируем отзывы специалистов о версиях платформы. Если вы столкнулись с данной проблемой на версии 8.3.27.1606 или 8.3.25.1394, рекомендуется:
8.3.24, если специфика вашей работы позволяет использовать более раннюю версию платформы до выхода финальных исправлений в ветке 8.3.27.Таким образом, мы выяснили, что "исчезающий текст" — это не вирус и не случайный сбой, а результат коллизии фоновых процессов проверки контрагентов и новых механизмов оптимизации платформы 1С. Используйте установку патча как приоритетное решение.