Всех хорошего дня.

В документе "ПоступленияТоваровИУслуг" есть ФормаДокумента. Эта форма содержит поле "сумма документа", которая находится над табличной частью "Товары". Мне нужно, чтобы в этом поле "сумма документа" отображалось общая сумма по табличной части (в которой также есть колонка "сумма"). Я зашёл в свойства поля "сумма документа" и в "событии" "при изменении" написал такой код:

```1c
    &НаКлиенте
    Процедура СуммаДокументаПриИзменении(Элемент)
    ТДТовары = Элементы.Товары.ТекущиеДанные;
    ТДТовары.СуммаДокумента = ТДТовары.Сумма;
    КонецПроцедуры
```

Но он не срабатывает. Я только учусь. Подскажите пожалуйста в чём ошибка?
---
Данная задача в управляемом интерфейсе легко решается без программирования. Достаточно на форме создать элемент и связать его с полем "Объект.Товары.ИтогСумма".
Пример можно подглядеть в конфигурации "Демонстрационная конфигурация "Управляемое приложение", например, форма документа "Приход товара".
---
Если речь идет о хранении суммы документа в объекте (т.е. документ в дереве метаданных имеет реквизит "СуммаДокумента"), тогда правильно его заполнять в событии "ПередЗаписью" модуля объекта документа, а не в модуле формы, так как запись документа из формы - это частный случай записи документа (документ можно записать из списка документов через контекстное меню, документ может быть создан программно и т.д. - во всех этих случаях форма документа никак не задействована и сумма документа в документе сохранена не будет). Если же стоит задача лишь отображения на форме итогов по табчасти, то вышеописанного способа достаточно.
---
нужно использовать метод Итог("Сумма") табличной части документа. И вешать его не на изменение суммы а на изменение количества, номенклатуры, ед. изм., цены, валюты, договор (соглашение), может еще что.
---
Вы может меня не правильно поняли? Прикрепил рисунок документа. Поле выделено красным цветом.
---
это ты неправильно понял. Тебе в (2) ответили. А ты применить не можешь.
Вот так сделай (подумай, прежде чем ПРОСТО скопировать, у меня нет твоей задачи!)
Эту процедуру прикрепи к событию "ПриИзменении" таб. части "ТДТовары"

```1c
    &НаКлиенте
    Процедура ТДТоварыПриИзменении()
    СуммаДокумента = Объект.ТДТовары.Итог("Сумма");
    КонецПроцедуры
```
---
Почему нельзя прикрепить к "СуммаДокумента" "ПриИзменении"? Я прописал так и тоже не работает:

```1c
    &НаКлиенте
    Процедура СуммаДокументаПриИзменении(Элемент)

    Объект.СуммаДокумента = Объект.Товары.Итог("Сумма");

    КонецПроцедуры
```
---
Потому что в таком случае форма ожидает событие "ПриИзменении" в реквизите "СуммаДокумента". А ты его чем меняешь? Ты его менять вручную и не должен. Он должен меняться сам, после того, как что-то на форме изменится. Поэтому ты меняешь состав строк табличной части.
Сумма документа - это реквизит, зависящий от изменения состава строк. Поэтому и форма должна ожидать изменения состава строк в табличной части.
---
Учиться надо на кошках. Не пойму советчиков - вам мало говнокода встречается? Еще хотите?
---
Все с нуля начинали. Эта сфера такая, что если не научится - не сможет работать и вылетит. вам мало говнокода встречается очень много, даже в типовых... "Лес рубят - щепки летят" (с) Народное
---
Все с нуля начинали

С нуля начинают в детском саду и школе учиться. А изучение 1с "с нуля" это гарантированное получение говнокодера создающего тупой и несопровождаемый код. Хотя сам автор пишет, что не с нуля, а мол программист, только в 1С впервой, но что-то верится с трудом.

 Эта сфера такая, что если не научится - не сможет работать и вылетит.

Если ему за это еще и деньги платят, то советчики уже сделали своё грязное дело :-\
---
Ну, ладно, не любите начинающих - это Ваше личное дело. Зачем скрывать те знания, которые вы получили? Хороший разработчик в этой сфере - не только тот, кто пишет годный код, здесь ещё и своя специфика есть, например, знание бухгалтерского учёта. Но входной порог именно в эту сферу очень низок, поэтому доступен практически для любого, как вы там говорили: написать код понятный "машине" на современном высокоуровневом языке сможет даже обезъяна. Поэтому основной критерий хорошего кода для прикладных программ - понятность для человека.. Полностью вас поддерживаю. И стараюсь, чтобы окружающие люди тоже к этому стремились.
---
Ну, ладно, не любите начинающих - это Ваше личное дело. Зачем скрывать те знания, которые вы получили?

Причем тут начинающие? начинающий разный бывает. Если уж следите за моими комментариями, то заметили бы, что топикстартер из тех начинающих, что никогда не научатся. Очень наглядное и юморное изложение такого типа вечного новичка уже постил тут: http://forum.infostart.ru/forum33/topic173259/#message1807130
---
Сделал следующим образом. Создал процедуру "Перед записью" через свойства "формы"

```1c
    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

    Объект.СуммаДокумента = Объект.Товары.Итог("Сумма");

    КонецПроцедуры
```

Всё работает, конечно считает не сразу, а именно только когда нажимаешь кнопку "записать" или "провести". Простите, что пришлось читать мой гавнокод. Я полный ноль в программировании, никогда в жизни подобным не занимался и делаю только первые шаги. Всем спасибо.
---
Данная задача в управляемом интерфейсе легко решается без программирования. Достаточно на форме создать элемент и связать его с полем "Объект.Товары.ИтогСумма".
Пример можно подглядеть в конфигурации "Демонстрационная конфигурация "Управляемое приложение", например, форма документа "Приход товара".
---
Спасибо за эту подсказку. Но подвести итог не достаточно, нужно ещё привязать его к полю "сумма документа". Без кода наверно это не получится.
---
Если речь идет о хранении суммы документа в объекте (т.е. документ в дереве метаданных имеет реквизит "СуммаДокумента"), тогда правильно его заполнять в событии "ПередЗаписью" модуля объекта документа, а не в модуле формы, так как запись документа из формы - это частный случай записи документа (документ можно записать из списка документов через контекстное меню, документ может быть создан программно и т.д. - во всех этих случаях форма документа никак не задействована и сумма документа в документе сохранена не будет). Если же стоит задача лишь отображения на форме итогов по табчасти, то вышеописанного способа достаточно.
---
Можно и без кода. Спасибо.
---
Доброго времени суток! Подскажите пожалуйста как сделать так чтоб общая сумма после провести высветилась на реквизите Сумма. Объясните досконально кто может