#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ПоддерживаемыеТипыПодключаемогоОборудования = "СканерШтрихкода,СчитывательМагнитныхКарт";
ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);
УстановитьВидКартыИПартнераИзОтбора();
Список.Параметры.УстановитьЗначениеПараметра("ДатаАктуальности", НачалоДня(ТекущаяДатаСеанса()));
ОтборыСписковКлиентСервер.ЗаполнитьСписокВыбораОтбораПоАктуальности(Элементы.ОтборСрокДействия.СписокВыбора);
ОтборыСписковКлиентСервер.ОтборПоАктуальностиПриСозданииНаСервере(Список, Актуальность, Элементы.ОтборСрокДействия.СписокВыбора, ДатаСобытия, СтруктураБыстрогоОтбора);
СтруктураБыстрогоОтбора = Неопределено;
Параметры.Свойство("СтруктураБыстрогоОтбора", СтруктураБыстрогоОтбора);
Если ОтборыСписковКлиентСервер.НеобходимОтборПоСостояниюПриСозданииНаСервере(Состояние, СтруктураБыстрогоОтбора) Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Состояние", Состояние, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Состояние));
КонецЕсли;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект, Элементы.СписокКоманднаяПанель);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтаФорма, ПоддерживаемыеТипыПодключаемогоОборудования);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии()
МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВМассив(Параметр));
ИначеЕсли ИмяСобытия ="TracksData" Тогда
ОбработатьДанныеСчитывателяМагнитныхКарт(Параметр);
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "СчитанаКартаЛояльности"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
Элементы.Список.ТекущаяСтрока = Параметр.КартаЛояльности;
КонецЕсли;
Если ИмяСобытия = "Запись_КартаЛояльности" Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Если УстановитьВидКартыИПартнераИзОтбора() Тогда
ТаблицаСохраненныеНастройки = Новый ТаблицаЗначений;
ТаблицаСохраненныеНастройки.Колонки.Добавить("Ключ");
ТаблицаСохраненныеНастройки.Колонки.Добавить("Значение");
Для Каждого КлючИЗначение Из Настройки Цикл
НоваяСтрока = ТаблицаСохраненныеНастройки.Добавить();
НоваяСтрока.Ключ = КлючИЗначение.Ключ;
НоваяСтрока.Значение = КлючИЗначение.Значение;
КонецЦикла;
СохраненныеНастройки = ПоместитьВоВременноеХранилище(ТаблицаСохраненныеНастройки, УникальныйИдентификатор);
Настройки.Очистить();
Иначе
Партнер = Настройки.Получить("Партнер");
ВидКарты = Настройки.Получить("ВидКарты");
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Партнер", Партнер, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Партнер));
ВидКартыОтборПриИзмененииНаСервере();
ОтборыСписковКлиентСервер.ОтборПоАктуальностиПриЗагрузкеИзНастроек(Список, Актуальность, Элементы.ОтборСрокДействия.СписокВыбора, ДатаСобытия, СтруктураБыстрогоОтбора, Настройки);
Если ОтборыСписковКлиентСервер.НеобходимОтборПоСостояниюПриЗагрузкеИзНастроек(Состояние, СтруктураБыстрогоОтбора, Настройки) Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Состояние", Состояние, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Состояние));
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриСохраненииДанныхВНастройкахНаСервере(Настройки)
Если ЭтоАдресВременногоХранилища(СохраненныеНастройки) Тогда
ТаблицаСохраненныеНастройки = ПолучитьИзВременногоХранилища(СохраненныеНастройки);
Для Каждого СтрокаТЧ Из ТаблицаСохраненныеНастройки Цикл
Настройки.Вставить(СтрокаТЧ.Ключ, СтрокаТЧ.Значение);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ВидКартыОтборПриИзменении(Элемент)
ВидКартыОтборПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПартнерОтборПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Партнер", Партнер, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Партнер));
КонецПроцедуры
&НаКлиенте
Процедура ОтборСостояниеПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Состояние", Состояние, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Состояние));
КонецПроцедуры
&НаКлиенте
Процедура ОтборСрокДействияПриИзменении(Элемент)
ОтборыСписковКлиентСервер.ПриИзмененииОтбораПоАктуальности(Список, Актуальность, ДатаСобытия, Элементы.ОтборСрокДействия.СписокВыбора);
КонецПроцедуры
&НаКлиенте
Процедура ОтборСрокДействияОчистка(Элемент, СтандартнаяОбработка)
ОтборыСписковКлиентСервер.ПриОчисткеОтбораПоАктуальности(Список, Актуальность, ДатаСобытия, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОтборСрокДействияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ОбщегоНазначенияУТКлиент.ПриВыбореОтбораПоАктуальности(
ВыбранноеЗначение,
СтандартнаяОбработка,
ЭтаФорма,
Список,
"Актуальность",
"ОтборСрокДействия",
"ДатаСобытия");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ПриИзмененииРеквизитов
&НаСервере
Процедура ВидКартыОтборПриИзмененииНаСервере()
Персонализирована = КартаПерсонализирована(ВидКарты);
Если Не Персонализирована Тогда
Партнер = Справочники.Партнеры.ПустаяСсылка();
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Партнер", Партнер, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(Партнер));
КонецЕсли;
Элементы.ПартнерОтбор.Доступность = Персонализирована;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "Владелец", ВидКарты, ВидСравненияКомпоновкиДанных.Равно,, ЗначениеЗаполнено(ВидКарты));
КонецПроцедуры
#КонецОбласти
#Область ШтрихкодыИТорговоеОборудование
&НаКлиенте
Процедура ОбработатьШтрихкоды(ДанныеШтрихкодов)
КартыЛояльностиКлиент.ОбработатьШтрихкоды(ЭтаФорма, ДанныеШтрихкодов);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьДанныеСчитывателяМагнитныхКарт(Данные)
КартыЛояльностиКлиент.ОбработатьДанныеСчитывателяМагнитныхКарт(ЭтаФорма, Данные);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Функция УстановитьВидКартыИПартнераИзОтбора()
ЗначениеОтбораУстановлено = Ложь;
Если Параметры.Свойство("Отбор")
И Параметры.Отбор.Свойство("Владелец")
Тогда
ВидКарты = Параметры.Отбор.Владелец;
Элементы.ВидКартыОтбор.ТолькоПросмотр = Истина;
ЗначениеОтбораУстановлено = Истина;
Иначе
ВидКарты = Неопределено;
КонецЕсли;
Если Параметры.Свойство("Отбор")
И Параметры.Отбор.Свойство("Партнер")
Тогда
Партнер = Параметры.Отбор.Партнер;
Элементы.ПартнерОтбор.ТолькоПросмотр = Истина;
ЗначениеОтбораУстановлено = Истина;
Иначе
Партнер = Неопределено;
КонецЕсли;
Возврат ЗначениеОтбораУстановлено;
КонецФункции
&НаСервереБезКонтекста
Функция КартаПерсонализирована(ВидКарты)
Персонализирована = Ложь;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ВидыКартЛояльности.Персонализирована КАК Персонализирована
|ИЗ
| Справочник.ВидыКартЛояльности КАК ВидыКартЛояльности
|ГДЕ
| ВидыКартЛояльности.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ВидКарты);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Персонализирована = Выборка.Персонализирована;
КонецЕсли;
Возврат Персонализирована;
КонецФункции
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
#КонецОбласти
#КонецОбласти