Имя: Пароль:
1C
1С v8
Изменение значения в ячейках таблицы на ОФ
0 Filkkore
 
25.08.20
08:01
УТ 10.3 Дописанная
Имеются в документе Реализации поля в табличной части: "Ручная скидка", "% Ручной скидки". При их изменении меняется всё и в полях "Цена со скидкой" и суммы.
Имеется кнопка "Удалить колонку скидки", по нажатию которой, значения в этих колонках должны стать равным нулю. При нажатии на кнопку, значения пропадают, причём все, кроме того, на строке которого есть выделение. Но при этом не изменяются значения в колонках "Цена со скидкой" и суммы, пока сам не нажмёшь на ячейку с ручной скидкой и там Backspace+Enter, при этом там был 0. То есть значение колонки визуально обнуляется, но на деле остаётся тем же. В обычных формах я практически не работал.
Сделано так:

Для Каждого СтрокаТЧ Из Товары Цикл

    СтрокаТЧ.ПроцентАвтоматическихСкидок=0;
    СтрокаТЧ.ПроцентСкидкиНаценки=0;
    СтрокаТЧ.РучнаяСкидка=0;
    
    СтрокаТабличнойЧасти = СтрокаТЧ;

    ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"),
        РассчитыватьАвтоматическиеСкидки(),истина, ,истина,"Товары");

    
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

КонецЦикла;
1 tty12
 
25.08.20
08:07
См. - ОбработкаТабличныхЧастей.РассчитатьСкидкиПриПродаже
2 Filkkore
 
25.08.20
08:32
(1) Спасибо за наводку, буду копаться. Ибо там из-за переписок по моему не всё работает с этим.
3 tty12
 
25.08.20
08:43
(2) Посмотри где эта процедура вызывается в документе реализации, я точно не помню. Там пересчет всех скидок идет, если конечно совсем не поломали типовой механизм скидок.
4 FIXXXL
 
25.08.20
08:50
(0) смотри, что вызывается ПриИзменении Количества или Цены, вызывай...
5 Ёпрст
 
25.08.20
09:37
(0) да уж..и нафига текущие данные пихать в код? У тебя в процу нужно передавать итератор цикла, а не текущие данные табличной части ( т.е всегда одну ии ту же строку тч)
6 Filkkore
 
25.08.20
10:21
(5) Это делал уволившийся на днях сотрудник, сейчас за ним косяки чищу и кое что доделываю...
7 Filkkore
 
25.08.20
10:22
И кстати, а почему удаляется всё, кроме строк, на которых выделение? Что с этим можно сделать?
8 tty12
 
25.08.20
10:35
(7) скорее всего из-за того же что в (5)