ОбластьЯчеекТабличногоДокумента.Низ

Свойства · Bottom

Тип: Число. Предназначено для определения координат области. Содержит номер последней строки в области.

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

ОбластьЯчеекТабличногоДокумента.Низ (SpreadsheetDocumentRange.Bottom)

ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange)

Низ (Bottom)

Доступен, начиная с версии 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).Имя = "УчебныеТовары";
    Документ.ТолькоПросмотр = Истина;
    ЭтаФорма.УчебныйДокумент = Документ;
    Поле = Элементы.Добавить("УчебноеПолеТаблицы", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
    Поле.ПутьКДанным = "УчебныйДокумент";
    Поле.Редактирование = Ложь;
    Поле.РазрешитьНачалоПеретаскивания = Ложь;
    Поле.РазрешитьПеретаскивание = Ложь;
    Поле.ОтображатьСетку = Истина;
    Поле.ОтображатьЗаголовки = Истина;
    Поле.ОтображатьГруппировки = Истина;
    Поле.ОтображатьИменаСтрокИКолонок = Истина;
    Поле.ОтображатьИменаЯчеек = Истина;
    Поле.ЧерноБелыйПросмотр = Ложь;
    Поле.ЦветРамки = Новый Цвет(180, 195, 210);
    Поле.РежимМасштабированияПросмотра = РежимМасштабированияПросмотра.Обычный;


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

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

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

  1. Режимы относятся к отображению поля. УчебныеТовары — собственная именованная область, созданная до привязки поля.

  2. После переключения область снова ищется по имени и проверяется на отсутствие. Координаты остаются 2..3.

  3. Группировки в этой маленькой таблице не созданы. ОтображатьГруппировки лишь разрешает их вывод и не создаёт группы само.

  4. ЧерноБелыйПросмотр меняет просмотр, не преобразует и не записывает файл. Изменение свойств на клиенте может обращаться к серверу.

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

  1. Три Истина и флаг технического вида. Первое нажатие скрывает служебное отображение, второе возвращает.

  2. Без созданных групп не обещается появление значков группировки.

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

Служебные подсказки скрыты без удаления собственных областей.

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

  1. Черно-белый просмотр не равен настройке конкретного принтера.

  2. Имена строк/колонок и именованная область ячеек — разные виды служебного отображения.

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

Получить смысл значений области сводной, а не только текст ячейки

ПолучитьЗначения возвращает структуру по левой верхней ячейке переданной области. За пределами сводной результат — Неопределено.

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

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

Подготовка

  1. Создайте новую внешнюю обработку с управляемой основной формой в учебной базе. Каждый урок — отдельная копия модуля.

  2. На форме создайте команду УчебныйПример и перетащите её на форму как кнопку. В действии команды выберите процедуру УчебныйПример(Команда).

  3. Вставьте весь модуль из примера: УчебныйПример, ПостроитьУчебныйДокумент и УчебнаяТаблица. Серверный вызов возвращает собственный табличный документ клиенту; директивы не удаляйте.

  4. Никакие макеты, документы и справочники конфигурации не нужны. Всё построение — в памяти, без печати, записи файлов и отправки в сервисы.

  5. Показ и ручную проверку выполняйте в тонком клиенте Windows 8.5.1.1343. Каждый урок — отдельная копия формы с пустым модулем до вставки.

&НаКлиенте
Процедура УчебныйПример(Команда)
    ТабДок = ПостроитьУчебныйДокумент();

    ТабДок.Показать("Учебный документ — без печати и сохранения");
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПостроитьУчебныйДокумент()
    ТабДок = Новый ТабличныйДокумент;
    Источник = Новый ТаблицаЗначений;
    Источник.Колонки.Добавить("Товар", Новый ОписаниеТипов("Строка"));
    Источник.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
    Источник.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
    СтрокаТовара = Источник.Добавить();
    СтрокаТовара.Товар = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара.Сумма = 750;
    СтрокаТовара = Источник.Добавить();
    СтрокаТовара.Товар = "Ручка";
    СтрокаТовара.Количество = 1;
    СтрокаТовара.Сумма = 50;
    Менеджер = Новый МенеджерВременныхТаблиц;
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Менеджер;
    Запрос.УстановитьПараметр("Источник", Источник);
    Запрос.Текст = "ВЫБРАТЬ Д.Товар, Д.Количество, Д.Сумма
    |ПОМЕСТИТЬ ВТУчебныеТовары ИЗ &Источник КАК Д;
    |ВЫБРАТЬ Д.Товар, Д.Количество, Д.Сумма
    |ИЗ ВТУчебныеТовары КАК Д
    |ИТОГИ СУММА(Количество), СУММА(Сумма) ПО Товар";
    Попытка
        Пакет = Запрос.ВыполнитьПакет();
        Результат = Пакет.Получить(1);
    Исключение
        Менеджер.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Менеджер.Закрыть();
    Сводная = ТабДок.ВстроенныеТаблицы.Добавить(Тип("СводнаяТаблица"), ТабДок.Область(2, 1));
    Сводная.Имя = "УчебныеТовары";
    Сводная.ИсточникДанных = Результат;
    Сводная.Строки.Добавить("Товар");
    Сводная.Данные.Добавить("Количество");
    Сводная.Данные.Добавить("Сумма");
    Сводная.Обновить();
    Область = Сводная.Область;
    Данные = Сводная.ОбластьДанных;
    Если Область = Неопределено Или Данные = Неопределено Тогда
        ВызватьИсключение "После обновления ожидаются области собственной сводной";
    КонецЕсли;
    Значения = Сводная.ПолучитьЗначения(Данные);
    Если Значения = Неопределено Тогда
        ВызватьИсключение "В собственной области данных ожидается структура значений";
    КонецЕсли;
    Сумма = Неопределено;
    ЕстьСумма = Значения.Свойство("Сумма", Сумма);
    Сообщить(ЕстьСумма);
    Если ЕстьСумма Тогда
        Сообщить(ТипЗнч(Сумма) = Тип("Число"));
        Сообщить(Сумма = 750 Или Сумма = 50 Или Сумма = 800);
    КонецЕсли;
    Внешняя = ТабДок.Область(Область.Низ + 5, Область.Право + 5);
    Сообщить(Сводная.ПолучитьЗначения(Внешняя) = Неопределено);
    Сообщить("Заголовки строк: " + Строка(Сводная.ОбластьЗаголовковСтрок));
    Сообщить("Заголовки колонок: " + Строка(Сводная.ОбластьЗаголовковКолонок));
    Возврат ТабДок;
КонецФункции

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

  1. Получаем фактические Область и ОбластьДанных после обновления, проверяя их наличие.

  2. Метод анализирует только левую верхнюю ячейку даже при передаче большой области.

  3. Набор ключей структуры зависит от места: заголовок, данные или общие итоги; наличие Сумма проверяем через Свойство.

  4. Внешнюю ячейку выбираем по координатам за правой нижней границей и обрабатываем отрицательный результат.

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

  1. Для области данных ЕстьСумма и числовой тип должны дать Истина; допустимы только собственные суммы 750, 50 или общий итог 800.

  2. За пределами сводной сравнение с Неопределено Истина; к свойствам такого результата не обращаемся.

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

Получены типизированные значения и разобраны границы сводной таблицы.

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

  1. ПолучитьЗначения не возвращает все строки области одним вызовом.

  2. Не считайте текст видимой ячейки числом без проверки: структура метода сохраняет тип значения.

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

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

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

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

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