|
Ошибка расчета суммы | ☑ | ||
---|---|---|---|---|
0
Rokuske
28.11.22
✎
14:37
|
&НаКлиенте
Процедура ИзменениеДанных(Элемент) СтрокаТабличнойЧасти = Элементы.ТекущиеДанные; СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; Объект.СуммаДокумента = СтрокаТабличнойЧасти.Итог("Сумма"); КонецПроцедуры Ищу общую сумму для документа и для строки. Для строки работает все нормально а по столбцу считает неправильно каждый раз при изменении складывает старые значения с новыми |
|||
1
НафНаф
28.11.22
✎
14:39
|
СтрокаТабличнойЧасти.Итог("Сумма") //как оно вообще работает?
|
|||
2
Rokuske
28.11.22
✎
14:42
|
(1) По табличной части суммирует столбец "Сумма"
|
|||
3
НЕА123
28.11.22
✎
14:46
|
(1)
хз >СтрокаТабличнойЧасти = ЭлементЫ.ТекущиеДанные; похоже СтрокаТабличнойЧасти это Таблица; |
|||
4
Rokuske
28.11.22
✎
14:51
|
(3)
&НаКлиенте Процедура ИзменениеДанных(Элемент) СтрокаТабличнойЧасти = Элемент.Услуги.ТекущиеДанные; СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; Объект.СуммаДокумента = СтрокаТабличнойЧасти.Итог("Сумма"); КонецПроцедуры Исправил некоторое Указал на Таблицу и Написал Элементы а результат не изменился |
|||
5
arsik
гуру
28.11.22
✎
14:56
|
Какой итог по строке? Тебе нужен итог по табличной части.
|
|||
6
Rokuske
28.11.22
✎
14:58
|
(5) ДА итог по табличной части, а под итогом по строке я имел в виду умножение цены на количество
|
|||
7
crasler
28.11.22
✎
15:00
|
(6) Объект.СуммаДокумента = Объект.Услуги.Итог("Сумма");
|
|||
8
Rokuske
28.11.22
✎
15:06
|
(7) Тот же результат. Прошлые значения и значения после изменения Количества или Цены складываются друг с другом
|
|||
9
НЕА123
28.11.22
✎
15:12
|
(0)
>Процедура ИзменениеДанных(Элемент) на каком событии отрабатывает? |
|||
10
Rokuske
28.11.22
✎
15:13
|
(9) Когда я в режиме предприятия в таблице документа меняю значение Цены или Количества
|
|||
11
НЕА123
28.11.22
✎
15:21
|
(10)
Элемент - какой тип? в таблице Услуги элемент УслугиЦена обработчик события ПриИзменении в форме какой? |
|||
12
arsik
гуру
28.11.22
✎
15:24
|
(8) Скорее всего у тебя еще какое то событие есть.
|
|||
13
Мультук
гуру
28.11.22
✎
15:24
|
(4)
//Вот тут строка это строка таблчной части, ибо есть обращения к колонками строки СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; //А вот тут она уже внезапно табличная часть, ибо у строки нет функции "Итог" Объект.СуммаДокумента = СтрокаТабличнойЧасти.Итог("Сумма"); Сдается мне автор или не знает, либо гм "лукавит" P.S. Что там доктор Хаус по этому поводу говорил ? |
|||
14
программистище
28.11.22
✎
15:24
|
посмотрите, может Объект.СуммаДокумента в модулях по событиям еще где-то складывается с чем-то
|
|||
15
arsik
гуру
28.11.22
✎
15:25
|
Вот на этой строчке "Объект.СуммаДокумента = Объект.Услуги.Итог("Сумма");" точку остановки сделай и посмотри чему у тебя после нее равен Объект.СуммаДокумента
|
|||
16
ass1c
28.11.22
✎
15:26
|
(0) Обычно нет необходимости считать сумму документа каждый раз при изменении строк табличной части. В типовых это делается один раз перед записью в процедуре модуля объекта
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) СуммаДокумента = ПолучитьСуммуДокумента(); КонецПроцедуры Функция ПолучитьСуммуДокумента() Экспорт //либо запросом получают либо как нибудь по простому Объект.Услуги.Итог("Сумма"); Запрос = Новый Запрос(" |ВЫБРАТЬ | Товары.Номенклатура КАК Номенклатура, | Товары.СуммаСНДС КАК СуммаСНДС |ПОМЕСТИТЬ | Товары |ИЗ | &Товары КАК Товары |; |ВЫБРАТЬ | ЕСТЬNULL(СУММА(Товары.СуммаСНДС),0) КАК СуммаСНДС |ИЗ | Товары КАК Товары |ГДЕ | Товары.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара) | ИЛИ НЕ &ВернутьМногооборотнуюТару | ИЛИ &ТребуетсяЗалогЗаТару |"); Запрос.УстановитьПараметр("Товары", Товары.Выгрузить(,"Номенклатура,СуммаСНДС")); Запрос.УстановитьПараметр("ВернутьМногооборотнуюТару", ВернутьМногооборотнуюТару); Запрос.УстановитьПараметр("ТребуетсяЗалогЗаТару", ТребуетсяЗалогЗаТару); Выгрузка = Запрос.Выполнить().Выгрузить(); СуммаИтого = Выгрузка[0].СуммаСНДС; Возврат СуммаИтого; КонецФункции |
|||
17
Rokuske
28.11.22
✎
15:34
|
Понял спасибо
|
|||
18
НафНаф
28.11.22
✎
16:14
|
(16) ну и как смотреть сумму документа пока он не записан?
|
|||
19
ass1c
28.11.22
✎
16:48
|
(18) Функция "Функция ПолучитьСуммуДокумента() Экспорт" Экспортная, модуля объекта, возьми да и вызови в необходимом месте. Либо вообще просто напиши Объект.Товары.Итог("Сумма"). Считать её при изменении строки в 99,99% бред
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |