Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 21:06

ПовторноеНажатиеНаКнопку

Автор Marccc, 31 авг 2011, 16:43

0 Пользователей и 1 гость просматривают эту тему.

Marccc

Друзья, нужна помощь, чтобы при повторном нажатии на кнопку, у меня дважды процент не считался, а оставался таким же как после 1 нажатия , не могу понять=)
Процедура РассчитатьСуммуОплатыДляПоселенияПослеБронированияНажатие(Элемент)
СтрокаРеквизитов = ЭлементыФормы;
Если РаботаСоСправочниками.ВыборкаПоБроне(СтрокаРеквизитов.ДатаЗаселения.Значение, СтрокаРеквизитов.Постоялец.Значение) = СтрокаРеквизитов.Постоялец.Значение Тогда             СтрокаРеквизитов.СуммаОплаты.Очистить();
СтрокаРеквизитов.СуммаОплаты.Значение = СтрокаРеквизитов.СуммаОплаты.Значение + СтрокаРеквизитов.СуммаОплаты.Значение * ( Константы.ПроцентПослеБронирования.Получить() /100)  ;                   
КонецЕсли;
КонецПроцедуры

primus

В других средах это делалось счетчиком нажатий - булевая переменная, через хранимые переменные. Может что-то можно и здесь.

Marccc

пробовал, СтрокаРеквизитов.СуммаОплаты.Очистить(); следующее

{Документ.Поселение.Форма.ФормаДокумента(3)}: Метод объекта не обнаружен (Очистить)                    СтрокаРеквизитов.СуммаОплаты.Очистить();

Андрей Федотов

Хм, а что вы хотите сделать то?
Может быть вместо
СтрокаРеквизитов.СуммаОплаты.Очистить();
надо написать
СтрокаРеквизитов.СуммаОплаты.Значение = Число(0);

Для наглядности также предлагаю изменить строку:
СтрокаРеквизитов.СуммаОплаты.Значение = СтрокаРеквизитов.СуммаОплаты.Значение + СтрокаРеквизитов.СуммаОплаты.Значение * ( Константы.ПроцентПослеБронирования.Получить() /100)  ;
на
СтрокаРеквизитов.СуммаОплаты.Значение = СтрокаРеквизитов.СуммаОплаты.Значение* (1+ Константы.ПроцентПослеБронирования.Получить() /100);
С уважением,
Андрей Федотов
Future IT Solutions

Marccc

У меня есть СуммаОплаты, при нажатии на кнопку, считается процент от неё, и выводится в тоже окошко, при повторном нажатии ещё раз увеличивается сумма =) хочу чтобы она заморозилась =)

Marccc

 разобрался, к нулю так и не понял зачем вообще приравнивать, если объясните, буду благоарен!
Процедура РассчитатьСуммуОплатыДляПоселенияПослеБронированияНажатие(Элемент)
СтрокаРеквизитов = ЭлементыФормы;       
               Если РаботаСоСправочниками.ВыборкаПоБроне(СтрокаРеквизитов.ДатаЗаселения.Значение, СтрокаРеквизитов.Постоялец.Значение) = СтрокаРеквизитов.Постоялец.Значение Тогда               
СтрокаРеквизитов.СуммаОплаты.Значение = СтрокаРеквизитов.КоличествоДнейПроживания.Значение * СтрокаРеквизитов.Цена.Значение;
СтрокаРеквизитов.СуммаОплаты.Значение = СтрокаРеквизитов.СуммаОплаты.Значение  * (1 + Константы.ПроцентПослеБронирования.Получить() /100)  ;
КонецЕсли;
КонецПроцедуры


Я  тут заного подсчитал ЗначениеПоля СуммаОплаты, хотя чувствую есть какой-то правильнее вариант

has

Зачем это?

СтрокаРеквизитов = ЭлементыФормы;

Marccc

СтрокаРеквизитов = ЭлементыФормы;
ну в книгах так пишут...впринципе незачем)

Marccc


Андрей Федотов

Цитата: Marccc от 31 авг 2011, 17:48
разобрался, к нулю так и не понял зачем вообще приравнивать, если объясните, буду благоарен!

Извините, я Вас не правильно понял первоначально.
Сделайте следующее: сохраните текущее значение СуммаОплаты в переменную (до выполнения процедуры).
А далее значение этой переменной используйте при нажатии кнопки.
С уважением,
Андрей Федотов
Future IT Solutions

Теги:
Рейтинг@Mail.ru

Поиск