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