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