#Область ОписаниеПеременных
&НаКлиенте
Перем СтэкСтраниц;
&НаКлиенте
Перем ДанныеСчитывателя;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ПоддерживаемыеТипыПодключаемогоОборудования = "СканерШтрихкода,СчитывательМагнитныхКарт";
ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);
НеПодключатьОборудование = Параметры.НеПодключатьОборудование;
Партнер = Параметры.Партнер;
Дата = ТекущаяДатаСеанса();
Организация = Параметры.Организация;
ОсновнойТипКода = КартыЛояльностиСервер.ПолучитьОсновнойТипКодаКартыЛояльности();
НеИспользоватьРучнойВвод = Параметры.НеИспользоватьРучнойВвод;
Если НеИспользоватьРучнойВвод Тогда
Элементы.ГруппаКодКарты.Видимость = Ложь;
ЭтаФорма.ТекущийЭлемент = Элементы.КнопкаГотово;
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.КодКарты) Тогда
ОбработатьПолученныйКодНаСервере(Параметры.КодКарты, Параметры.ТипКода, Истина);
Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаВыборКартыЛояльности;
Иначе
Если ЗначениеЗаполнено(ОсновнойТипКода) Тогда
ТипКода = ОсновнойТипКода;
Элементы.ТипКода.Видимость = Ложь;
Иначе
ТипКода = Перечисления.ТипыКодовКарт.Штрихкод;
КонецЕсли;
Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности;
КонецЕсли;
Элементы.СтраницыКнопкиНазад.ТекущаяСтраница = Элементы.СтраницыКнопкиНазад.ПодчиненныеЭлементы.КнопкаНазадОтсутствует;
Элементы.СтраницыКнопкиДалее.ТекущаяСтраница = Элементы.СтраницыКнопкиДалее.ПодчиненныеЭлементы.КнопкаГотово;
Если НЕ НеИспользоватьРучнойВвод Тогда
Если Не ЗначениеЗаполнено(ОсновнойТипКода) Тогда
Текст = НСтр("ru = 'Считайте новую карту лояльности при помощи сканера штрихкода (считывателя магнитных карт) или введите код вручную'");
ИначеЕсли ОсновнойТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.МагнитныйКод") Тогда
Текст = НСтр("ru = 'Считайте новую карту лояльности при помощи считывателя магнитных карт или введите магнитный код вручную'");
ИначеЕсли ОсновнойТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
Текст = НСтр("ru = 'Считайте новую карту лояльности при помощи сканера штрихкода или введите штрихкод вручную'");
КонецЕсли;
Иначе
Если Не ЗначениеЗаполнено(ОсновнойТипКода) Тогда
Текст = НСтр("ru = 'Считайте новую карту лояльности при помощи сканера штрихкода (считывателя магнитных карт)'");
ИначеЕсли ОсновнойТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.МагнитныйКод") Тогда
Текст = НСтр("ru = 'Считайте новую карту лояльности при помощи считывателя магнитных карт'");
ИначеЕсли ОсновнойТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
Текст = НСтр("ru = 'Считайте новую карту лояльности при помощи сканера штрихкода'");
КонецЕсли;
КонецЕсли;
НадписьСчитываниеКартыЛояльности = Текст;
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СтэкСтраниц = Новый Массив;
Если НеПодключатьОборудование Тогда
Возврат;
КонецЕсли;
МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтаФорма, ПоддерживаемыеТипыПодключаемогоОборудования);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии()
Если НеПодключатьОборудование Тогда
Возврат;
КонецЕсли;
МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВМассив(Параметр));
ИначеЕсли ИмяСобытия ="TracksData" Тогда
ОбработатьДанныеСчитывателяМагнитныхКарт(Параметр);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ТипКодаОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура КодКартыПриИзменении(Элемент)
Если ЗначениеЗаполнено(КодКарты) Тогда
ПодключитьОбработчикОжидания("ДалееОбработчикОжидания", 0.1, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НайденныеКартыЛояльностиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ПодключитьОбработчикОжидания("ДалееОбработчикОжидания", 0.1, Истина);
КонецПроцедуры
#Область ОбработчикиКоманд
&НаКлиенте
Процедура Назад(Команда)
Если СтэкСтраниц.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Элементы.Страницы.ТекущаяСтраница = СтэкСтраниц[СтэкСтраниц.Количество()-1];
СтэкСтраниц.Удалить(СтэкСтраниц.Количество()-1);
Если СтэкСтраниц.Количество() = 0 Тогда
Элементы.СтраницыКнопкиНазад.ТекущаяСтраница = Элементы.СтраницыКнопкиНазад.ПодчиненныеЭлементы.КнопкаНазадОтсутствует;
КонецЕсли;
Элементы.СтраницыКнопкиДалее.ТекущаяСтраница = Элементы.СтраницыКнопкиДалее.ПодчиненныеЭлементы.КнопкаГотово;
КонецПроцедуры
&НаКлиенте
Процедура Далее(Команда)
ОтключитьОбработчикОжидания("ДалееОбработчикОжидания");
ОчиститьСообщения();
Если Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности Тогда
Если Не ЗначениеЗаполнено(КодКарты) Тогда
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Штрихкод не заполнен.'");
Иначе
ТекстСообщения = НСтр("ru = 'Магнитный код не заполнен.'");
КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ТекстСообщения,
,
"КодКарты");
Возврат;
КонецЕсли;
ОбработатьПолученныйКодНаКлиенте(КодКарты, ТипКода, Ложь);
ИначеЕсли Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаВыборКартыЛояльности Тогда
ТекущиеДанные = Элементы.НайденныеКартыЛояльности.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОбработатьВыборКартыЛояльности(ТекущиеДанные);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.НайденныеКартыЛояльности.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НайденныеКартыЛояльности.Ссылка");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НайденныеКартыЛояльности.АвтоматическаяРегистрацияПриПервомСчитывании");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет());
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЦветТекстаОтмененнойСтрокиДокумента);
КонецПроцедуры
#Область ШтрихкодыИТорговоеОборудование
&НаКлиенте
Процедура ОбработатьШтрихкоды(ДанныеШтрихкодов)
Если Элементы.Страницы.ТекущаяСтраница <> Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ДанныеШтрихкодов) = Тип("Массив") Тогда
МассивШтрихкодов = ДанныеШтрихкодов;
Иначе
МассивШтрихкодов = Новый Массив;
МассивШтрихкодов.Добавить(ДанныеШтрихкодов);
КонецЕсли;
ОбработатьПолученныйКодНаКлиенте(МассивШтрихкодов[0].Штрихкод, ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод"), Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьДанныеСчитывателяМагнитныхКарт(Данные)
Если Элементы.Страницы.ТекущаяСтраница <> Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности Тогда
Возврат;
КонецЕсли;
ДанныеСчитывателя = Данные;
ПодключитьОбработчикОжидания("ОбработатьПолученныйКодНаКлиентеВОбработкеОжидания", 0.1, Истина);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура ПерейтиНаСтраницу(Страница)
СтэкСтраниц.Добавить(Элементы.Страницы.ТекущаяСтраница);
Элементы.Страницы.ТекущаяСтраница = Страница;
Элементы.СтраницыКнопкиНазад.ТекущаяСтраница = Элементы.СтраницыКнопкиНазад.ПодчиненныеЭлементы.КнопкаНазад;
Если Страница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаВыборКартыЛояльности Тогда
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.МагнитныйКод") Тогда
Текст = НСтр("ru = 'Обнаружено несколько карт лояльности с магнитным кодом %1.
|Выберите подходящую карту.'");
Иначе
Текст = НСтр("ru = 'Обнаружено несколько карт лояльности со штрихкодом %1.
|Выберите подходящую карту.'");
КонецЕсли;
НадписьВыборКартыЛояльности = СтрШаблон(Текст, КодКарты);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОбработатьПолученныйКодНаСервере(Данные, ТипКодаКарты, Предобработка)
УстановитьПривилегированныйРежим(Истина);
НайденныеКартыЛояльности.Очистить();
ТипКода = ТипКодаКарты;
Если ТипКода = Перечисления.ТипыКодовКарт.МагнитныйКод Тогда
Если Предобработка Тогда
КодКарты = Данные[0];
КартыЛояльности = КартыЛояльностиВызовСервера.НайтиКартыЛояльностиПоДаннымСоСчитывателяМагнитныхКарт(Данные);
Иначе
КодКарты = Данные;
КартыЛояльности = КартыЛояльностиСервер.НайтиКартыЛояльностиПоМагнитномуКоду(КодКарты);
КонецЕсли;
Иначе
КодКарты = Данные;
КартыЛояльности = КартыЛояльностиВызовСервера.НайтиКартыЛояльностиПоШтрихкоду(КодКарты);
КонецЕсли;
Для Каждого СтрокаТЧ Из КартыЛояльности.ЗарегистрированныеКартыЛояльности Цикл
НоваяСтрока = НайденныеКартыЛояльности.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ);
НоваяСтрока.Наименование = Строка(СтрокаТЧ.Ссылка) + ?(ЗначениеЗаполнено(СтрокаТЧ.Партнер) И ЗначениеЗаполнено(СтрокаТЧ.Ссылка), " " + СтрШаблон(НСтр("ru = 'Клиент: %1'"), Строка(СтрокаТЧ.Партнер)), "");
КонецЦикла;
Для Каждого СтрокаТЧ Из КартыЛояльности.НеЗарегистрированныеКартыЛояльности Цикл
НоваяСтрока = НайденныеКартыЛояльности.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ);
НоваяСтрока.Наименование = СтрШаблон(НСтр("ru = 'Незарегистрированная карта: %1'"), Строка(СтрокаТЧ.ВидКарты));
КонецЦикла;
Возврат НайденныеКартыЛояльности.Количество() > 0;
КонецФункции
&НаКлиенте
Процедура ОбработатьПолученныйКодНаКлиенте(Данные, ПолученныйТипКода, Предобработка)
Результат = ОбработатьПолученныйКодНаСервере(Данные, ПолученныйТипКода, Предобработка);
Если Не Результат Тогда
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Карта со штрихкодом ""%1"" не зарегистрирована.'");
Иначе
ТекстСообщения = НСтр("ru = 'Карта с магнитным кодом ""%1"" не зарегистрирована.'");
КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон(ТекстСообщения, КодКарты),
,
"КодКарты");
Возврат;
КонецЕсли;
Если НайденныеКартыЛояльности.Количество() > 1 Тогда
ПерейтиНаСтраницу(Элементы.Страницы.ПодчиненныеЭлементы.ГруппаВыборКартыЛояльности);
Текст = НСтр("ru = 'Обнаружено несколько карт лояльности с кодом %1.
|Выберите подходящую карту.'");
НадписьВыборКартыЛояльности = СтрШаблон(Текст, КодКарты);
ИначеЕсли НайденныеКартыЛояльности.Количество() = 1 Тогда
ОбработатьВыборКартыЛояльности(НайденныеКартыЛояльности[0]);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЗарегистрироватьКартуЛояльности(ВидКарты, МагнитныйКод, Штрихкод)
СтруктураДанныхКарты = КартыЛояльностиСервер.ИнициализироватьДанныеКартыЛояльности();
СтруктураДанныхКарты.ВидКарты = ВидКарты;
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.МагнитныйКод") Тогда
СтруктураДанныхКарты.МагнитныйКод = МагнитныйКод;
ИначеЕсли ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
СтруктураДанныхКарты.Штрихкод = Штрихкод;
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ВидыКартЛояльности.Персонализирована КАК Персонализирована
|ИЗ
| Справочник.ВидыКартЛояльности КАК ВидыКартЛояльности
|ГДЕ
| ВидыКартЛояльности.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ВидКарты);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Выборка.Следующий();
Если Выборка.Персонализирована Тогда
Если Не ЗначениеЗаполнено(Партнер) Тогда
Возврат КартыЛояльностиСервер.СоздатьПартнераИЗарегистрироватьКартуЛояльности(СтруктураДанныхКарты);
Иначе
СтруктураДанныхКарты.Партнер = Партнер;
Возврат КартыЛояльностиСервер.ЗарегистрироватьКартуЛояльности(СтруктураДанныхКарты);
КонецЕсли;
Иначе
Возврат КартыЛояльностиСервер.ЗарегистрироватьКартуЛояльности(СтруктураДанныхКарты);
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ОбработатьВыборКартыЛояльности(ТекущиеДанные)
Если ЗначениеЗаполнено(ТекущиеДанные.Ссылка) Тогда
Если ТекущиеДанные.Статус = ПредопределенноеЗначение("Перечисление.СтатусыКартЛояльности.Действует")
И ТекущиеДанные.ДатаНачалаДействия <= Дата
И (Не ЗначениеЗаполнено(ТекущиеДанные.ДатаОкончанияДействия) ИЛИ КонецДня(ТекущиеДанные.ДатаОкончанияДействия) >= Дата) Тогда
Закрыть();
Оповестить(
"СчитанаКартаЛояльности",
Новый Структура("КартаЛояльности, ФормаВладелец", ТекущиеДанные.Ссылка, ВладелецФормы.УникальныйИдентификатор),
Неопределено);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Считана карта лояльности'"),
ПолучитьНавигационнуюСсылку(ТекущиеДанные.Ссылка),
СтрШаблон(НСтр("ru = 'Считана карта лояльности %1'"), ТекущиеДанные.Ссылка),
БиблиотекаКартинок.Информация32);
Иначе
Если ТекущиеДанные.Статус = ПредопределенноеЗначение("Перечисление.СтатусыКартЛояльности.Действует") Тогда
Если ТекущиеДанные.ДатаНачалаДействия <= Дата Тогда
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" со штрихкодом %2 истек.'");
Иначе
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" с магнитным кодом %2 истек.'");
КонецЕсли;
Иначе
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" со штрихкодом %2 еще не наступил.'");
Иначе
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" с магнитным кодом %2 еще не наступил.'");
КонецЕсли;
КонецЕсли;
Иначе
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Карта ""%1"" со штрихкодом %2 аннулирована.'");
Иначе
ТекстСообщения = НСтр("ru = 'Карта ""%1"" с магнитным кодом %2 аннулирована.'");
КонецЕсли;
КонецЕсли;
Если Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности Тогда
Поле = "КодКарты";
Иначе
Поле = СтрШаблон("НайденныеКартыЛояльности[%1].Наименование", НайденныеКартыЛояльности.Индекс(ТекущиеДанные));
КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон(ТекстСообщения, ТекущиеДанные.ВидКарты, КодКарты),
,
Поле);
КонецЕсли;
Иначе
Если ТекущиеДанные.АвтоматическаяРегистрацияПриПервомСчитывании Тогда
Если ТекущиеДанные.СтатусВидаКарты = ПредопределенноеЗначение("Перечисление.СтатусыВидовКартЛояльности.Действует")
И ТекущиеДанные.ДатаНачалаДействия <= Дата
И (Не ЗначениеЗаполнено(ТекущиеДанные.ДатаОкончанияДействия) ИЛИ КонецДня(ТекущиеДанные.ДатаОкончанияДействия) >= Дата) Тогда
ТекущиеДанные.Ссылка = ЗарегистрироватьКартуЛояльности(ТекущиеДанные.ВидКарты, ТекущиеДанные.МагнитныйКод, ТекущиеДанные.Штрихкод);
Закрыть();
Оповестить(
"Запись_КартаЛояльности",
Новый Структура,
ТекущиеДанные.Ссылка);
Оповестить(
"СчитанаКартаЛояльности",
Новый Структура("КартаЛояльности, ФормаВладелец", ТекущиеДанные.Ссылка, ВладелецФормы.УникальныйИдентификатор),
Неопределено);
ПоказатьОповещениеПользователя(
НСтр("ru = 'Считана карта лояльности'"),
ПолучитьНавигационнуюСсылку(ТекущиеДанные.Ссылка),
СтрШаблон(НСтр("ru = 'Считана карта лояльности %1'"), ТекущиеДанные.Ссылка),
БиблиотекаКартинок.Информация32);
Иначе
Если ТекущиеДанные.СтатусВидаКарты = ПредопределенноеЗначение("Перечисление.СтатусыВидовКартЛояльности.Действует") Тогда
Если ТекущиеДанные.ДатаНачалаДействия <= Дата Тогда
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" со штрихкодом %2 истек.'");
Иначе
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" с магнитным кодом %2 истек.'");
КонецЕсли;
Иначе
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" со штрихкодом %2 еще не наступил.'");
Иначе
ТекстСообщения = НСтр("ru = 'Срок действия карты ""%1"" с магнитным кодом %2 еще не наступил.'");
КонецЕсли;
КонецЕсли;
Иначе
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Карта ""%1"" со штрихкодом %2 аннулирована.'");
Иначе
ТекстСообщения = НСтр("ru = 'Карта ""%1"" с магнитным кодом %2 аннулирована.'");
КонецЕсли;
КонецЕсли;
Если Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности Тогда
Поле = "КодКарты";
Иначе
Поле = СтрШаблон("НайденныеКартыЛояльности[%1].Наименование", НайденныеКартыЛояльности.Индекс(ТекущиеДанные));
КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон(ТекстСообщения, ТекущиеДанные.ВидКарты, КодКарты),
,
Поле);
КонецЕсли;
Иначе
Если ТипКода = ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.Штрихкод") Тогда
ТекстСообщения = НСтр("ru = 'Карта ""%1"" со штрихкодом %2 не зарегистрирована. Карты вида ""%1"" регистрируются только с помощью помощника регистрации карт лояльности'");
Иначе
ТекстСообщения = НСтр("ru = 'Карта ""%1"" с магнитным кодом %2 не зарегистрирована. Карты вида ""%1"" регистрируются только с помощью помощника регистрации карт лояльности'");
КонецЕсли;
Если Элементы.Страницы.ТекущаяСтраница = Элементы.Страницы.ПодчиненныеЭлементы.ГруппаСчитываниеКартыЛояльности Тогда
Поле = "КодКарты";
Иначе
Поле = СтрШаблон("НайденныеКартыЛояльности[%1].Наименование", НайденныеКартыЛояльности.Индекс(ТекущиеДанные));
КонецЕсли;
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
СтрШаблон(ТекстСообщения, ТекущиеДанные.ВидКарты, КодКарты),
,
Поле);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьПолученныйКодНаКлиентеВОбработкеОжидания()
ОбработатьПолученныйКодНаКлиенте(ДанныеСчитывателя, ПредопределенноеЗначение("Перечисление.ТипыКодовКарт.МагнитныйКод"), Истина);
КонецПроцедуры
&НаКлиенте
Процедура ДалееОбработчикОжидания()
Далее(Команды["Далее"]);
КонецПроцедуры
#КонецОбласти
#КонецОбласти