В большинстве конфигураций 1С:Предприятие работа с табличными частями (ТЧ) происходит в обработчиках форм, модулях объектов и в процедурах обработки данных.
Самый частый запрос – как получить доступ к текущей строке выбранной в табличном документе, чтобы прочитать или изменить её поля.
Основные способы обращения
-
Через объект
ТекущаяСтрокау табличного поля формыЕсли в форме есть табличное поле
ТЧ_Товары, то текущая строка доступна так:<?code ТекСтр = Форма.ЭлементыТаблицы.ТЧ_Товары.ТекущаяСтрока; Сообщить("Номенклатура: " + ТекСтр.Номенклатура); ?>Метод
ТекущаяСтрокавозвращает объектСтрокаТаблицы, у которого можно обращаться к полям по их именам. -
Через объект
Выборкав модуле объектаВ модулях объектов (например, в документе) часто используют цикл
Для каждогосВыборка. Чтобы получить текущую строку в теле цикла, используют переменную‑итератор:<?code Выборка = ЭтотОбъект.ТабличнаяЧастьТовары.Выбрать; Пока Выборка.Следующий Цикл // Выборка – текущая строка Если Выборка.Количество > 0 Тогда Выборка.Цена = Выборка.Цена * 1.1; // пример изменения КонецЕсли; КонецЦикла; ?>
Объект
Выборкаавтоматически указывает на текущую строку в процессе перебора. -
Через объект
Элементу табличного поля формыВ обработчиках событий (например,
ПриИзменении) часто используютЭлемент– это строка, где произошло событие.<?code Процедура ТЧ_ТоварыПриИзменении(Элемент) // Элемент – текущая строка, где пользователь изменил значение Если Элемент.Количество < 0 Тогда Сообщить("Количество не может быть отрицательным"); Элемент.Количество = 0; КонецЕсли; КонецПроцедуры ?> -
Через глобальную переменную
ТекущаяСтрокаТЧ(не рекомендуется)В старых версиях иногда использовали переменную
ТекущаяСтрокаТЧ, но её использование считается устаревшим и может привести к ошибкам в многопользовательской работе.
Практические примеры
Суммирование значений столбца
<?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С‑Предприятию». – ООО «ТехноСервис»
«Интуитивно понятные инструменты работы с табличными частями, а статья помогла решить проблему за 5 минут». – Иван К.