Добрый день.
Задача в РМК после нажатия кнопки Оплата наличными, должно выскакивать окно ввода карты лояльности. Я взял процедуру инициализирующую вывод этого окна и засунул код в процедуру оплаты наличными. Теперь при нажатии, выскакивает окно ввода карты лояльности, карта даже регистрируется в чекеККМ, но проблема в том, что скидки конечно же не рассчитываются. Вот код:
Вопрос в следующем как бы сделать, чтобы при нажатии на кнопку оплатить наличными, сначала выскакивало окно ввода карты лояльности, а после того как оно закроется, выскакивала бы уже форма оплаты. Есть ли такая процедура или условие?
Задача в РМК после нажатия кнопки Оплата наличными, должно выскакивать окно ввода карты лояльности. Я взял процедуру инициализирующую вывод этого окна и засунул код в процедуру оплаты наличными. Теперь при нажатии, выскакивает окно ввода карты лояльности, карта даже регистрируется в чекеККМ, но проблема в том, что скидки конечно же не рассчитываются. Вот код:
Процедура ОплатитьНаличными(Команда)
ОчиститьСообщения();
Если ТолькоПросмотр Тогда // Чек пробит. Изменение информации запрещено.
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(
"НеИспользоватьРучнойВвод, НеПодключатьОборудование",
Не ПраваДоступа.ИзменениеКартЛояльности, Истина);
ОткрытьФорму(
"Справочник.КартыЛояльности.Форма.СчитываниеКартыЛояльности",
ПараметрыОткрытия,
ЭтотОбъект,
ЭтотОбъект.УникальныйИдентификатор);
ВыбраннаяФормаОплаты = Новый Структура;
ВыбраннаяФормаОплаты.Вставить("Наличные", Истина);
ВыбраннаяФормаОплаты.Вставить("БонусныеБаллы", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПлатежныеКарты", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПодарочныеСертификаты", Ложь);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыбраннаяФормаОплаты", ВыбраннаяФормаОплаты);
РозничныеПродажиКлиент.ОбработатьСостояниеСмены(
ЭтотОбъект,
Новый ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры));
КонецПроцедуры
ПоказатьВопрос в следующем как бы сделать, чтобы при нажатии на кнопку оплатить наличными, сначала выскакивало окно ввода карты лояльности, а после того как оно закроется, выскакивала бы уже форма оплаты. Есть ли такая процедура или условие?
По теме из базы знаний
- Как читать чужой код? Часть 1. Общие вопросы. Доработка чужого кода. Code review
- Рекомендации по оформлению кода на 1С в презентациях
- GitFlic - российский Git для хранения и управления кодом
- QR-Дисплей + расширение для 1С (прием оплаты по QR-коду и СБП в 1С)
- Сравнение, трехстороннее объединение и обновление с помощью WinMerge
Найденные решения
Примерно так:
Процедура ОплатитьНаличными(Команда)
ОчиститьСообщения();
Если ТолькоПросмотр Тогда // Чек пробит. Изменение информации запрещено.
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(
"НеИспользоватьРучнойВвод, НеПодключатьОборудование",
Не ПраваДоступа.ИзменениеКартЛояльности, Истина);
ВыбраннаяФормаОплаты = Новый Структура;
ВыбраннаяФормаОплаты.Вставить("Наличные", Истина);
ВыбраннаяФормаОплаты.Вставить("БонусныеБаллы", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПлатежныеКарты", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПодарочныеСертификаты", Ложь);
ОП = Новый ОписаниеОповещения("ПриЗакрытииФормыКартыЛояльности", ЭтотОбъект,ВыбраннаяФормаОплаты);
ОткрытьФорму(
"Справочник.КартыЛояльности.Форма.СчитываниеКартыЛояльности",
ПараметрыОткрытия,
ЭтотОбъект,
ЭтотОбъект.УникальныйИдентификатор,,,ОП);
КонецПроцедуры
Процедура ПриЗакрытииФормыКартыЛояльности(Результат,ВыбраннаяФормаОплаты) экспорт
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыбраннаяФормаОплаты", ВыбраннаяФормаОплаты);
РозничныеПродажиКлиент.ОбработатьСостояниеСмены(
ЭтотОбъект,
Новый ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры));
КонецПроцедуры
Показать
(10)
напрямую:
напрямую:
Процедура ОплатитьНаличными(Команда)
ОчиститьСообщения();
Если ТолькоПросмотр Тогда // Чек пробит. Изменение информации запрещено.
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(
"НеИспользоватьРучнойВвод, НеПодключатьОборудование",
Не ПраваДоступа.ИзменениеКартЛояльности, Истина);
ОП = Новый ОписаниеОповещения("ПриЗакрытииФормыКартыЛояльности", ЭтотОбъект);
ОткрытьФорму(
"Справочник.КартыЛояльности.Форма.СчитываниеКартыЛояльности",
ПараметрыОткрытия,
ЭтотОбъект,
ЭтотОбъект.УникальныйИдентификатор,,,ОП);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытииФормыКартыЛояльности(Результат) экспорт
ВыбраннаяФормаОплаты = Новый Структура;
ВыбраннаяФормаОплаты.Вставить("Наличные", Истина);
ВыбраннаяФормаОплаты.Вставить("БонусныеБаллы", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПлатежныеКарты", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПодарочныеСертификаты", Ложь);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыбраннаяФормаОплаты", ВыбраннаяФормаОплаты);
РозничныеПродажиКлиент.ОбработатьСостояниеСмены(
ЭтотОбъект,
Новый ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры));
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Примерно так:
Процедура ОплатитьНаличными(Команда)
ОчиститьСообщения();
Если ТолькоПросмотр Тогда // Чек пробит. Изменение информации запрещено.
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(
"НеИспользоватьРучнойВвод, НеПодключатьОборудование",
Не ПраваДоступа.ИзменениеКартЛояльности, Истина);
ВыбраннаяФормаОплаты = Новый Структура;
ВыбраннаяФормаОплаты.Вставить("Наличные", Истина);
ВыбраннаяФормаОплаты.Вставить("БонусныеБаллы", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПлатежныеКарты", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПодарочныеСертификаты", Ложь);
ОП = Новый ОписаниеОповещения("ПриЗакрытииФормыКартыЛояльности", ЭтотОбъект,ВыбраннаяФормаОплаты);
ОткрытьФорму(
"Справочник.КартыЛояльности.Форма.СчитываниеКартыЛояльности",
ПараметрыОткрытия,
ЭтотОбъект,
ЭтотОбъект.УникальныйИдентификатор,,,ОП);
КонецПроцедуры
Процедура ПриЗакрытииФормыКартыЛояльности(Результат,ВыбраннаяФормаОплаты) экспорт
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыбраннаяФормаОплаты", ВыбраннаяФормаОплаты);
РозничныеПродажиКлиент.ОбработатьСостояниеСмены(
ЭтотОбъект,
Новый ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры));
КонецПроцедуры
Показать
(5) Спасибо, я тоже нашёл этот метод. По вашему коду почему-то ругается сервер на предпоследнюю строку
{Документ.ЧекККМ.Форма.ФормаДокументаРМК.Форма(1156,9)}: Тип не определен (ОписаниеОповещения)
Новый <<?>>ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры)); (Проверка: Сервер)
Новый <<?>>ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры)); (Проверка: Сервер)
(7)
Подскажите, если грубо, то этим кодом
Вы как бы переносите в эту процедуру вот этот участок?
?
Подскажите, если грубо, то этим кодом
Процедура ПриЗакрытииФормыКартыЛояльности(Результат,ВыбраннаяФормаОплаты) экспорт
Вы как бы переносите в эту процедуру вот этот участок?
ВыбраннаяФормаОплаты = Новый Структура;
ВыбраннаяФормаОплаты.Вставить("Наличные", Истина);
ВыбраннаяФормаОплаты.Вставить("БонусныеБаллы", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПлатежныеКарты", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПодарочныеСертификаты", Ложь);
?
(10)
напрямую:
напрямую:
Процедура ОплатитьНаличными(Команда)
ОчиститьСообщения();
Если ТолькоПросмотр Тогда // Чек пробит. Изменение информации запрещено.
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура(
"НеИспользоватьРучнойВвод, НеПодключатьОборудование",
Не ПраваДоступа.ИзменениеКартЛояльности, Истина);
ОП = Новый ОписаниеОповещения("ПриЗакрытииФормыКартыЛояльности", ЭтотОбъект);
ОткрытьФорму(
"Справочник.КартыЛояльности.Форма.СчитываниеКартыЛояльности",
ПараметрыОткрытия,
ЭтотОбъект,
ЭтотОбъект.УникальныйИдентификатор,,,ОП);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытииФормыКартыЛояльности(Результат) экспорт
ВыбраннаяФормаОплаты = Новый Структура;
ВыбраннаяФормаОплаты.Вставить("Наличные", Истина);
ВыбраннаяФормаОплаты.Вставить("БонусныеБаллы", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПлатежныеКарты", Ложь);
ВыбраннаяФормаОплаты.Вставить("ПодарочныеСертификаты", Ложь);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ВыбраннаяФормаОплаты", ВыбраннаяФормаОплаты);
РозничныеПродажиКлиент.ОбработатьСостояниеСмены(
ЭтотОбъект,
Новый ОписаниеОповещения("ОплатитьНаличнымиОбработкаОповещения", ЭтотОбъект, ДополнительныеПараметры));
КонецПроцедуры
Показать
Надо как-то между ними вставить
Процедура НазначитьАвтоматическиеСкидки(Команда)
Объект.ФормаОплаты = ПредопределенноеЗначение("Перечисление.ФормыОплаты.ПустаяСсылка");
Оповещение = Новый ОписаниеОповещения("НазначитьАвтоматическиеСкидкиЗавершение", ЭтотОбъект);
Если ПараметрыПримененияСкидок.НазначеныУправляемыеСкидки Тогда
СкидкиНаценкиКлиент.ОткрытьФормуНазначенияУправляемыхСкидокНаценок(
ВыполнитьПредварительныйРасчетСкидокНаСервере(),
Оповещение);
Иначе
ВыполнитьОбработкуОповещения(Оповещение, УправляемыеСкидки);
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот