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