Расширение поля формы для поля табличного документа.ГоризонтальнаяПолосаПрокрутки

Свойства · HorizontalScrollBar

Тип: ИспользованиеПолосыПрокрутки. Управляет отображением горизонтальной полосы прокрутки в табличном документе.

Полное описание, параметры и ограничения

Расширение поля формы для поля табличного документа.ГоризонтальнаяПолосаПрокрутки (Form field extension for a spreadsheet document field.HorizontalScrollBar)

Расширение поля формы для поля табличного документа (Form field extension for a spreadsheet document field)

ГоризонтальнаяПолосаПрокрутки (HorizontalScrollBar)

Доступен, начиная с версии 8.2.

Использование:
Чтение и запись.
Описание:
Тип: ИспользованиеПолосыПрокрутки.
Управляет отображением горизонтальной полосы прокрутки в табличном документе.
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Настроить размер поля своего табличного документа

Таблица остаётся три строки на две колонки. Меняются ограничения и размер элемента формы, не количество строк данных.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. Создайте отдельную внешнюю обработку с новой пустой управляемой основной формой в учебной базе. ПриСозданииНаСервере назначьте одноимённой процедуре.

  2. Вставьте полный модуль на уровне модуля формы. УчебныйДокумент, УчебноеПолеТаблицы и кнопку вручную не создавайте: их добавляет код.

  3. Каждый урок — отдельная копия формы. Таблица содержит только собственную Книгу (3) и Ручку (1); это не печатная форма рабочего документа.

  4. Настольный тонкий/толстый или веб-клиент. Для урока очистки выделения выберите интерфейс Версия 8.5: его поведение выделения отдельно отмечено в справке.

  5. Код не вызывает печать, сохранение файла, сетевой обмен или запись базы. Внешняя кнопка остаётся вне табличного поля и его состояния.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Новые = Новый Массив;
    Новые.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТабличныйДокумент")));
    ЭтаФорма.ИзменитьРеквизиты(Новые);
    Документ = Новый ТабличныйДокумент;
    Документ.Область(1, 1).Текст = "Товар";
    Документ.Область(1, 2).Текст = "Количество";
    Документ.Область(2, 1).Текст = "Книга";
    Документ.Область(3, 1).Текст = "Ручка";
    Для НомерСтроки = 2 По 3 Цикл
        Ячейка = Документ.Область(НомерСтроки, 2);
        Ячейка.СодержитЗначение = Истина;
        Ячейка.ТипЗначения = Новый ОписаниеТипов("Число");
        Если НомерСтроки = 2 Тогда
            Ячейка.Значение = 3;
        Иначе
            Ячейка.Значение = 1;
        КонецЕсли;
    КонецЦикла;
    Документ.Область(, 1, , 1).ШиринаКолонки = 25;
    Документ.Область(, 2, , 2).ШиринаКолонки = 12;
    Документ.Область(2, 1, 3, 2).Имя = "УчебныеТовары";
    Документ.ТолькоПросмотр = Истина;
    ЭтаФорма.УчебныйДокумент = Документ;
    Поле = Элементы.Добавить("УчебноеПолеТаблицы", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
    Поле.ПутьКДанным = "УчебныйДокумент";
    Поле.Редактирование = Ложь;
    Поле.РазрешитьНачалоПеретаскивания = Ложь;
    Поле.РазрешитьПеретаскивание = Ложь;
    Поле.АвтоМаксимальнаяВысота = Ложь;
    Поле.АвтоМаксимальнаяШирина = Ложь;
    Поле.Высота = 10;
    Поле.Ширина = 45;
    Поле.МаксимальнаяВысота = 20;
    Поле.МаксимальнаяШирина = 80;
    Поле.РастягиватьПоВертикали = Истина;
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.ВертикальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.ИспользоватьАвтоматически;
    Поле.ГоризонтальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.ИспользоватьАвтоматически;


    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить свою таблицу";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Поле = Элементы.УчебноеПолеТаблицы;
    Если Поле.Высота = 10 Тогда
        Поле.Высота = 16;
    Иначе
        Поле.Высота = 10;
    КонецЕсли;
    Сообщить("Высота поля: " + Строка(Поле.Высота));
    Сообщить(Поле.Ширина = 45);
    Сообщить(ЭтаФорма.УчебныйДокумент.ВысотаТаблицы = 3);
    Сообщить(ЭтаФорма.УчебныйДокумент.ШиринаТаблицы = 2);
    Сообщить(ЭтаФорма.УчебныйДокумент.Область(2, 2).Значение = 3);
    Сообщить(ЭтаФорма.УчебныйДокумент.Область(3, 2).Значение = 1);
КонецПроцедуры

Разбор по шагам

  1. Высота задаётся в строках, Ширина в символах. Это размеры элемента, не свойства ВысотаТаблицы/ШиринаТаблицы документа.

  2. Отключение автоматических максимумов делает применимыми явные МаксимальнаяВысота и МаксимальнаяШирина; нулевое значение сняло бы ограничение.

  3. Растягивание разрешает изменение области при изменении формы. Автоматические полосы появляются при нехватке места, а не обязательно на маленькой таблице.

  4. Кнопка меняет только высоту поля. По справке изменение размеров на клиенте требует обращения к серверу.

Как проверить результат

  1. Пять Истина и высота 16/10 при последовательных нажатиях.

  2. Книга 3 и Ручка 1 остаются в таблице, даже если окно сделать меньше.

Ожидаемый результат

Геометрия элемента отделена от геометрии собственных данных.

На что обратить внимание

  1. Это не точные пиксельные размеры и не универсальный макет для всех клиентов.

  2. Полосы прокрутки могут не понадобиться трём строкам.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.