|
v8: По книге Радченко | ☑ | ||
---|---|---|---|---|
0
Magashpaga
09.02.13
✎
16:17
|
По книге Редченко создал обработчик в модуле формы:
&НаКлиенте Процедура МатериалыКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные; РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры В общем модуле: Процедура РассчитатьСумму(СтрокаТабличнойЧасти)Экспорт СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена; КонецПроцедуры При таком коде, в режиме 1С Предприятие, рассчитывается сумма при изменении количества и ЦЕНЫ. Хотя в книге говорится, что для поля Цена так же надо создать обработчик ПриИзменении. В чем дело? Если же я меняю в модуле формы МатериалыКоличество на МатериалыЦена, то вообще ничто не считает. Однако ошибку не выдает. |
|||
1
kotletka
09.02.13
✎
16:18
|
кто такое Редченко?
|
|||
2
PR
09.02.13
✎
16:18
|
(0) Выкинь эту лажу. Почитай что-нить более стоящее. Радченко хоть что ли :))
|
|||
3
Magashpaga
09.02.13
✎
16:23
|
Ну... Радченко, то есть ;)
|
|||
4
servs
09.02.13
✎
16:26
|
в свойствах элемента управления есть ссылки на обработчики, их смотри, имена должны совпадать!
|
|||
5
Magashpaga
09.02.13
✎
16:49
|
Спасибо. Там и ошибка.
Однако, когда в элементе Количество и в элементе Цена, в свойствах, стоит событие МатериалыКоличествоПриИзменении, все отлично считается и не надо прописывать МатериалыЦенаПриИзменении )) |
|||
6
shuhard
09.02.13
✎
16:51
|
(5) за прицепленный к контролу цена обработчик МатериалыКоличествоПриИзменении руки режут сразу
|
|||
7
servs
09.02.13
✎
16:54
|
(5) не так нельзя, делай 1 процедуру, и 2 разных обработчика, потом в каждом из обработчиков вызывай процеруду, так по стандарту будет.
|
|||
8
Magashpaga
09.02.13
✎
17:04
|
Ок. А чем это черевато?
|
|||
9
Надсмотрщик
09.02.13
✎
18:22
|
(8) Спеца не сдашь
|
|||
10
МастерВопросов
09.02.13
✎
18:45
|
(8) ничем особо страшным не чревато, разве что поматерят тебя последующие программисты. На клюшках в типовых так и писали, в свойствах каждой колонки стояла одна и та же процедура что то вроде глПересчетТабличнойЧасти(ИмяКолонки). А внутри этой процедуры уже условиями разруливалось вызов из какой колонки как обрабатывать.
Я когда осваиал снеговика прифигевал зачем писать десять процедур всего с одной строчкой, которая представляет собой вызов процедуры из общего модуля. Вообщем идеологии 1С8 не противоречит что ты на разные события будешь ставить вызов одной и той же процедуры, для этого и оставлена возможность руками, как в семерке вписать название процедуры, в поле обработчика. Но так обычно не делают - проще лупу в обработчике щелкнуть, опять же в дальнейшем может еще чего понадобится в этот обработчик понапихать. |
|||
11
mistеr
09.02.13
✎
21:03
|
(10) Это Delphi-style, оттуда взяли. И параметр Элемент, чтобы разруливать.
|
|||
12
Magashpaga
22.02.13
✎
16:46
|
А если просто обратиться к элементу Материалы(вызвав оброботчик из свойств), вот так:
&НаКлиенте Процедура МатериалыПриИзменении(Элемент) СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные; РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры Без Количества и Цены. Тоже не положено? Все работает. |
|||
13
GROOVY
22.02.13
✎
16:51
|
Вот форум на котором отвечает автор книги, в книге, кстати, об это упоминается. http://devtrainingforum.v8.1c.ru/forum/
|
|||
14
GANR
22.02.13
✎
17:23
|
(0) Если ты этот код подвязал к таблице, а не к её полю, конечно будет для всего срабатывать..
|
|||
15
mikecool
22.02.13
✎
17:44
|
(6) с хрена ли? периодически так пишу, ибо не считаю нужным плодить 500 лишних процедур
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |