Содержит данные текущей строки табличного поля.
Полное описание, параметры и ограничения
ТабличноеПоле.ТекущиеДанные (TableBox.CurrentData)
ТабличноеПоле (TableBox)
ТекущиеДанные (CurrentData)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Содержит данные текущей строки табличного поля.
Доступность:
Толстый клиент.
Примечание:
Тип значения данных строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
Для табличных полей, отображающих иерархический список в виде дерева, свойство может принимать значение Неопределено.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить оформление собственной строки
ОформлениеСтроки содержит данные выбранной строки и настройки цвета. Автоматическая отметка незаполненного значения не является запретом записи.
Где и как запускать
Модуль новой обычной формы внешней обработки. Только толстый клиент, обычные формы; не серверный модуль и не управляемая форма.
Подготовка
Это обычная форма, не управляемая: используйте толстый клиент с обычными формами в отдельной учебной базе. Создайте новую внешнюю обработку, обычную форму и её реквизит Товары типа ТаблицаЗначений. Рабочие документы и справочники не нужны.
В редакторе формы добавьте табличное поле ТаблицаТоваров, свойство Данные свяжите с реквизитом Товары. Добавьте обычную кнопку УчебнаяКоманда, её действие свяжите с процедурой УчебнаяКоманда. ПриОткрытии свяжите с одноимённым событием формы.
Каждый урок — отдельный полный модуль этой учебной формы. Он заново создаёт в памяти Книгу (3) и Ручку (1), а СоздатьКолонки удаляет прежние колонки только своего табличного поля. Не вставляйте код в рабочую форму с настроенными колонками.
Откройте форму, затем нажмите учебную кнопку. Изменения данных и оформления относятся только к реквизиту внешней обработки в памяти. Здесь нет Записать, обращения к рабочим данным или проверки интерфейса реальной УТ 10.3.
Процедура ПриОткрытии()
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Товары.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево"));
Книга = Товары.Добавить();
Книга.Код = "A-01";
Книга.Наименование = "Книга";
Книга.Количество = 3;
Книга.Выбран = Ложь;
Ручка = Товары.Добавить();
Ручка.Код = "B-02";
Ручка.Наименование = "Ручка";
Ручка.Количество = 1;
Ручка.Выбран = Ложь;
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Таблица.СоздатьКолонки();
Таблица.АвтоВводНовойСтроки = Ложь;
Если Товары.Количество() <> 2 Тогда
ВызватьИсключение "Ожидались два собственных учебных товара";
КонецЕсли;
Таблица.ТекущаяСтрока = Товары[0];
Колонка = Таблица.Колонки.Найти("Количество");
Если Колонка = Неопределено Тогда
ВызватьИсключение "В своей таблице не найдена колонка количества";
КонецЕсли;
Колонка.АвтоОтметкаНезаполненного = Истина;
КонецПроцедуры
Процедура УчебнаяКоманда(Кнопка)
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Текущая = Таблица.ТекущаяСтрока;
Если Текущая = Неопределено Тогда
Сообщить("Выберите собственную книгу или ручку");
Возврат;
КонецЕсли;
Оформление = Таблица.ОформлениеСтроки(Текущая);
Если Оформление = Неопределено Тогда
ВызватьИсключение "Не получено оформление собственной строки";
КонецЕсли;
Оформление.ЦветТекста = Новый Цвет(24, 40, 60);
Оформление.ЦветФона = Новый Цвет(235, 244, 255);
Оформление.Шрифт = Новый Шрифт(Оформление.Шрифт, , 12, Ложь);
Сообщить(Оформление.ДанныеСтроки = Таблица.ТекущиеДанные);
Сообщить("Тип коллекции ячеек: " + Строка(ТипЗнч(Оформление.Ячейки)));
Сообщить(Товары.Количество() = 2 И Товары.Итог("Количество") = 4);
КонецПроцедурыРазбор по шагам
АвтоОтметкаНезаполненного задаёт автоматическое подчёркивание незаполненного значения, не проверку внешних прав.
Сначала проверяем текущую строку, затем полученный объект оформления.
Оформление.ДанныеСтроки связывает его с данными конкретной строки. Ячейки — отдельная коллекция, не таблица товаров.
Шрифт заменяется новым значением, не изменением его неизменяемых свойств.
Оформление может пересчитываться при перерисовке. Для устойчивого бизнес-оформления нужен отдельный обработчик ПриВыводеСтроки; этот урок проверяет объект оформления текущей строки.
Как проверить результат
Два сравнения Истина и диагностический тип ячеек.
Количество товаров 2 и общий итог 4 не изменились.
Ожидаемый результат
Оформление строки отделено от данных и бизнес-проверок.
На что обратить внимание
Не обещается постоянное сохранение оформления между перерисовками.
АвтоОтметкаНезаполненного не заменяет явную проверку допустимого количества.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Получить текущие данные строки обычного табличного поля
ТекущаяСтрока для таблицы значений — объект строки, не номер 0. Находим колонку количества и проверяем текущую книгу.
Где и как запускать
Модуль новой обычной формы внешней обработки. Только толстый клиент, обычные формы; не серверный модуль и не управляемая форма.
Подготовка
Это обычная форма, не управляемая: используйте толстый клиент с обычными формами в отдельной учебной базе. Создайте новую внешнюю обработку, обычную форму и её реквизит Товары типа ТаблицаЗначений. Рабочие документы и справочники не нужны.
В редакторе формы добавьте табличное поле ТаблицаТоваров, свойство Данные свяжите с реквизитом Товары. Добавьте обычную кнопку УчебнаяКоманда, её действие свяжите с процедурой УчебнаяКоманда. ПриОткрытии свяжите с одноимённым событием формы.
Каждый урок — отдельный полный модуль этой учебной формы. Он заново создаёт в памяти Книгу (3) и Ручку (1), а СоздатьКолонки удаляет прежние колонки только своего табличного поля. Не вставляйте код в рабочую форму с настроенными колонками.
Откройте форму, затем нажмите учебную кнопку. Изменения данных и оформления относятся только к реквизиту внешней обработки в памяти. Здесь нет Записать, обращения к рабочим данным или проверки интерфейса реальной УТ 10.3.
Процедура ПриОткрытии()
Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Товары.Колонки.Добавить("Выбран", Новый ОписаниеТипов("Булево"));
Книга = Товары.Добавить();
Книга.Код = "A-01";
Книга.Наименование = "Книга";
Книга.Количество = 3;
Книга.Выбран = Ложь;
Ручка = Товары.Добавить();
Ручка.Код = "B-02";
Ручка.Наименование = "Ручка";
Ручка.Количество = 1;
Ручка.Выбран = Ложь;
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Таблица.СоздатьКолонки();
Таблица.АвтоВводНовойСтроки = Ложь;
Если Товары.Количество() <> 2 Тогда
ВызватьИсключение "Ожидались два собственных учебных товара";
КонецЕсли;
Таблица.ТекущаяСтрока = Товары[0];
Колонка = Таблица.Колонки.Найти("Количество");
Если Колонка = Неопределено Тогда
ВызватьИсключение "В своей таблице не найдена колонка количества";
КонецЕсли;
Таблица.ТекущаяКолонка = Колонка;
Таблица.РежимВыбора = Ложь;
Таблица.Подсказка = "Собственная учебная книга и ручка";
КонецПроцедуры
Процедура УчебнаяКоманда(Кнопка)
Таблица = ЭтаФорма.ЭлементыФормы.ТаблицаТоваров;
Текущая = Таблица.ТекущаяСтрока;
Если Текущая = Неопределено Тогда
Сообщить("Сначала выберите собственную строку");
Возврат;
КонецЕсли;
Данные = Таблица.ДанныеСтроки(Текущая);
Если Данные = Неопределено Тогда
ВызватьИсключение "Не получены данные выбранной учебной строки";
КонецЕсли;
Сообщить(Данные = Таблица.ТекущиеДанные);
Сообщить(Данные.Наименование + ": " + Строка(Данные.Количество));
Сообщить(Таблица.ТекущаяКолонка.Имя = "Количество");
Сообщить(Таблица.ПроверитьСтроку(Текущая));
Сообщить("Способ выделения строки: " + Строка(Таблица.РежимВыделенияСтроки));
КонецПроцедурыРазбор по шагам
СоздатьКолонки формирует колонки по четырём полям собственной таблицы значений.
Колонка Количество ищется и проверяется перед назначением ТекущаяКолонка.
ТекущаяСтрока назначается объектом Товары[0]. Это не переносимая модель для динамического списка: там тип идентификатора может быть другим.
ДанныеСтроки и ТекущиеДанные дают данные текущей строки. До доступа к полям оба случая отсутствия обработаны.
ПроверитьСтроку проверяет соответствие отбору табличного поля, не существование SQL-записи. Отбора в собственной форме нет.
Как проверить результат
Сразу после открытия выбрана Книга: выводится количество 3 и три сравнения Истина.
Выберите Ручку: выводится количество 1. Выделение строки диагностируется, не изменяется присваиванием.
Ожидаемый результат
Проверен доступ к собственной текущей строке и колонке.
На что обратить внимание
РежимВыделенияСтроки только для чтения.
После выбора другой колонки сравнение с Количество может стать Ложь: это изменение состояния интерфейса, не ошибка поиска.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.