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