Как автоматически заполнить сумму в табличной части управляемой формы 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе от разработки в обычных формах к управляемым формам (УФ) у многих разработчиков возникают трудности с доступом к данным табличной части. Частый вопрос — как правильно рассчитать значение (например, произведение количества на цену) прямо в процессе редактирования строки.

Понимаем принцип работы с данными в управляемых формах

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

Реализация расчета по шагам

Разберем процесс настройки автоматического расчета суммы при изменении данных в колонках «Количество» или «Цена».

  1. Создание обработчика события: В конфигураторе для колонок «Количество» и «Цена» в свойствах элемента формы необходимо выбрать событие ПриИзменении.
  2. Написание кода: В открывшемся модуле формы необходимо реализовать логику, которая получит текущую строку таблицы и выполнит расчет.

Рассмотрим пример кода, который нужно разместить в модуле управляемой формы:


&НаКлиенте
Процедура ТабличнаяЧасть1ПриИзменении(Элемент)
    // Получаем доступ к текущей строке табличной части
    ТекущиеДанные = Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    
    // Проверяем, что текущие данные не пусты
    Если ТекущиеДанные <> Неопределено Тогда
        // Выполняем расчет произведения
        ТекущиеДанные.Сумма = ТекущиеДанные.Количество * ТекущиеДанные.Цена;
    КонецЕсли;
КонецПроцедуры

Почему важен выбор ТекущиеДанные?

Важно помнить, что конструкция Объект.Таблица1 обращается ко всей таблице целиком. Если вы попытаетесь обратиться напрямую, например, Объект.Таблица1.Сумма = ..., платформа выдаст ошибку или выполнит действие некорректно, так как не понимает, в какой именно строке нужно изменить значение. Использование свойства ТекущиеДанные — это стандарт индустрии при работе с интерактивными изменениями в строках табличных частей управляемых форм.

Дополнительные рекомендации

При проектировании интерфейса и логики формы учтите следующие моменты:

Данный подход позволяет сделать работу пользователя комфортной и исключает ошибки ручного ввода. Разбирая подобные кейсы, мы видим, что ключом к успеху в 1С является правильное понимание того, как платформа управляет клиентским контекстом и объектами формы.

← На главную