Как запретить изменение масштаба и скроллинг в табличном документе 1С

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

При разработке интерфейсов в 1С:Предприятие иногда возникает необходимость жестко зафиксировать отображение данных в поле табличного документа. Например, когда форма автоматически масштабируется под размер экрана, и требуется защитить интерфейс от случайного сдвига или изменения масштаба пользователем (через комбинацию Ctrl + колесо мыши или обычный скроллинг). Рассмотрим, какими средствами платформы и альтернативными решениями можно заблокировать прокрутку и масштабирование.

Способ 1. Отключение доступности элемента формы

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

Выясним причину, почему обычная установка свойства ТолькоПросмотр = Истина у табличного документа или Защита = Истина у ячеек не помогает: эти свойства запрещают только редактирование текста, но элемент всё равно продолжает принимать фокус ввода, из-за чего прокрутка и изменение масштаба остаются активными. Если же установить свойство Доступность = Ложь у элемента формы, поле перестает получать фокус, и обработка событий мыши блокируется.

Разберем пример кода для отключения доступности элемента формы:


// Отключаем доступность элемента формы табличного документа
Элементы.ПолеТабличногоДокумента.Доступность = Ложь;

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

Способ 2. Вывод данных через Поле HTML-документа

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

Разберем данный подход по шагам:

  1. Преобразуем табличный документ в HTML с помощью метода ПолучитьHTML().
  2. Загружаем полученный код в элемент Поле HTML-документа.
  3. В стилях CSS задаем параметр overflow: hidden для отключения полос прокрутки, а с помощью скриптов JavaScript отменяем обработку событий wheel и keydown.

Способ 3. Преобразование табличного документа в картинку

Рассмотрим ситуацию, когда табличный документ выполняет роль статичного дашборда или инфографики. В этом случае документ можно сгенерировать и перевести в графический объект.

Используем метод ПолучитьКартинку() табличного документа и выводим результат в элемент формы Поле картинки. В свойствах элемента настраиваем режим размера (например, АвтоРазмер или РеальныйРазмер). Элемент «Поле картинки» не реагирует на прокрутку колеса мыши и комбинации изменения масштаба.

Способ 4. Скрытие полос прокрутки элемента

Посмотрим на настройки отображения полос прокрутки в свойствах поля табличного документа на форме:

  1. Установим для свойств ВертикальнаяПрокрутка и ГоризонтальнаяПрокрутка значение НеИспользовать (или ИспользоватьНеОтображать).
  2. Графические ползунки скроллинга исчезнут с формы.

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

← На главную