КолонкиТабличногоПоля.Получить

Методы · Get

Получает значение по индексу. Работает аналогично оператору [].

Синтаксис

Получить(<Индекс>)
Полное описание, параметры и ограничения

КолонкиТабличногоПоля.Получить (TableBoxColumns.Get)

КолонкиТабличногоПоля (TableBoxColumns)

Получить (Get)

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

Синтаксис:
Получить(<Индекс>)
Параметры:

<Индекс> (обязательный)
Тип: Число.
Индекс колонки.
Возвращаемое значение:
Тип: КолонкаТабличногоПоля.

Описание:

Получает значение по индексу. Работает аналогично оператору [].

Доступность:

Толстый клиент.

Примечание:
Применяется в случаях, когда использование оператора [] невозможно.
Использование в версии:

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

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

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

Изменить колонки своей формы, сохранив данные

Создаём дополнительные колонки по существующим полям, меняем порядок и удаляем их. После очистки СоздатьКолонки восстанавливает четыре колонки из данных.

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

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

Подготовка

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

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

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

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

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

Процедура УчебнаяКоманда(Кнопка)
    Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
    Колонки = Таблица.Колонки;
    Если Колонки.Количество() <> 4 Тогда
        ВызватьИсключение "Переоткройте свою форму с четырьмя исходными колонками";
    КонецЕсли;
    Дополнительная = Колонки.Добавить("КопияКоличества", "Ещё одно представление количества");
    Дополнительная.Данные = "Количество";
    Вставленная = Колонки.Вставить(0, "Учебный код");
    Вставленная.Имя = "КопияКода";
    Вставленная.Данные = "Код";
    Сообщить(Колонки.Количество() = 6);
    ИндексДополнительной = Колонки.Индекс(Дополнительная);
    Если ИндексДополнительной < 1 Или ИндексДополнительной >= Колонки.Количество() Тогда
        ВызватьИсключение "Нет допустимого индекса дополнительной колонки";
    КонецЕсли;
    Колонки.Сдвинуть(Дополнительная, -1);
    Сообщить(Колонки.Индекс(Дополнительная) = ИндексДополнительной - 1);
    Сообщить(Колонки.Получить(0).Имя = "КопияКода");
    Сообщить(Колонки.Найти("КопияКоличества") <> Неопределено);
    Колонки.Удалить(Дополнительная);
    Колонки.Удалить(Вставленная);
    Сообщить(Колонки.Количество() = 4);
    Колонки.Очистить();
    Сообщить(Колонки.Количество() = 0);
    Таблица.СоздатьКолонки();
    Сообщить(Таблица.Колонки.Количество() = 4);
    Сообщить(Товары.Количество() = 2 И Товары.Итог("Количество") = 4);
КонецПроцедуры

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

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

  2. Добавить получает имя и подпись, Вставить — индекс и подпись. Имя вставленной колонки задаётся отдельно.

  3. Сдвинуть получает объект колонки и относительное смещение, допустимость индекса проверяется до операции.

  4. Удалить принимает объект колонки. После удаления Дополнительная и Вставленная больше не используются.

  5. Очистить убирает только колонки интерфейса. СоздатьКолонки восстанавливает их из четырёх полей, а две строки и сумма 4 сохранены.

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

  1. Восемь сообщений Истина.

  2. Повторный запуск не накапливает дополнительные колонки.

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

Жизненный цикл собственных колонок отделён от структуры и строк данных.

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

  1. СоздатьКолонки удаляет ручное оформление прежних колонок: используйте только своё учебное поле.

  2. Не обращайтесь к объектам колонок после их удаления или пересоздания.

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

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

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

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

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