Свойства ТекущиеДанные и ТекущаяСтрока
05.05.2018
Теги: 1С:Предприятие • ТекущаяСтрока • УправляемаяФорма
Табличное поле предоставляет свойства ТекущиеДанные
и ТекущаяСтрока
. Отличие между этими свойствами состоит в том, что свойство ТекущиеДанные
содержит значения считанных данных текущей строки табличного поля, а свойство ТекущаяСтрока
содержит значение, идентифицирующее строку.
Следует отметить, что свойство ТекущиеДанные
содержит коллекцию значений текущей строки, соответствующую коллекции колонок отображаемого динамического списка, при этом если нужного поля нет в текущих данных, то его можно добавить в коллекцию полей списка используя метод Добавить()
коллекции колонок списка.
Свойство ТекущиеДанные
предназначено для получения значений колонок текущей строки, а свойство ТекущаяСтрока
для получения и установки текущей строки табличного поля.
Следует понимать, что для объектных данных (Справочник, Документ и т.д.) в качестве значения свойства ТекущаяСтрока
используется ссылка на объект базы данных. Соответственно при обращении к свойствам этого значения будет выполняться считывание объекта базы данных.
Типичной ошибкой является обращение к данным строки с использованием свойства ТекущаяСтрока
. В этом случае будет выполняться считывание данных объекта из базы данных, что может существенно снизить производительность работы табличного поля. Например, приведенный ниже фрагмент текста программы является неэффективным:
&НаКлиенте Процедура СправочникСписокПриАктивизацииСтроки(Элемент) Сообщить("Цена = " + ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Цена); КонецПроцедуры
Рекомендуется для обращения к данным объекта использовать свойство ТекущиеДанные
. Правильный фрагмент приведен ниже:
&НаКлиенте Процедура СправочникСписокПриАктивизацииСтроки(Элемент) Cообщить("Цена = " + ЭлементыФормы.СправочникСписок.ТекущиеДанные.Цена); КонецПроцедуры
Если есть идентификатор текущей строки (т.е. свойство ТекущаяСтрока
), можно получить ТекущиеДанные
. И наоборот:
&НаКлиенте Процедура ПолучитьТекущиеДанныеПоИдентификатору() // Получаем идентификатор текущей строки ИдентификаторТекущейСтроки = ЭлементыФормы.СправочникСписок.ТекущаяСтрока; // Получаем данные по идентификатору строки ДанныеТекущейСтроки = Элементы.Материалы.ДанныеСтроки(ИдентификаторТекущейСтроки); КонецПроцедуры
&НаКлиенте Процедура ПолучитьИдентификаторТекущихДанных() // Получаем данные текущей строки ДанныеТекущейСтроки = ЭлементыФормы.СправочникСписок.ТекущиеДанные; // Получаем идентификатор текущих данных ИдентификаторТекущейСтроки = ДанныеТекущейСтроки.ПолучитьИдентификатор(); КонецПроцедуры
Поиск: 1С:Предприятие • Текущая строка • Текущие данные • Управляемая форма