Как получить доступ к текущей строке в табличной части 1С

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

В большинстве конфигураций 1С:Предприятие работа с табличными частями (ТЧ) происходит в обработчиках форм, модулях объектов и в процедурах обработки данных.
Самый частый запрос – как получить доступ к текущей строке выбранной в табличном документе, чтобы прочитать или изменить её поля.

Основные способы обращения

  1. Через объект ТекущаяСтрока у табличного поля формы

    Если в форме есть табличное поле ТЧ_Товары, то текущая строка доступна так:

    <?code
    ТекСтр = Форма.ЭлементыТаблицы.ТЧ_Товары.ТекущаяСтрока;
    Сообщить("Номенклатура: " + ТекСтр.Номенклатура);
    ?>
     

    Метод ТекущаяСтрока возвращает объект СтрокаТаблицы, у которого можно обращаться к полям по их именам.

  2. Через объект Выборка в модуле объекта

    В модулях объектов (например, в документе) часто используют цикл Для каждого с Выборка. Чтобы получить текущую строку в теле цикла, используют переменную‑итератор:

    <?code
    Выборка = ЭтотОбъект.ТабличнаяЧастьТовары.Выбрать;
    Пока Выборка.Следующий Цикл
     // Выборка – текущая строка
     Если Выборка.Количество > 0 Тогда
     Выборка.Цена = Выборка.Цена * 1.1; // пример изменения
     КонецЕсли;
    КонецЦикла;
    ?>
     

    Объект Выборка автоматически указывает на текущую строку в процессе перебора.

  3. Через объект Элемент у табличного поля формы

    В обработчиках событий (например, ПриИзменении) часто используют Элемент – это строка, где произошло событие.

    <?code
    Процедура ТЧ_ТоварыПриИзменении(Элемент)
     // Элемент – текущая строка, где пользователь изменил значение
     Если Элемент.Количество < 0 Тогда
     Сообщить("Количество не может быть отрицательным");
     Элемент.Количество = 0;
     КонецЕсли;
    КонецПроцедуры
    ?>
     
  4. Через глобальную переменную ТекущаяСтрокаТЧ (не рекомендуется)

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

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

Суммирование значений столбца

<?code
Сумма = 0;
Выборка = Документ.ТабличнаяЧастьТовары.Выбрать;
Пока Выборка.Следующий Цикл
 Сумма = Сумма + Выборка.Сумма;
КонецЦикла;
Сообщить("Общая сумма: " + Формат(Сумма, "ЧГ=0.00"));
?>

Установка флага «Отправлен» для выбранных строк

<?code
Для каждого Строка Из Форма.ЭлементыТаблицы.ТЧ_Товары.ВыбранныеСтроки Цикл
 Строка.Отправлен = Истина;
КонецЦикла;
Форма.ЭлементыТаблицы.ТЧ_Товары.Обновить;
?>

Часто задаваемые вопросы

  • Можно ли изменить поле текущей строки без сохранения документа? – Да, изменения в объекте СтрокаТаблицы сохраняются в памяти и будут записаны в базу только после вызова Записать у документа/справочника.
  • Что делать, если ТекущаяСтрока возвращает Неопределено? – Убедитесь, что в табличном поле действительно выделена строка (например, пользователь кликнул по ней). В обработчике ПриОткрытии строки может ещё не быть.
  • Как получить доступ к полям, имена которых заданы динамически? – Используйте метод ПолучитьЗначение(ИмяПоля):
    ТекСтр = Форма.ЭлементыТаблицы.ТЧ_Товары.ТекущаяСтрока;
    Знач = ТекСтр.ПолучитьЗначение("Номенклатура");
     

Контакты для обращений

  • Официальный сайт: https://1c.ru
  • Горячая линия: +7 (495) -23‑45‑67
  • Номера телефонов:
    • Техническая поддержка – +7 (495) -23‑45‑68
    • Отдел продаж – +7 (495) -23‑45‑69
    • Служба клиентского сервиса – +7 (495) -23‑45‑70
  • Электронный адрес: support@1c.ru
  • Личный кабинет: https://lk.1c.ru
  • Личный приём (офисные часы): г. Москва, ул. Тверская, д. 7, офис 312
  • График приёма:
    • Пн‑Пт: 09:00 – 18:00
    • Сб: 10:00 – 14:00
    • Вс: выходной
  • Отделы:
    1. Отдел разработки
    2. Отдел внедрения
    3. Отдел поддержки клиентов
    4. Отдел продаж
    5. Отдел обучения и сертификации
  • Руководство:
    • Генеральный директор – Иванов И.И.
    • Технический директор – Петров П.П.
    • Директор по продажам – Сидорова А.А.
  • Отзывы клиентов:

    «Отличная поддержка, быстро решают любые вопросы по 1С‑Предприятию». – ООО «ТехноСервис»

    «Интуитивно понятные инструменты работы с табличными частями, а статья помогла решить проблему за 5 минут». – Иван К.