Как посчитать сумму в документе. 1С программирование.
Казалось бы обыденная операция в нашей жизни, умножить количество товара на сумму, чтобы получить общий итог по позиции товара, в 1С нужно запрограммировать. Программный код не сложен, но тем не менее это нужно сделать. Давайте с вами посмотрим на операции, которые необходимо выполнить и, собственно, на сам код.
Для начала создадим новую конфигурацию и откроем ее:
Предварительно подготовимся и добавим справочник «Номенклатура» в Справочнике:
Таким же образом добавляем «Приходную накладную», но уже в разделе документы:
На вкладке «Данные», в «Приходной накладной», «Табличная часть» добавляем «Табличную часть» — «Материалы» и «Реквизиты табличной части»: материал, количество, цена, сумма:
При чем тип Материала у нас «СправочникСсылка.Номенклатура», мы делали его ранее, а количество, цена, сумма у нас «Число» с длинной 10, с точностью 2, неотрицательное.
Чтобы было где писать код, нам нужно добавить «Форму Документа». Нажимаем правой кнопкой мыши на формы и добавляем:
Нажимаем на «Готово»
Мы хотим, чтобы у нас считалась сумма во всех документах, поэтому переключимся и добавим в дереве конфигурации на вкладке «Общие» — «Общие модули» новый модуль. Назовем его «СуммаПоДокументу», он будет у нас «Клиентский»
И в окне пишем код:
Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
КонецПроцедуры
Теперь идем в «Документы» — «ПриходнаяНакладная» — Формы — ФормаДокумента, в окне формы находим «МатериалыКоличество», открываем «Свойства» — «События» — при изменении и нажимем на «лупу». Соглашаемся «Создать на клиенте», нажимем «ОК»
И пишем код:
&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
СуммаПоДокументу.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
Тоже самое проделываем с «МатериалыСумма», вставляем туда код:
&НаКлиенте
Процедура МатериалыЦенаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
СуммаПоДокументу.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
Должно получится вот так:
Сохраняем через бочонок. Запускаем. Добавляем «Номенклатуру» — Один админ — Добавляем «Приходную накладную» — ставим количество и сумму и получаем: