1С На Реализации товаров услуги на записывает разницу Всего сумму

1. user1951498 22.01.24 06:01 Сейчас в теме
Реализация Товаров Услуг добавил два поля Предоплата и ОстатокСуммы , суть такая из поля Всего должен отнимать сумму Предоплату и записать разницу в поля ОстатокСуммы
для этого я в модуле РеализацияТоваровУслуг сделал таким образом, но поля ОстатокСуммы не записывает разницу.
помогите что я не правильно делаю, как все правильно сделать?
я новичок в 1С

&НаКлиенте
Процедура ОстатокСуммыПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Услуги.ТекущиеДанные;

ПараметрыРасчета = ПодготовитьПараметрыРасчета("Услуги");

ОбработкаТабличныхЧастейКлиентСервер.РассчитатьЦенуСтрокиТабличнойЧасти(СтрокаТабличнойЧасти, ПараметрыРасчета);

Если Элементы.ОстатокСуммы > Элементы.УслугиВсего Тогда
Сообщить("Предоплата не может быть больше общей суммы!");
Элементы.ОстатокСуммы = Элементы.УслугиВсего;
КонецЕсли;

// Рассчитываем остаток
Элементы.ОстатокСуммы = Элементы.УслугиВсего - Элементы.Предоплата;

// Сохраняем изменения в объект
Если Не ЭтотОбъект.Записать() Тогда
Сообщить("Ошибка при сохранении изменений!");
КонецЕсли;

ОбновитьПодвалФормы();
КонецПроцедуры
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ActionBlog 22.01.24 10:29 Сейчас в теме
Делайте через Объект.
// Рассчитываем остаток
Объект.ОстатокСуммы = Объект.УслугиВсего - Объект.Предоплата;

1 - Сделайте это отдельной процедурой.
2 - Определите все события, где должна пересчитываться сумма.
3 - Во все обработчики событий вставьте свою процедуру.
3. user1951498 22.01.24 15:04 Сейчас в теме
Здраствуйте!
(2)
сделал отдельный процедуру

через Элементы достаю до полей ОстатокСуммы,УслугиВсего,Предоплата. Так-как через объекты не видит этих полей.
На все события указал свою процедуру
типа:

Процедура ОстатокСумму(Команда)
Объект.ОстокСуммы = Объект.УслугиВсего - Объект.Предоплата;

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

&НаКлиенте
Процедура ОстатокСуммыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если Элементы.ОстатокСуммы > Элементы.УслугиВсего Тогда
Сообщить("Предоплата не может быть больше общей суммы!");
Элементы.ОстатокСуммы = ЭтотОбъект.Всего;
КонецЕсли;

// Рассчитываем остаток
Элементы.Предоплата = Элементы.ОстатокСуммы;
Элементы.ОстатокСуммы = Элементы.УслугиВсего - Элементы.Предоплата;

// Сохраняем изменения в объект
Если Не ЭтотОбъект.Записать() Тогда
Сообщить("Ошибка при сохранении изменений!");
КонецЕсли;

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

но не сработала.
где я тут не правильно делаю можете подсказать?
Прикрепленные файлы:
4. user1951498 27.01.24 06:52 Сейчас в теме
А все нашел исправил ошибка была поле ОстатокСуммы тип поля была строковой и поля путь к Данным не правильно указано было
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот