#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыВыбораСтатейИАналитик = Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыНастройки =
Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыНастройки);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
Если Параметры.Свойство("Основание") Тогда
Основание = Параметры.Основание;
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
ФормированиеФискальныхЧековСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
Элементы.РасшифровкаБезРазбиенияДатаПогашения.ТолькоПросмотр = Не ПравоДоступа(
"Редактирование",
Метаданные.Документы.ПоступлениеБезналичныхДенежныхСредств.ТабличныеЧасти.РасшифровкаПлатежа.Реквизиты.ДатаПогашения);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
СобытияФорм.ПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтотОбъект, Элементы.СтрокаИсправление);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиент.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Основание);
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если Не ТекущийОбъект.ПроведеноБанком Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаДатыЗапретаИзменения", Ложь);
КонецЕсли;
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПараметрыВыбораСтатейИАналитик = Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыНастройки =
Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыНастройки);
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтаФорма);
ФормированиеФискальныхЧековСервер.ФормаПриЧтенииНаСервере(ЭтотОбъект);
ПриЧтенииСозданииНаСервере();
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ФинансыКлиент.ПересчитатьСуммуДокументаПоРасшифровкеПлатежа(ЭтаФорма, ОписаниеОповещения);
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса Тогда
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ДополнительныеПараметры.ПараметрыЗаписи,,Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_ПоступлениеБезналичныхДенежныхСредств", ПараметрыЗаписи, Объект.Ссылка);
ВзаиморасчетыКлиент.ФормаПослеЗаписи(ЭтаФорма);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтаФорма, Объект, ПараметрыЗаписи);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации")
И ЗначениеЗаполнено(ЗеркальныйПлатежСсылка)
И Не СоответствуетЗеркальномуПлатежу Тогда
ПоказатьВопрос(Новый ОписаниеОповещения("ПривестиВСоответствиеЗеркальныйПлатежЗавершение", ЭтотОбъект, Ложь),
СтрШаблон(НСтр("ru = 'Привести в соответствие %1?'"), ЗеркальныйПлатежСсылка), РежимДиалогаВопрос.ДаНет);
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
ИсправлениеДокументовКлиент.ПослеЗаписи(Объект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
НастройкаСчетовУчетаСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект.ДополнительныеСвойства);
ЗаполнитьНалогообложениеНДС(Ложь);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка)
И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации Тогда
СоответствуетЗеркальномуПлатежу = Документы.ПоступлениеБезналичныхДенежныхСредств.СоответствуетЗеркальномуПлатежу(
Объект.Ссылка,ЗеркальныйПлатежСсылка);
Если Не СоответствуетЗеркальномуПлатежу Тогда
ОбновитьНадписьЗеркальныйПлатеж();
КонецЕсли;
КонецЕсли;
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "СчитанПодарочныйСертификат"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
ОбработатьПодарочныйСертификат(Параметр.ПодарочныйСертификат);
КонецЕсли;
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив;
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии = Ложь;
Если Объект.СуммаКомиссии = 0
Или Не Объект.ОтражатьКомиссию
Или Не Объект.ВестиУчетКомиссииВоВзаиморасчетах Тогда
МассивНепроверяемыхРеквизитов.Добавить("ДоговорКомиссии");
ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДоговорКомиссии) Тогда
ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии = Истина;
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
Если Не ПереключательРасшифровки Тогда
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ДополнительныеСвойства.Вставить("РасшифровкаБезРазбиения", Истина);
Если ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии Тогда
ДокументОбъект.ДополнительныеСвойства.Вставить("ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии", Истина);
КонецЕсли;
Если Не ДокументОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ПроверяемыйРеквизитОбъект = ПроверяемыеРеквизиты.Найти("Объект");
Если ПроверяемыйРеквизитОбъект <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(ПроверяемыйРеквизитОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Если Объект.ПроведеноБанком Тогда
ТекущаяДата = Объект.Дата;
Объект.ДатаПроведенияБанком = Объект.Дата;
КонецЕсли;
ДатаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииСервер()
ЗаполнитьНалогообложениеНДС();
УстановитьПараметрыВыбораТипаНалогов();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецПроцедуры
&НаКлиенте
Процедура ПроведеноБанкомПриИзменении(Элемент)
Если Не Объект.ПроведеноБанком Тогда
Объект.ДатаПроведенияБанком = Неопределено;
Иначе
Если Не ЗначениеЗаполнено(Объект.ДатаПроведенияБанком) Тогда
Объект.ДатаПроведенияБанком = Объект.Дата;
КонецЕсли;
КонецЕсли;
ПроведеноБанкомПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПроведеноБанкомПриИзмененииСервер()
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтаФорма);
ЗаполнитьКурсКурсЗнаменательВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПроведенияБанкомПриИзменении(Элемент)
ДатаПроведенияБанкомПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДатаПроведенияБанкомПриИзмененииНаСервере()
ЗаполнитьКурсКурсЗнаменательВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
УстановитьПараметрыВыбораТипаНалогов();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
ХозяйственнаяОперацияПриИзмененииСервер();
ОбновитьПредставлениеДатыПогашения();
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСервер()
ИнициализироватьРасшифровкуПлатежа();
Если ЗначениеЗаполнено(Объект.ДокументОснование)
И ДоступныеОперацииПоОснованию.НайтиПоЗначению(Объект.ХозяйственнаяОперация) = Неопределено Тогда
Объект.ДокументОснование = Неопределено;
ДоступныеОперацииПоОснованию.Очистить();
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаРасшифровки, "Объект.РасшифровкаПлатежа");
КонецЦикла;
УстановитьВозможныеЗначенияСчетаОтправителя();
Если Не СчетСоответствуетВладельцу() Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
СтатьяДДСПоХО = Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(
Объект.ХозяйственнаяОперация);
Объект.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоХО;
Для каждого СтрокаРасшифровкиПлатежа Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровкиПлатежа.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоХО;
КонецЦикла;
МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
Документы.ПоступлениеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("Контрагент") = Неопределено Тогда
Объект.Контрагент = Неопределено;
Партнер = Справочники.Партнеры.ПустаяСсылка();
Объект.Договор = Неопределено;
Для каждого ТекСтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
ТекСтрокаРасшифровки.Партнер = Партнер;
ТекСтрокаРасшифровки.Договор = Объект.Договор;
ТекСтрокаРасшифровки.ОснованиеПлатежа = Неопределено;
ТекСтрокаРасшифровки.ОбъектРасчетов = Справочники.ОбъектыРасчетов.ПустаяСсылка();
КонецЦикла;
КонецЕсли;
Если МассивРеквизитовОперации.Найти("КассаОтправитель") <> Неопределено
И Не ЗначениеЗаполнено(Объект.КассаОтправитель) Тогда
Объект.КассаОтправитель = Справочники.Кассы.ПолучитьКассуПоУмолчанию(Объект.Организация, Объект.Валюта);
КонецЕсли;
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПоступлениеОплатыПоПлатежнойКарте Тогда
Объект.ОтражатьКомиссию = Ложь;
КонецЕсли;
ПараметрыНастройки =
Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
ПараметрыВыбораСтатейИАналитик = Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
ПолучитьДоговорПоУмолчаниюСервер();
Объект.НаправлениеДеятельности = ДенежныеСредстваСервер.НаправлениеДеятельности(
Объект.ХозяйственнаяОперация,
Объект.НаправлениеДеятельности);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ЗаполнитьНалогообложениеНДС();
ОбработатьИзменениеУИП();
ОбновитьНадписьЗеркальныйПлатеж();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетПриИзменении(Элемент)
СтруктураВозврата = БанковскийСчетПриИзмененииКлиент("РазрешенПересчетВВалюту");
Если СтруктураВозврата.НуженПереходНаСервер Тогда
БанковскийСчетПриИзмененииСервер(СтруктураВозврата.РеквизитыБанковскогоСчета, СтруктураВозврата.ПересчитыватьСуммы);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция БанковскийСчетПриИзмененииКлиент(ИмяОбработчика)
СтруктураВозврата = Новый Структура("НуженПереходНаСервер, РеквизитыБанковскогоСчета, ПересчитыватьСуммы");
РеквизитыБанковскогоСчета = ПолучитьРеквизитыБанковскогоСчета(Объект.БанковскийСчет);
Если Не ФинансыКлиент.НеобходимПересчетВВалюту(Объект, Объект.Валюта, РеквизитыБанковскогоСчета.Валюта) Тогда
СтруктураВозврата.Вставить("НуженПереходНаСервер", Истина);
СтруктураВозврата.Вставить("РеквизитыБанковскогоСчета", РеквизитыБанковскогоСчета);
СтруктураВозврата.Вставить("ПересчитыватьСуммы", Ложь);
Иначе
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Пересчитать суммы в документе в валюту %1?'"),
РеквизитыБанковскогоСчета.Валюта);
КнопкиДиалогаВопрос = Новый СписокЗначений;
КнопкиДиалогаВопрос.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Пересчитать'"));
КнопкиДиалогаВопрос.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отменить'"));
ОписаниеОповещения = Новый ОписаниеОповещения(
ИмяОбработчика, ЭтотОбъект, Новый Структура("СтруктураРеквизитов", РеквизитыБанковскогоСчета));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, КнопкиДиалогаВопрос);
СтруктураВозврата.Вставить("НуженПереходНаСервер", Ложь);
КонецЕсли;
Возврат СтруктураВозврата;
КонецФункции
&НаКлиенте
Процедура РазрешенПересчетВВалюту(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ТекущаяВалюта = Объект.Валюта;
БанковскийСчетПриИзмененииСервер(ДополнительныеПараметры.СтруктураРеквизитов, Истина);
ЦенообразованиеКлиент.ОповеститьОбОкончанииПересчетаСуммВВалюту(ТекущаяВалюта, Объект.Валюта);
Иначе
Объект.БанковскийСчет = ТекущийБанковскийСчет;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПриИзмененииСервер(СтруктураРеквизитов, ПересчитыватьСуммы)
ИзмениласьОрганизация = (Объект.Организация <> СтруктураРеквизитов.Организация);
ИзмениласьВалюта = (Объект.Валюта <> СтруктураРеквизитов.Валюта);
ТекущийБанковскийСчет = Объект.БанковскийСчет;
ТекущаяВалюта = Объект.Валюта;
Объект.Валюта = СтруктураРеквизитов.Валюта;
Объект.Организация = СтруктураРеквизитов.Организация;
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
МассивРеквизитов = Новый Массив;
Если ИзмениласьОрганизация Тогда
МассивРеквизитов.Добавить("Организация");
КонецЕсли;
Если ИзмениласьВалюта Тогда
МассивРеквизитов.Добавить("Валюта");
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, МассивРеквизитов);
Если ЗначениеЗаполнено(ТекущийБанковскийСчет) Тогда
Если ЗначениеЗаполнено(ТекущаяВалюта) И ИзмениласьВалюта Тогда
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
Объект.БанковскийСчетОтправитель = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
Объект.КассаОтправитель = Справочники.Кассы.ПустаяСсылка();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ВалютаКонвертацииПриИзмененииСервер();
КонецЕсли;
КонецЕсли;
ЗаполнятьСчетПоДоговору = ИзмениласьОрганизация Или НЕ ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента);
ПолучитьДоговорПоУмолчаниюСервер(ЗаполнятьСчетПоДоговору);
ЗаполнитьНалогообложениеНДС();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
Если ИзмениласьОрганизация Тогда
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
ЕстьФилиалы = ФилиалыОрганизации.Количество() > 0;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ТипРасчетов = ?(Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации,
Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом,
Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком);
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента,,ТипРасчетов);
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.Партнер = Партнер;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
СтрокаТЧ.ОснованиеПлатежа = ДоговорКонтрагента;
СтрокаТЧ.ОбъектРасчетов = ОбъектРасчетовДоговор;
СтрокаТЧ.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
СтрокаТЧ.СтавкаНДС = СтавкаНДС;
КонецЕсли;
КонецЦикла;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ОбработатьИзменениеУИП();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецЕсли;
Иначе
ФилиалыОрганизации.Очистить();
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
Если ПересчитыватьСуммы Тогда
ДенежныеСредстваСервер.ПересчетСуммДокументаВВалюту(Объект, ТекущаяВалюта, Объект.Валюта);
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецЕсли;
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.ПоступлениеБезналичныхДенежныхСредств", Объект, ВалютаРеглУчета, ИзмениласьВалюта);
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьДоговорОбъектРасчетовКомиссии();
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы);
Элементы.НадписьВалюта.Заголовок = Строка(Объект.Валюта);
УстановитьВозможныеЗначенияСчетаОтправителя();
ДенежныеСредстваСервер.УстановитьПараметрыВыбораСписанияДенежныхСредств(Объект, Элементы.ДокументВыдачи);
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьПризнакВалютныйКонтроль();
УстановитьПараметрыВыбораТипаНалогов();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетКонтрагентаПриИзменении(Элемент)
БанковскийСчетКонтрагентаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииСервер()
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
ФинансыКлиентСервер.ПересчитатьСуммыВСтрокеРасшифровкиПлатежа(Объект, Объект.СуммаДокумента, Ложь);
СуммаДокументаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Контрагент");
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Объект.Контрагент, Объект.ХозяйственнаяОперация);
ПолучитьДоговорПоУмолчаниюСервер();
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента)
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.Партнер = Партнер;
СтрокаТЧ.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
СтрокаТЧ.ОснованиеПлатежа = ДоговорКонтрагента;
СтрокаТЧ.ОбъектРасчетов = ОбъектРасчетовДоговор;
СтрокаТЧ.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
СтрокаТЧ.СтавкаНДС = СтавкаНДС;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ);
ДенежныеСРедстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецЕсли;
КонецЦикла;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
ОбработатьИзменениеУИП();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Если Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыПоПлатежнойКарте Тогда
ПараметрыОтбора = Справочники.ДоговорыЭквайринга.ПараметрыОтбораДоговораЭквайринга();
ПараметрыОтбора.Организация = Объект.Организация;
ПараметрыОтбора.Эквайер = Объект.Контрагент;
ПараметрыОтбора.БанковскийСчет = Объект.БанковскийСчет;
Объект.ДоговорЭквайринга = Справочники.ДоговорыЭквайринга.ДоговорЭквайрингаПоУмолчанию(ПараметрыОтбора);
Если ЗначениеЗаполнено(Объект.ДоговорЭквайринга) Тогда
ДоговорЭквайрингаПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(Объект, Элементы.РасшифровкаПлатежаДоговорАренды);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(Объект, Элементы.РасшифровкаБезРазбиенияДоговорАренды);
КонецЕсли;
ЗаполнитьДоговорОбъектРасчетовКомиссии();
УстановитьВидимостьКнопкиПодбораПодарочногоСертификата();
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецЕсли;
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере("Контрагент");
КонецПроцедуры
&НаКлиенте
Процедура ДоговорЭквайрингаПриИзменении(Элемент)
ДоговорЭквайрингаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорЭквайрингаПриИзмененииНаСервере()
ЗначенияРеквизитов = Справочники.ДоговорыЭквайринга.РеквизитыДоговора(Объект.ДоговорЭквайринга);
Объект.СтатьяДвиженияДенежныхСредств = ЗначенияРеквизитов.СтатьяДвиженияДенежныхСредствПоступлениеОплаты;
Объект.ОтражатьКомиссию = (ЗначенияРеквизитов.СпособОтраженияКомиссии = Перечисления.СпособыОтраженияЭквайринговойКомиссии.ПриЗачислении);
Если Объект.ОтражатьКомиссию Тогда
Если ЗначенияРеквизитов.ФиксированнаяСтавкаКомиссии Тогда
СтавкаКомиссии = ЗначенияРеквизитов.СтавкаКомиссии;
Объект.СуммаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСуммуКомиссии(Объект.СуммаДокумента, СтавкаКомиссии, Истина);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Объект.СтатьяРасходов = ЗначенияРеквизитов.СтатьяРасходов;
Объект.АналитикаРасходов = ЗначенияРеквизитов.АналитикаРасходов;
Объект.Подразделение = ЗначенияРеквизитов.ПодразделениеРасходов;
Объект.НаправлениеДеятельности = ЗначенияРеквизитов.НаправлениеДеятельности;
Объект.ВестиУчетКомиссииВоВзаиморасчетах = ЗначенияРеквизитов.ВестиУчетКомиссииВоВзаиморасчетах;
Объект.ОбъектРасчетовКомиссии = ЗначенияРеквизитов.ОбъектРасчетовКомиссии;
ДоговорКомиссии = ДоговорОбъектаРасчетовКомиссии(Объект.ОбъектРасчетовКомиссии);
Иначе
Объект.СуммаКомиссии = 0;
Объект.ВестиУчетКомиссииВоВзаиморасчетах = Ложь;
Объект.ОбъектРасчетовКомиссии = Справочники.ОбъектыРасчетов.ПустаяСсылка();
ДоговорКомиссии = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
ВестиУчетКомиссииВоВзаиморасчетахПереключатель = Объект.ВестиУчетКомиссииВоВзаиморасчетах;
ПараметрыВыбораСтатейИАналитик = Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ПодотчетноеЛицоПриИзменении(Элемент)
ПодотчетноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСервер()
Если ЗначениеЗаполнено(Объект.ПодотчетноеЛицо) И Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("ПодотчетноеЛицо");
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетОтправительПриИзменении(Элемент)
БанковскийСчетОтправительПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетОтправительПриИзмененииСервер()
ПриИзмененииБанковскийСчетОтправитель();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ВалютаКонвертацииПриИзменении(Элемент)
ВалютаКонвертацииПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КурсКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецПроцедуры
&НаКлиенте
Процедура СуммаКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("СуммаКонвертации");
Если Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Объект.РасшифровкаПлатежа[0].Сумма = Объект.СуммаДокумента;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница = Элементы.СтраницаРасшифровка И Не ПереключательРасшифровки И Не ТолькоПросмотр Тогда
РасшифровкаПлатежаПриНачалеРедактирования(Элемент, Ложь, Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗеркальныйПлатежНажатие(Элемент, СтандартнаяОбработка)
Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка) Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,ЗеркальныйПлатежСсылка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ФискальнаяОперацияСтатусОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
ФормированиеФискальныхЧековКлиент.ФискальнаяОперацияОбработкаНавигационнойСсылки(
ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ФискальнаяОперацияЗавершение(Результат, ДополнительныеПараметры) Экспорт
ФискальнаяОперацияЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ФискальнаяОперацияЗавершениеНаСервере()
ФормированиеФискальныхЧековСервер.ОбновитьГиперссылкуПробитияФискальногоЧека(Объект.Ссылка, ЭтотОбъект, ФискальнаяОперацияСтатус);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитыДоговора, "ГруппаФинансовогоУчета") Тогда
Объект.ГруппаФинансовогоУчета = РеквизитыДоговора.ГруппаФинансовогоУчета;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитыДоговора, "НаправлениеДеятельности") Тогда
Объект.НаправлениеДеятельности = ДенежныеСредстваСервер.НаправлениеДеятельности(
Объект.ХозяйственнаяОперация,
РеквизитыДоговора.НаправлениеДеятельности);
КонецЕсли;
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(ТекущаяСтрока, РеквизитыДоговора);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ЗаполнитьНалогообложениеНДС();
ОбработатьИзменениеУИП();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорВозвратаСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДенежныеСредстваКлиент.ОткрытьСозданиеДоговораВозврата(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СуммаКомиссииПриИзменении(Элемент)
Если Объект.СуммаДокумента <> 0 Тогда
СтавкаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСтавкуКомиссии(
Объект.СуммаДокумента, Объект.СуммаКомиссии, Истина);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Элементы.ГруппаКомиссия.Заголовок = НСтр("ru='Комиссия'") +
" " + Строка(Объект.СуммаКомиссии) + " " + Строка(Объект.Валюта) + " " + Строка(СтавкаКомиссии) + "%";
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ДекорацияВалютыИКурсПлатежаНажатиеЗавершение", ЭтотОбъект);
ДенежныеСредстваКлиент.ВалютыИКурсПлатежаНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере()
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ПодтверждениеЗачисленияЗарплатыПриИзменении(Элемент)
ПодтверждениеЗачисленияЗарплатыПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияИндексыСПАРКРискиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СПАРКРискиКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТипПлатежногоДокументаПриИзменении(Элемент)
Если Не Объект.ПроведеноБанком Тогда
Если Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ИнкассовоеПоручение")
Или Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ПлатежныйОрдер") Тогда
Объект.ПроведеноБанком = Истина;
Объект.ДатаПроведенияБанком = Объект.Дата;
КонецЕсли;
КонецЕсли;
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ИдентификаторПлатежаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.КонвертацияВалюты") Тогда
ПодобратьОснованияПлатежаКонвертацииПоУИП(Текст, ДанныеВыбора, СтандартнаяОбработка);
Иначе
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(
ЭтотОбъект, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Истина, Ложь);
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ИдентификаторПлатежаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ИдентификаторПлатежаОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецПроцедуры
&НаКлиенте
Процедура ИдентификаторПлатежаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.КонвертацияВалюты") Тогда
ПодобратьОснованияПлатежаКонвертацииПоУИП(Текст, ДанныеВыбора, СтандартнаяОбработка);
Иначе
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(
ЭтотОбъект, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Истина, Ложь);
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ДокументВыдачиПриИзменении(Элемент)
ДокументВыдачиПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ДокументВыдачиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратНеперечисленныхДС") Или
Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратНеперечисленнойЗарплатыПоЗарплатномуПроекту") Тогда
Элемент.ОграничениеТипа = Новый ОписаниеТипов("ДокументСсылка.СписаниеБезналичныхДенежныхСредств");
Элемент.ВыбиратьТип = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТипНалогаПриИзменении(Элемент)
ТипНалогаПриИзмененииНаСервере();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлатежаВБюджетНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТолькоПросмотр" , ТолькоПросмотр);
ПараметрыФормы.Вставить("ВидПеречисленияВБюджет", Объект.ВидПеречисленияВБюджет);
ПараметрыФормы.Вставить("КодБК", Объект.КодБК);
ПараметрыФормы.Вставить("КодОКАТО", Объект.КодОКАТО);
ПараметрыФормы.Вставить("ПоказательДаты", Объект.ПоказательДаты);
ПараметрыФормы.Вставить("ПоказательНомера", Объект.ПоказательНомера);
ПараметрыФормы.Вставить("ПоказательОснования", Объект.ПоказательОснования);
ПараметрыФормы.Вставить("ПоказательПериода", Объект.ПоказательПериода);
ПараметрыФормы.Вставить("ПоказательТипа", Объект.ПоказательТипа);
ПараметрыФормы.Вставить("СтатусСоставителя", Объект.СтатусСоставителя);
ПараметрыФормы.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
ПараметрыФормы.Вставить("ПрименениеПриказа107н", Истина);
ПараметрыФормы.Вставить("ПрименениеПриказа126н", Истина);
ПараметрыФормы.Вставить("ТекущаяДата", ТекущаяДата);
ПараметрыФормы.Вставить("ТипНалога", Объект.ТипНалога);
Оповещение = Новый ОписаниеОповещения("НадписьРеквизитыПлатежаВБюджетНажатиеЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.РеквизитыПлатежаВБюджет",
ПараметрыФормы,
ЭтотОбъект,,,,
Оповещение,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПеречислениеВБюджетПриИзменении(Элемент)
ПеречислениеВБюджетПриИзмененииСервер();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура КратностьКурсаКонвертацииПриИзменении(Элемент)
КратностьКурсаКонвертацииПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НаправлениеДеятельностиПриИзменении(Элемент)
НаправлениеДеятельностиПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ГруппаФинансовогоУчетаПриИзменении(Элемент)
ГруппаФинансовогоУчетаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПартнерПриИзменении(Элемент)
РасшифровкаПлатежаПартнерПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетКонтрагентаСоздание(Элемент, СтандартнаяОбработка)
ДенежныеСредстваКлиентЛокализация.НачатьСозданиеБанковскогоСчета(Объект.Контрагент, СтандартнаяОбработка, ЭтотОбъект, "БанковскийСчетКонтрагента");
КонецПроцедуры
&НаКлиенте
Процедура ВестиУчетКомиссииВоВзаиморасчетахПереключательПриИзменении(Элемент)
Объект.ВестиУчетКомиссииВоВзаиморасчетах = ВестиУчетКомиссииВоВзаиморасчетахПереключатель;
Если Не Объект.ВестиУчетКомиссииВоВзаиморасчетах Тогда
ДоговорКомиссии = ПредопределенноеЗначение("Справочник.ДоговорыКонтрагентов.ПустаяСсылка");
Объект.ОбъектРасчетовКомиссии = ПредопределенноеЗначение("Справочник.ОбъектыРасчетов.ПустаяСсылка");
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("ВестиУчетКомиссииВоВзаиморасчетах");
КонецПроцедуры
&НаКлиенте
Процедура ДоговорКомиссииНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
СтруктураОтбора.Вставить("Организация", Объект.Организация);
СтруктураОтбора.Вставить("Контрагент", Объект.Контрагент);
СтруктураОтбора.Вставить("Партнер", Объект.Партнер);
СтруктураОтбора.Вставить("ВалютаВзаиморасчетов", Объект.Валюта);
СтруктураОтбора.Вставить("ПорядокРасчетов", ПредопределенноеЗначение("Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов"));
СтруктураПараметровВыбора = Новый Структура;
СтруктураПараметровВыбора.Вставить("РежимВыбора", Истина);
СтруктураПараметровВыбора.Вставить("ТипыДоговоров", ВзаиморасчетыКлиентСервер.ТипыДоговоровСПоставщиком());
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора", СтруктураПараметровВыбора, Элемент, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорКомиссииПриИзменении(Элемент)
ДоговорКомиссииПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа
&НаКлиенте
Процедура ПереключательРасшифровкиПриИзменении(Элемент)
Если Не ПереключательРасшифровки Тогда
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
РасшифровкаПлатежаПриНачалеРедактирования(Элементы.РасшифровкаПлатежа, Истина, Ложь);
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Если Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Неопределено Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
КонецЕсли;
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() > 1 Тогда
ОчиститьСообщения();
ТекстСообщения = НСтр("ru = 'Переключение в режим без разбиения невозможно, если в расшифровке платежа введено более одной строки!'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
ПереключательРасшифровки = 1;
КонецЕсли;
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриИзменении(Элемент)
ОпределитьИспользованиеРасчетногоДокументаПоАренде();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если Не ЗначениеЗаполнено(Партнер) Тогда
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
КонецЕсли;
ФинансыКлиент.РасшифровкаПлатежаПриНачалеРедактирования(
Объект, Партнер, ДоговорКонтрагента, СтрокаТаблицы, НоваяСтрока, Копирование, СтатьяДвиженияДенежныхСредств);
Если НоваяСтрока Тогда
Если Не Копирование Тогда
СтрокаТаблицы.ВалютаВзаиморасчетов = Объект.Валюта;
СтрокаТаблицы.КурсЧислительВзаиморасчетов = 1;
СтрокаТаблицы.КурсЗнаменательВзаиморасчетов = 1;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаТаблицы, "Объект.РасшифровкаПлатежа");
КонецЕсли;
ДенежныеСРедстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаТаблицы.ПолучитьИдентификатор());
КонецЕсли;
РасшифровкаПлатежаСуммаПриИзмененииНаСервере();
Если НоваяСтрока И Копирование Тогда
НастройкаСчетовУчетаКлиент.ПриКопированииСтроки(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
РасшифровкаПлатежаПриОкончанииРедактированияНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриОкончанииРедактированияНаСервере()
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОснованиеПлатежаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
СтрокаТаблицы.СуммаВзаиморасчетов = 0;
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОснованиеПлатежа) Тогда
СтрокаТаблицы.ОбъектРасчетов = ПредопределенноеЗначение("Справочник.ОбъектыРасчетов.ПустаяСсылка");
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
РасшифровкаОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "РасшифровкаПлатежаПредставлениеОтраженияВРеглУчете" Тогда
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Поле, СтандартнаяОбработка);
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаОбъектРасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
СтрокаТаблицы.СуммаВзаиморасчетов = 0;
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ОснованиеПлатежа = Неопределено;
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
РасшифровкаОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаОбъектРасчетовПриИзмененииСервер(ИдСтроки)
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, ИдСтроки);
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдСтроки);
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.ПоступлениеБезналичныхДенежныхСредств", Объект, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(
Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока, Истина);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки);
ОбработатьИзменениеУИП(СтрокаТаблицы);
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОснованиеПлатежаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОснованиеПлатежа = Неопределено;
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОснованиеПлатежа = ТекущиеДанные.ОснованиеПлатежа;
КонецЕсли;
ВзаиморасчетыКлиент.ОбъектРасчетовНачалоВыбора(ЭтаФорма, Элемент, СтандартнаяОбработка, Истина, ОснованиеПлатежа);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетов = Неопределено;
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОбъектРасчетов = ТекущиеДанные.ОбъектРасчетов;
КонецЕсли;
ВзаиморасчетыКлиент.ОбъектРасчетовНачалоВыбора(ЭтаФорма, Элемент, СтандартнаяОбработка,, ОбъектРасчетов);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОснованиеПлатежаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОснованиеПлатежаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
РасшифровкаПлатежаОснованиеПлатежаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОснованиеПлатежаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОснованиеПлатежаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОснованиеПлатежаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдентификаторСтроки);
ДополнитьВыбранноеЗначение(ВыбранноеЗначение);
ИсключаемыеСвойства = "";
Если ВыбранноеЗначение.Свойство("СтатьяДвиженияДенежныхСредств")
И Не ЗначениеЗаполнено(ВыбранноеЗначение.СтатьяДвиженияДенежныхСредств) Тогда
ИсключаемыеСвойства = "СтатьяДвиженияДенежныхСредств";
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение,, ИсключаемыеСвойства);
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаТаблицы.ПолучитьИдентификатор());
Если ЗначениеЗаполнено(СтрокаТаблицы.Договор)
И Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации
И Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПоставщика Тогда
Договоры = Объект.РасшифровкаПлатежа.Выгрузить( , "Договор").ВыгрузитьКолонку("Договор");
Договоры = ОбщегоНазначенияКлиентСервер.СвернутьМассив(Договоры);
Если Договоры.Количество() = 1 Тогда
Объект.Договор = СтрокаТаблицы.Договор;
КонецЕсли;
КонецЕсли;
Модифицированность = Истина;
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
Если Не ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
Если ЗначениеЗаполнено(СтрокаТаблицы.Договор) Тогда
Объект.Договор = СтрокаТаблицы.Договор;
ДоговорПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, ИдентификаторСтроки);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, ИдентификаторСтроки, Истина);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы);
ОбработатьИзменениеУИП(СтрокаТаблицы);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДополнитьВыбранноеЗначение(ВыбранноеЗначение)
ВыбранноеЗначение.Вставить("СтатьяДвиженияДенежныхСредств",
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(ВыбранноеЗначение.ОбъектРасчетов, Объект.ХозяйственнаяОперация));
ОбъектыРасчетов = Новый Массив;
ОбъектыРасчетов.Добавить(ВыбранноеЗначение.ОбъектРасчетов);
ТаблицаНДС = ДенежныеСредстваСервер.РасшифровкаПлатежаНДС(Объект.Организация, Неопределено, Неопределено, ОбъектыРасчетов, ВыбранноеЗначение.ЭтоРасчетыСКлиентами);
Если ТаблицаНДС.Количество() = 1 Тогда
ВыбранноеЗначение.Вставить("СтавкаНДС", ТаблицаНДС[0].СтавкаНДС);
Если ВыбранноеЗначение.СуммаПлатежа = ВыбранноеЗначение.СуммаЗаказа Тогда
ВыбранноеЗначение.Вставить("СуммаНДС", ТаблицаНДС[0].СуммаНДС);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ВыбранноеЗначение.ВалютаВзаиморасчетов) Тогда
КурсВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(ВыбранноеЗначение.ВалютаВзаиморасчетов, Неопределено,
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация));
ВыбранноеЗначение.Вставить("КурсЧислительВзаиморасчетов", КурсВалюты.КурсЧислитель);
ВыбранноеЗначение.Вставить("КурсЗнаменательВзаиморасчетов", КурсВалюты.КурсЗнаменатель);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСуммаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
ДенежныеСРедстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(СтрокаТаблицы, СтруктураДействий, КэшированныеЗначения);
РасшифровкаПлатежаСуммаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСуммаПриИзмененииНаСервере()
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСуммаВзаиморасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ЗначениеЗаполнено(СтрокаТаблицы.СуммаВзаиморасчетов)
И СтрокаТаблицы.ВалютаВзаиморасчетов = Объект.Валюта
И СтрокаТаблицы.СуммаВзаиморасчетов <> СтрокаТаблицы.Сумма Тогда
СтрокаТаблицы.СуммаВзаиморасчетов = СтрокаТаблицы.Сумма;
Иначе
РасшифровкаПлатежаСуммаВзаиморасчетовПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСуммаВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
Если ТекущаяСтрока.Сумма = 0 Тогда
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВСтрокеРасшифровки(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
Иначе
ДенежныеСредстваКлиентСервер.РассчитатьКурсЧислительВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
КонецЕсли;
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзменении(Элемент)
РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
МассивРеквизитовОперации = Новый Массив;
Документы.ПоступлениеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, Неопределено, МассивРеквизитовОперации);
Если ТекущаяСтрока.ВалютаВзаиморасчетов <> ВалютаВзаиморасчетов
И МассивРеквизитовОперации.Найти("Договор") <> Неопределено Тогда
Объект.Договор = Неопределено;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецЕсли;
ОчиститьОбъектРасчетов(ТекущаяСтрока);
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрока);
ДенежныеСРедстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзменении(Элемент)
РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСРедстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ)
ДатаКурса = ?(ЗначениеЗаполнено(Объект.ДатаПроведенияБанком), Объект.ДатаПроведенияБанком, Объект.Дата);
ДенежныеСредстваСервер.ЗаполнитьКурсВзаиморасчетовСтрокиРасшифровки(Объект, ВалютаРеглУчета, ДатаКурса, СтрокаТЧ);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзменении(Элемент)
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
РеквизитыДоговора = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяСтрока.ДоговорКредитаДепозита,
"ВалютаВзаиморасчетов, ХарактерДоговора, СтатьяДДСОсновногоДолга, СтатьяДДСПоступленияВыдачи");
ТекущаяСтрока.ВалютаВзаиморасчетов = РеквизитыДоговора.ВалютаВзаиморасчетов;
Если РеквизитыДоговора.ХарактерДоговора = Перечисления.ХарактерыДоговоровФинансовыхИнструментов.КредитИлиЗайм Тогда
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = РеквизитыДоговора.СтатьяДДСПоступленияВыдачи;
Иначе
Если УчитыватьТипСуммыКредитаДепозита(ТекущаяСтрока.ТипСуммыКредитаДепозита) Тогда
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДоговораКредитаДепозитаПоТипуСуммыКредитаДепозита(
ТекущаяСтрока.ДоговорКредитаДепозита,
ТекущаяСтрока.ТипСуммыКредитаДепозита,
Объект.СтатьяДвиженияДенежныхСредств);
Иначе
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = РеквизитыДоговора.СтатьяДДСОсновногоДолга;
КонецЕсли;
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаТипСуммыКредитаДепозитаПриИзменении(Элемент)
ТипСуммыКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ТипСуммыКредитаДепозитаПриИзмененииСервер()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоДепозитам
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоЗаймамВыданным Тогда
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДоговораКредитаДепозитаПоТипуСуммыКредитаДепозита(
ТекущаяСтрока.ДоговорКредитаДепозита,
ТекущаяСтрока.ТипСуммыКредитаДепозита,
Объект.СтатьяДвиженияДенежныхСредств);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяДоходовПриИзменении(Элемент)
РасшифровкаПлатежаСтатьяДоходовПриИзмененииСервер(Элемент.Имя);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСтатьяДоходовПриИзмененииСервер(ИмяЭлемента);
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элементы[ИмяЭлемента]);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяДоходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаДоходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаДоходовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаАктивовПассивовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаАктивовПассивовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатие(Элемент)
ЗаблокироватьДанные();
ОписаниеОповещения = Новый ОписаниеОповещения("ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершение", ЭтотОбъект);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации") Тогда
ПараметрыФормы.Вставить("Контрагент", ОрганизацияПлательщик);
Иначе
ПараметрыФормы.Вставить("Контрагент", Объект.Контрагент);
КонецЕсли;
ПараметрыФормы.Вставить("ГруппаФинансовогоУчета", Объект.ГруппаФинансовогоУчета);
ПараметрыФормы.Вставить("НаправлениеДеятельности", Объект.НаправлениеДеятельности);
ПараметрыФормы.Вставить("Договор", Объект.Договор);
ПараметрыФормы.Вставить("Организация", Объект.Организация);
ПараметрыФормы.Вставить("Подразделение", Объект.Подразделение);
ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыФормы.Вставить("СписокНалогообложенияНДС", Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС.СписокВыбора);
ПараметрыФормы.Вставить("ДокументСсылка", Объект.Ссылка);
ПараметрыФормы.Вставить("АдресВоВременномХранилище", ПоместитьРасшифровкуВоВременноеХранилище());
ОткрытьФорму("ОбщаяФорма.ФормаВыбораРеквизитовОбъектаРасчетовПлатежа",
ПараметрыФормы,
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
РазблокироватьДанные();
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ГруппаФинансовогоУчета = Результат.ГруппаФинансовогоУчета;
Объект.НаправлениеДеятельности = Результат.НаправлениеДеятельности;
Объект.Договор = Результат.Договор;
Объект.Подразделение = Результат.Подразделение;
ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере();
ЕстьИзменениеПоНалогообложениюНДС = ?(Объект.НалогообложениеНДС = Результат.НалогообложениеНДС, Ложь, Истина);
Если ЕстьИзменениеПоНалогообложениюНДС Тогда
Объект.НалогообложениеНДС = Результат.НалогообложениеНДС;
ЗаполнитьНалогообложениеНДС();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере()
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект);
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если (Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов)
Или СтрокаРасшифровки.ОбъектОбъектаРасчетов = Объект.Ссылка) Тогда
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора);
КонецЕсли;
КонецЦикла;
ЗаполнитьВалютуВзаиморасчетовДокумента();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ДенежныеСредстваСервер.ОчиститьДоговорРасшифровкиПлатежа(Объект);
КонецЕсли;
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПредставлениеОтраженияВРеглУчетеНажатие(Элемент, СтандартнаяОбработка)
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", Объект.Организация);
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
СтруктураПараметровВыбора = Новый Структура;
СтруктураПараметровВыбора.Вставить("РежимВыбора", Истина);
СтруктураПараметровВыбора.Вставить("РазрешитьВыборФилиальныхДоговоров", Истина);
СтруктураПараметровВыбора.Вставить("Партнер", Партнер);
СтруктураПараметровВыбора.Вставить("Контрагент", Объект.Контрагент);
СтруктураПараметровВыбора.Вставить("Организация", Объект.Организация);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации")
ИЛИ Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации") Тогда
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации") Тогда
СтруктураОтбора.Организация = ОрганизацияПлательщик;
СтруктураОтбора.Вставить("ОрганизацияПолучатель", Объект.Организация);
Иначе
СтруктураОтбора.Вставить("ОрганизацияПолучатель", ОрганизацияПлательщик);
КонецЕсли;
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыМеждуОрганизациями.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
Иначе
СтруктураОтбора.Вставить("Контрагент", Объект.Контрагент);
Если ФинансыКлиент.ЭтоРасчетыСКлиентами(Объект.ХозяйственнаяОперация) Тогда
ТипыДоговоров = ВзаиморасчетыКлиентСервер.ТипыДоговоровСКлиентом();
Иначе
ТипыДоговоров = ВзаиморасчетыКлиентСервер.ТипыДоговоровСПоставщиком();
КонецЕсли;
ТипыДоговоров.Добавить(ПредопределенноеЗначение("Перечисление.ТипыДоговоров.СКомитентом"));
СтруктураОтбора.Вставить("ТипДоговора", Новый ФиксированныйМассив(ТипыДоговоров.ВыгрузитьЗначения()));
СтруктураОтбора.Вставить("Партнер", Партнер);
СтруктураПараметровВыбора.Вставить("ПоказыватьРеализациюЧерезКомиссионера", Истина);
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПослеУдаления(Элемент)
РасшифровкаПлатежаПослеУдаленияСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПослеУдаленияСервер()
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ОпределитьУИПОтличается();
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтавкаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Элементы.РасшифровкаБезРазбиенияСуммаНДС.ТолькоПросмотр =
ДенежныеСредстваКлиентСервер.ЭтоНулеваяСтавкаНДС(ТекущаяСтрока.СтавкаНДС);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорАрендыПриИзменении(Элемент)
РасшифровкаПлатежаДоговорАрендыПриИзмененииСервер();
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(СтрокаТаблицы, СтруктураДействий, КэшированныеЗначения);
Возврат;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаДоговорАрендыПриИзмененииСервер()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ТекстЗапроса =
"ВЫБРАТЬ
| ДоговорыАренды.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДоговорыАренды.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| УсловияДоговоровАренды.СтавкаНДС КАК СтавкаНДС,
| ДоговорыАренды.ЕстьОбеспечительныйПлатеж КАК ЕстьОбеспечительныйПлатеж
|ИЗ
| Справочник.ДоговорыАренды КАК ДоговорыАренды
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УсловияДоговоровАренды.СрезПоследних(, Договор = &ДоговорАренды) КАК УсловияДоговоровАренды
| ПО УсловияДоговоровАренды.Договор = &ДоговорАренды
|ГДЕ
| ДоговорыАренды.Ссылка = &ДоговорАренды";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ДоговорАренды", ТекущаяСтрока.ДоговорАренды);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, Выборка);
Если Выборка.ЕстьОбеспечительныйПлатеж Тогда
ТекущаяСтрока.ТипПлатежаПоАренде = Перечисления.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж;
Иначе
ТекущаяСтрока.ТипПлатежаПоАренде = Перечисления.ТипыПлатежейПоАренде.УслугаПоАренде;
КонецЕсли;
КонецЕсли;
ТекущаяСтрока.СуммаВзаиморасчетов = 0;
Элементы.РасшифровкаБезРазбиенияТипПлатежаПоАренде.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(
Элементы.РасшифровкаБезРазбиенияТипПлатежаПоАренде, "Договор", ТекущаяСтрока.ДоговорАренды);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.РасшифровкаБезРазбиенияТипПлатежаПоАренде, "Платеж", Истина);
Элементы.РасшифровкаПлатежаТипПлатежаПоАренде.ПараметрыВыбора = Новый ФиксированныйМассив(Новый Массив);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(
Элементы.РасшифровкаБезРазбиенияТипПлатежаПоАренде, "Договор", ТекущаяСтрока.ДоговорАренды);
ОбщегоНазначенияУТКлиентСервер.ДобавитьПараметрВыбора(Элементы.РасшифровкаПлатежаТипПлатежаПоАренде, "Платеж", Истина);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ОпределитьИспользованиеРасчетногоДокументаПоАренде();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияТипПлатежаПоАрендеПриИзменении(Элемент)
ОпределитьИспользованиеРасчетногоДокументаПоАренде();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаТипПлатежаПоАрендеПриИзменении(Элемент)
ОпределитьИспользованиеРасчетногоДокументаПоАренде();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаТипПлатежаПоАрендеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
ПараметрыВыбораТипаПлатежа = Новый Массив;
ПараметрыВыбораТипаПлатежа.Добавить(Новый ПараметрВыбора("Отбор.Договор", ТекущиеДанные.ДоговорАренды));
ПараметрыВыбораТипаПлатежа.Добавить(Новый ПараметрВыбора("Отбор.ВозвратПлатежа", Истина));
Элементы.РасшифровкаПлатежаТипПлатежаПоАренде.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораТипаПлатежа);
Элементы.РасшифровкаБезРазбиенияТипПлатежаПоАренде.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораТипаПлатежа);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияНалогообложениеНДСПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриАктивизацииЯчейки(Элемент)
ДенежныеСредстваКлиент.УстановитьДоступностьЭлементаРасшифровкаПлатежаСуммаВзаиморасчетов(ЭтотОбъект, Объект.Валюта);
ДенежныеСредстваКлиент.УстановитьДоступностьЭлементаРасшифровкаПлатежаДоговор(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияВариантКурсаДоговораНажатие(Элемент, СтандартнаяОбработка)
ВзаиморасчетыКлиент.РасшифровкаПлатежаВариантКурсаДоговораНажатие(Элементы.РасшифровкаПлатежа.ТекущиеДанные, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияПриИзменении(Элемент)
Объект.РасшифровкаПлатежа[0].ДатаПогашения = ДатаПогашенияБезРазбиения;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыОткрытия = Новый Структура("НачальноеЗначение", Объект.РасшифровкаПлатежа[0].ДатаПогашения);
ОписаниеОповещения = Новый ОписаниеОповещения("РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ВыборДаты", ПараметрыОткрытия, ЭтотОбъект,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Дата(1, 1, 1);
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
Если ТипЗнч(ДатаПогашенияБезРазбиения) = Тип("Дата") Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
ДатаЦифрами = СтрСоединить(СтрРазделить(Текст, СтрСоединить(СтрРазделить(Текст, "0123456789"))));
Если Не ПустаяСтрока(ДатаЦифрами) Тогда
ВыбранныйДень = Лев(ДатаЦифрами, 2);
Если СтрДлина(ДатаЦифрами) > 2 Тогда
ВыбранныйМесяц = Сред(ДатаЦифрами, 3, 2);
Иначе
ВыбранныйМесяц = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=MM")
КонецЕсли;
Если СтрДлина(ДатаЦифрами) > 4 Тогда
ВыбранныйГод = Сред(ДатаЦифрами, 5, 4);
Иначе
ВыбранныйГод = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=yyyy")
КонецЕсли;
ВыбраннаяДатаСтрокой = СтрШаблон("%1.%2.%3", ВыбранныйДень, ВыбранныйМесяц, ВыбранныйГод);
ВыбраннаяДата = СтроковыеФункцииКлиентСервер.СтрокаВДату(ВыбраннаяДатаСтрокой);
Объект.РасшифровкаПлатежа[0].ДатаПогашения = ВыбраннаяДата;
ОбновитьПредставлениеДатыПогашения();
ДанныеВыбора = Новый СписокЗначений();
ДанныеВыбора.Добавить(ВыбраннаяДата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если СтрокаТабличнойЧасти = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.Договор = СтрокаТабличнойЧасти.Договор;
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПартнерПриИзменении(Элемент)
РасшифровкаПлатежаПартнерПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткам(Команда)
ЭтоПоступлениеИзДругойОрганизации =
(Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации"));
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчет", НСтр("ru = 'Счет'"));
Если ЭтоПоступлениеИзДругойОрганизации Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчетОтправитель", НСтр("ru = 'Отправитель'"));
Иначе
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Контрагент", НСтр("ru = 'Плательщик'"));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамПослеПроверки",
ЭтотОбъект, Новый Структура("ЭтоПоступлениеИзДругойОрганизации", ЭтоПоступлениеИзДругойОрганизации));
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификат(Команда)
Если ПодарочныеСертификатыКлиент.ПроверитьВозможностьДобавленияПодарочногоСертификата(ЭтотОбъект, Ложь) Тогда
ОписаниеОповещенияЗаверщения = Новый ОписаниеОповещения("ПодобратьПодарочныйСертификатЗавершение", ЭтотОбъект);
Если Объект.Проведен Тогда
РозничныеПродажиКлиент.ОтобразитьВопросОНеобходимостиНепроведенногоДокумента(ЭтотОбъект, ОписаниеОповещенияЗаверщения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗаверщения, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификатЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Истина Тогда
СтатусыДляОтбора = Новый Массив;
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.НеАктивирован"));
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Организация", Объект.Организация);
ПараметрыОтбора.Вставить("Валюта", ВалютаРеглУчета);
ПараметрыОтбора.Вставить("Статус", СтатусыДляОтбора);
ПараметрыОтбора.Вставить("УчетПодарочныхСертификатов2_5", Истина);
ПараметрыОтбора.Вставить("ТипОперации", ПодарочныеСертификатыКлиентСервер.ТипОперацииПоПодарочнымСертификатам(Объект));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Организация", Объект.Организация);
ДополнительныеПараметры.Вставить("НеИспользоватьРучнойВвод", Ложь);
ДополнительныеПараметры.Вставить("Отбор", ПараметрыОтбора);
ДополнительныеПараметры.Вставить("РегистрироватьНовые", Истина);
ОткрытьФорму(
"Справочник.ПодарочныеСертификаты.Форма.СчитываниеПодарочногоСертификата",
ДополнительныеПараметры,
ЭтотОбъект,
УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамПослеПроверки(Результат, ДополнительныеПараметры) Экспорт
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамЗавершение", ЭтотОбъект);
ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
ВзаиморасчетыКлиент.ПодборВРасшифровкуПлатежа(ЭтаФорма, Элементы.РасшифровкаПлатежаПодборПоОстаткам.Имя, Оповещение);
КонецПроцедуры
&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма, "РасшифровкаПлатежаПодборПоОстаткам");
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ПодборПоОстаткамЗавершениеСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодборПоОстаткамЗавершениеСервер()
ВзаиморасчетыСервер.ЗагрузитьРасшифровкуПлатежаИзВременногоХранилища(ЭтотОбъект);
СтатьяДДСПоУмолчанию =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);
СтатьиХозяйственнойОперации =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьиХозяйственнойОперации(Объект.ХозяйственнаяОперация);
ТаблицаОбъектовРасчетов = Объект.РасшифровкаПлатежа.Выгрузить(, "ОбъектРасчетов");
ТаблицаОбъектовРасчетов.Свернуть("ОбъектРасчетов");
НалогообложениеОбъектовРасчетов =
ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ТаблицаОбъектовРасчетов.ВыгрузитьКолонку("ОбъектРасчетов"), "НалогообложениеНДС");
Для каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.НалогообложениеНДС = НалогообложениеОбъектовРасчетов[СтрокаТаблицы.ОбъектРасчетов];
КонецЕсли;
Если СтатьиХозяйственнойОперации.Найти(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) = Неопределено Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоУмолчанию;
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСРедстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов)
Или СтрокаРасшифровки.ОбъектОбъектаРасчетов = Объект.Ссылка Тогда
Если ЗначениеЗаполнено(СтрокаРасшифровки.Договор) Тогда
СтрокаРасшифровки.СтавкаНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаРасшифровки.Договор, "СтавкаНДС");
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаРасшифровки.СтавкаНДС) Тогда
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ОбновитьНДССтрокиНаСервере(СтрокаРасшифровки.ПолучитьИдентификатор());
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагенту(Команда)
ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагентуСервер();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагентуСервер()
Объект.РасшифровкаПлатежа.Очистить();
ДействующиеДоговоры = Справочники.ДоговорыКредитовИДепозитов.ДействующиеДоговорыПоКонтрагенту(
Объект.Организация, Объект.Контрагент, Перечисления.ХарактерыДоговоровФинансовыхИнструментов.ЗаймВыданный);
Для каждого Договор Из ДействующиеДоговоры Цикл
ДанныеРасшифровки = Справочники.ДоговорыКредитовИДепозитов.ДанныеРасшифровкиПлатежаДокументаДДС(Договор, Истина, Объект.Ссылка);
Для Каждого Строка Из ДанныеРасшифровки Цикл
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецЦикла;
КонецЦикла;
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ОчиститьСообщения();
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПометкуУдаленияДокумента(Команда)
ОбщегоНазначенияУТКлиент.УстановитьПометкуУдаленияДокумента(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотруднику(Команда)
ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоУИП(Команда)
ПодборПоУИПЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверитьКонтрагентовЛокализация(Команда);
Возврат;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ОбработчикиСобытийЭлементов
&НаСервере
Процедура СуммаДокументаПриИзмененииСервер()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ДенежныеСредстваСервер.ПересчитатьПараметрыКонвертации(Объект, ВалютаРеглУчета, "КурсКонвертации");
КонецЕсли;
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
Если Объект.ОтражатьКомиссию Тогда
Объект.СуммаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСуммуКомиссии(Объект.СуммаДокумента, СтавкаКомиссии, Истина);
Элементы.ГруппаКомиссия.Заголовок = НСтр("ru='Комиссия'") +
" " + Строка(Объект.СуммаКомиссии) + " " + Строка(Объект.Валюта) + " " + Строка(СтавкаКомиссии) + "%";
КонецЕсли;
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаСервере
Процедура ВалютаКонвертацииПриИзмененииСервер()
ДенежныеСредстваСервер.ПересчитатьПараметрыКонвертации(Объект, ВалютаРеглУчета, "ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецПроцедуры
&НаСервере
Процедура КратностьКурсаКонвертацииПриИзмененииНаСервере()
ПересчитатьПараметрыКонвертации("КратностьКурсаКонвертации");
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииБанковскийСчетОтправитель()
ЗаполнитьОрганизациюПлательщик();
КонецПроцедуры
&НаСервере
Процедура ДоговорКомиссииПриИзмененииНаСервере()
Объект.ОбъектРасчетовКомиссии = ?(ЗначениеЗаполнено(ДоговорКомиссии),
ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКомиссии), Справочники.ОбъектыРасчетов.ПустаяСсылка());
КонецПроцедуры
#КонецОбласти
#Область Свойства
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область УправлениеЭлементамиФормы
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаОбъектРасчетов.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетовСовпадаетСДокументом");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.DarkGray);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<этот документ>'"));
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеВалютыВзаиморасчетов(ЭтотОбъект);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеПартнера(ЭтотОбъект);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаРасчетныйДокументПоАренде.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ТипПлатежаПоАренде");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ТипыПлатежаРасчетныйДокумент = Новый СписокЗначений;
ТипыПлатежаРасчетныйДокумент.Добавить(Перечисления.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж);
ТипыПлатежаРасчетныйДокумент.Добавить(Перечисления.ТипыПлатежейПоАренде.ВыкупнаяСтоимостьАванс);
ОтборЭлемента.ПравоеЗначение = ТипыПлатежаРасчетныйДокумент;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСТР("ru='<Не требуется>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
НаправленияДеятельностиСервер.УстановитьУсловноеОформлениеНаправленияДеятельности(ЭтаФорма);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаКурсЧислительВзаиморасчетов.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаДатаПогашения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ДатаПогашения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСТР("ru='<автоматически>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеСуммыНДСРасшифровкиПлатежа(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ДенежныеСредстваСервер.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ИспользоватьНесколькоВалют = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют");
ИспользоватьДоговорыМеждуОрганизациями = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыМеждуОрганизациями");
ИспользоватьДоговорыСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСКлиентами");
ИспользоватьДоговорыСПоставщиками = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСПоставщиками");
ИспользоватьВалютныеПлатежи = ПолучитьФункциональнуюОпцию("ИспользоватьВалютныеПлатежи");
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ПеречислениеСпискуПодотчетников = ПолучитьФункциональнуюОпцию("ИспользоватьПеречислениеДенежныхСредствСпискуСотрудников")
И ЗначениеЗаполнено(Объект.ДокументВыдачи)
И ТипЗнч(Объект.ДокументВыдачи) = Тип("ДокументСсылка.СписаниеБезналичныхДенежныхСредств")
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДокументВыдачи, "СписокФизЛиц");
ТекущийБанковскийСчет = Объект.БанковскийСчет;
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
ЕстьФилиалы = ФилиалыОрганизации.Количество() > 0;
Иначе
ФилиалыОрганизации.Очистить();
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДоговорЭквайринга) Тогда
Если Объект.ОтражатьКомиссию Тогда
Если Объект.СуммаДокумента <> 0 Тогда
СтавкаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСтавкуКомиссии(
Объект.СуммаДокумента, Объект.СуммаКомиссии, Истина);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Элементы.ГруппаКомиссия.Заголовок = НСтр("ru='Комиссия'") +
" " + Строка(Объект.СуммаКомиссии) + " " + Строка(Объект.Валюта) + " " + Строка(СтавкаКомиссии) + "%";
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ОбъектРасчетовКомиссии) Тогда
ДоговорКомиссии = ДоговорОбъектаРасчетовКомиссии(Объект.ОбъектРасчетовКомиссии);
КонецЕсли;
ВестиУчетКомиссииВоВзаиморасчетахПереключатель = Объект.ВестиУчетКомиссииВоВзаиморасчетах;
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
ПолучитьДоговорПоУмолчаниюСервер(Ложь);
ИнициализироватьРасшифровкуПлатежа();
ЗаполнитьОрганизациюПлательщик();
ЗаполнитьСписокХозяйственныхОпераций();
УточнитьСписокХозяйственныхОпераций();
ДенежныеСредстваСервер.ПолучитьДоступныеХозяйственныеОперацииПоОснованию(
Объект.ДокументОснование, Перечисления.ФормыОплаты.Безналичная, ДоступныеОперацииПоОснованию);
УстановитьЗаголовокСтатьяДоходовРасходов();
УстановитьЗаголовокСуммыКонвертации();
ОбновитьНадписьЗеркальныйПлатеж();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(ИзмененныйРеквизит = "")
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "")
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыФормы(Форма)
РеквизитыФормы = Новый Структура;
РеквизитыФормы.Вставить("ЕстьФилиалы");
РеквизитыФормы.Вставить("ИспользоватьНесколькоВалют");
РеквизитыФормы.Вставить("ИспользоватьНачислениеЗарплатыУТ");
РеквизитыФормы.Вставить("СуммаНераспределено");
РеквизитыФормы.Вставить("ИспользоватьДоговорыМеждуОрганизациями");
РеквизитыФормы.Вставить("ИспользоватьДоговорыСКлиентами");
РеквизитыФормы.Вставить("ИспользоватьДоговорыСПоставщиками");
РеквизитыФормы.Вставить("ИспользованиеСПАРКРазрешено");
РеквизитыФормы.Вставить("ВалютаВзаиморасчетов");
РеквизитыФормы.Вставить("ВариантКурсаДоговора");
РеквизитыФормы.Вставить("ТипОбъектаРасчетов");
РеквизитыФормы.Вставить("БанковскийСчетПоГосконтракту");
РеквизитыФормы.Вставить("ВалютныйКонтроль");
РеквизитыФормы.Вставить("ИспользоватьВалютныеПлатежи");
РеквизитыФормы.Вставить("ВключеныПодразделенияНаСчетахУчетаЗарплаты");
РеквизитыФормы.Вставить("ПеречислениеСпискуПодотчетников");
РеквизитыФормы.Вставить("ИспользоватьРасчетныйДокументПоАренде");
РеквизитыФормы.Вставить("НесколькоВалютВзаиморасчетов");
РеквизитыФормы.Вставить("УИПОтличается");
ЗаполнитьЗначенияСвойств(РеквизитыФормы, Форма);
Возврат РеквизитыФормы;
КонецФункции
&НаСервере
Процедура ИнициализироватьРасшифровкуПлатежа()
МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
Документы.ПоступлениеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа") = Неопределено Тогда
Объект.РасшифровкаПлатежа.Очистить();
ПереключательРасшифровки = 0;
Иначе
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ДатаПогашения") = Неопределено Тогда
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровки.ДатаПогашения = Дата(1 , 1 ,1);
КонецЦикла;
КонецЕсли;
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
ПереключательРасшифровки = 0;
НоваяСтрока.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
НоваяСтрока.Сумма = Объект.СуммаДокумента;
НоваяСтрока.ВалютаВзаиморасчетов = Объект.Валюта;
НоваяСтрока.КурсЧислительВзаиморасчетов = 1;
НоваяСтрока.КурсЗнаменательВзаиморасчетов = 1;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
ЗаполнитьНалогообложениеНДС();
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
ПереключательРасшифровки = 0;
ЗаполнитьНалогообложениеНДС(Ложь);
Иначе
ПереключательРасшифровки = 1;
ЗаполнитьНалогообложениеНДС(Ложь);
КонецЕсли;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке()
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(
Объект.РасшифровкаПлатежа.Выгрузить(,"ОбъектРасчетов").ВыгрузитьКолонку("ОбъектРасчетов"));
Для Каждого СтрокаТч Из Объект.РасшифровкаПлатежа Цикл
СтрокаТч.ВариантКурсаДоговора = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].ВариантКурсаДоговора;
СтрокаТч.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТч.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].Объект = Объект.Ссылка;
Если ЗначениеЗаполнено(СтрокаТч.ОбъектРасчетов) Тогда
СтрокаТч.ТипОбъектаРасчетов = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].ТипОбъектаРасчетов;
КонецЕсли;
ЗаполнитьИндексУИПОтличается(СтрокаТч);
КонецЦикла;
ОпределитьУИПОтличается();
КонецПроцедуры
&НаСервере
Процедура УправлениеЭлементамиФормы()
Перем МассивВсехРеквизитов;
Перем МассивРеквизитовОперации;
Документы.ПоступлениеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если (МассивРеквизитовОперации.Найти("РасшифровкаПлатежа") <> Неопределено) Тогда
Элементы.ГруппаСтраницы.ОтображениеСтраниц = ОтображениеСтраницФормы.ЗакладкиСверху;
Иначе
Элементы.ГруппаСтраницы.ОтображениеСтраниц = ОтображениеСтраницФормы.Нет;
КонецЕсли;
УстановитьВозможныеЗначенияСчетаОтправителя(Ложь);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчета(Объект, Элементы.БанковскийСчет);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораКонтрагента(Объект, Элементы.Контрагент);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораПартнера(Объект, Элементы.РасшифровкаПлатежаПартнер);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораПартнера(Объект, Элементы.РасшифровкаБезРазбиенияПартнер);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита, Истина);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(Объект, Элементы.РасшифровкаПлатежаДоговорАренды);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(Объект, Элементы.РасшифровкаБезРазбиенияДоговорАренды);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчетаКонтрагента(Объект, Элементы.БанковскийСчетКонтрагента);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораСписанияДенежныхСредств(Объект, Элементы.ДокументВыдачи);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.НаправлениеДеятельности);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.НаправлениеДеятельностиВозврата);
Если МассивРеквизитовОперации.Найти("Договор") <> Неопределено Тогда
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецЕсли;
УстановитьВидимостьКнопкиПодбораПодарочногоСертификата();
ДенежныеСредстваСервер.ЗаполнитьСписокТиповСуммКредитовДепозитов(
Элементы.РасшифровкаПлатежаТипСуммыКредитаДепозита.СписокВыбора, Объект.ХозяйственнаяОперация);
ДенежныеСредстваСервер.ЗаполнитьСписокТиповСуммКредитовДепозитов(
Элементы.РасшифровкаБезРазбиенияТипСуммыКредитаДепозита.СписокВыбора, Объект.ХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы);
Элементы.НадписьВалюта.Заголовок = Строка(Объект.Валюта);
Элементы.НадписьВалютаКомиссия.Заголовок = Элементы.НадписьВалюта.Заголовок;
Элементы.ГруппаКомиссия.Заголовок = НСтр("ru='Комиссия'") +
" " + Строка(Объект.СуммаКомиссии) + " " + Строка(Объект.Валюта) + " " + Строка(СтавкаКомиссии) + "%";
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаПлатежаПартнер", Объект.ХозяйственнаяОперация);
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаБезРазбиенияПартнер", Объект.ХозяйственнаяОперация);
Если ПереключательРасшифровки Тогда
Элементы.СтраницыРасшифровки.ТекущаяСтраница = Элементы.РасшифровкаСписком;
Иначе
Элементы.СтраницыРасшифровки.ТекущаяСтраница = Элементы.РасшифровкаБезРазбиения;
КонецЕсли;
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
Если Объект.РасшифровкаПлатежа.Количество() > 0
И ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
Иначе
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
КонецЕсли;
КонецЕсли;
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ОпределитьИспользованиеРасчетногоДокументаПоАренде();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокХозяйственныхОпераций()
Операции = Перечисления.ХозяйственныеОперации;
ДоступныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
ДоступныеОперации.Очистить();
ДоступныеОперации.Добавить(Операции.ПоступлениеОплатыОтКлиента);
ДоступныеОперации.Добавить(Операции.ПоступлениеОплатыПоПлатежнойКарте, НСтр("ru = 'Поступление оплаты по эквайрингу'"));
ДоступныеОперации.Добавить(Операции.ПоступлениеДенежныхСредствИзДругойОрганизации, НСтр("ru = 'Поступление от другой организации'"));
ДоступныеОперации.Добавить(Операции.ВнутренняяПередачаДенежныхСредств, НСтр("ru = 'Передача между организацией и филиалом'"));
ДоступныеОперации.Добавить(Операции.ПоступлениеДенежныхСредствСДругогоСчета, НСтр("ru = 'Поступление с другого счета'"));
ДоступныеОперации.Добавить(Операции.ПоступлениеДенежныхСредствИзКассыНаРасчетныйСчет, НСтр("ru = 'Инкассация в банк'"));
Если ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыКредитовИДепозитов") Тогда
ДоступныеОперации.Добавить(Операции.ПоступлениеДенежныхСредствПоКредитам, НСтр("ru = 'Поступление по кредитам и займам полученным'"));
ДоступныеОперации.Добавить(Операции.ПоступлениеДенежныхСредствПоДепозитам, НСтр("ru = 'Поступление по депозитам'"));
ДоступныеОперации.Добавить(Операции.ПоступлениеДенежныхСредствПоЗаймамВыданным, НСтр("ru = 'Погашение займа контрагентом'"));
КонецЕсли;
ДоступныеОперации.Добавить(Операции.ПогашениеЗаймаСотрудником, НСтр("ru = 'Погашение займа сотрудником'"));
ДоступныеОперации.Добавить(Операции.КонвертацияВалюты);
ДоступныеОперации.Добавить(Операции.ПрочееПоступлениеДенежныхСредств, НСтр("ru = 'Прочее поступление'"));
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствОтПоставщика);
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствОтПодотчетника, НСтр("ru = 'Возврат от подотчетника'"));
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствОтДругойОрганизации, НСтр("ru = 'Возврат от другой организации'"));
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствОтАрендодателя, НСтр("ru = 'Возврат от арендодателя'"));
ДоступныеОперации.Добавить(Операции.ВозвратНеперечисленнойЗарплатыПоЗарплатномуПроекту, НСтр("ru = 'Возврат неперечисленных по реестру платежей'"));
ДоступныеОперации.Добавить(Операции.ВозвратНалогов);
КонецПроцедуры
&НаСервере
Процедура УточнитьСписокХозяйственныхОпераций()
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПередачиМеждуОрганизациями(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийВнутреннейПередачи(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПоДоговорамКредитовИДепозитов(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииПрочееПоступлениеДенежныхСредств(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииКонвертацияВалютыБезналичные(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииПоЗарплате(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЭквайринга(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПеречисленияНаДругойСчет(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииОплатаАрендодателю(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения()
ДенежныеСредстваСервер.УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОрганизациюПлательщик()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации
Тогда
СтруктураРеквизитов = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(Объект.БанковскийСчетОтправитель);
Если ЗначениеЗаполнено(СтруктураРеквизитов.Организация) Тогда
Если ЗначениеЗаполнено(ОрганизацияПлательщик)
И ОрганизацияПлательщик <> СтруктураРеквизитов.Организация Тогда
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "БанковскийСчетОтправитель.Владелец");
КонецЕсли;
ОрганизацияПлательщик = СтруктураРеквизитов.Организация;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПолучитьДоговорПоУмолчаниюСервер(ЗаполнятьСчетПоДоговору = Истина)
МассивВсехРеквизитов = Новый Массив;
МассивРеквизитовОперации = Новый Массив;
Документы.ПоступлениеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ОбъектРасчетов") = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПравоДоступа("Чтение", Метаданные.Справочники.ДоговорыКонтрагентов) Тогда
ХозяйственнаяОперацияДоговора = Новый Массив;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПоставщика Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаКомиссию);
КонецЕсли;
ДоговорКонтрагента = ДенежныеСредстваСервер.ДоговорПоУмолчанию(
ДоговорКонтрагента, Партнер, Объект.Контрагент, Объект.Организация, ХозяйственнаяОперацияДоговора);
Если ЗаполнятьСчетПоДоговору Тогда
ПродажиСервер.ЗаполнитьБанковскиеСчетаПоДоговору(ДоговорКонтрагента, , Объект.БанковскийСчетКонтрагента);
Если Объект.Валюта <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "ВалютаДенежныхСредств") Тогда
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
УчетнаяИнформацияПоДоговору = Справочники.ДоговорыКонтрагентов.УчетнаяИнформацияПоДоговору(ДоговорКонтрагента);
Если ЗначениеЗаполнено(УчетнаяИнформацияПоДоговору) Тогда
Если Не ЗначениеЗаполнено(Объект.СтатьяДвиженияДенежныхСредств) Тогда
УчетнаяИнформацияПоДоговору.Свойство("СтатьяДвиженияДенежныхСредств", Объект.СтатьяДвиженияДенежныхСредств);
КонецЕсли;
УчетнаяИнформацияПоДоговору.Свойство("СтавкаНДС", СтавкаНДС);
УчетнаяИнформацияПоДоговору.Свойство("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПолучитьПартнераПоУмолчаниюСервер(Контрагент, Партнер, ХозяйственнаяОперация)
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, ХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСуммыКонвертации()
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.ЗаголовокВалютыКурсаИКратностиКонвертации(ЭтотОбъект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДС(ОбновлятьСтавкуИСуммуНДС = Истина)
ДенежныеСредстваСервер.ЗаполнитьНалогообложениеНДС(Объект, Объект.НалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДСВозврата, ОбновлятьСтавкуИСуммуНДС);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецПроцедуры
&НаСервере
Процедура ОбновитьНДССтрокиНаСервере(ИдСтроки)
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецПроцедуры
&НаСервере
Процедура ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки)
ДенежныеСредстваСервер.ОбновитьСтавкуНДСИПересчитатьСуммуНДС(Объект, ИдСтроки);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьПредставлениеДатыПогашения()
Если Объект.РасшифровкаПлатежа.Количество() = 0
Или Не ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
Иначе
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Результат;
Модифицированность = Истина;
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура УстановитьОграничениеТипаДоговораРасшифровкиПлатежа()
ДенежныеСредстваСервер.УстановитьОграничениеТипаДоговораРасшифровкиПлатежа(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
&НаСервере
Процедура НаправлениеДеятельностиПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ГруппаФинансовогоУчетаПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПартнерПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ИзменитьСуммуНераспределено()
СуммаНераспределено = ДенежныеСредстваСервер.НераспределенныйОстатокПлатежа(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
&НаСервере
Процедура ОбработатьИзменениеУИП(СтрокаРасшифровки = Неопределено)
Если СтрокаРасшифровки <> Неопределено Тогда
ЗаполнитьИндексУИПОтличается(СтрокаРасшифровки);
Иначе
Для Каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьИндексУИПОтличается(СтрокаТЧ);
КонецЦикла;
КонецЕсли;
ОпределитьУИПОтличается();
КонецПроцедуры
&НаСервере
Процедура ОпределитьУИПОтличается()
УИПОтличается = Объект.РасшифровкаПлатежа.Итог("ИндексУИПОтличается") <> 0;
НастроитьЗависимыеЭлементыФормыНаСервере("УИПОтличается");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИндексУИПОтличается(СтрокаРасшифровки)
Если ЗначениеЗаполнено(Объект.ИдентификаторПлатежа)
И ЗначениеЗаполнено(СтрокаРасшифровки.ИдентификаторПлатежа)
И СтрокаРасшифровки.ИдентификаторПлатежа <> Объект.ИдентификаторПлатежа Тогда
СтрокаРасшифровки.ИндексУИПОтличается = 1;
Иначе
СтрокаРасшифровки.ИндексУИПОтличается = 0;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервереБезКонтекста
Функция ПолучитьРеквизитыБанковскогоСчета(БанковскийСчет)
Возврат Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(БанковскийСчет);
КонецФункции
&НаСервере
Процедура ОбновитьНадписьЗеркальныйПлатеж()
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации Тогда
Возврат;
КонецЕсли;
ЗеркальныйПлатежСсылка = Документы.ПоступлениеБезналичныхДенежныхСредств.НайтиЗеркальныйПлатеж(Объект.Ссылка);
Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка) Тогда
Элементы.НадписьЗеркальныйПлатеж.Гиперссылка = Истина;
СоответствуетЗеркальномуПлатежу = Документы.ПоступлениеБезналичныхДенежныхСредств.СоответствуетЗеркальномуПлатежу(
Объект.Ссылка,ЗеркальныйПлатежСсылка);
Если СоответствуетЗеркальномуПлатежу Тогда
Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
НадписьЗеркальныйПлатеж = ЗеркальныйПлатежСсылка;
Иначе
Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ЦветТекстаПредупреждение;
НадписьЗеркальныйПлатеж = СтрШаблон(НСтр("ru = '%1 (есть различия)'"), ЗеркальныйПлатежСсылка);
КонецЕсли;
Иначе
Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ЦветТекстаПредупреждение;
Элементы.НадписьЗеркальныйПлатеж.Гиперссылка = Ложь;
НадписьЗеркальныйПлатеж = НСтр("ru = '<Списание безналичных денежных средств не найдено.>'");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПривестиВСоответствиеЗеркальныйПлатежЗавершение(РезультатВопроса, ЗеркальныйЗачетОплатыМеждуОрганизациями) Экспорт
КодОтвета = РезультатВопроса;
Если КодОтвета = КодВозвратаДиалога.Да Тогда
ПривестиВСоответствиеЗеркальныйПлатежНаСервере();
Иначе
ОбновитьНадписьЗеркальныйПлатеж();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПривестиВСоответствиеЗеркальныйПлатежНаСервере()
ЗеркальныйПлатежОбъект = ЗеркальныйПлатежСсылка.ПолучитьОбъект();
Успешно = Документы.ПоступлениеБезналичныхДенежныхСредств.ПривестиВСоответствиеЗеркальныйПлатеж(Объект.Ссылка, ЗеркальныйПлатежОбъект);
Если Успешно Тогда
Попытка
ЗеркальныйПлатежОбъект.Записать(?(ЗеркальныйПлатежОбъект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ОбновитьНадписьЗеркальныйПлатеж();
Исключение
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Поступление безналичных денежных средств, зеркальное изменение связанного документа.'",
ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВозможныеЗначенияСчетаОтправителя(ИзменятьСчетОтправитель = Истина)
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| БанковскиеСчета.Ссылка КАК Ссылка
|ИЗ
| Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчета
|
|ГДЕ
| (БанковскиеСчета.ВалютаДенежныхСредств = &Валюта ИЛИ НЕ &ОтбиратьПоВалюте)
| И (БанковскиеСчета.Владелец В (&Владелец) ИЛИ НЕ &ОтбиратьПоВладельцу)
| И БанковскиеСчета.Владелец НЕ В (&ФильтрВладельца)
| И БанковскиеСчета.Ссылка <> &БанковскийСчет
|");
Запрос.УстановитьПараметр("БанковскийСчет", Объект.БанковскийСчет);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты
И ЗначениеЗаполнено(Объект.ВалютаКонвертации) Тогда
Запрос.УстановитьПараметр("Валюта", Объект.ВалютаКонвертации);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Истина);
Иначе
Запрос.УстановитьПараметр("Валюта", Неопределено);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Ложь);
КонецЕсли;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствСДругогоСчета
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты)
И ЗначениеЗаполнено(Объект.БанковскийСчет)
И ЗначениеЗаполнено(Объект.Организация) Тогда
Запрос.УстановитьПараметр("Владелец", Объект.Организация);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.Организация);
Запрос.УстановитьПараметр("Владелец", МассивВзаимосвязанныхОрганизаций);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
Иначе
Запрос.УстановитьПараметр("Владелец", Неопределено);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Ложь);
КонецЕсли;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствИзДругойОрганизации
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтДругойОрганизации)
И ЗначениеЗаполнено(Объект.БанковскийСчет)
И ЗначениеЗаполнено(Объект.Организация) Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.Организация);
МассивВзаимосвязанныхОрганизаций.Добавить(Объект.Организация);
Запрос.УстановитьПараметр("ФильтрВладельца", МассивВзаимосвязанныхОрганизаций);
Иначе
Запрос.УстановитьПараметр("ФильтрВладельца", Неопределено);
КонецЕсли;
МассивСчетов = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Элементы.БанковскийСчетОтправитель.СписокВыбора.ЗагрузитьЗначения(МассивСчетов);
Если ИзменятьСчетОтправитель Тогда
Если МассивСчетов.Количество() = 1 Тогда
Объект.БанковскийСчетОтправитель = МассивСчетов[0];
ПриИзмененииБанковскийСчетОтправитель();
ИначеЕсли ЗначениеЗаполнено(Объект.БанковскийСчетОтправитель)
И МассивСчетов.Найти(Объект.БанковскийСчетОтправитель) = Неопределено Тогда
Объект.БанковскийСчетОтправитель = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
ПриИзмененииБанковскийСчетОтправитель();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
Элементы.РасшифровкаБезРазбиенияСтатьяДоходов.Заголовок = НСтр("ru = 'Статья доходов'");
Элементы.РасшифровкаПлатежаСтатьяДоходов.Заголовок = НСтр("ru = 'Статья доходов'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов()
ДенежныеСредстваСервер.СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов(ЭтаФорма, Объект, Истина);
КонецПроцедуры
&НаСервере
Функция ПоместитьРасшифровкуВоВременноеХранилище()
Возврат ПоместитьВоВременноеХранилище(Объект.РасшифровкаПлатежа.Выгрузить());
КонецФункции
&НаСервере
Процедура ПересчитатьПараметрыКонвертации(ИмяРеквизита)
ДенежныеСредстваСервер.ПересчитатьПараметрыКонвертации(Объект, ВалютаРеглУчета, ИмяРеквизита);
КонецПроцедуры
&НаСервере
Функция СчетСоответствуетВладельцу()
Результат = Истина;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствОтПодотчетника
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником Тогда
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.ПодотчетноеЛицо);
Иначе
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.Контрагент);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Процедура ЗаблокироватьДанные()
ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка,,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура РазблокироватьДанные()
РазблокироватьДанныеДляРедактирования(,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВалютуВзаиморасчетовДокумента()
ДенежныеСредстваСервер.ЗаполнитьВалютуВзаиморасчетовДокумента(ЭтаФорма);
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсКурсЗнаменательВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсКратностьТекстом()
РассчетныеКолонки = "КурсЗнаменательВзаиморасчетов, КурсЧислительВзаиморасчетов, ВалютаВзаиморасчетов";
ДанныеВзаиморасчетов = Объект.РасшифровкаПлатежа.Выгрузить(, РассчетныеКолонки);
ДанныеВзаиморасчетов.Свернуть(РассчетныеКолонки);
ДанныеВзаиморасчетов.Колонки.Добавить("КурсЗнаменательВзаиморасчетовНадпись", Новый ОписаниеТипов("Строка"));
ДанныеВзаиморасчетов.Колонки.Добавить("КурсЧислительВзаиморасчетовТекст", Новый ОписаниеТипов("Строка"));
Для каждого СтрокаТЧ Из ДанныеВзаиморасчетов Цикл
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
ПараметрыОтбора = Новый Структура(РассчетныеКолонки);
ЗаполнитьЗначенияСвойств(ПараметрыОтбора, СтрокаТЧ);
НайденныеСтроки = Объект.РасшифровкаПлатежа.НайтиСтроки(ПараметрыОтбора);
Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, СтрокаТЧ, "КурсЗнаменательВзаиморасчетовНадпись, КурсЧислительВзаиморасчетовТекст");
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура РассчитатьСуммыВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКнопкиПодбораПодарочногоСертификата()
Перем РазрешенаПродажаПодарочногоСертификата;
РазрешенаПродажаПодарочногоСертификата =
РозничныеПродажиЛокализация.РазрешенаПродажаПодарочногоСертификатаВДокументе(Объект.ХозяйственнаяОперация);
Элементы.РасшифровкаПлатежаПодобратьПодарочныйСертификат.Видимость = РазрешенаПродажаПодарочногоСертификата;
КонецПроцедуры
&НаСервере
Процедура ОбработатьПодарочныйСертификат(ПодарочныйСертификат)
НайденнаяСтрока = ПодарочныеСертификатыСервер.ДобавитьПодарочныйСертификатВТабличуюЧастьРасшифровкаПлатежа(ПодарочныйСертификат, ЭтотОбъект);
Если НайденнаяСтрока <> Неопределено Тогда
Модифицированность = Истина;
ОбновитьНДССтрокиНаСервере(НайденнаяСтрока.ПолучитьИдентификатор());
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(НайденнаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодтверждениеЗачисленияЗарплатыПриИзмененииНаСервере()
Объект.ДокументВыдачи = Неопределено;
Объект.СуммаДокумента = 0;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПодтверждениеЗачисленияЗарплаты.ПервичныйДокумент КАК ПервичныйДокумент,
| СУММА(ПодтверждениеЗачисленияЗарплатыСотрудники.Сумма) КАК Сумма
|ИЗ
| Документ.ПодтверждениеЗачисленияЗарплаты КАК ПодтверждениеЗачисленияЗарплаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПодтверждениеЗачисленияЗарплаты.Сотрудники КАК ПодтверждениеЗачисленияЗарплатыСотрудники
| ПО ПодтверждениеЗачисленияЗарплаты.Ссылка = ПодтверждениеЗачисленияЗарплатыСотрудники.Ссылка
|ГДЕ
| ПодтверждениеЗачисленияЗарплаты.Ссылка = &Ссылка
| И ПодтверждениеЗачисленияЗарплатыСотрудники.РезультатЗачисленияЗарплаты <> ЗНАЧЕНИЕ(Перечисление.РезультатыЗачисленияЗарплаты.Зачислено)
|
|СГРУППИРОВАТЬ ПО
| ПодтверждениеЗачисленияЗарплаты.ПервичныйДокумент";
Запрос.УстановитьПараметр("Ссылка", Объект.ПодтверждениеЗачисленияЗарплаты);
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() Тогда
Объект.ДокументВыдачи = Результат.ПервичныйДокумент;
Объект.СуммаДокумента = Результат.Сумма;
ДанныеДокументаВыдачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ДокументВыдачи, "Контрагент, БанковскийСчетКонтрагента");
Объект.Контрагент = ДанныеДокументаВыдачи.Контрагент;
Объект.БанковскийСчетКонтрагента = ДанныеДокументаВыдачи.БанковскийСчетКонтрагента;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДокументВыдачиПриИзмененииСервер()
БанковскийСчетСохраненноеЗначение = Объект.БанковскийСчет;
ПроведеноБанкомСохраненноеЗначение = Объект.ПроведеноБанком;
Если ЗначениеЗаполнено(Объект.ДокументВыдачи) Тогда
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(Объект.ДокументВыдачи);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.БанковскийСчет = БанковскийСчетСохраненноеЗначение;
КонецЕсли;
Если НЕ Объект.ПроведеноБанком Тогда
Объект.ПроведеноБанком = ПроведеноБанкомСохраненноеЗначение;
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратНеперечисленныхДС Тогда
Объект.СуммаДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДокументВыдачи, "СуммаДокумента");
КонецЕсли;
Если Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Объект.РасшифровкаПлатежа[0].Сумма = Объект.СуммаДокумента;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция УчитыватьТипСуммыКредитаДепозита(ТипСуммы)
Возврат (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоДепозитам
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеДенежныхСредствПоЗаймамВыданным)
И ЗначениеЗаполнено(ТипСуммы);
КонецФункции
&НаСервере
Процедура ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы)
МассивСсылок = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаТаблицы.ОбъектРасчетов);
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(МассивСсылок);
СтрокаТаблицы.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТаблицы.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].Объект = Объект.Ссылка;
КонецПроцедуры
&НаСервере
Процедура ОчиститьОбъектРасчетов(СтрокаРасшифровки)
ДенежныеСредстваСервер.ОчиститьОбъектРасчетов(Объект, СтрокаРасшифровки);
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора)
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, РеквизитыДоговора);
СтрокаРасшифровки.Договор = Объект.Договор;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаРасшифровки);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
&НаСервере
Процедура ОпределитьИспользованиеРасчетногоДокументаПоАренде()
ОтборОбеспечительныйПлатеж = Новый Структура;
ОтборОбеспечительныйПлатеж.Вставить("ТипПлатежаПоАренде", Перечисления.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж);
ЕстьОбеспечительныйПлатеж = Объект.РасшифровкаПлатежа.НайтиСтроки(ОтборОбеспечительныйПлатеж).Количество() > 0;
ОтборВыкупнаяСтоимостьАванс = Новый Структура;
ОтборВыкупнаяСтоимостьАванс.Вставить("ТипПлатежаПоАренде", Перечисления.ТипыПлатежейПоАренде.ВыкупнаяСтоимостьАванс);
ЕстьВыкупнаяСтоимостьАванс = Объект.РасшифровкаПлатежа.НайтиСтроки(ОтборВыкупнаяСтоимостьАванс).Количество() > 0;
ИспользоватьРасчетныйДокументПоАренде = ЕстьОбеспечительныйПлатеж Или ЕстьВыкупнаяСтоимостьАванс;
НастроитьЗависимыеЭлементыФормыНаСервере("ИспользоватьРасчетныйДокументПоАренде");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДоговорОбъектаРасчетовКомиссии(Знач ОбъектРасчетов)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектРасчетов, "Договор");
КонецФункции
&НаСервере
Процедура ЗаполнитьДоговорОбъектРасчетовКомиссии()
Если Не ЗначениеЗаполнено(Объект.Организация)
Или Не ЗначениеЗаполнено(Объект.Партнер)
Или Не ЗначениеЗаполнено(Объект.Контрагент)
Или Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ДоговорКомиссии = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
Если ЗначениеЗаполнено(ДоговорКомиссии) Тогда
РеквизитыДоговора = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДоговорКомиссии,
"Организация, Партнер, Контрагент, ВалютаВзаиморасчетов");
ОчиститьДоговор = (Объект.Организация <> РеквизитыДоговора.Организация
Или Объект.Партнер <> РеквизитыДоговора.Партнер
Или Объект.Контрагент <> РеквизитыДоговора.Контрагент
Или Объект.Валюта <> РеквизитыДоговора.ВалютаВзаиморасчетов);
Если ОчиститьДоговор Тогда
ДоговорКомиссии = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Объект.ОбъектРасчетовКомиссии = ?(ЗначениеЗаполнено(ДоговорКомиссии),
ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКомиссии), Справочники.ОбъектыРасчетов.ПустаяСсылка());
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Локализация
#Область Локализация_ПодключаемыеОбработчикиСобытийФормы
&НаСервере
Процедура Подключаемый_ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка)
ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервереЛокализация();
КонецЕсли;
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
ПараметрыПроцедуры = Новый Структура("ВариантОтображения", "Однострочный");
СПАРКРиски.ПриСозданииНаСервере(
ЭтотОбъект,
Неопределено,
Объект.Контрагент,
Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Объект.Контрагент),
ПараметрыПроцедуры);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЧтенииНаСервереЛокализация(ТекущийОбъект)
ПриЧтенииНаСервере(ТекущийОбъект);
ПриЧтенииСозданииНаСервереЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриОткрытииЛокализация(Отказ)
ПриОткрытии(Отказ);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиентЛокализация.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Основание);
КонецЕсли;
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
СПАРКРискиКлиент.ПриОткрытии(ЭтотОбъект, Неопределено);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПередЗаписьюНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверкаКонтрагентов.ПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
СПАРКРиски.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПослеЗаписиНаСервереЛокализация(ТекущийОбъект, ПараметрыЗаписи)
ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник)
ОбработкаОповещения(ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "ОбновитьДокументИБПослеЗаполнения" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
Прочитать();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
СПАРКРискиКлиент.ОбработкаОповещения(ЭтотОбъект, Неопределено, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
#Область Локализация_ПодключаемыеОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура Подключаемый_ХозяйственнаяОперацияПриИзмененииЛокализация(Элемент)
ХозяйственнаяОперацияПриИзмененииСерверЛокализация();
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСерверЛокализация()
ХозяйственнаяОперацияПриИзмененииСервер();
Если Не СчетСоответствуетВладельцуЛокализация() Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.СтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаБезРазбиенияСтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаПлатежаСтатьяЦелевыхСредств);
ОпределитьПризнакВалютныйКонтроль();
УправлениеПоказателямиПлатежаВБюджет();
УстановитьПараметрыВыбораТипаНалогов();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ТипПлатежногоДокументаПриИзмененииЛокализация(Элемент)
ТипПлатежногоДокументаПриИзменении(Элемент);
ЭтотОбъект.ИндексыСПАРКРиски = Неопределено;
Если Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ПлатежноеТребование") Тогда
ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);
Иначе
ОбновитьОтображениеИндексыСПАРК(ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДатаПроведенияБанкомПриИзмененииЛокализация(Элемент)
ДатаПроведенияБанкомПриИзменении(Элемент);
ОбновитьИнформациюОЗадолженностиСотрудника();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанковскийСчетКонтрагентаПриИзмененииЛокализация(Элемент)
БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация()
БанковскийСчетКонтрагентаПриИзмененииСервер();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратНеперечисленныхДС
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратНеперечисленнойЗарплатыПоЗарплатномуПроекту Тогда
ЗаполнитьДокументВыдачи();
КонецЕсли;
ОпределитьПризнакВалютныйКонтроль();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СуммаДокументаПриИзмененииЛокализация(Элемент)
ФинансыКлиентСервер.ПересчитатьСуммыВСтрокеРасшифровкиПлатежа(Объект, Объект.СуммаДокумента, Ложь);
СуммаДокументаПриИзмененииЛокализацияСервер();
КонецПроцедуры
&НаСервере
Процедура СуммаДокументаПриИзмененииЛокализацияСервер()
СуммаДокументаПриИзмененииСервер();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником
И Объект.СуммаДокумента > 0 Тогда
РаспределитьСуммуНаСервере();
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
УправлениеЭлементамиФормы();
КонецЕсли;
ЗаполнитьДокументВыдачи();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтрагентПриИзмененииЛокализация(Элемент)
КонтрагентПриИзмененииСерверЛокализация();
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элемент);
ЭтотОбъект.ИндексыСПАРКРиски = Неопределено;
Если Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ПлатежноеТребование") Тогда
ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСерверЛокализация()
КонтрагентПриИзмененииСервер();
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ЗаполнитьДокументВыдачи();
КонецЕсли;
ОпределитьПризнакВалютныйКонтроль();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодотчетноеЛицоПриИзмененииЛокализация(Элемент)
ПодотчетноеЛицоПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСерверЛокализация()
ПодотчетноеЛицоПриИзмененииСервер();
Если ЗначениеЗаполнено(Объект.ПодотчетноеЛицо) Тогда
ЗаполнитьДокументВыдачи();
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником
И ИспользоватьНачислениеЗарплатыУТ Тогда
Объект.Подразделение = ИнтеграцияБЗК.МестоСотрудникаВСтруктуреПредприятия(
Объект.Организация, Объект.ПодотчетноеЛицо, Объект.Дата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияТипСуммыКредитаДепозитаПриИзмененииЛокализация(Элемент)
ТипСуммыКредитаДепозитаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаТипСуммыКредитаДепозитаПриИзмененииЛокализация(Элемент)
ТипСуммыКредитаДепозитаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ТипСуммыКредитаДепозитаПриИзмененииСерверЛокализация()
ТипСуммыКредитаДепозитаПриИзмененииСервер();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником Тогда
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДатаАктуальности = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, КонецДня(ТекущаяДатаСеанса()));
СтатьиДДС = ДенежныеСредстваСерверЛокализация.СтатьиДДСЗаймовСотрудникуПоУмолчанию(
ДатаАктуальности,, "ПоступлениеБезналичныхДенежныхСредств");
Если ТекущаяСтрока.ТипСуммыКредитаДепозита = Перечисления.ТипыСуммГрафикаКредитовИДепозитов.ОсновнойДолг Тогда
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = СтатьиДДС.СтатьяДвиженияОсновногоДолга;
ИначеЕсли ТекущаяСтрока.ТипСуммыКредитаДепозита = Перечисления.ТипыСуммГрафикаКредитовИДепозитов.Проценты Тогда
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = СтатьиДДС.СтатьяДвиженияПроцентов;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПослеУдаленияЛокализация(Элемент)
РасшифровкаПлатежаПослеУдаленияСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПослеУдаленияСерверЛокализация()
РасшифровкаПлатежаПослеУдаленияСервер();
ОбновитьИнформациюОЗадолженностиСотрудника();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияДоговорЗаймаСотрудникуПриИзмененииЛокализация(Элемент)
ОбновитьИнформациюОЗадолженностиСотрудника();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаДоговорЗаймаСотрудникуПриИзмененииЛокализация(Элемент)
Если Элементы.РасшифровкаПлатежа.ТекущиеДанные.НомерСтроки = 1 Тогда
ОбновитьИнформациюОЗадолженностиСотрудника();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияОбработчикиСобытийЭлементовФормы
&НаСервере
Процедура ИдентификаторПлатежаОбработкаВыбораНаСервере(ВыбранноеЗначение)
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ОбработатьВыборОснованияКонвертации(ВыбранноеЗначение);
Иначе
Объект.РасшифровкаПлатежа.Очистить();
ДополнитьВыбранноеЗначение(ВыбранноеЗначение);
СтрокаТаблицы = Объект.РасшифровкаПлатежа.Добавить();
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(Объект, ВыбранноеЗначение, "Контрагент, ИдентификаторПлатежа");
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение);
Модифицированность = Истина;
КонецЕсли;
СтрокаТаблицы.СуммаВзаиморасчетов = 0;
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаТаблицы, "Объект.РасшифровкаПлатежа");
ЗаполнитьПоОстаткамДебиторскуюЗадолженностьСервер(СтрокаТаблицы.ОбъектРасчетов);
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("Контрагент,ИдентификаторПлатежа");
КонецПроцедуры
&НаСервере
Процедура ТипНалогаПриИзмененииНаСервере()
УстановитьСчетУчетаНалогов();
ПараметрыНастройки = Документы.ПоступлениеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ПеречислениеВБюджетПриИзмененииСервер()
Если Объект.ПеречислениеВБюджет Тогда
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж;
Иначе
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж;
КонецЕсли;
УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду();
Если ПустаяСтрока(Объект.КодОКАТО) Тогда
Реквизиты = Справочники.Организации.ПолучитьРеквизитыОрганизации(Объект.Организация);
Объект.КодОКАТО = Реквизиты.КодПоОКТМО;
КонецЕсли;
КонецЕсли;
УправлениеПоказателямиПлатежаВБюджет();
НастроитьЗависимыеЭлементыФормыНаСервере("ПеречислениеВБюджет");
КонецПроцедуры
&НаСервере
Процедура УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду()
Если Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж Тогда
Объект.СтатусСоставителя = "01";
Объект.ПоказательОснования = "";
Объект.ПоказательПериода = "";
Объект.ПоказательТипа = "";
ИначеЕсли Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж Тогда
Объект.СтатусСоставителя = "06";
Объект.ПоказательОснования = "";
Объект.ПоказательПериода = "";
Объект.ПоказательТипа = "";
ИначеЕсли Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж Тогда
Объект.СтатусСоставителя = "08";
Объект.ПоказательОснования = "0";
Объект.ПоказательПериода = "0";
Объект.ПоказательНомера = "0";
Объект.ПоказательДаты = "0";
Объект.ПоказательТипа = "";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлатежаВБюджетНажатиеЗавершение(РеквизитыПлатежаВБюджет, ДополнительныеПараметры) Экспорт
Если РеквизитыПлатежаВБюджет <> Неопределено Тогда
Модифицированность = Истина;
ЗаполнитьЗначенияСвойств(Объект, РеквизитыПлатежаВБюджет);
УправлениеПоказателямиПлатежаВБюджет();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УправлениеПоказателямиПлатежаВБюджет()
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежаЛокализация
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаВыборЛокализация(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоУИПЛокализация(Команда)
ДанныеВыбора = Новый СписокЗначений;
Текст = Объект.ИдентификаторПлатежа;
Если ЗначениеЗаполнено(Текст) Тогда
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, Истина, Истина);
Если ДанныеВыбора.Количество() > 0 Тогда
ИдентификаторПлатежаОбработкаВыбора(Неопределено, ДанныеВыбора[0].Значение.Значение, Ложь);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуЛокализация(Команда)
ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуСервер();
Возврат;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуСервер()
Объект.РасшифровкаПлатежа.Очистить();
РасшифровкаПлатежа =ДенежныеСредстваСерверЛокализация.ДанныеРасшифровкиПлатежаДокументаДДСПоДоговоруЗаймаСотруднику(
Объект, Истина, Объект.Ссылка, "ПоступлениеБезналичныхДенежныхСредств");
Объект.РасшифровкаПлатежа.Загрузить(РасшифровкаПлатежа);
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецПроцедуры
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентовЛокализация(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ЛокализацияСлужебные
&НаСервере
Процедура ПриЧтенииСозданииНаСервереЛокализация()
ДенежныеСредстваСерверЛокализация.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ИспользоватьНачислениеЗарплатыУТ = ПолучитьФункциональнуюОпцию("ИспользоватьНачислениеЗарплатыУТ");
ИспользоватьЗаймыСотрудникам = ПолучитьФункциональнуюОпцию("ИспользоватьЗаймыСотрудникам");
ВключеныПодразделенияНаСчетахУчетаЗарплаты = ИнтеграцияБЗК.ВключеныПодразделенияНаСчетахУчетаЗарплаты();
ИспользованиеСПАРКРазрешено = СПАРКРиски.ИспользованиеРазрешено();
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
ДатаНачалаПримененияПриказа107н = Константы.ДатаНачалаПримененияПриказа107н.Получить();
ДатаНачалаПримененияПриказа126н = Константы.ДатаНачалаПримененияПриказа126н.Получить();
ПрименениеПриказа126н = (ДатаНачалаПримененияПриказа126н <> '00010101' И ТекущаяДата >= ДатаНачалаПримененияПриказа126н);
ЗаполнитьСписокХозяйственныхОперацийЛокализация();
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.СтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаБезРазбиенияСтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаПлатежаСтатьяЦелевыхСредств);
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьПризнакВалютныйКонтроль();
УправлениеПоказателямиПлатежаВБюджет();
НастроитьЗависимыеЭлементыФормыНаСервере();
УстановитьПараметрыВыбораТипаНалогов();
ОбновитьИнформациюОЗадолженностиСотрудника();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокХозяйственныхОперацийЛокализация()
ЗаполнитьСписокХозяйственныхОпераций();
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСерверЛокализация.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
Операции = Перечисления.ХозяйственныеОперации;
ДоступныеОперации = ЭлементХозяйственнаяОперация.СписокВыбора;
ДоступныеОперации.Добавить(Операции.ВозвратНеперечисленныхДС, НСтр("ru = 'Возврат зарплаты неперечисленной на лицевой счет'"));
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДокументВыдачи()
Если (Объект.ХозяйственнаяОперация <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратНеперечисленныхДС")
Или Не ИспользоватьНачислениеЗарплатыУТ)
И Объект.ХозяйственнаяОперация <> ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратНеперечисленнойЗарплатыПоЗарплатномуПроекту") Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
| СписаниеБезналичныхДенежныхСредств.Ссылка,
| СписаниеБезналичныхДенежныхСредств.Дата КАК Дата
|ИЗ
| Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
|ГДЕ
| СписаниеБезналичныхДенежныхСредств.Организация = &Организация
| И СписаниеБезналичныхДенежныхСредств.ПодотчетноеЛицо = &ПодотчетноеЛицо
| И СписаниеБезналичныхДенежныхСредств.БанковскийСчетКонтрагента = &БанковскийСчетКонтрагента
| И СписаниеБезналичныхДенежныхСредств.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета)
| И СписаниеБезналичныхДенежныхСредств.БанковскийСчет = &БанковскийСчет
| И СписаниеБезналичныхДенежныхСредств.СуммаДокумента = &СуммаДокумента
| И СписаниеБезналичныхДенежныхСредств.Дата <= &Дата
| И НЕ СписаниеБезналичныхДенежныхСредств.ПометкаУдаления
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1
| СписаниеБезналичныхДенежныхСредств.Ссылка,
| СписаниеБезналичныхДенежныхСредств.Дата
|ИЗ
| Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
|ГДЕ
| СписаниеБезналичныхДенежныхСредств.Организация = &Организация
| И СписаниеБезналичныхДенежныхСредств.Контрагент = &Контрагент
| И СписаниеБезналичныхДенежныхСредств.БанковскийСчетКонтрагента = &БанковскийСчетКонтрагента
| И СписаниеБезналичныхДенежныхСредств.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту)
| И СписаниеБезналичныхДенежныхСредств.БанковскийСчет = &БанковскийСчет
| И СписаниеБезналичныхДенежныхСредств.Дата <= &Дата
| И НЕ СписаниеБезналичныхДенежныхСредств.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Дата УБЫВ";
Запрос.УстановитьПараметр("БанковскийСчет", Объект.БанковскийСчет);
Запрос.УстановитьПараметр("БанковскийСчетКонтрагента", Объект.БанковскийСчетКонтрагента);
Запрос.УстановитьПараметр("Дата", КонецДня(Объект.Дата));
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("ПодотчетноеЛицо", Объект.ПодотчетноеЛицо);
Запрос.УстановитьПараметр("Контрагент", Объект.Контрагент);
Запрос.УстановитьПараметр("СуммаДокумента", Объект.СуммаДокумента);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Объект.ДокументВыдачи = Выборка.Ссылка;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоОстаткамДебиторскуюЗадолженностьСервер(ОбъектРасчетов)
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
Возврат;
КонецЕсли;
РасшифровкаПлатежа = Объект.РасшифровкаПлатежа.Выгрузить();
ВзаиморасчетыСервер.ЗаполнитьРасшифровкуПлатежаОстатками(ЭтаФорма, РасшифровкаПлатежа);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.ОбъектРасчетов,
| ТЗ.Сумма,
| ТЗ.СуммаВзаиморасчетов,
| ТЗ.ВалютаВзаиморасчетов
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|
|ВЫБРАТЬ
| ТЗ.ОбъектРасчетов,
| ТЗ.Сумма,
| ТЗ.СуммаВзаиморасчетов,
| ТЗ.ВалютаВзаиморасчетов
|ИЗ
| ТЗ КАК ТЗ
|ГДЕ
| ТЗ.ОбъектРасчетов = &ОбъектРасчетов";
Запрос.УстановитьПараметр("ОбъектРасчетов", ОбъектРасчетов);
Запрос.УстановитьПараметр("ТЗ", РасшифровкаПлатежа);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ТекСтрока = Объект.РасшифровкаПлатежа[0];
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
ЗаполнитьЗначенияСвойств(ТекСтрока, ВыборкаДетальныеЗаписи, "Сумма,СуммаВзаиморасчетов,ВалютаВзаиморасчетов");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РаспределитьСуммуНаСервере()
РасшифровкаПлатежа = Новый ТаблицаЗначений;
РасшифровкаПлатежа = ДенежныеСредстваСерверЛокализация.ДанныеРасшифровкиПлатежаДокументаДДСПоДоговоруЗаймаСотруднику(
Объект, Истина, Объект.Ссылка, "ПоступлениеБезналичныхДенежныхСредств");
Если РасшифровкаПлатежа.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Объект.РасшифровкаПлатежа.Очистить();
СуммаКРаспределению = Объект.СуммаДокумента;
СтрокиОсновнойДолг = РасшифровкаПлатежа.НайтиСтроки(Новый Структура("ТипСуммыКредитаДепозита", Перечисления.ТипыСуммГрафикаКредитовИДепозитов.ОсновнойДолг));
Для каждого Строка Из СтрокиОсновнойДолг Цикл
ТекущаяСумма = Мин(Строка.Сумма, СуммаКРаспределению);
Если ТекущаяСумма > 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
НоваяСтрока.Сумма = ТекущаяСумма;
СуммаКРаспределению = СуммаКРаспределению - ТекущаяСумма;
КонецЕсли;
КонецЦикла;
СтрокиПроценты = РасшифровкаПлатежа.НайтиСтроки(Новый Структура("ТипСуммыКредитаДепозита", Перечисления.ТипыСуммГрафикаКредитовИДепозитов.Проценты));
Для каждого Строка Из СтрокиПроценты Цикл
ТекущаяСумма = Мин(Строка.Сумма, СуммаКРаспределению);
Если ТекущаяСумма > 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
НоваяСтрока.Сумма = ТекущаяСумма;
СуммаКРаспределению = СуммаКРаспределению - ТекущаяСумма;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьИнформациюОЗадолженностиСотрудника()
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПогашениеЗаймаСотрудником
ИЛИ НЕ ИспользоватьЗаймыСотрудникам Тогда
Возврат;
КонецЕсли;
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
Элементы.РасшифровкаБезРазбиенияДоговорЗаймаСотруднику.РасширеннаяПодсказка.Заголовок = "";
Иначе
ДанныеСтроки = Объект.РасшифровкаПлатежа[0];
Элементы.РасшифровкаБезРазбиенияДоговорЗаймаСотруднику.РасширеннаяПодсказка.Заголовок =
ИнформацияОЗадолженностиСотрудника(ДанныеСтроки.ДоговорЗаймаСотруднику, Объект.Дата, Объект.Ссылка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораТипаНалогов()
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
Если НЕ ПлатежиВБюджет.ИспользуетсяЕдиныйНалоговыйПлатеж(Объект.Организация, ТекущаяДата) Тогда
Возврат;
КонецЕсли;
ДоступныеВидыНалогов = Новый Массив;
ДоступныеВидыНалогов.Добавить(Справочники.ВидыНалоговВзносов.ПрочиеНалогиИСборы);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ДоступныеВидыНалогов, ПлатежиВБюджет.ТипыНалоговУплачиваемыеОтдельно());
ПараметрыВыбораНалогов = Новый Массив;
ПараметрыВыбораНалогов.Добавить(Новый ПараметрВыбора("Отбор.Ссылка", ДоступныеВидыНалогов));
Элементы.ТипНалога.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораНалогов);
КонецПроцедуры
&НаСервере
Процедура УстановитьСчетУчетаНалогов()
СчетУчетДоИзменения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.НастройкаСчетовУчета, "СчетУчета");
СчетПоТипуНалога = РеглУчетСервер.СчетУчетаПоТипуНалога(Объект.ТипНалога);
Если СчетУчетДоИзменения <> СчетПоТипуНалога Тогда
НоваяНастройка = НастройкаСчетовУчетаКлиентСервер.СоставНастройкиСчетовУчета();
НоваяНастройка.СчетУчета = СчетПоТипуНалога;
Объект.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(
НоваяНастройка, ЭтаФорма);
КонецЕсли;
Для каждого СтрокаРасшифровкиПлатежа Из Объект.РасшифровкаПлатежа Цикл
НоваяНастройка = НастройкаСчетовУчетаКлиентСервер.СоставНастройкиСчетовУчета();
НоваяНастройка.СчетУчета = СчетПоТипуНалога;
СтрокаРасшифровкиПлатежа.НастройкаСчетовУчета =
НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(НоваяНастройка, ЭтаФорма);
СтрокаРасшифровкиПлатежа.ТипСтатьи = 0;
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИнформацияОЗадолженностиСотрудника(Договор, ДатаДокумента, ДокументСсылка)
Если ЗначениеЗаполнено(Договор) Тогда
Возврат ЗаймыСотрудникам.ИнформацияОЗадолженности(Договор, ДатаДокумента, ДокументСсылка);
Иначе
Возврат "";
КонецЕсли;
КонецФункции
&НаСервере
Функция СчетСоответствуетВладельцуЛокализация()
Результат = Истина;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратНеперечисленныхДС Тогда
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.ПодотчетноеЛицо);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура Подключаемый_ОбновитьОтображениеИндексыСПАРК()
ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьОтображениеИндексыСПАРК(Контрагент)
ПараметрыОтображения = Новый Структура("ВариантОтображения", "Однострочный");
СПАРКРискиКлиент.ОтобразитьИндексыСПАРК(
ЭтотОбъект.ИндексыСПАРКРиски,
Неопределено,
Контрагент,
ВидКонтрагентаСПАРК(Объект.Контрагент),
ЭтотОбъект,
ПараметрыОтображения);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВидКонтрагентаСПАРК(Контрагент)
Возврат Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Контрагент);
КонецФункции
&НаСервере
Процедура ОпределитьПризнакВалютныйКонтроль()
ВалютныйКонтроль = Ложь;
Если (ЗначениеЗаполнено(Объект.Валюта)
И Объект.Валюта <> ВалютаРеглУчета) Тогда
ВалютныйКонтроль = Истина;
ИначеЕсли ЗначениеЗаполнено(Объект.Контрагент) Тогда
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
ВалютныйКонтроль = (КонтрагентЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОпределитьБанковскийСчетПоГосконтрактуЛокализация()
БанковскийСчетПоГосконтракту = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "СчетПоГосконтракту");
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьОснованияПлатежаКонвертацииПоУИП(Текст, ДанныеВыбора, СтандартнаяОбработка)
Если СтрДлина(Текст) < 2 Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
СформироватьСписокОснованийПлатежаКонвертации(Текст, ДанныеВыбора, Объект.Дата);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СформироватьСписокОснованийПлатежаКонвертации(Текст, ДанныеВыбора, НаДату)
ДанныеВыбора = Новый СписокЗначений;
ТаблицаОснований = ДенежныеСредстваСервер.ОснованияОперацииКонвертацииПоУИП(Текст, НаДату);
Для Каждого СтрокаОснования Из ТаблицаОснований Цикл
ЗначениеЭлемента = СоставЭлементаВыбораОснования();
ЗаполнитьЗначенияСвойств(ЗначениеЭлемента, СтрокаОснования);
Представление = СтрШаблон(НСтр("ru = '%1 (%2)'"), ЗначениеЭлемента.ИдентификаторПлатежа, ЗначениеЭлемента.Контрагент);
ДанныеВыбора.Добавить(ЗначениеЭлемента, Представление);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция СоставЭлементаВыбораОснования()
СтруктураЭлемента = Новый Структура;
СтруктураЭлемента.Вставить("ОснованиеПлатежа", Неопределено);
СтруктураЭлемента.Вставить("Организация", Справочники.Организации.ПустаяСсылка());
СтруктураЭлемента.Вставить("БанковскийСчет", Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка());
СтруктураЭлемента.Вставить("Контрагент", Справочники.Контрагенты.ПустаяСсылка());
СтруктураЭлемента.Вставить("Партнер", Справочники.Партнеры.ПустаяСсылка());
СтруктураЭлемента.Вставить("БанковскийСчетКонтрагента", Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка());
СтруктураЭлемента.Вставить("ИдентификаторПлатежа", "");
СтруктураЭлемента.Вставить("Подразделение", Справочники.СтруктураПредприятия.ПустаяСсылка());
СтруктураЭлемента.Вставить("СтатьяДвиженияДенежныхСредств", Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка());
СтруктураЭлемента.Вставить("СуммаКонвертации", 0);
СтруктураЭлемента.Вставить("СуммаДокумента", 0);
СтруктураЭлемента.Вставить("ВалютаКонвертации", Справочники.Валюты.ПустаяСсылка());
СтруктураЭлемента.Вставить("Валюта", Справочники.Валюты.ПустаяСсылка());
СтруктураЭлемента.Вставить("КурсКонвертации", 0);
СтруктураЭлемента.Вставить("КратностьКурсаКонвертации", 0);
Возврат СтруктураЭлемента;
КонецФункции
&НаСервере
Процедура ОбработатьВыборОснованияКонвертации(ВыбранноеЗначение)
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(Объект, ВыбранноеЗначение);
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
УстановитьЗаголовокСуммыКонвертации()
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Инициализация
#Если НаСервере Тогда
Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
ПодключеныОбработчикиЛокализация = Истина;
ПодключаемыеОбработчикиСобытийФормы = Новый Массив;
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриСозданииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЧтенииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриОткрытии");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписьюНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаОповещения");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийФормы Цикл
УстановитьДействие(Обработчик, "Подключаемый_" + Обработчик + "Локализация");
КонецЦикла;
ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие;
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ХозяйственнаяОперация", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчетКонтрагента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("СуммаДокумента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Контрагент", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ПодотчетноеЛицо", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ДатаПроведенияБанком", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа", "Выбор");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа", "ПослеУдаления");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияТипСуммыКредитаДепозита", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаТипСуммыКредитаДепозита", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияДоговорЗаймаСотруднику", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаДоговорЗаймаСотруднику", "ПриИзменении");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
Если Элементы.Найти(Обработчик.Ключ) <> Неопределено Тогда
Элементы[Обработчик.Ключ].УстановитьДействие(
Обработчик.Значение, "Подключаемый_" + Обработчик.Ключ + Обработчик.Значение + "Локализация");
КонецЕсли;
КонецЦикла;
КонецЕсли;
#КонецЕсли
#КонецОбласти