Свойства ТекущиеДанные и ТекущаяСтрока

05.05.2018

Теги: 1С:ПредприятиеТекущаяСтрокаУправляемаяФорма

Табличное поле предоставляет свойства ТекущиеДанные и ТекущаяСтрока. Отличие между этими свойствами состоит в том, что свойство ТекущиеДанные содержит значения считанных данных текущей строки табличного поля, а свойство ТекущаяСтрока содержит значение, идентифицирующее строку.

Следует отметить, что свойство ТекущиеДанные содержит коллекцию значений текущей строки, соответствующую коллекции колонок отображаемого динамического списка, при этом если нужного поля нет в текущих данных, то его можно добавить в коллекцию полей списка используя метод Добавить() коллекции колонок списка.

Свойство ТекущиеДанные предназначено для получения значений колонок текущей строки, а свойство ТекущаяСтрока для получения и установки текущей строки табличного поля.

Следует понимать, что для объектных данных (Справочник, Документ и т.д.) в качестве значения свойства ТекущаяСтрока используется ссылка на объект базы данных. Соответственно при обращении к свойствам этого значения будет выполняться считывание объекта базы данных.

Типичной ошибкой является обращение к данным строки с использованием свойства ТекущаяСтрока. В этом случае будет выполняться считывание данных объекта из базы данных, что может существенно снизить производительность работы табличного поля. Например, приведенный ниже фрагмент текста программы является неэффективным:

&НаКлиенте
Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
    Сообщить("Цена = " + ЭлементыФормы.СправочникСписок.ТекущаяСтрока.Цена);
КонецПроцедуры

Рекомендуется для обращения к данным объекта использовать свойство ТекущиеДанные. Правильный фрагмент приведен ниже:

&НаКлиенте
Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
    Cообщить("Цена = " + ЭлементыФормы.СправочникСписок.ТекущиеДанные.Цена);
КонецПроцедуры

Если есть идентификатор текущей строки (т.е. свойство ТекущаяСтрока), можно получить ТекущиеДанные. И наоборот:

&НаКлиенте
Процедура ПолучитьТекущиеДанныеПоИдентификатору()
    // Получаем идентификатор текущей строки
    ИдентификаторТекущейСтроки = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
    // Получаем данные по идентификатору строки
    ДанныеТекущейСтроки = Элементы.Материалы.ДанныеСтроки(ИдентификаторТекущейСтроки);
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьИдентификаторТекущихДанных()
    // Получаем данные текущей строки
    ДанныеТекущейСтроки = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    // Получаем идентификатор текущих данных
    ИдентификаторТекущейСтроки = ДанныеТекущейСтроки.ПолучитьИдентификатор();
КонецПроцедуры

Поиск: 1С:Предприятие • Текущая строка • Текущие данные • Управляемая форма

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.