Настроить области таблицы и зафиксировать код слева

Учебные задачи

Шапка и подвал имеют высоту в строках, фиксация слева — число колонок. Подвал количества считает собственные 3+1.

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

Модуль новой обычной формы внешней обработки. Только толстый клиент, обычные формы; не серверный модуль и не управляемая форма.

Подготовка

  1. Это обычная форма, не управляемая: используйте толстый клиент с обычными формами в отдельной учебной базе. Создайте новую внешнюю обработку, обычную форму и её реквизит Товары типа ТаблицаЗначений. Рабочие документы и справочники не нужны.

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

  3. Каждый урок — отдельный полный модуль этой учебной формы. Он заново создаёт в памяти Книгу (3) и Ручку (1), а СоздатьКолонки удаляет прежние колонки только своего табличного поля. Не вставляйте код в рабочую форму с настроенными колонками.

  4. Откройте форму, затем нажмите учебную кнопку. Изменения данных и оформления относятся только к реквизиту внешней обработки в памяти. Здесь нет Записать, обращения к рабочим данным или проверки интерфейса реальной УТ 10.3.

Процедура ПриОткрытии()
    Товары = Новый ТаблицаЗначений;
    Товары.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
    Товары.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево"));
    Книга = Товары.Добавить();
    Книга.Код = "A-01";
    Книга.Наименование = "Книга";
    Книга.Количество = 3;
    Книга.Выбран = Ложь;
    Ручка = Товары.Добавить();
    Ручка.Код = "B-02";
    Ручка.Наименование = "Ручка";
    Ручка.Количество = 1;
    Ручка.Выбран = Ложь;
    Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
    Таблица.СоздатьКолонки();
    Таблица.АвтоВводНовойСтроки = Ложь;
    Если Товары.Количество() <> 2 Тогда
        ВызватьИсключение "Ожидались два собственных учебных товара";
    КонецЕсли;
    Таблица.ТекущаяСтрока = Товары[0];
    Колонка = Таблица.Колонки.Найти("Количество");
    Если Колонка = Неопределено Тогда
        ВызватьИсключение "В своей таблице не найдена колонка количества";
    КонецЕсли;
    Таблица.Шапка = Истина;
    Таблица.Подвал = Истина;
    Таблица.ВысотаШапки = 2;
    Таблица.ВысотаПодвала = 1;
    Таблица.ВертикальныеЛинии = Истина;
    Таблица.ГоризонтальныеЛинии = Истина;
    Таблица.ВертикальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.ИспользоватьАвтоматически;
    Таблица.ГоризонтальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.ИспользоватьАвтоматически;
    Таблица.ФиксацияСлева = 1;
    Таблица.ФиксацияСправа = 0;
    Таблица.НачальноеОтображениеСписка = НачальноеОтображениеСписка.Начало;
    Колонка.ТекстПодвала = "Всего: " + Строка(Товары.Итог("Количество"));
    Колонка.ОтображатьВПодвале = Истина;
КонецПроцедуры

Процедура УчебнаяКоманда(Кнопка)
    Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
    Сообщить(Таблица.ВысотаШапки = 2 И Таблица.ВысотаПодвала = 1);
    Сообщить(Таблица.ФиксацияСлева = 1 И Таблица.ФиксацияСправа = 0);
    Сообщить(Таблица.Колонки.Найти("Количество").ТекстПодвала = "Всего: 4");
КонецПроцедуры

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

  1. Шапка показывает подписи колонок, подвал отдельный итог. Высоты не трактуются как пиксели.

  2. ФиксацияСлева=1 сохраняет первую колонку при горизонтальной прокрутке. ФиксацияСправа=0 означает отсутствие правого закрепления.

  3. Автоматические полосы появляются при необходимости; на двух строках вертикальная полоса может отсутствовать.

  4. Колонка количества выводит собственный итог 4 в подвале.

  5. НачальноеОтображениеСписка относится к открытию списка, не к сортировке строк.

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

  1. Три сообщения Истина.

  2. В шапке две строки, в подвале Всего: 4. Уменьшите размер формы для ручной проверки прокрутки.

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

Разобраны отдельные единицы размеров и закрепление колонок.

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

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

  2. Подвал — текст своего элемента, а не сохранённый итог регистра.

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

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

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

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

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