Имя: Пароль:
1C
1С v8
Как автоматически заполнить реквизит из таб.части?
0 Саша Да Саша
 
27.12.19
05:34
Добрый день,подскажите пожалуйста неумёхе,как сделать,чтобы реквизит формы автоматически заполнялся,беря информацию из табличной части.
То есть есть таб. часть,в который указывается список товаров и сумма,нужно чтобы при изменении реквизита "сумма" табличной части,эта сумма добавлялась в реквизит "всего".
Я это сделал так:

&НаКлиенте
Процедура СписокТоваровСуммаПриИзменении(Элемент)

Строка = Элементы.СписокТоваров.ТекущиеДанные;
Объект.всего = Объект.всего + Строка.сумма;
        
КонецПроцедуры
1 PuhUfa
 
27.12.19
05:47
(0) открой СП, почитай про ТЧ, особенно удели внимание Сумма()
2 Саша Да Саша
 
27.12.19
05:48
(1) ТЧ?
3 PaulBC
 
27.12.19
05:50
(0) Ну, если задача именно такая, как написано "чтобы при изменении реквизита "сумма" табличной части,эта сумма добавлялась в реквизит "всего"", то все ок
4 Саша Да Саша
 
27.12.19
05:55
(3) Не работает,в том-то и дело
5 PaulBC
 
27.12.19
05:58
(4) что именно не работает? Не изменяется всего или неправильно считает?
6 Саша Да Саша
 
27.12.19
05:59
(5) Не изменяется
7 PaulBC
 
27.12.19
06:03
Всего точно реквизит объекта, а не формы? Процедура вообще выполняется? Проверь отладчиком.
8 Саша Да Саша
 
27.12.19
06:07
(7) Да,реквизит объекта,тип число
9 Мимохожий Однако
 
27.12.19
06:21
Включи отладчик. Он эффективнее форума.
10 Саша Да Саша
 
27.12.19
06:25
(9) Я не очень понимаю,как с ним работать,поставил точку останова перед этой процедурой,и 0 реакции,заполняю реквизиты-он не двигается
11 Uzyf
 
27.12.19
06:31
(10) на строке "Строка = Элементы.СписокТоваров.ТекущиеДанные;" поставь точку останова
12 Саша Да Саша
 
27.12.19
06:41
Ну ничего не понимаю.
Ладно,начнём с нуля,
Есть реквизит табличной части и есть просто реквизит документа,как сделать,чтобы после изменения реквизита таб.части это значение заполнялось в обычный реквизит,просто на вашем примере ?
13 Саша Да Саша
 
27.12.19
06:42
Ничего не понимаю,ладно начнём с нуля.
Есть реквизит таб.части и есть просто реквизит объекта,как сделать,чтобы после заполнения реквизита таб.части это значение заполнялось в обычный реквизит?
14 GreenSCI
 
27.12.19
07:16
Событие элемента "Сумма" табличной части "При изменении".

Процедура ТвояТЧСуммаПриИзменении(Элемент)

        ТекущиеДанные = Элементы.СписокТоваров.ТекущиеДанные;
        СуммаСтроки = ТекущиеДанные.СуммаСтроки;
    ТвойРеквизитФормы = СуммаСтроки;

//ИЛИ одной строкой

ТвойРеквизитФормы = Элементы.СписокТоваров.ТекущиеДанные.СуммаСтроки;

КонецПроцедуры
15 Саша Да Саша
 
27.12.19
07:27
(14) Отлично,всё работает,спасибо.
Но возникла друга проблема,СуммаСтроки рассчитывается автоматически(Сумма = Количество * Цена) и вот если я сам заполню реквизит "СуммаСтроки"- всё гуд,а вот если заполнилось автоматом- не работает
16 hhhh
 
27.12.19
07:43
(15) а ты точно 3 процедуры сделал? на количество, цену и сумму? И во всех трех процедурах у тебя есть это?

ТвойРеквизитФормы = Элементы.СписокТоваров.ТекущиеДанные.СуммаСтроки;
17 Саша Да Саша
 
27.12.19
07:51
(16) Нет,цена изменяется автоматически после выбора товара(из Рег. сведений подтягивается).
Добавил "ТвойРеквизитФормы = Элементы.СписокТоваров.ТекущиеДанные.СуммаСтроки;" ещё в "При изменении количества" и заработало!
Спасибо.
18 Саша Да Саша
 
27.12.19
07:52
Всех очень благодарю за помощь!
19 Bootini
 
27.12.19
13:49
А еще проще, тыркаешь на свой реквизит формы Всего и в окне ПутьКДанным выбираешь Объект.СписокТоваров.ИтогСумма
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой