0
Double_Medved
15.11.12
✎
16:57
|
1С 8.2 Торговля. В документе "ЧекККМ" есть реквизит "КартаЛояльности", тип Справочник.КартыЛояльности. Данные о Накоплении и Скидке содержаться в РегистреСведений "КартыЛояльностиСведения". В ЧекККМ есть кнопка "СчитатьКартуЛояльности". Необходимо при выборе карты нажатием этой кнопки делать просмотр данных о Накоплении и Скидке, для чего нужно прочитать Регистр.Это не проблема, но мне нужно привязать к событию которое происходит при окончании выбора карты. Пока я сделал отдельную кнопку "ДанныеПоКарте", которую нужно нажимать после выбора карты. Дело в том что если запихивать код считывания данных по карте в кнопку "СчитатьКартуЛояльности" то он выполняется сразу при ее нажатии, когда только открыли окно выбора карты, а мне нужно чтобы это было тогда когда ее выбрали.
&НаКлиенте
Процедура СчитатьКартуЛояльности(Команда)
Если ТолькоПросмотр Тогда // Чек пробит. Изменение информации запрещено.
Возврат;
КонецЕсли;
ОткрытьФорму(
"Справочник.КартыЛояльности.Форма.СчитываниеКартыЛояльности",
Неопределено,
ЭтаФорма,
ЭтаФорма.УникальныйИдентификатор
);
КонецПроцедуры
Процедура ДанныеПоКартеЛояльностиПрочитать(Команда)
// Вставить содержимое обработчика.
СкидкаПоКартеПоказать = "";
НакоплениеПоКартеПоказать = "";
СчитатьПроцентСкидкиИСуммунакопленияПоКарте(СкидкаПоКартеПоказать,НакоплениеПоКартеПоказать);
Элементы.СуммаНакопленияПоКартеЛояльности.Заголовок = НакоплениеПоКартеПоказать;
Элементы.СкидкаПоКартеЛояльности.Заголовок = СкидкаПоКартеПоказать;
КонецПроцедуры
&НаСервере
Процедура СчитатьПроцентСкидкиИСуммунакопленияПоКарте(СкидкаПоКартеПоказать,НакоплениеПоКартеПоказать)
НаборЗаписей = РегистрыСведений.КартыЛояльностиСведения.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для Каждого Запись из НаборЗаписей Цикл
Если Запись.КартаЛояльности.Наименование = Объект.КартаЛояльности.Наименование Тогда
СкидкаПоКартеПоказать = "Скидка по карте "+ Строка(Запись.ПроцентСкидки) + "%";
НакоплениеПоКартеПоказать = "Накопление по карте " + Запись.СуммаНакопления + "руб";
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
1
Reset
15.11.12
✎
17:14
|
Непонятно, почему для установки значения в реквизит используется кнопка? Почему нельзя сделать поле и обрабатывать событие ПриИзменении("к событию которое происходит при окончании выбора карты")?
Если же приспичило жать кнопку, то можно из формы выбора, например ОповеститьОВыборе() форму-владелец
|
|
2
Double_Medved
15.11.12
✎
17:22
|
А, можно из формы выбора оповестить? Спасибо. А если там будет поле, а не кнопка, что вообще все равно для задания, то нужна процедура ПриИзменении("ИмяРеквизита")?
|
|