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