Перейти к содержанию

2. Перерасчет в табличной части документа

Примечание

Пример обработки события ПриИзменении.

Описание примера#

Расширение исправляет ошибку Конфигурации в документе "Поступление товаров", где в табличной части не пересчитывается сумма при изменении цены или количества. Форма документа не заимствуется.

Состав Расширения#

Объекты#

Screenshot

Примечание

Ниже приведены полные тексты модулей Расширения. Код, связанный с обработкой событий, выделен отдельным цветом.

Модуль менеджера обработки#

#Область СлужебныйПрограммныйИнтерфейс

#Область ЕХТ

Функция ПолноеИмя() Экспорт
    Возврат Создать().Метаданные().ПолноеИмя();
КонецФункции

Функция Идентификатор() Экспорт
    Возврат "9bea308a-4581-4767-99ed-92e99416d8ba";
КонецФункции

Функция Сведения(Сведения) Экспорт

    Сведения.Версия = "17.09.09.1";
    Сведения.Подписки = Истина;

    Возврат Истина;

КонецФункции    

Функция ОбработкаОбновления(ТекущаяВерсия, НоваяВерсия, НастройкиОбъекта) Экспорт 
    Возврат Истина;
КонецФункции

#КонецОбласти

Функция Подписки(Подписки) Экспорт

    Подписка = Подписки.Добавить();
    Подписка.Событие    = "ПослеПриИзменении";
    Подписка.Издатель   = "Документ.ПоступлениеТоваров.Форма.ФормаДокумента";
    // Обработка событий двух элементов.
    Подписка.Элемент    = "ТоварыЦена, ТоварыКоличество";
    // Вместо стандартного обработчика ЕХТ_ПослеПриИзменении() вызывается ПерерасчетСуммы().
    Подписка.Обработчик = "ПерерасчетСуммы";                
    Подписка.Описание   = "Перерасчет суммы при изменении цены или количества.";

    Возврат Истина;

КонецФункции        

#КонецОбласти

Модуль формы Подписки#

1
2
3
4
5
6
7
&НаКлиенте
Функция ПерерасчетСуммы(Элемент, СвойстваСобытия) Экспорт

    ТекущаяСтрока = Элемент.Родитель.ТекущиеДанные;
    ТекущаяСтрока.Сумма = Окр(ТекущаяСтрока.Цена * ТекущаяСтрока.Количество, 2, 1);

КонецФункции