Как устранить скачки горизонтальной прокрутки при редактировании ячеек таблицы в веб-клиенте 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе пользователей в веб-клиенте 1С:Предприятие нередко возникает неприятный визуальный дефект: если табличная часть документа или справочника достаточно широкая и смещена вправо по горизонтали, то при попытке отредактировать ячейку экран резко сдвигается в начало таблицы. В тонком клиенте такое поведение не воспроизводится. Проанализируем, почему возникает данный сбой в веб-интерфейсе, и разберем все способы его устранения и обхода.

Причины нестабильного поведения веб-интерфейса

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

  1. Особенности передачи фокуса в движках Chromium (Google Chrome, Яндекс.Браузер, Microsoft Edge): в режиме просмотра ячейка таблицы представлена обычным текстовым блоком DOM. Как только пользователь начинает ввод данных, платформа динамически создает элемент управления (поле ввода input или список select). Браузер при установке фокуса на новый элемент инициирует собственную прокрутку родительского контейнера к нулевой координате до того, как скрипты 1С завершат позиционирование. Это вызывает резкий рывок интерфейса. В движке Gecko (браузер Mozilla Firefox) обработка фокуса и прокрутки выполняется иначе, поэтому там проблема отсутствует.
  2. Ошибки масштабирования: масштаб страницы в браузере, отличный от 100%, либо нестандартный DPI в операционной системе приводит к погрешностям вычисления пиксельных координат веб-клиентом.
  3. Специфика релиза платформы: в платформе версии 8.3.11 и близких релизах наблюдались платформенные дефекты расчета позиционирования редактируемых элементов в виртуализированных таблицах.

Способ 1. Использование альтернативного веб-браузера

Самый быстрый способ решения проблемы на рабочих местах пользователей без доработки конфигурации — запуск веб-клиента в браузере Mozilla Firefox. Внутренняя архитектура обработки фокуса в этом браузере не сбрасывает координаты скроллинга контейнера таблицы при инициализации поля ввода.

Способ 2. Изменение режима редактирования таблицы

Разберем по шагам, как устранить дефект на уровне настроек формы в конфигураторе, не заставляя пользователей менять браузер:

  1. Откроем форму документа или справочника в конфигураторе.
  2. Выделим элемент Таблица (табличную часть).
  3. В палитре свойств найдем параметр РежимРедактирования (Режим редактирования).
  4. Изменим значение с Непосредственно на В диалоге либо Обоими способами.

При таком подходе редактирование строки происходит в отдельном всплывающем окне, что полностью исключает динамическую подмену элементов в DOM-дереве таблицы и блокирует паразитные смещения скролла.

Способ 3. Проверка фиксации колонок и свойств растягивания

Рассмотрим дополнительные настройки таблицы, провоцирующие ошибку расчета координат:

  1. Фиксация колонок: проверим свойства колонок ФиксацияСлева и ФиксацияСправа. Если на форме зафиксированы первые столбцы широкой таблицы, снимем эти флаги, так как они усложняют пересчет виртуального скролла в веб-интерфейсе.
  2. Автовысота ячеек: отключим свойство АвтоВысотаЯчейки у многострочных колонок, чтобы высота строки не пересчитывалась динамически в момент активации фокуса.
  3. Сброс масштаба: убедимся, что масштаб страницы в браузере пользователя установлен строго на 100% (сочетание клавиш Ctrl + 0).

Способ 4. Оптимизация компоновки формы (Master-Detail)

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

  1. Вынесем второстепенные реквизиты строки из самой таблицы на отдельную панель, расположенную под таблицей или в правой части формы.
  2. Свяжем отображение этих полей с реквизитами текущей строки (Элементы.ТабличнаяЧасть.ТекущиеДанные).
  3. В самой таблице оставим только ключевые поля, что позволит полностью отказаться от горизонтального скроллинга.

Способ 5. Обновление платформы 1С:Предприятие

В современных релизах платформы механизмы работы веб-клиента с элементами форм и синхронизация фокуса ввода в Chromium-браузерах были существенно доработаны. Если конфигурация позволяет, рекомендуется выполнить обновление технологической платформы с устаревшей ветки 8.3.11 на актуальные стабильные версии.

← На главную