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