#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыВыбораСтатейИАналитик = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыНастройки = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыНастройки);
Если Параметры.Свойство("БанковскийСчет") Тогда
Объект.БанковскийСчет = Параметры.БанковскийСчет;
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтаФорма);
ФормированиеФискальныхЧековСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
КонецЕсли;
Элементы.РасшифровкаБезРазбиенияДатаПогашения.ТолькоПросмотр = Не ПравоДоступа(
"Редактирование",
Метаданные.Документы.СписаниеБезналичныхДенежныхСредств.ТабличныеЧасти.РасшифровкаПлатежа.Реквизиты.ДатаПогашения);
Элементы.ПеречислениеСотрудникуЧерезБанк.Доступность = Не ТолькоПросмотр;
Элементы.СписокФизЛицОтключено.ТолькоПросмотр = ТолькоПросмотр;
Элементы.СписокФизЛицВключено.ТолькоПросмотр = ТолькоПросмотр;
Элементы.ПериодАвансовогоОтчета.ТолькоПросмотр = ТолькоПросмотр;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
ДенежныеСредстваСерверЛокализация.УдалитьПодключаемыеКомандыОбменаСБанком(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиент.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Объект.ДокументОснование);
ТекущаяДата = Объект.Дата;
Если ПериодАвансовогоОтчета = НСтр("ru = 'Через неделю'") Тогда
Объект.ДатаАвансовогоОтчета = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДата()) + 7 * 24 * 3600;
КонецЕсли;
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Документ.ЗаявкаНаРасходованиеДенежныхСредств.Форма.ПодборЗаявокВДокументыОплаты" Тогда
ОбработкаПодбораИзЗаявок(РезультатВыбора.АдресЗаявокВХранилище);
КонецЕсли;
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если Не ТекущийОбъект.ПроведеноБанком Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаДатыЗапретаИзменения", Ложь);
КонецЕсли;
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПараметрыВыбораСтатейИАналитик = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПараметрыНастройки = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыНастройки);
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтаФорма);
ФормированиеФискальныхЧековСервер.ФормаПриЧтенииНаСервере(ЭтотОбъект);
ПриЧтенииСозданииНаСервере();
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ХозОперацииИсключения = Новый Массив;
ХозОперацииИсключения.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета"));
ПередЗаписьюОбработка(Отказ, ПараметрыЗаписи, ХозОперацииИсключения);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюОбработка(Отказ, ПараметрыЗаписи, ХозОперацииИсключения)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение
И ХозОперацииИсключения.Найти(Объект.ХозяйственнаяОперация) = Неопределено Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ТабличнаяЧасть = ?(Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику")
И СписокФизЛиц = 1,
"ЛицевыеСчетаСотрудников", "РасшифровкаПлатежа");
ФинансыКлиент.ПересчитатьСуммуДокументаПоРасшифровкеПлатежа(ЭтотОбъект, ОписаниеОповещения, ТабличнаяЧасть);
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику")
И СписокФизЛиц = 1
И Объект.РасшифровкаПлатежа.Количество() > 0 Тогда
Если Объект.РасшифровкаПлатежа.Итог("Сумма") <> Объект.СуммаДокумента Тогда
ТекстСообщения = НСтр("ru = 'Сумма по заявкам на оплату не равна сумме документа.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , Элементы.РасшифровкаПлатежа.Имя, "Объект", Истина);
РезультатВопроса = Ложь;
КонецЕсли;
КонецЕсли;
Если РезультатВопроса Тогда
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ДополнительныеПараметры.ПараметрыЗаписи,,Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
НастройкаСчетовУчетаСервер.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
Оповестить("Запись_СписаниеБезналичныхДенежныхСредств", ПараметрыЗаписи, Объект.Ссылка);
ВзаиморасчетыКлиент.ФормаПослеЗаписи(ЭтаФорма);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтаФорма, Объект, ПараметрыЗаписи);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
И ЗначениеЗаполнено(ЗеркальныйПлатежСсылка)
И Не СоответствуетЗеркальномуПлатежу Тогда
ПоказатьВопрос(Новый ОписаниеОповещения("ПривестиВСоответствиеЗеркальныйПлатежЗавершение", ЭтотОбъект, Ложь),
СтрШаблон(НСтр("ru = 'Привести в соответствие %1?'"), ЗеркальныйПлатежСсылка), РежимДиалогаВопрос.ДаНет);
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
ИсправлениеДокументовКлиент.ПослеЗаписи(Объект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
НастройкаСчетовУчетаСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект.ДополнительныеСвойства);
ЗаполнитьНалогообложениеНДС(Ложь);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка)
И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию Тогда
СоответствуетЗеркальномуПлатежу = Документы.СписаниеБезналичныхДенежныхСредств.СоответствуетЗеркальномуПлатежу(
Объект.Ссылка, ЗеркальныйПлатежСсылка);
Если Не СоответствуетЗеркальномуПлатежу Тогда
ОбновитьНадписьЗеркальныйПлатеж();
КонецЕсли;
КонецЕсли;
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
УстановитьНадписьЗачисленияДС();
СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "СчитанПодарочныйСертификат"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
ОбработатьПодарочныйСертификат(Параметр.ПодарочныйСертификат);
КонецЕсли;
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив;
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии = Ложь;
Если Объект.СуммаКомиссии = 0
Или Не Объект.ОтражатьКомиссию
Или Не Объект.ВестиУчетКомиссииВоВзаиморасчетах Тогда
МассивНепроверяемыхРеквизитов.Добавить("ДоговорКомиссии");
ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии = Истина;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДоговорКомиссии) Тогда
ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии = Истина;
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
Если Не ПереключательРасшифровки Тогда
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ДополнительныеСвойства.Вставить("РасшифровкаБезРазбиения", Истина);
Если ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии Тогда
ДокументОбъект.ДополнительныеСвойства.Вставить("ИсключитьПроверкуЗаполненияОбъектРасчетовКомиссии", Истина);
КонецЕсли;
Если Не ДокументОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ПроверяемыйРеквизитОбъект = ПроверяемыеРеквизиты.Найти("Объект");
Если ПроверяемыйРеквизитОбъект <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(ПроверяемыйРеквизитОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СостояниеBankFeedsНажатие(Элемент, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
НужнаОбработка = ДатаПриИзмененииКлиент();
Если НужнаОбработка Тогда
ТекущаяДата = Объект.Дата;
ДатаПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ДатаПриИзмененииКлиент()
Если ТекущаяДата = Объект.Дата Тогда
Возврат Ложь;
КонецЕсли;
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.Дата);
Если Объект.ПроведеноБанком Тогда
Объект.ДатаПроведенияБанком = Объект.Дата;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаКлиенте
Процедура ПроведеноБанкомПриИзменении(Элемент)
Если Не Объект.ПроведеноБанком Тогда
Объект.ДатаПроведенияБанком = Неопределено;
Иначе
Если Не ЗначениеЗаполнено(Объект.ДатаПроведенияБанком) Тогда
Объект.ДатаПроведенияБанком = Объект.Дата;
КонецЕсли;
КонецЕсли;
ПроведеноБанкомПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПроведеноБанкомПриИзмененииСервер()
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтаФорма);
ЗаполнитьКурсВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьКурсКратностьТекстом();
НастроитьЗависимыеЭлементыФормыНаСервере();
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПроведенияБанкомПриИзменении(Элемент)
ДатаПроведенияБанкомПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДатаПроведенияБанкомПриИзмененииНаСервере()
ЗаполнитьКурсВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьКурсКратностьТекстом();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
НуженПереходНаСервер = ХозяйственнаяОперацияПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ХозяйственнаяОперацияПриИзмененииСервер();
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция ХозяйственнаяОперацияПриИзмененииКлиент()
Если СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация Тогда
Возврат Ложь;
КонецЕсли;
УстановитьПризнакОплатыПоЗаявкам();
Возврат Истина;
КонецФункции
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСервер()
ДенежныеСредстваСервер.ОчиститьЗаявкуНаРасходованиеДенежныхСредств(Объект);
СписокЗаявок.Очистить();
Если Не Объект.ПеречислениеВБюджет Тогда
Объект.ИдентификаторПлатежа = "";
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДокументОснование)
И ДоступныеОперацииПоОснованию.НайтиПоЗначению(Объект.ХозяйственнаяОперация) = Неопределено Тогда
Объект.ДокументОснование = Неопределено;
ДоступныеОперацииПоОснованию.Очистить();
КонецЕсли;
ИнициализироватьРасшифровкуПлатежа();
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаРасшифровки, "Объект.РасшифровкаПлатежа");
КонецЦикла;
ДенежныеСредстваСервер.ОпределитьВалютныйПлатеж(ЭтотОбъект);
УстановитьВозможныеЗначенияСчетаПолучателя();
Если Не СчетСоответствуетВладельцу() Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
ТекущийПлатежСКонвертацией = Объект.ПлатежСКонвертацией;
УстановитьПризнакПлатежаСКонвертацией();
Если ТекущийПлатежСКонвертацией
И Не Объект.ПлатежСКонвертацией Тогда
Если ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
ОбновитьДанныеПоВалюте();
КонецЕсли;
КонецЕсли;
СтатьяДДСПоХО = Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(
Объект.ХозяйственнаяОперация);
Объект.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоХО;
Если Не ЗначениеЗаполнено(Партнер) Тогда
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Объект.Контрагент, Объект.ХозяйственнаяОперация);
КонецЕсли;
Для каждого СтрокаРасшифровкиПлатежа Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровкиПлатежа.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоХО;
Если Не ЗначениеЗаполнено(СтрокаРасшифровкиПлатежа.Партнер) Тогда
СтрокаРасшифровкиПлатежа.Партнер = Партнер;
КонецЕсли;
КонецЦикла;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств
И Не Справочники.Организации.ОрганизацияВзаимосвязанаСДругимиОрганизациями(Объект.Организация) Тогда
Объект.БанковскийСчетПолучатель = Неопределено;
Если ТекущийБанковскийСчет <> Объект.БанковскийСчет Тогда
СтруктураРеквизитов = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(Объект.БанковскийСчет);
ПриИзмененииБанковскийСчет(СтруктураРеквизитов);
КонецЕсли;
КонецЕсли;
МенеджерДокумента = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Документ.СписаниеБезналичныхДенежныхСредств");
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыПоСпискуРеквизитовХозяйственнойОперации(Объект, МенеджерДокумента);
ТекущийКонтрагент = Объект.Контрагент;
Если Не ЗначениеЗаполнено(Объект.Контрагент) Тогда
Партнер = Справочники.Партнеры.ПустаяСсылка();
КонтрагентЮрФизЛицо = Перечисления.ЮрФизЛицо.ПустаяСсылка();
КонецЕсли;
ПараметрыНастройки = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаАрендодателю Тогда
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.ДоговорАренды = Справочники.ДоговорыАренды.ДоговорПоУмолчанию(
Объект.Организация, СтрокаТЧ.Партнер, Объект.Контрагент, СтрокаТЧ.ДоговорАренды);
КонецЦикла;
ЗаполнитьРеквизитыПлатежаПоДоговорамАренды();
КонецЕсли;
ПараметрыВыбораСтатейИАналитик = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
Если Не Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаАрендодателю Тогда
ДоговорКонтрагента = Неопределено;
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента);
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
КонецЕсли;
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
Объект.НаправлениеДеятельности = ДенежныеСредстваСервер.НаправлениеДеятельности(
Объект.ХозяйственнаяОперация,
Объект.НаправлениеДеятельности);
ДенежныеСредстваСервер.ЗаполнитьНалогообложениеНДС(
Объект,
Объект.НалогообложениеНДС,
Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС,
Элементы.РасшифровкаБезРазбиенияНалогообложениеНДСВозврата,
Истина);
ОбновитьНадписьЗеркальныйПлатеж();
ОбновитьИнформациюПоЗаявкам();
ОтображениеЗаголовкаПоляПодотчетноеЛицо();
Объект.СписокФизЛиц = Ложь;
СписокФизЛиц = 0;
УправлениеЭлементамиФормы();
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетПриИзменении(Элемент)
СтруктураВозврата = БанковскийСчетПриИзмененииКлиент("РазрешенПересчетВВалюту");
Если СтруктураВозврата.НуженПереходНаСервер Тогда
БанковскийСчетПриИзмененииСервер(СтруктураВозврата.РеквизитыБанковскогоСчета, СтруктураВозврата.ПересчитыватьСуммы);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция БанковскийСчетПриИзмененииКлиент(ИмяОбработчика)
СтруктураВозврата = Новый Структура("НуженПереходНаСервер, РеквизитыБанковскогоСчета, ПересчитыватьСуммы");
РеквизитыБанковскогоСчета = ПолучитьРеквизитыБанковскогоСчета(Объект.БанковскийСчет);
РазрешитьПлатежиБезУказанияЗаявокБанковскийСчет = РеквизитыБанковскогоСчета.РазрешитьПлатежиБезУказанияЗаявок;
РазрешеныПлатежиБезУказанияЗаявок =
(РазрешитьПлатежиБезУказанияЗаявокБанковскийСчет И ИспользоватьЗаявкиНаРасходованиеДенежныхСредств)
Или Объект.НеКонтролироватьЗаполнениеЗаявки
Или Не ИспользоватьЗаявкиНаРасходованиеДенежныхСредств;
УстановитьПризнакОплатыПоЗаявкам();
Если Не ФинансыКлиент.НеобходимПересчетВВалюту(Объект, Объект.Валюта, РеквизитыБанковскогоСчета.Валюта) Тогда
СтруктураВозврата.Вставить("НуженПереходНаСервер", Истина);
СтруктураВозврата.Вставить("РеквизитыБанковскогоСчета", РеквизитыБанковскогоСчета);
СтруктураВозврата.Вставить("ПересчитыватьСуммы", Ложь);
Иначе
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Пересчитать суммы в документе в валюту %1?'"),
РеквизитыБанковскогоСчета.Валюта);
КнопкиДиалогаВопрос = Новый СписокЗначений;
КнопкиДиалогаВопрос.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Пересчитать'"));
КнопкиДиалогаВопрос.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отменить'"));
ОписаниеОповещения = Новый ОписаниеОповещения(
ИмяОбработчика, ЭтотОбъект, Новый Структура("СтруктураРеквизитов", РеквизитыБанковскогоСчета));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, КнопкиДиалогаВопрос);
СтруктураВозврата.Вставить("НуженПереходНаСервер", Ложь);
КонецЕсли;
Возврат СтруктураВозврата;
КонецФункции
&НаКлиенте
Процедура РазрешенПересчетВВалюту(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ТекущаяВалюта = Объект.Валюта;
БанковскийСчетПриИзмененииСервер(ДополнительныеПараметры.СтруктураРеквизитов, Истина);
ЦенообразованиеКлиент.ОповеститьОбОкончанииПересчетаСуммВВалюту(ТекущаяВалюта, Объект.Валюта);
Иначе
Объект.БанковскийСчет = ТекущийБанковскийСчет;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПриИзмененииСервер(СтруктураРеквизитов, ПересчитыватьСуммы)
ИзмениласьОрганизация = (Объект.Организация <> СтруктураРеквизитов.Организация);
ИзмениласьВалюта = (Объект.Валюта <> СтруктураРеквизитов.Валюта);
МассивРеквизитов = Новый Массив;
Если ИзмениласьОрганизация Тогда
МассивРеквизитов.Добавить("Организация");
КонецЕсли;
Если ИзмениласьВалюта Тогда
МассивРеквизитов.Добавить("Валюта");
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, МассивРеквизитов);
Если ИзмениласьОрганизация Тогда
ДенежныеСредстваСервер.ОчиститьЗаявкуНаРасходованиеДенежныхСредств(Объект);
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.КонвертацияВалюты
И Не Объект.ПеречислениеВБюджет Тогда
Объект.ИдентификаторПлатежа = "";
КонецЕсли;
КонецЕсли;
ПриИзмененииБанковскийСчет(СтруктураРеквизитов);
УстановитьПризнакПлатежаСКонвертацией();
Если ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
ЗаполнятьСчетПоДоговору = ИзмениласьОрганизация Или НЕ ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента);
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента, ЗаполнятьСчетПоДоговору);
Если ИзмениласьОрганизация Тогда
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ТипРасчетов = ?(Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне,
Перечисления.ТипыРасчетовСПартнерами.РасчетыСПоставщиком,
Перечисления.ТипыРасчетовСПартнерами.РасчетыСКлиентом);
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента,,ТипРасчетов);
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
КонецЕсли;
Иначе
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ОбработатьИзменениеУИП();
КонецЕсли;
Если ТекущаяВалюта <> Объект.Валюта
Или ПересчитыватьСуммы Тогда
ПриИзмененииВалюты();
КонецЕсли;
ЗаполнитьДоговорОбъектРасчетовКомиссии();
УстановитьВозможныеЗначенияСчетаПолучателя();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаАрендодателю Тогда
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.ДоговорАренды = Справочники.ДоговорыАренды.ДоговорПоУмолчанию(
Объект.Организация, СтрокаТЧ.Партнер, Объект.Контрагент, СтрокаТЧ.ДоговорАренды);
КонецЦикла;
ЗаполнитьРеквизитыПлатежаПоДоговорамАренды();
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетКонтрагентаПриИзменении(Элемент)
БанковскийСчетКонтрагентаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииСервер()
ЗаполнитьВалютуПоСчетуПолучателя(Объект.БанковскийСчетКонтрагента);
Если Не ЗначениеЗаполнено(Объект.НазначениеПлатежа) Тогда
ЗаполнитьНазначениеПлатежаПоСчетуПолучателя();
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
СуммаДокументаПриИзмененииКлиент();
СуммаДокументаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура ВалютаПриИзменении(Элемент)
НуженПереходНаСервер = ВалютаПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ВалютаПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СуммаКомиссииПриИзменении(Элемент)
Если Объект.СуммаДокумента <> 0 Тогда
СтавкаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСтавкуКомиссии(Объект.СуммаДокумента, Объект.СуммаКомиссии);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Элементы.ГруппаКомиссия.Заголовок = ЗаголовокЭквайринговойКомиссии(Объект.СуммаКомиссии, Объект.Валюта, СтавкаКомиссии);
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
ТекущийБанковскийСчетКонтрагента = Объект.БанковскийСчетКонтрагента;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Контрагент");
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, "Контрагент");
Если ТекущийКонтрагент <> Объект.Контрагент Тогда
ДенежныеСредстваСервер.ОчиститьЗаявкуНаРасходованиеДенежныхСредств(Объект);
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
Объект.ИдентификаторПлатежа = "";
КонецЕсли;
КонецЕсли;
ПриИзмененииКонтрагента(Объект.Контрагент, Объект.БанковскийСчетКонтрагента, Объект.СписокКонтрагентов = Ложь);
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
Если ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "Закрыт") Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
Иначе
Если Объект.Контрагент <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "Владелец") Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
КонецЕсли;
Если ТекущийБанковскийСчетКонтрагента <> Объект.БанковскийСчетКонтрагента
И ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
БанковскийСчетКонтрагентаПриИзмененииСервер();
КонецЕсли;
ЗаполнитьНазначениеПлатежаПоСчетуПолучателя();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОплатыНаПлатежнуюКарту Тогда
ПараметрыОтбора = Справочники.ДоговорыЭквайринга.ПараметрыОтбораДоговораЭквайринга();
ПараметрыОтбора.Организация = Объект.Организация;
ПараметрыОтбора.Эквайер = Объект.Контрагент;
ПараметрыОтбора.БанковскийСчет = Объект.БанковскийСчет;
Объект.ДоговорЭквайринга = Справочники.ДоговорыЭквайринга.ДоговорЭквайрингаПоУмолчанию(ПараметрыОтбора);
Если ЗначениеЗаполнено(Объект.ДоговорЭквайринга) Тогда
ДоговорЭквайрингаПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЗаполнитьДоговорОбъектРасчетовКомиссии();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаАрендодателю Тогда
Для Каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.ДоговорАренды = Справочники.ДоговорыАренды.ДоговорПоУмолчанию(
Объект.Организация, СтрокаТЧ.Партнер, Объект.Контрагент, СтрокаТЧ.ДоговорАренды);
КонецЦикла;
ЗаполнитьРеквизитыПлатежаПоДоговорамАренды();
КонецЕсли;
УстановитьВидимостьКнопкиПодбораПодарочногоСертификата();
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецЕсли;
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
ТекущийКонтрагент = Объект.Контрагент;
НастроитьЗависимыеЭлементыФормыНаСервере("Контрагент");
КонецПроцедуры
&НаКлиенте
Процедура ДоговорЭквайрингаПриИзменении(Элемент)
ДоговорЭквайрингаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорЭквайрингаПриИзмененииНаСервере()
ЗначенияРеквизитов = Справочники.ДоговорыЭквайринга.РеквизитыДоговора(Объект.ДоговорЭквайринга);
Объект.СтатьяДвиженияДенежныхСредств = ЗначенияРеквизитов.СтатьяДвиженияДенежныхСредствВозврат;
Объект.ОтражатьКомиссию = (ЗначенияРеквизитов.СпособОтраженияКомиссии = Перечисления.СпособыОтраженияЭквайринговойКомиссии.ПриЗачислении
И ЗначенияРеквизитов.ВзимаетсяКомиссияПриВозврате);
Если Объект.ОтражатьКомиссию Тогда
Если ЗначенияРеквизитов.ФиксированнаяСтавкаКомиссии Тогда
СтавкаКомиссии = ЗначенияРеквизитов.СтавкаКомиссии;
Объект.СуммаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСуммуКомиссии(Объект.СуммаДокумента, СтавкаКомиссии);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Объект.СтатьяРасходов = ЗначенияРеквизитов.СтатьяРасходов;
Объект.АналитикаРасходов = ЗначенияРеквизитов.АналитикаРасходов;
Объект.Подразделение = ЗначенияРеквизитов.ПодразделениеРасходов;
Объект.НаправлениеДеятельности = ЗначенияРеквизитов.НаправлениеДеятельности;
Объект.ВестиУчетКомиссииВоВзаиморасчетах = ЗначенияРеквизитов.ВестиУчетКомиссииВоВзаиморасчетах;
Объект.ОбъектРасчетовКомиссии = ЗначенияРеквизитов.ОбъектРасчетовКомиссии;
ДоговорКомиссии = ДоговорОбъектаРасчетовКомиссии(Объект.ОбъектРасчетовКомиссии);
Иначе
Объект.СуммаКомиссии = 0;
Объект.ВестиУчетКомиссииВоВзаиморасчетах = Ложь;
Объект.ОбъектРасчетовКомиссии = Справочники.ОбъектыРасчетов.ПустаяСсылка();
ДоговорКомиссии = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
ВестиУчетКомиссииВоВзаиморасчетахПереключатель = Объект.ВестиУчетКомиссииВоВзаиморасчетах;
ПараметрыВыбораСтатейИАналитик = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ПодотчетноеЛицоПриИзменении(Элемент)
ПодотчетноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСервер()
Если ЗначениеЗаполнено(Объект.ПодотчетноеЛицо) Тогда
Если (Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента)
Или Не СчетСоответствуетВладельцу())
И Не Объект.ПеречислениеСотрудникуЧерезБанк Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
КонецЕсли;
КонецЕсли;
Если Объект.ОплатаПоЗаявкам Тогда
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(
Объект, Элементы.РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(
Объект, Элементы.РасшифровкаБезРазбиенияЗаявкаНаРасходованиеДенежныхСредств);
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("ПодотчетноеЛицо");
КонецПроцедуры
&НаКлиенте
Процедура ЗаявкаНаРасходованиеДенежныхСредствПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.ЗаявкаНаРасходованиеДенежныхСредств) Тогда
ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСервер()
ПроведеноБанкомСохраненноеЗначение = Объект.ПроведеноБанком;
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(Объект.ЗаявкаНаРасходованиеДенежныхСредств);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета)
И НЕ Объект.ПроведеноБанком Тогда
Объект.ПроведеноБанком = ПроведеноБанкомСохраненноеЗначение;
КонецЕсли;
УстановитьВозможныеЗначенияСчетаПолучателя();
КонецПроцедуры
&НаКлиенте
Процедура РаспоряжениеНаПеремещениеДенежныхСредствПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.РаспоряжениеНаПеремещениеДенежныхСредств) Тогда
РаспоряжениеНаПеремещениеДенежныхСредствПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РаспоряжениеНаПеремещениеДенежныхСредствПриИзмененииСервер()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(Объект.РаспоряжениеНаПеремещениеДенежныхСредств);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетПолучательПриИзменении(Элемент)
БанковскийСчетПолучательПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПолучательПриИзмененииСервер()
ИсходнаяОрганизацияПолучатель = ОрганизацияПолучатель;
ПриИзмененииБанковскийСчетПолучатель();
УстановитьВозможныеЗначенияСчетаПолучателя(Ложь);
Если ЗначениеЗаполнено(Объект.БанковскийСчетПолучатель) Тогда
Если ЗначениеЗаполнено(ИсходнаяОрганизацияПолучатель)
И ИсходнаяОрганизацияПолучатель <> ОрганизацияПолучатель Тогда
ДенежныеСредстваСервер.ОчиститьЗаявкуНаРасходованиеДенежныхСредств(Объект);
КонецЕсли;
КонецЕсли;
ЗаполнитьВалютуПоСчетуПолучателя(Объект.БанковскийСчетПолучатель);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ВалютаКонвертацииПриИзменении(Элемент)
ВалютаКонвертацииПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КурсКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецПроцедуры
&НаКлиенте
Процедура СуммаКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("СуммаКонвертации");
Если Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Объект.РасшифровкаПлатежа[0].Сумма = Объект.СуммаДокумента;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьЗаголовокЗаявкиНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если СписокЗаявок.Количество() = 1 Тогда
ПоказатьЗначение(, СписокЗаявок[0].Значение);
Иначе
ОткрытьФорму(
"ОбщаяФорма.ПросмотрСпискаДокументов",
Новый Структура("СписокДокументов, Заголовок",
СписокЗаявок,
НСтр("ru = 'Заявки на оплату (%КоличествоДокументов%)'")
),
ЭтаФорма,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаПоЗаявкамПриИзменении(Элемент)
ПриИзмененииОплатыПоНесколькимЗаявкам();
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииОплатыПоНесколькимЗаявкам()
Если Не Объект.ОплатаПоЗаявкам Тогда
Если СписокФизЛиц Тогда
ЛицевыеСчетаСотрудниковПриИзмененииНаСервере();
Иначе
Для каждого Строка Из Объект.РасшифровкаПлатежа Цикл
Строка.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
КонецЦикла;
Конецесли;
Объект.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
СписокЗаявок.Очистить();
КонецЕсли;
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
ОбновитьИнформациюПоЗаявкам();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница = Элементы.СтраницаРасшифровка И Не ПереключательРасшифровки И Не ТолькоПросмотр Тогда
РасшифровкаПлатежаПриНачалеРедактирования(Элемент, Ложь, Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗеркальныйПлатежНажатие(Элемент, СтандартнаяОбработка)
Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка) Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,ЗеркальныйПлатежСсылка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КодыИнструкцийБанкуНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокИнструкций = Новый Массив;
Для каждого СтрокаИнструкции Из Объект.ИнструкцииБанку Цикл
СписокИнструкций.Добавить(СтрокаИнструкции.Инструкция);
КонецЦикла;
ПараметрыВыбораИнструкций = Новый Структура;
ПараметрыВыбораИнструкций.Вставить("СписокИнструкций", СписокИнструкций);
ОткрытьФорму("Справочник.ИнструкцииБанку.ФормаВыбора",
ПараметрыВыбораИнструкций,
ЭтаФорма,,,,
Новый ОписаниеОповещения("ПослеВыбораИнструкцийБанку", ЭтотОбъект),
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораИнструкцийБанку(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Массив") Тогда
Модифицированность = Истина;
Объект.ИнструкцииБанку.Очистить();
Для каждого НоваяИнструкция Из Результат Цикл
Объект.ИнструкцииБанку.Добавить().Инструкция = НоваяИнструкция;
КонецЦикла;
КодыИнструкцийБанку = НадписьКодыИнструкцийБанку(Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИнформацияДляРегулирующихОргановНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьВводСтроки(Новый ОписаниеОповещения("ПослеВводаСтрокиИнформацияДляРегулирующихОрганов", ЭтотОбъект),
Объект.ИнформацияДляРегулирующихОрганов, НСтр("ru = 'Информация для регулятора (77B):'"),, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаСтрокиИнформацияДляРегулирующихОрганов(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено И Объект.ИнформацияДляРегулирующихОрганов <> Результат Тогда
Модифицированность = Истина;
Объект.ИнформацияДляРегулирующихОрганов = Результат;
ИнформацияДляРегулирующихОрганов = НадписьИнформацияДляРегулирующихОрганов(Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПериодАвансовогоОтчетаПриИзменении(Элемент)
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.Дата);
НастроитьЗависимыеЭлементыФормы("ПериодАвансовогоОтчетаДата");
КонецПроцедуры
&НаКлиенте
Процедура ПериодАвансовогоОтчетаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ВыполнитьПослеВыбораДаты", ЭтотОбъект);
ДенежныеСредстваКлиент.ПериодАвансовогоОтчетаОбработкаВыбора(
Элемент, ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма, Объект.Дата, Оповещение);
ПериодАвансовогоОтчетаДата = (ТипЗнч(ВыбранноеЗначение) = Тип("Дата") Или ВыбранноеЗначение = "ДоДаты");
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПослеВыбораДаты(ВыбраннаяДата, Параметры) Экспорт
ПериодАвансовогоОтчетаДата = (ТипЗнч(ПериодАвансовогоОтчета) = Тип("Дата"));
НастроитьЗависимыеЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ФискальнаяОперацияСтатусОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
ФормированиеФискальныхЧековКлиент.ФискальнаяОперацияОбработкаНавигационнойСсылки(
ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ФискальнаяОперацияЗавершение(Результат, ДополнительныеПараметры) Экспорт
ФискальнаяОперацияЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ФискальнаяОперацияЗавершениеНаСервере()
ФормированиеФискальныхЧековСервер.ОбновитьГиперссылкуПробитияФискальногоЧека(Объект.Ссылка, ЭтотОбъект, ФискальнаяОперацияСтатус);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитыДоговора, "ГруппаФинансовогоУчета") Тогда
Объект.ГруппаФинансовогоУчета = РеквизитыДоговора.ГруппаФинансовогоУчета;
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(РеквизитыДоговора, "НаправлениеДеятельности") Тогда
Объект.НаправлениеДеятельности = ДенежныеСредстваСервер.НаправлениеДеятельности(
Объект.ХозяйственнаяОперация,
РеквизитыДоговора.НаправлениеДеятельности);
КонецЕсли;
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(ТекущаяСтрока, РеквизитыДоговора);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецЕсли;
ТекущийОбъектРасчетов = ТекущаяСтрока.ОбъектРасчетов;
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
Если ТекущийОбъектРасчетов <> ТекущаяСтрока.ОбъектРасчетов Тогда
ЗаполнитьУИП(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
КонецЕсли;
ОбработатьИзменениеУИП();
ЗаполнитьНалогообложениеНДС();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорВозвратаСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДенежныеСредстваКлиент.ОткрытьСозданиеДоговораВозврата(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ДекорацияВалютыИКурсПлатежаНажатиеЗавершение", ЭтотОбъект);
ДенежныеСредстваКлиент.ВалютыИКурсПлатежаНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере()
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияИндексыСПАРКРискиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СПАРКРискиКлиент.ОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НадписьФайлыДляПередачиВБанкНажатие(Элемент)
ДенежныеСредстваКлиентЛокализация.ОткрытьФормуСпискаФайловДляПередачиВБанк(ЭтотОбъект);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлательщикаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ТолькоПросмотр", ТолькоПросмотр);
СтруктураПараметров.Вставить("Объект", Объект);
СтруктураПараметров.Вставить("ЮрФизЛицо", ЮрФизЛицо);
ОткрытьФорму("Документ.СписаниеБезналичныхДенежныхСредств.Форма.РеквизитыПлательщика", СтруктураПараметров, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ТипПлатежногоДокументаПриИзменении(Элемент)
Если Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ИнкассовоеПоручение")
Или Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ПлатежныйОрдер")
Или Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.БанковскийОрдер") Тогда
Объект.НеКонтролироватьЗаполнениеЗаявки = Истина;
РазрешеныПлатежиБезУказанияЗаявок = Истина;
Объект.ПроведеноБанком = Истина;
Объект.ДатаПроведенияБанком = Объект.Дата;
Иначе
Объект.НеКонтролироватьЗаполнениеЗаявки = Ложь;
РазрешеныПлатежиБезУказанияЗаявок =
(РазрешитьПлатежиБезУказанияЗаявокБанковскийСчет И ИспользоватьЗаявкиНаРасходованиеДенежныхСредств)
Или Не ИспользоватьЗаявкиНаРасходованиеДенежныхСредств;
УстановитьПризнакОплатыПоЗаявкам();
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("ТипПлатежногоДокумента, РазрешеныПлатежиБезУказанияЗаявок");
КонецПроцедуры
&НаКлиенте
Процедура ИдентификаторПлатежаПриИзменении(Элемент)
Если Объект.ПеречислениеВБюджет Тогда
ОчиститьСообщения();
ПроверитьРеквизитыБюджетаНаСервере();
КонецЕсли;
ИдентификаторПлатежаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ВидПлатежаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.Добавить("Почтой");
ДанныеВыбора.Добавить("Телеграфом");
ДанныеВыбора.Добавить("Срочно");
КонецПроцедуры
&НаКлиенте
Процедура ПлатежиПо275ФЗПриИзменении(Элемент)
ПлатежиПо275ФЗПриИзмененииНаСервере();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПоВедомостямПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТипНалогаПриИзменении(Элемент)
ТипНалогаПриИзмененииНаСервере();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлатежаВБюджетНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр);
ПараметрыФормы.Вставить("ВидПеречисленияВБюджет", Объект.ВидПеречисленияВБюджет);
ПараметрыФормы.Вставить("КодБК", Объект.КодБК);
ПараметрыФормы.Вставить("КодОКАТО", Объект.КодОКАТО);
ПараметрыФормы.Вставить("ПоказательДаты", Объект.ПоказательДаты);
ПараметрыФормы.Вставить("ПоказательНомера", Объект.ПоказательНомера);
ПараметрыФормы.Вставить("ПоказательОснования", Объект.ПоказательОснования);
ПараметрыФормы.Вставить("ПоказательПериода", Объект.ПоказательПериода);
ПараметрыФормы.Вставить("ПоказательТипа", Объект.ПоказательТипа);
ПараметрыФормы.Вставить("СтатусСоставителя", Объект.СтатусСоставителя);
ПараметрыФормы.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
ПараметрыФормы.Вставить("ПрименениеПриказа107н", ПрименениеПриказа107н);
ПараметрыФормы.Вставить("ПрименениеПриказа126н", ПрименениеПриказа126н);
ПараметрыФормы.Вставить("ТекущаяДата", ТекущаяДата);
ПараметрыФормы.Вставить("ТипНалога", Объект.ТипНалога);
Оповещение = Новый ОписаниеОповещения("НадписьРеквизитыПлатежаВБюджетНажатиеЗавершение", ЭтотОбъект);
ОткрытьФорму(
"ОбщаяФорма.РеквизитыПлатежаВБюджет",
ПараметрыФормы,
ЭтотОбъект,,,,
Оповещение,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПеречислениеВБюджетПриИзменении(Элемент)
ПеречислениеВБюджетПриИзмененииСервер();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура КодВалютнойОперацииПриИзменении(Элемент)
КодВалютнойОперацииЗаполнен = ЗначениеЗаполнено(Объект.КодВалютнойОперации);
НастроитьЗависимыеЭлементыФормы("КодВалютнойОперацииЗаполнен");
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПеречислениеСотрудникуЧерезБанкПриИзменении(Элемент)
ПеречислениеСотрудникуЧерезБанкПриИзменении_Сервер();
КонецПроцедуры
&НаКлиенте
Процедура СписокФизЛицПриИзменении(Элемент)
Объект.СписокФизЛиц = (СписокФизЛиц = 1);
Если Объект.СписокФизЛиц Тогда
СписокФизЛицПриИзмененииНаСервере();
Иначе
Объект.ЛицевыеСчетаСотрудников.Очистить();
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("СписокФизЛиц");
КонецПроцедуры
&НаКлиенте
Процедура РеквизитДоговораСБанкомПриИзменении(Элемент)
РеквизитДоговораСБанкомПриИзмененииНаСервере();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура СписокКонтрагентовПриИзменении(Элемент)
СписокКонтрагентовПриИзмененииСервер();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура КратностьКурсаКонвертацииПриИзменении(Элемент)
КратностьКурсаКонвертацииПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НаправлениеДеятельностиПриИзменении(Элемент)
НаправлениеДеятельностиПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ГруппаФинансовогоУчетаПриИзменении(Элемент)
ГруппаФинансовогоУчетаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПартнерПриИзменении(Элемент)
РасшифровкаПлатежаПартнерПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ВестиУчетКомиссииВоВзаиморасчетахПереключательПриИзменении(Элемент)
Объект.ВестиУчетКомиссииВоВзаиморасчетах = ВестиУчетКомиссииВоВзаиморасчетахПереключатель;
Если Не Объект.ВестиУчетКомиссииВоВзаиморасчетах Тогда
ДоговорКомиссии = ПредопределенноеЗначение("Справочник.ДоговорыКонтрагентов.ПустаяСсылка");
Объект.ОбъектРасчетовКомиссии = ПредопределенноеЗначение("Справочник.ОбъектыРасчетов.ПустаяСсылка");
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("ВестиУчетКомиссииВоВзаиморасчетах");
КонецПроцедуры
&НаКлиенте
Процедура ДоговорКомиссииНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
СтруктураОтбора.Вставить("Организация", Объект.Организация);
СтруктураОтбора.Вставить("Контрагент", Объект.Контрагент);
СтруктураОтбора.Вставить("ВалютаВзаиморасчетов", Объект.Валюта);
СтруктураОтбора.Вставить("ПорядокРасчетов", ПредопределенноеЗначение("Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов"));
СтруктураПараметровВыбора = Новый Структура;
СтруктураПараметровВыбора.Вставить("РежимВыбора", Истина);
СтруктураПараметровВыбора.Вставить("ТипыДоговоров", ВзаиморасчетыКлиентСервер.ТипыДоговоровСПоставщиком());
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора", СтруктураПараметровВыбора, Элемент, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорКомиссииПриИзменении(Элемент)
ДоговорКомиссииПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа
&НаКлиенте
Процедура ПереключательРасшифровкиПриИзменении(Элемент)
Если Не ПереключательРасшифровки Тогда
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
РасшифровкаПлатежаПриНачалеРедактирования(Элементы.РасшифровкаПлатежа, Истина, Ложь);
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Если Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Неопределено Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
КонецЕсли;
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() > 1 Тогда
ОчиститьСообщения();
ТекстСообщения = НСтр("ru = 'Переключение в режим без разбиения невозможно, если в расшифровке платежа введено более одной строки!'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
ПереключательРасшифровки = 1;
КонецЕсли;
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле.Имя = "РасшифровкаПлатежаПредставлениеОтраженияВРеглУчете" Тогда
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Поле, СтандартнаяОбработка);
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПредставлениеОтраженияВРеглУчетеНажатие(Элемент, СтандартнаяОбработка)
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОтраженияВРеглУчетеПриИзменении", ЭтотОбъект);
НастройкаСчетовУчетаКлиент.ПриНажатии(ЭтотОбъект, Элемент, СтандартнаяОбработка, ОповещениеОЗавершении);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если Объект.СписокКонтрагентов Тогда
Партнер = СтрокаТаблицы.Партнер;
КонецЕсли;
Если Не ЗначениеЗаполнено(Партнер)
И Не Объект.СписокКонтрагентов Тогда
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
КонецЕсли;
ФинансыКлиент.РасшифровкаПлатежаПриНачалеРедактирования(
Объект, Партнер, ДоговорКонтрагента, СтрокаТаблицы, НоваяСтрока, Копирование, СтатьяДвиженияДенежныхСредств);
Если НоваяСтрока Тогда
Если Не Копирование Тогда
СтрокаТаблицы.ВалютаВзаиморасчетов = Объект.Валюта;
СтрокаТаблицы.КурсЧислительВзаиморасчетов = 1;
СтрокаТаблицы.КурсЗнаменательВзаиморасчетов = 1;
Если Не Объект.СписокКонтрагентов Тогда
СтрокаТаблицы.Контрагент = Объект.Контрагент;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаТаблицы, "Объект.РасшифровкаПлатежа");
КонецЕсли;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаТаблицы.ПолучитьИдентификатор());
КонецЕсли;
ПриИзмененииРасшифровкаПлатежаСумма();
Если НоваяСтрока И Копирование Тогда
НастройкаСчетовУчетаКлиент.ПриКопированииСтроки(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
РасшифровкаПлатежаПриОкончанииРедактированияНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриОкончанииРедактированияНаСервере()
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредствПриИзменении(Элемент)
РасшифровкаПлатежаЗаявкаПриИзмененииСервер(Элементы.РасшифровкаПлатежа.ТекущиеДанные.ЗаявкаНаРасходованиеДенежныхСредств);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаЗаявкаПриИзмененииСервер(ЗаявкаСсылка)
Если ТипЗнч(ЗаявкаСсылка) = Тип("ДокументСсылка.ЗаявкаНаРасходованиеДенежныхСредств") Тогда
РеквизитыЗаявки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗаявкаСсылка, "Контрагент, ИдентификаторПлатежа");
КонтрагентЗаявки = РеквизитыЗаявки.Контрагент;
Если Не ЗначениеЗаполнено(Объект.Контрагент) Тогда
Объект.Контрагент = КонтрагентЗаявки;
ИначеЕсли ЗначениеЗаполнено(КонтрагентЗаявки) И Объект.Контрагент <> КонтрагентЗаявки Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получатель платежа ""%1"" в документе оплаты не соответствует получателю ""%2"" в заявке!'"),
Объект.Контрагент,
КонтрагентЗаявки);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
КонецЕсли;
Если ПустаяСтрока(Объект.ИдентификаторПлатежа) Тогда
Объект.ИдентификаторПлатежа = РеквизитыЗаявки.ИдентификаторПлатежа;
КонецЕсли;
КонецЕсли;
СтрокаРасшифровки = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
Если СтрокаРасшифровки <> Неопределено
И Объект.СписокФизЛиц Тогда
СтрокаРасшифровки.Сумма = СуммаОстаткаЗаявки(ЗаявкаСсылка);
КонецЕсли;
ОбновитьИнформациюПоЗаявкам();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер(ИдСтроки)
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, ИдСтроки);
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.СписаниеБезналичныхДенежныхСредств", Объект, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(
Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока, Истина);
ЗаполнитьУИП(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОбработатьИзменениеУИП();
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетов = Неопределено;
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОбъектРасчетов = ТекущиеДанные.ОбъектРасчетов;
КонецЕсли;
ДополнительныйОтбор = Неопределено;
ДенежныеСредстваКлиентЛокализация.ДополнитьОтборОбъектовРасчета(ЭтотОбъект, ДополнительныйОтбор);
ВзаиморасчетыКлиент.ОбъектРасчетовНачалоВыбора(
ЭтотОбъект, Элемент, СтандартнаяОбработка,, ОбъектРасчетов, ДополнительныйОтбор);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдентификаторСтроки);
ДополнитьВыбранноеЗначение(ВыбранноеЗначение);
ИсключаемыеСвойства = "";
Если ВыбранноеЗначение.Свойство("СтатьяДвиженияДенежныхСредств")
И Не ЗначениеЗаполнено(ВыбранноеЗначение.СтатьяДвиженияДенежныхСредств) Тогда
ИсключаемыеСвойства = "СтатьяДвиженияДенежныхСредств";
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение,, ИсключаемыеСвойства);
Модифицированность = Истина;
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
Если ПоддержкаПлатежей275ФЗ И ВыбранноеЗначение.ПлатежиПо275ФЗ Тогда
ЗаполнитьПоДоговору(ВыбранноеЗначение.Договор);
КонецЕсли;
ЗаполнитьУИП(ИдентификаторСтроки);
РасшифровкаОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДополнитьВыбранноеЗначение(ВыбранноеЗначение)
ВыбранноеЗначение.Вставить("СтатьяДвиженияДенежныхСредств",
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(ВыбранноеЗначение.ОбъектРасчетов, Объект.ХозяйственнаяОперация));
Если ЗначениеЗаполнено(ВыбранноеЗначение.Договор) Тогда
ПлатежиПо275ФЗ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВыбранноеЗначение.Договор, "ПлатежиПо275ФЗ");
Иначе
ПлатежиПо275ФЗ = Ложь;
КонецЕсли;
ВыбранноеЗначение.Вставить("ПлатежиПо275ФЗ", ПлатежиПо275ФЗ);
ОбъектыРасчетов = Новый Массив;
ОбъектыРасчетов.Добавить(ВыбранноеЗначение.ОбъектРасчетов);
ТаблицаНДС = ДенежныеСредстваСервер.РасшифровкаПлатежаНДС(Объект.Организация, Неопределено, Неопределено, ОбъектыРасчетов, ВыбранноеЗначение.ЭтоРасчетыСКлиентами);
Если ТаблицаНДС.Количество() = 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].ДатаПогашения = ВыбраннаяДата;
ОбновитьПредставлениеДатыПогашения();
ДанныеВыбора = Новый СписокЗначений();
ДанныеВыбора.Добавить(ВыбраннаяДата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если СтрокаТабличнойЧасти = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.Договор = СтрокаТабличнойЧасти.Договор;
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЛицевыеСчетаСотрудников
&НаКлиенте
Процедура ЛицевыеСчетаСотрудниковПриИзменении(Элемент)
Если Не Объект.ОплатаПоЗаявкам Тогда
ЛицевыеСчетаСотрудниковПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПартнерПриИзменении(Элемент)
РасшифровкаПлатежаПартнерПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткам(Команда)
ПодборПоОстаткамОбработка("ПодборПоОстаткамЗавершение");
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификат(Команда)
Если ПодарочныеСертификатыКлиент.ПроверитьВозможностьДобавленияПодарочногоСертификата(ЭтотОбъект, Ложь) Тогда
ОписаниеОповещенияЗаверщения = Новый ОписаниеОповещения("ПодобратьПодарочныйСертификатЗавершение", ЭтотОбъект);
Если Объект.Проведен Тогда
РозничныеПродажиКлиент.ОтобразитьВопросОНеобходимостиНепроведенногоДокумента(ЭтотОБъект, ОписаниеОповещенияЗаверщения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗаверщения, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификатЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Истина Тогда
СтатусыДляОтбора = Новый Массив;
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.Активирован"));
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.ЧастичноПогашен"));
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Организация", Объект.Организация);
ПараметрыОтбора.Вставить("Валюта", ВалютаРеглУчета);
ПараметрыОтбора.Вставить("Статус", СтатусыДляОтбора);
ПараметрыОтбора.Вставить("УчетПодарочныхСертификатов2_5", Истина);
ПараметрыОтбора.Вставить("ТипОперации", ПодарочныеСертификатыКлиентСервер.ТипОперацииПоПодарочнымСертификатам(Объект));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Организация", Объект.Организация);
ДополнительныеПараметры.Вставить("НеИспользоватьРучнойВвод", Ложь);
ДополнительныеПараметры.Вставить("Отбор", ПараметрыОтбора);
ДополнительныеПараметры.Вставить("РегистрироватьНовые", Ложь);
ОткрытьФорму(
"Справочник.ПодарочныеСертификаты.Форма.СчитываниеПодарочногоСертификата",
ДополнительныеПараметры,
ЭтотОбъект,
УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамПослеПроверки(Результат, ДополнительныеПараметры) Экспорт
Оповещение = Новый ОписаниеОповещения(ДополнительныеПараметры.ПроцедураЗавершения, ЭтотОбъект);
ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
ДополнительныеОтборы = Новый Соответствие();
Если Объект.ПлатежиПо275ФЗ Тогда
ДополнительныеОтборы.Вставить("Договор.ПлатежиПо275ФЗ", Истина);
КонецЕсли;
ДенежныеСредстваКлиентЛокализация.ДополнитьОтборОбъектовРасчета(ЭтотОбъект, ДополнительныеОтборы, Истина);
ВзаиморасчетыКлиент.ПодборВРасшифровкуПлатежа(ЭтаФорма, Элементы.РасшифровкаПлатежаПодборПоОстаткам.Имя, Оповещение, ДополнительныеОтборы);
КонецПроцедуры
&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма, "РасшифровкаПлатежаПодборПоОстаткам");
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ПодборПоОстаткамЗавершениеСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодборПоОстаткамЗавершениеСервер()
ВзаиморасчетыСервер.ЗагрузитьРасшифровкуПлатежаИзВременногоХранилища(ЭтотОбъект);
ЗаполнитьНалогообложениеНДС();
СтатьяДДСПоУмолчанию =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);
СтатьиХозяйственнойОперации =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьиХозяйственнойОперации(Объект.ХозяйственнаяОперация);
Для каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
Если СтатьиХозяйственнойОперации.Найти(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) = Неопределено Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоУмолчанию;
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов)
Или СтрокаРасшифровки.ОбъектОбъектаРасчетов = Объект.Ссылка Тогда
Если ЗначениеЗаполнено(СтрокаРасшифровки.Договор) Тогда
СтрокаРасшифровки.СтавкаНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаРасшифровки.Договор, "СтавкаНДС");
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаРасшифровки.СтавкаНДС) Тогда
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаРасшифровки.ПолучитьИдентификатор());
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке(Не Объект.ОплатаПоЗаявкам);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИзЗаявок(Команда)
Оповещение = Новый ОписаниеОповещения("ПодобратьИзЗаявокЗавершение", ЭтотОбъект);
ПроверитьВозможностьЗаполненияЗаявки(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИзЗаявокЗавершение(Результат, ДополнительныеПараметры) Экспорт
АдресПлатежейВХранилище = ПоместитьРасшифровкуПлатежаВХранилище();
ПараметрыПодбора = Новый Структура(
"Контрагент,
|БанковскийСчетПолучатель,
|ПодотчетноеЛицо,
|Организация,
|ХозяйственнаяОперация,
|ХозяйственнаяОперацияПоЗарплате,
|Валюта,
|СуммаДокумента,
|Дата,
|СписокКонтрагентов,
|ОперацияССамозанятым");
ЗаполнитьЗначенияСвойств(ПараметрыПодбора, Объект);
ПараметрыПодбора.Вставить("Ссылка", Объект.Ссылка);
ПараметрыПодбора.Вставить("ФормаОплаты", ПредопределенноеЗначение("Перечисление.ФормыОплаты.Безналичная"));
ПараметрыПодбора.Вставить("БанковскийСчетКасса", Объект.БанковскийСчет);
ПараметрыПодбора.Вставить("АдресПлатежейВХранилище", АдресПлатежейВХранилище);
ПараметрыПодбора.Вставить("СписокКонтрагентов", Объект.СписокКонтрагентов);
ПараметрыПодбора.Вставить("ОперацияССамозанятым", Объект.ОперацияССамозанятым);
ДополнитьОтборПоСпискуФизЛиц(ПараметрыПодбора);
ОткрытьФорму("Документ.ЗаявкаНаРасходованиеДенежныхСредств.Форма.ПодборЗаявокВДокументыОплаты",
ПараметрыПодбора,
ЭтотОбъект,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммКонтрагенту(Команда)
ЗаполнитьОстаткамиНевыданныхСуммКонтрагентуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОстаткамиНевыданныхСуммКонтрагентуНаСервере()
Объект.РасшифровкаПлатежа.Очистить();
ДействующиеДоговоры = Справочники.ДоговорыКредитовИДепозитов.ДействующиеДоговорыПоКонтрагенту(
Объект.Организация, Объект.Контрагент, Перечисления.ХарактерыДоговоровФинансовыхИнструментов.ЗаймВыданный);
Для Каждого Договор Из ДействующиеДоговоры Цикл
ДанныеРасшифровки = Справочники.ДоговорыКредитовИДепозитов.ДанныеРасшифровкиПлатежаДокументаДДС(
Договор, Ложь, Объект.Ссылка);
Для Каждого Строка Из ДанныеРасшифровки Цикл
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецЦикла;
КонецЦикла;
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНазначениеПлатежа(Команда)
ЗаполнитьНазначениеПлатежаСервер();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНазначениеПлатежаСервер()
ДенежныеСредстваСервер.ЗаполнитьТекстНазначенияПлатежа(Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ОчиститьСообщения();
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура ВставитьВНазначение(Команда)
ВставитьВНазначениеЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьФайлДляОбменаСБанком(Команда)
ВыгрузитьФайлДляОбменаСБанкомЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммСотруднику(Команда)
ЗаполнитьОстаткамиНевыданныхСуммСотрудникуЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоПредыдущемуПлатежу(Команда)
ЗаполнитьПоПредыдущемуПлатежуЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьСчетаФактуры(Команда)
ПодобратьСчетаФактурыЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверитьКонтрагентовЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПометкуУдаленияДокумента(Команда)
ОбщегоНазначенияУТКлиент.УстановитьПометкуУдаленияДокумента(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтатьюДвиженияДенежныхСредств(Команда)
ОчиститьСообщения();
ДенежныеСредстваКлиент.ЗаполнитьСтатьюДвиженияДенежныхСредств(
ЭтотОбъект, Элементы.ЛицевыеСчетаСотрудников, "ЛицевыеСчетаСотрудников");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ОбработчикиСобытийЭлементов
&НаСервере
Процедура ДатаПриИзмененииСервер()
ЗаполнитьНалогообложениеНДС();
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииБанковскийСчет(СтруктураРеквизитов)
ИзмениласьОрганизация = (Объект.Организация <> СтруктураРеквизитов.Организация);
Объект.Валюта = СтруктураРеквизитов.Валюта;
Объект.Организация = СтруктураРеквизитов.Организация;
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ВалютаБанковскогоСчета = СтруктураРеквизитов.Валюта;
Если ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Если ИзмениласьОрганизация Тогда
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
ЕстьФилиалы = (ФилиалыОрганизации.Количество() > 0);
КонецЕсли;
Иначе
ФилиалыОрганизации.Очистить();
КонецЕсли;
ТекущийБанковскийСчет = Объект.БанковскийСчет;
КонецПроцедуры
&НаСервере
Процедура СуммаДокументаПриИзмененииСервер()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецЕсли;
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
Если Объект.ОтражатьКомиссию Тогда
Объект.СуммаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСуммуКомиссии(Объект.СуммаДокумента, СтавкаКомиссии);
Элементы.ГруппаКомиссия.Заголовок = ЗаголовокЭквайринговойКомиссии(Объект.СуммаКомиссии, Объект.Валюта, СтавкаКомиссии);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ВалютаПриИзмененииКлиент()
Если ТекущаяВалюта = Объект.Валюта Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ВалютаПриИзмененииНаСервере()
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Валюта");
ДенежныеСредстваСервер.ОчиститьЗаявкуНаРасходованиеДенежныхСредств(Объект);
УстановитьПризнакПлатежаСКонвертацией();
ПриИзмененииВалюты();
УстановитьВозможныеЗначенияСчетаПолучателя();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеПоВалюте()
Если ТекущаяВалюта <> Объект.Валюта Тогда
ПриИзмененииВалюты();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииВалюты()
Объект.КассаПолучатель = Справочники.Кассы.ПустаяСсылка();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ПересчитатьПараметрыКонвертации("ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецЕсли;
ДенежныеСредстваСервер.ПересчетСуммДокументаВВалюту(Объект, ТекущаяВалюта, Объект.Валюта);
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.СписаниеБезналичныхДенежныхСредств", Объект, ВалютаРеглУчета, Истина);
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ТребуетсяИнформацияДляРегулирующихОрганов = (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Валюта, "Код") = "980");
ТекущаяВалюта = Объект.Валюта;
КонецПроцедуры
&НаСервере
Процедура СписокФизЛицПриИзмененииНаСервере()
СписокФизЛицВключеноПриИзмененииНаСервере();
ОбновитьДанныеПоВалюте();
КонецПроцедуры
&НаСервере
Процедура ВалютаКонвертацииПриИзмененииСервер()
УстановитьВозможныеЗначенияСчетаПолучателя();
ПересчитатьПараметрыКонвертации("ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецПроцедуры
&НаСервере
Процедура КратностьКурсаКонвертацииПриИзмененииНаСервере()
ПересчитатьПараметрыКонвертации("КратностьКурсаКонвертации");
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииБанковскийСчетПолучатель()
СтруктураРеквизитов = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(
Объект.БанковскийСчетПолучатель);
ЗаполнитьОрганизациюПолучателя(СтруктураРеквизитов);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
Если ЗначениеЗаполнено(СтруктураРеквизитов.Валюта) Тогда
Объект.ВалютаКонвертации = СтруктураРеквизитов.Валюта;
ПересчитатьПараметрыКонвертации("ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииРасшифровкаПлатежаСумма()
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтотОбъект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаСервере
Процедура ИдентификаторПлатежаПриИзмененииНаСервере()
ОбработатьИзменениеУИП();
КонецПроцедуры
&НаСервере
Процедура ДоговорКомиссииПриИзмененииНаСервере()
Объект.ОбъектРасчетовКомиссии = ?(ЗначениеЗаполнено(ДоговорКомиссии),
ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКомиссии), Справочники.ОбъектыРасчетов.ПустаяСсылка());
КонецПроцедуры
#КонецОбласти
#Область Свойства
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриНажатииНаСсылкуДиректБанк()
ОбменСБанкамиКлиент.ОткрытьАктуальныйЭД(Объект.Ссылка, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЛицевыеСчетаСотрудниковПриИзмененииНаСервере()
Объект.РасшифровкаПлатежа.Очистить();
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
НоваяСтрока.ВалютаВзаиморасчетов = Объект.Валюта;
НоваяСтрока.КурсЧислительВзаиморасчетов = 1;
НоваяСтрока.КурсЗнаменательВзаиморасчетов = 1;
НоваяСтрока.Сумма = Объект.ЛицевыеСчетаСотрудников.Итог("Сумма");
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
НоваяСтрока, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
#КонецОбласти
#Область УправлениеЭлементамиФормы
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеВалютыВзаиморасчетов(ЭтотОбъект);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеПартнера(ЭтотОбъект);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Подразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредств.Имя);
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ОплатаПоЗаявкам");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаПодразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет;
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаОбъектРасчетов.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетовСовпадаетСДокументом");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.DarkGray);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<этот документ>'"));
НаправленияДеятельностиСервер.УстановитьУсловноеОформлениеНаправленияДеятельности(ЭтаФорма);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаКурсЧислительВзаиморасчетов.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаДатаПогашения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ДатаПогашения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСТР("ru='<автоматически>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеСуммыНДСРасшифровкиПлатежа(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ДенежныеСредстваСервер.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ИспользоватьНачислениеЗарплаты = Константы.ИспользоватьНачислениеЗарплаты.Получить();
ИспользоватьЗаявкиНаРасходованиеДенежныхСредств = ПолучитьФункциональнуюОпцию("ИспользоватьЗаявкиНаРасходованиеДенежныхСредств");
ИспользоватьЗаявкиНаКомандировку = ПолучитьФункциональнуюОпцию("ИспользоватьЗаявкиНаКомандировку");
ИспользоватьНесколькоВалют = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют");
ИспользоватьСинхронизациюДанных = ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных");
ИспользоватьУчетПрочихАктивовПассивов = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов");
ИспользоватьДоговорыМеждуОрганизациями = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыМеждуОрганизациями");
ИспользоватьДоговорыСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСКлиентами");
ИспользоватьДоговорыСПоставщиками = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСПоставщиками");
ИспользоватьВалютныеПлатежи = ПолучитьФункциональнуюОпцию("ИспользоватьВалютныеПлатежи");
ИспользоватьПеречислениеДенежныхСредствСпискуСотрудников =
ПолучитьФункциональнуюОпцию("ИспользоватьПеречислениеДенежныхСредствСпискуСотрудников");
ИспользованиеПартнеровКакКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ТекущийБанковскийСчет = Объект.БанковскийСчет;
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
ТекущаяВалюта = Объект.Валюта;
ВидыНалоговСНастройкойСчетов.ЗагрузитьЗначения(РеглУчетСервер.ВидыНалоговСНастройкойСчетов());
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
ЕстьФилиалы = ФилиалыОрганизации.Количество() > 0;
ЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Организация, "ЮрФизЛицо", Истина);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДоговорЭквайринга) Тогда
Если Объект.ОтражатьКомиссию Тогда
Если Объект.СуммаДокумента <> 0 Тогда
СтавкаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСтавкуКомиссии(Объект.СуммаДокумента, Объект.СуммаКомиссии);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Элементы.ГруппаКомиссия.Заголовок = ЗаголовокЭквайринговойКомиссии(Объект.СуммаКомиссии, Объект.Валюта, СтавкаКомиссии);
КонецЕсли;
КонецЕсли;
ТребуетсяИнформацияДляРегулирующихОрганов = (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Валюта, "Код") = "980");
РеквизитыБанковскогоСчета = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(ТекущийБанковскийСчет);
РазрешитьПлатежиБезУказанияЗаявокБанковскийСчет = РеквизитыБанковскогоСчета.РазрешитьПлатежиБезУказанияЗаявок;
РазрешеныПлатежиБезУказанияЗаявок =
(РазрешитьПлатежиБезУказанияЗаявокБанковскийСчет И ИспользоватьЗаявкиНаРасходованиеДенежныхСредств)
Или Объект.НеКонтролироватьЗаполнениеЗаявки
Или Не ИспользоватьЗаявкиНаРасходованиеДенежныхСредств;
ВалютаБанковскогоСчета = РеквизитыБанковскогоСчета.Валюта;
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента, Ложь);
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ЗаполнитьСписокВыбораПериодовАвансовогоОтчета(ЭтотОбъект, Объект.Дата);
ПериодАвансовогоОтчетаДата = (ТипЗнч(ПериодАвансовогоОтчета) = Тип("Дата"));
ПеречислениеСотрудникуЧерезБанк = Число(Объект.ПеречислениеСотрудникуЧерезБанк);
СписокФизЛиц = Число(Объект.СписокФизЛиц);
ХозяйственнаяОперацияКонвертацияВалюты = Перечисления.ХозяйственныеОперации.КонвертацияВалюты;
СвязиПараметров = Новый Массив;
СвязиПараметров.Добавить(Новый СвязьПараметраВыбора("Отбор.ХозяйственнаяОперация", "ХозяйственнаяОперацияКонвертацияВалюты"));
Элементы.СтатьяДвиженияДенежныхСредствКонвертация.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметров);
Если ЗначениеЗаполнено(Объект.ОбъектРасчетовКомиссии) Тогда
ДоговорКомиссии = ДоговорОбъектаРасчетовКомиссии(Объект.ОбъектРасчетовКомиссии);
КонецЕсли;
ВестиУчетКомиссииВоВзаиморасчетахПереключатель = Объект.ВестиУчетКомиссииВоВзаиморасчетах;
ОтображениеЗаголовкаПоляПодотчетноеЛицо();
ЗаполнитьОрганизациюПолучателя();
ЗаполнитьСписокХозяйственныхОпераций();
УточнитьСписокХозяйственныхОпераций();
ДенежныеСредстваСервер.ПолучитьДоступныеХозяйственныеОперацииПоОснованию(
Объект.ДокументОснование, Перечисления.ФормыОплаты.Безналичная, ДоступныеОперацииПоОснованию);
УстановитьЗаголовокСтатьяДоходовРасходов();
УстановитьЗаголовокСуммыКонвертации();
ОбновитьИнформациюПоЗаявкам();
ОбновитьНадписьЗеркальныйПлатеж();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
ДенежныеСредстваСервер.ОпределитьВалютныйПлатеж(ЭтотОбъект);
КодыИнструкцийБанку = НадписьКодыИнструкцийБанку(Объект);
ИнформацияДляРегулирующихОрганов = НадписьИнформацияДляРегулирующихОрганов(Объект);
УстановитьНадписьЗачисленияДС();
УстановитьВозможныеЗначенияСчетаПолучателя(Ложь);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(ИзмененныйРеквизит = "")
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтотОбъект, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "") Экспорт
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтотОбъект, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыФормы(Форма)
РеквизитыФормы = Новый Структура;
РеквизитыФормы.Вставить("ИспользоватьЗаявкиНаРасходованиеДенежныхСредств");
РеквизитыФормы.Вставить("ИспользоватьЗаявкиНаКомандировку");
РеквизитыФормы.Вставить("РазрешеныПлатежиБезУказанияЗаявок");
РеквизитыФормы.Вставить("ЕстьФилиалы");
РеквизитыФормы.Вставить("ИспользоватьРеглУчет");
РеквизитыФормы.Вставить("ПравоДоступаКПлануСчетов");
РеквизитыФормы.Вставить("ИспользоватьНесколькоВалют");
РеквизитыФормы.Вставить("ИспользоватьНачислениеЗарплаты");
РеквизитыФормы.Вставить("ИспользоватьНачислениеЗарплатыУТ");
РеквизитыФормы.Вставить("ПериодАвансовогоОтчетаДата");
РеквизитыФормы.Вставить("ТребуетсяИнформацияДляРегулирующихОрганов");
РеквизитыФормы.Вставить("ИспользоватьВалютныеПлатежи");
РеквизитыФормы.Вставить("ВалютныйПлатеж");
РеквизитыФормы.Вставить("ВалютныйКонтроль");
РеквизитыФормы.Вставить("КодВалютнойОперацииЗаполнен");
РеквизитыФормы.Вставить("ЭтоТранзитныйСчет");
РеквизитыФормы.Вставить("ОплатаНДСВБюджетПоОтдельнымОперациям");
РеквизитыФормы.Вставить("СуммаНераспределено");
РеквизитыФормы.Вставить("ИспользоватьДоговорыМеждуОрганизациями");
РеквизитыФормы.Вставить("ИспользоватьДоговорыСКлиентами");
РеквизитыФормы.Вставить("ИспользоватьДоговорыСПоставщиками");
РеквизитыФормы.Вставить("ИспользованиеСПАРКРазрешено");
РеквизитыФормы.Вставить("ДействуетУказание2019_5286У");
РеквизитыФормы.Вставить("КонтрагентЮрФизЛицо");
РеквизитыФормы.Вставить("ВалютаВзаиморасчетов");
РеквизитыФормы.Вставить("НаличиеДокументаЗачисленияДС");
РеквизитыФормы.Вставить("ИспользоватьПеречислениеДенежныхСредствСпискуСотрудников");
РеквизитыФормы.Вставить("БанковскийСчетПоГосконтракту");
РеквизитыФормы.Вставить("ВариантКурсаДоговора");
РеквизитыФормы.Вставить("ТипОбъектаРасчетов");
РеквизитыФормы.Вставить("ИспользоватьВыплатыСамозанятым");
РеквизитыФормы.Вставить("НесколькоВалютВзаиморасчетов");
РеквизитыФормы.Вставить("УИПОтличается");
ЗаполнитьЗначенияСвойств(РеквизитыФормы, Форма);
Возврат РеквизитыФормы;
КонецФункции
&НаСервере
Процедура ИнициализироватьРасшифровкуПлатежа()
МассивРеквизитовОперации = Новый Массив;
Документы.СписаниеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, Неопределено, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа") = Неопределено
Или Документы.СписаниеБезналичныхДенежныхСредств.МассивОперацийБезРасшифровкиПлатежа().Найти(Объект.ХозяйственнаяОперация) <> Неопределено
И Не Объект.ОплатаПоЗаявкам Тогда
Объект.РасшифровкаПлатежа.Очистить();
ПереключательРасшифровки = 0;
Иначе
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ДатаПогашения") = Неопределено Тогда
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровки.ДатаПогашения = Дата(1 , 1 ,1);
КонецЦикла;
КонецЕсли;
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
ПереключательРасшифровки = 0;
НоваяСтрока.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
НоваяСтрока.Сумма = Объект.СуммаДокумента;
НоваяСтрока.ВалютаВзаиморасчетов = Объект.Валюта;
НоваяСтрока.КурсЧислительВзаиморасчетов = 1;
НоваяСтрока.КурсЗнаменательВзаиморасчетов = 1;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
ЗаполнитьНалогообложениеНДС();
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
ПереключательРасшифровки = 0 Или ЭтоПодборЗаявок;
ЗаполнитьНалогообложениеНДС(Ложь);
Иначе
ПереключательРасшифровки = 1;
ЗаполнитьНалогообложениеНДС(Ложь);
КонецЕсли;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке(ЗаполнитьУИП = Ложь)
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(
Объект.РасшифровкаПлатежа.Выгрузить(,"ОбъектРасчетов").ВыгрузитьКолонку("ОбъектРасчетов"));
Для Каждого СтрокаТч Из Объект.РасшифровкаПлатежа Цикл
СтрокаТч.ВариантКурсаДоговора = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].ВариантКурсаДоговора;
СтрокаТч.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТч.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].Объект = Объект.Ссылка;
Если ЗначениеЗаполнено(СтрокаТч.ОбъектРасчетов) Тогда
СтрокаТч.ТипОбъектаРасчетов = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].ТипОбъектаРасчетов;
Если ЗаполнитьУИП И ПустаяСтрока(Объект.ИдентификаторПлатежа) И ЗначениеЗаполнено(СтрокаТч.ИдентификаторПлатежа) Тогда
Объект.ИдентификаторПлатежа = СтрокаТч.ИдентификаторПлатежа;
КонецЕсли;
КонецЕсли;
ЗаполнитьИндексУИПОтличается(СтрокаТч);
КонецЦикла;
ОпределитьУИПОтличается();
КонецПроцедуры
&НаСервере
Процедура УправлениеЭлементамиФормы()
МассивРеквизитовОперации = Новый Массив;
Документы.СписаниеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, Неопределено, МассивРеквизитовОперации);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчета(Объект, Элементы.БанковскийСчет);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчетаКонтрагента(Объект, Элементы.БанковскийСчетКонтрагента);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(Объект, Элементы.ЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(Объект, Элементы.РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(Объект, Элементы.РасшифровкаБезРазбиенияЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораКонтрагента(Объект, Элементы.Контрагент);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораПартнера(Объект, Элементы.РасшифровкаПлатежаПартнер);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораПартнера(Объект, Элементы.РасшифровкаБезРазбиенияПартнер);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита, Истина);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(Объект, Элементы.РасшифровкаПлатежаДоговорАренды);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(Объект, Элементы.РасшифровкаБезРазбиенияДоговорАренды);
Если МассивРеквизитовОперации.Найти("Договор") <> Неопределено Тогда
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораСтатьяДвиженияДенежныхСредств(Объект, Элементы.СтатьяДвиженияДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.НаправлениеДеятельности);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.НаправлениеДеятельностиВозврата);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.РасшифровкаБезРазбиенияНаправлениеДеятельности);
УстановитьВидимостьКнопкиПодбораПодарочногоСертификата();
ДенежныеСредстваСервер.ЗаполнитьСписокТиповСуммКредитовДепозитов(
Элементы.РасшифровкаПлатежаТипСуммыКредитаДепозита.СписокВыбора, Объект.ХозяйственнаяОперация);
ДенежныеСредстваСервер.ЗаполнитьСписокТиповСуммКредитовДепозитов(
Элементы.РасшифровкаБезРазбиенияТипСуммыКредитаДепозита.СписокВыбора, Объект.ХозяйственнаяОперация);
ЭлементыКИзменению = Новый Массив;
ЭлементыКИзменению.Добавить("ЛицевыеСчетаСотрудниковСумма");
ЭлементыКИзменению.Добавить("БанковскиеСчетаСпискаКонтрагентовСумма");
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы, ЭлементыКИзменению);
Элементы.НадписьВалюта.Заголовок = Строка(Объект.Валюта);
Элементы.НадписьВалютаКомиссия.Заголовок = Элементы.НадписьВалюта.Заголовок;
Элементы.ГруппаКомиссия.Заголовок = ЗаголовокЭквайринговойКомиссии(Объект.СуммаКомиссии, Объект.Валюта, СтавкаКомиссии);
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаПлатежаПартнер", Объект.ХозяйственнаяОперация);
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаБезРазбиенияПартнер", Объект.ХозяйственнаяОперация);
Если ПереключательРасшифровки Тогда
Элементы.СтраницыРасшифровки.ТекущаяСтраница = Элементы.РасшифровкаСписком;
Иначе
Элементы.СтраницыРасшифровки.ТекущаяСтраница = Элементы.РасшифровкаБезРазбиения;
КонецЕсли;
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
Если Объект.РасшифровкаПлатежа.Количество() > 0
И ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
Иначе
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
КонецЕсли;
КонецЕсли;
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
НастройкиСистемыЛокализация.УстановитьВидимостьЭлементовЛокализации(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокХозяйственныхОпераций()
Операции = Перечисления.ХозяйственныеОперации;
ДоступныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
ДоступныеОперации.Очистить();
ДоступныеОперации.Добавить(Операции.ОплатаПоставщику);
ДоступныеОперации.Добавить(Операции.ВыдачаДенежныхСредствПодотчетнику, НСтр("ru = 'Выдача подотчетнику'"));
ДоступныеОперации.Добавить(Операции.ПеречислениеВБюджет);
ДоступныеОперации.Добавить(Операции.ОплатаДенежныхСредствВДругуюОрганизацию, НСтр("ru = 'Оплата другой организации'"));
ДоступныеОперации.Добавить(Операции.ВнутренняяПередачаДенежныхСредств, НСтр("ru = 'Передача между организацией и филиалом'"));
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплатыНаЛицевыеСчета);
ДоступныеОперации.Добавить(Операции.ОплатаАрендодателю);
ДоступныеОперации.Добавить(Операции.ПеречислениеДенежныхСредствНаДругойСчет, НСтр("ru = 'Перечисление на другой счет'"));
ДоступныеОперации.Добавить(Операции.СнятиеНаличныхДенежныхСредств, НСтр("ru = 'Инкассация из банка'"));
ДоступныеОперации.Добавить(Операции.ОплатаПоКредитам);
ДоступныеОперации.Добавить(Операции.ПеречислениеНаДепозиты);
ДоступныеОперации.Добавить(Операции.ВыдачаЗаймов, НСтр("ru = 'Выдача займа контрагенту'"));
ДоступныеОперации.Добавить(Операции.ВыдачаЗаймаСотруднику, НСтр("ru = 'Выдача займа сотруднику'"));
ДоступныеОперации.Добавить(Операции.КонвертацияВалюты);
ДоступныеОперации.Добавить(Операции.ПрочаяВыдачаДенежныхСредств, НСтр("ru = 'Прочий расход'"));
ДоступныеОперации.Добавить(Операции.ВозвратОплатыКлиенту);
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствВДругуюОрганизацию, НСтр("ru = 'Возврат другой организации'"));
ДоступныеОперации.Добавить(Операции.ВозвратОплатыНаПлатежнуюКарту);
КонецПроцедуры
&НаСервере
Процедура УточнитьСписокХозяйственныхОпераций()
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПередачиМеждуОрганизациями(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийВнутреннейПередачи(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииПрочаяВыдачаДенежныхСредств(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПоДоговорамКредитовИДепозитов(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииКонвертацияВалютыБезналичные(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПеречисленияНаДругойСчет(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииОплатаАрендодателю(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЭквайринга(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура ОбновитьИнформациюПоЗаявкам()
МенеджерДокумента = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Документ.СписаниеБезналичныхДенежныхСредств");
ДенежныеСредстваСервер.ВывестиИнформациюПоЗаявкам(ЭтотОбъект, МенеджерДокумента);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения()
ДенежныеСредстваСервер.УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОрганизациюПолучателя(СтруктураРеквизитов = Неопределено)
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
Если СтруктураРеквизитов = Неопределено Тогда
СтруктураРеквизитов = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(
Объект.БанковскийСчетПолучатель);
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураРеквизитов.Организация) Тогда
Если ЗначениеЗаполнено(ОрганизацияПолучатель)
И ОрганизацияПолучатель <> СтруктураРеквизитов.Организация Тогда
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "БанковскийСчетПолучатель.Владелец");
КонецЕсли;
ОрганизацияПолучатель = СтруктураРеквизитов.Организация;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПоместитьРасшифровкуПлатежаВХранилище()
НастройкаСчетовУчетаСервер.ЗаписатьНастройкиСчетовУчетаФормы(ЭтотОбъект);
АдресПлатежейВХранилище = ДенежныеСредстваСервер.ПоместитьРасшифровкуПлатежаВХранилище(
Объект.РасшифровкаПлатежа,
УникальныйИдентификатор);
Возврат АдресПлатежейВХранилище;
КонецФункции
&НаСервере
Процедура ПолучитьДоговорПоУмолчаниюСервер(Контрагент, БанковскийСчетКонтрагента, ЗаполнятьСчетПоДоговору = Истина)
МассивВсехРеквизитов = Новый Массив;
МассивРеквизитовОперации = Новый Массив;
Документы.СписаниеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ОбъектРасчетов") = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПравоДоступа("Чтение", Метаданные.Справочники.ДоговорыКонтрагентов) Тогда
Отбор = Неопределено;
ХозяйственнаяОперацияДоговора = Новый Массив;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику
И Не Объект.ОперацияССамозанятым Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаКомиссию);
Отбор = Новый Структура;
Отбор.Вставить("ДоговорССамозанятым", Ложь);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику
И Объект.ОперацияССамозанятым Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
Отбор = Новый Структура;
Отбор.Вставить("ДоговорССамозанятым", Истина);
Иначе
Возврат;
КонецЕсли;
ДоговорКонтрагента = ДенежныеСредстваСервер.ДоговорПоУмолчанию(
ДоговорКонтрагента, Партнер, Контрагент, Объект.Организация, ХозяйственнаяОперацияДоговора, Отбор);
Если ЗаполнятьСчетПоДоговору Тогда
ЗакупкиВызовСервера.ЗаполнитьБанковскиеСчетаПоДоговору(ДоговорКонтрагента,, БанковскийСчетКонтрагента);
Если Объект.Валюта <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БанковскийСчетКонтрагента, "ВалютаДенежныхСредств")
И Объект.ПлатежСКонвертацией Тогда
БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
УчетнаяИнформацияПоДоговору = Справочники.ДоговорыКонтрагентов.УчетнаяИнформацияПоДоговору(ДоговорКонтрагента);
Если ЗначениеЗаполнено(УчетнаяИнформацияПоДоговору) Тогда
Если Не ЗначениеЗаполнено(Объект.СтатьяДвиженияДенежныхСредств) Тогда
УчетнаяИнформацияПоДоговору.Свойство("СтатьяДвиженияДенежныхСредств", Объект.СтатьяДвиженияДенежныхСредств);
КонецЕсли;
УчетнаяИнформацияПоДоговору.Свойство("СтавкаНДС", СтавкаНДС);
УчетнаяИнформацияПоДоговору.Свойство("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПолучитьПартнераПоУмолчаниюСервер(Контрагент, Партнер, ХозяйственнаяОперация)
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, ХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНазначениеПлатежаПоСчетуПолучателя()
Реквизиты = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьРеквизитыБанковскогоСчета(
Объект.БанковскийСчетКонтрагента);
ТекстНазначенияПлатежа = Реквизиты.ТекстНазначения;
Если ЗначениеЗаполнено(Объект.НазначениеПлатежа) Тогда
Объект.НазначениеПлатежа = Объект.НазначениеПлатежа + "
|" + ТекстНазначенияПлатежа;
Иначе
Объект.НазначениеПлатежа = ТекстНазначенияПлатежа;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСуммыКонвертации()
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.ЗаголовокВалютыКурсаИКратностиКонвертации(ЭтотОбъект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДС(ОбновлятьСтавкуИСуммуНДС = Истина)
ДенежныеСредстваСервер.ЗаполнитьНалогообложениеНДС(Объект, Объект.НалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДСВозврата, ОбновлятьСтавкуИСуммуНДС);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецПроцедуры
&НаСервере
Процедура ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки = Неопределено)
ДенежныеСредстваСервер.ОбновитьСтавкуНДСИПересчитатьСуммуНДС(Объект, ИдСтроки);
КонецПроцедуры
&НаСервере
Процедура ОтображениеЗаголовкаПоляПодотчетноеЛицо()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
И Объект.ПеречислениеСотрудникуЧерезБанк
И ПолучитьФункциональнуюОпцию("ИспользоватьПеречислениеДенежныхСредствСпискуСотрудников") Тогда
Элементы.ПодотчетноеЛицо.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
Иначе
Элементы.ПодотчетноеЛицо.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьПредставлениеДатыПогашения()
Если Объект.РасшифровкаПлатежа.Количество() = 0
Или Не ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
Иначе
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Результат;
Модифицированность = Истина;
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура УстановитьОграничениеТипаДоговораРасшифровкиПлатежа()
ДенежныеСредстваСервер.УстановитьОграничениеТипаДоговораРасшифровкиПлатежа(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
&НаСервере
Процедура НаправлениеДеятельностиПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ГруппаФинансовогоУчетаПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПартнерПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ИзменитьСуммуНераспределено()
СуммаНераспределено = ДенежныеСредстваСервер.НераспределенныйОстатокПлатежа(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьРеквизитыБанковскогоСчета(БанковскийСчет)
Возврат Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(БанковскийСчет);
КонецФункции
&НаСервере
Процедура ОбновитьНадписьЗеркальныйПлатеж()
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию Тогда
Возврат;
КонецЕсли;
ЗеркальныйПлатежСсылка = Документы.СписаниеБезналичныхДенежныхСредств.НайтиЗеркальныйПлатеж(Объект.Ссылка);
Если ЗначениеЗаполнено(ЗеркальныйПлатежСсылка) Тогда
Элементы.НадписьЗеркальныйПлатеж.Гиперссылка = Истина;
СоответствуетЗеркальномуПлатежу = Документы.СписаниеБезналичныхДенежныхСредств.СоответствуетЗеркальномуПлатежу(
Объект.Ссылка,ЗеркальныйПлатежСсылка);
Если СоответствуетЗеркальномуПлатежу Тогда
Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ГиперссылкаЦвет;
НадписьЗеркальныйПлатеж = ЗеркальныйПлатежСсылка;
Иначе
Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ЦветТекстаПредупреждение;
НадписьЗеркальныйПлатеж = СтрШаблон(НСтр("ru = '%1 (есть различия)'"),ЗеркальныйПлатежСсылка);
КонецЕсли;
Иначе
Элементы.НадписьЗеркальныйПлатеж.ЦветТекста = ЦветаСтиля.ЦветТекстаПредупреждение;
Элементы.НадписьЗеркальныйПлатеж.Гиперссылка = Ложь;
НадписьЗеркальныйПлатеж = НСтр("ru = '<Поступление безналичных денежных средств не найдено.>'");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПривестиВСоответствиеЗеркальныйПлатежЗавершение(РезультатВопроса, ЗеркальныйЗачетОплатыМеждуОрганизациями) Экспорт
КодОтвета = РезультатВопроса;
Если КодОтвета = КодВозвратаДиалога.Да Тогда
ПривестиВСоответствиеЗеркальныйПлатежНаСервере();
Иначе
ОбновитьНадписьЗеркальныйПлатеж();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПривестиВСоответствиеЗеркальныйПлатежНаСервере()
ЗеркальныйПлатежОбъект = ЗеркальныйПлатежСсылка.ПолучитьОбъект();
Успешно = Документы.СписаниеБезналичныхДенежныхСредств.ПривестиВСоответствиеЗеркальныйПлатеж(Объект.Ссылка, ЗеркальныйПлатежОбъект);
Если Успешно Тогда
Попытка
ЗеркальныйПлатежОбъект.Записать(?(ЗеркальныйПлатежОбъект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ОбновитьНадписьЗеркальныйПлатеж();
Исключение
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Списание безналичных денежных средств, зеркальное изменение связанного документа.'",
ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВозможныеЗначенияСчетаПолучателя(ИзменятьСчетПолучатель = Истина)
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| БанковскиеСчета.Ссылка КАК Ссылка
|ИЗ
| Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчета
|
|ГДЕ
| (БанковскиеСчета.ВалютаДенежныхСредств = &Валюта ИЛИ НЕ &ОтбиратьПоВалюте)
| И (БанковскиеСчета.ВалютаДенежныхСредств <> &Валюта ИЛИ НЕ &ОтбиратьПоВалютеКонвертации)
| И (БанковскиеСчета.Владелец В (&Владелец) ИЛИ НЕ &ОтбиратьПоВладельцу)
| И БанковскиеСчета.Владелец НЕ В (&ФильтрВладельца)
| И БанковскиеСчета.Ссылка <> &БанковскийСчетОтправитель
| И (Не БанковскиеСчета.Закрыт
| ИЛИ (БанковскиеСчета.Ссылка = &ТекущийБанковскийСчетПолучателя И &ДокументЗаписан))
|");
Запрос.УстановитьПараметр("БанковскийСчетОтправитель", Объект.БанковскийСчет);
Запрос.УстановитьПараметр("ОтбиратьПоВалютеКонвертации", Ложь);
Запрос.УстановитьПараметр("ТекущийБанковскийСчетПолучателя", Объект.БанковскийСчетПолучатель);
Запрос.УстановитьПараметр("ДокументЗаписан", ЗначениеЗаполнено(Объект.Ссылка));
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
Если ЗначениеЗаполнено(Объект.ВалютаКонвертации) Тогда
Запрос.УстановитьПараметр("Валюта", Объект.ВалютаКонвертации);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Истина);
Иначе
Запрос.УстановитьПараметр("Валюта", Объект.Валюта);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Ложь);
Запрос.УстановитьПараметр("ОтбиратьПоВалютеКонвертации", Истина);
КонецЕсли;
Иначе
Запрос.УстановитьПараметр("Валюта", Неопределено);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Ложь);
КонецЕсли;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеДенежныхСредствНаДругойСчет
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты)
И ЗначениеЗаполнено(Объект.БанковскийСчет)
И ЗначениеЗаполнено(Объект.Организация) Тогда
Запрос.УстановитьПараметр("Владелец", Объект.Организация);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.Организация);
Запрос.УстановитьПараметр("Владелец", МассивВзаимосвязанныхОрганизаций);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
Иначе
Запрос.УстановитьПараметр("Владелец", Неопределено);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Ложь);
КонецЕсли;
Запрос.УстановитьПараметр("ФильтрВладельца", Неопределено);
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию) Тогда
Если ЗначениеЗаполнено(Объект.БанковскийСчет)
И ЗначениеЗаполнено(Объект.Организация) Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.Организация);
МассивВзаимосвязанныхОрганизаций.Добавить(Объект.Организация);
Запрос.УстановитьПараметр("ФильтрВладельца", МассивВзаимосвязанныхОрганизаций);
КонецЕсли;
КонецЕсли;
МассивСчетовПолучателей = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Элементы.БанковскийСчетПолучатель.СписокВыбора.ЗагрузитьЗначения(МассивСчетовПолучателей);
Если ИзменятьСчетПолучатель Тогда
Если МассивСчетовПолучателей.Количество() = 1 Тогда
Объект.БанковскийСчетПолучатель = МассивСчетовПолучателей[0];
ПриИзмененииБанковскийСчетПолучатель();
ИначеЕсли ЗначениеЗаполнено(Объект.БанковскийСчетПолучатель)
И МассивСчетовПолучателей.Найти(Объект.БанковскийСчетПолучатель) = Неопределено Тогда
Объект.БанковскийСчетПолучатель = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
ПриИзмененииБанковскийСчетПолучатель();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПодбораИзЗаявок(АдресЗаявокВХранилище)
Объект.ОплатаПоЗаявкам = Истина;
ТаблицаПлатежей = ПолучитьИзВременногоХранилища(АдресЗаявокВХранилище);
СтруктураПоиска = Новый Структура;
МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
Документы.СписаниеБезналичныхДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Для каждого РеквизитОперации Из МассивРеквизитовОперации Цикл
Поз = СтрНайти(РеквизитОперации, "РасшифровкаПлатежа.");
КоличествоСимволов = СтрДлина("РасшифровкаПлатежа");
Если Поз Тогда
СтруктураПоиска.Вставить(Сред(РеквизитОперации, Поз + КоличествоСимволов + 1));
КонецЕсли;
КонецЦикла;
ИспользуютсяОбъектыРасчетов = Элементы.РасшифровкаПлатежаПодборПоОстаткам.Видимость;
Если ИспользуютсяОбъектыРасчетов Тогда
СтруктураПоиска.Вставить("ОбъектРасчетов");
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета
Или (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет
И (Объект.ТипНалога = Справочники.ВидыНалоговВзносов.НДФЛ ИЛИ Объект.ТипНалога = Справочники.ВидыНалоговВзносов.НДФЛСПревышения)
И Объект.НДФЛПоВедомостям) Тогда
СтруктураПоиска.Вставить("Ведомость");
КонецЕсли;
ПоискПоНастройкеСчетаУчета = Ложь;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет
И ВидыНалоговСНастройкойСчетов.НайтиПоЗначению(Объект.ТипНалога) <> Неопределено
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств Тогда
ПоискПоНастройкеСчетаУчета = Истина;
ТаблицаНастроекСчетовУчета = Объект.РасшифровкаПлатежа.Выгрузить(, "НастройкаСчетовУчета");
ТаблицаНастроекСчетовУчета.Свернуть("НастройкаСчетовУчета");
НастройкиСчетовУчетаРасшифровки = ТаблицаНастроекСчетовУчета.ВыгрузитьКолонку("НастройкаСчетовУчета");
ДанныеНастроекСчетовУчетаРасшифровки = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(
НастройкиСчетовУчетаРасшифровки,
"СчетУчета, Субконто1, Субконто2, Субконто3");
НастройкаСчетовУчетаЗаявок = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ТаблицаПлатежей.ВыгрузитьКолонку("НастройкаСчетовУчета"));
ДанныеНастроекСчетовУчетаЗаявок = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(
НастройкаСчетовУчетаЗаявок,
"СчетУчета, Субконто1, Субконто2, Субконто3");
КонецЕсли;
Для каждого СтрокаПлатежа Из ТаблицаПлатежей Цикл
ЗаполнитьЗначенияСвойств(СтруктураПоиска, СтрокаПлатежа);
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтруктураПоиска, "Организация")
И Не ЗначениеЗаполнено(СтруктураПоиска.Организация) Тогда
СтруктураПоиска.Организация = Справочники.Организации.ПустаяСсылка();
КонецЕсли;
Если Объект.СписокКонтрагентов Тогда
Если Не ЗначениеЗаполнено(СтруктураПоиска.Контрагент) Тогда
ЗаполнитьЗначенияСвойств(СтруктураПоиска, СтруктураПоиска.ОбъектРасчетов, "Контрагент");
КонецЕсли;
КонецЕсли;
Строки = Объект.РасшифровкаПлатежа.НайтиСтроки(СтруктураПоиска);
Если Строки.Количество() = 0 Тогда
ДобавитьСтрокуРасшифровкиПоЗаявке(СтрокаПлатежа, СтруктураПоиска);
Иначе
Если ПоискПоНастройкеСчетаУчета Тогда
ДанныеНастройкиЗаявки = ДанныеНастроекСчетовУчетаЗаявок.Получить(СтрокаПлатежа.НастройкаСчетовУчета);
СтрокаНайдена = Ложь;
Для Каждого СтрокаРасшифровки Из Строки Цикл
ДанныеНастройкиРасшифровки =
ДанныеНастроекСчетовУчетаРасшифровки.Получить(СтрокаРасшифровки.НастройкаСчетовУчета);
Если ДанныеНастройкиРасшифровки <> Неопределено
И ДанныеНастройкиРасшифровки.СчетУчета = ДанныеНастройкиЗаявки.СчетУчета
И ДанныеНастройкиРасшифровки.Субконто1 = ДанныеНастройкиЗаявки.Субконто1
И ДанныеНастройкиРасшифровки.Субконто2 = ДанныеНастройкиЗаявки.Субконто2
И ДанныеНастройкиРасшифровки.Субконто3 = ДанныеНастройкиЗаявки.Субконто3 Тогда
СтрокаНайдена = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не СтрокаНайдена Тогда
ДобавитьСтрокуРасшифровкиПоЗаявке(СтрокаПлатежа, СтруктураПоиска);
ДанныеНастроекСчетовУчетаРасшифровки.Вставить(СтрокаПлатежа.НастройкаСчетовУчета, ДанныеНастройкиЗаявки);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ОбработатьИзменениеУИП();
НастройкаСчетовУчетаСервер.ОбновитьПредставлениеНастройки(ЭтотОбъект, "Объект.РасшифровкаПлатежа");
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
ОбновитьИнформациюПоЗаявкам();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере("ОплатаПоЗаявкам");
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
Элементы.РасшифровкаБезРазбиенияСтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
Элементы.РасшифровкаПлатежаСтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов()
ДенежныеСредстваСервер.СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов(ЭтаФорма, Объект);
КонецПроцедуры
&НаСервере
Функция ПоместитьРасшифровкуВоВременноеХранилище()
Возврат ПоместитьВоВременноеХранилище(Объект.РасшифровкаПлатежа.Выгрузить());
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция НадписьКодыИнструкцийБанку(Объект)
КодыИнструкцийБанку = "";
Если Объект.ИнструкцииБанку.Количество() Тогда
КодыИнструкцийБанку = НСтр("ru = 'Инструкции банку:'") + " ";
Для каждого СтрокаИнструкции Из Объект.ИнструкцииБанку Цикл
КодыИнструкцийБанку = КодыИнструкцийБанку + Строка(СтрокаИнструкции.Инструкция) + ", ";
КонецЦикла;
КодыИнструкцийБанку = Лев(КодыИнструкцийБанку, СтрДлина(КодыИнструкцийБанку) - 2);
Иначе
КодыИнструкцийБанку = НСтр("ru = '<Указать инструкции банку>'");
КонецЕсли;
Возврат КодыИнструкцийБанку;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция НадписьИнформацияДляРегулирующихОрганов(Объект)
ИнформацияДляРегулирующихОрганов = НСтр("ru = 'Для регулятора (77B):'");
Если ЗначениеЗаполнено(Объект.ИнформацияДляРегулирующихОрганов) Тогда
ИнформацияДляРегулирующихОрганов = ИнформацияДляРегулирующихОрганов + " " + Объект.ИнформацияДляРегулирующихОрганов;
Иначе
ИнформацияДляРегулирующихОрганов = ИнформацияДляРегулирующихОрганов + " " + НСтр("ru = '<Указать>'");
КонецЕсли;
Возврат ИнформацияДляРегулирующихОрганов;
КонецФункции
&НаСервере
Процедура ПересчитатьПараметрыКонвертации(ИмяРеквизита)
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.РассчитатьПараметрыКонвертации(ПараметрыКонвертации, ИмяРеквизита);
ЗаполнитьЗначенияСвойств(Объект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Функция СчетСоответствуетВладельцу()
Результат = Ложь;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаЗаймаСотруднику)
И Не Объект.ПеречислениеСотрудникуЧерезБанк Тогда
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.ПодотчетноеЛицо);
Иначе
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.Контрагент);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Процедура ЗаблокироватьДанные()
ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка,,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура РазблокироватьДанные()
РазблокироватьДанныеДляРедактирования(,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ЗаголовокЭквайринговойКомиссии(Сумма, Валюта, Ставка)
Возврат НСтр("ru='Комиссия'") + " " + Строка(Сумма) + " " + Строка(Валюта) + " " + Строка(Ставка) + "%";
КонецФункции
&НаСервере
Процедура ЗаполнитьВалютуВзаиморасчетовДокумента()
ДенежныеСредстваСервер.ЗаполнитьВалютуВзаиморасчетовДокумента(ЭтаФорма);
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ);
КонецЦикла;
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсКратностьТекстом()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура РассчитатьСуммыВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКнопкиПодбораПодарочногоСертификата()
РазрешенаПродажаПодарочногоСертификата =
РозничныеПродажиЛокализация.РазрешенаПродажаПодарочногоСертификатаВДокументе(Объект.ХозяйственнаяОперация);
Элементы.РасшифровкаПлатежаПодобратьПодарочныйСертификат.Видимость = РазрешенаПродажаПодарочногоСертификата;
КонецПроцедуры
&НаСервере
Процедура ОбработатьПодарочныйСертификат(ПодарочныйСертификат)
НайденнаяСтрока = ПодарочныеСертификатыСервер.ДобавитьПодарочныйСертификатВТабличуюЧастьРасшифровкаПлатежа(ПодарочныйСертификат, ЭтотОбъект);
Если НайденнаяСтрока <> Неопределено Тогда
Модифицированность = Истина;
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(НайденнаяСтрока.ПолучитьИдентификатор());
РасшифровкаОбъектРасчетовПриИзмененииСервер(НайденнаяСтрока.ПолучитьИдентификатор());
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(НайденнаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ДенежныеСредстваСервер.РассчитатьСуммыВВалютеОтправителяВРасшифровке(Объект, ВалютаБанковскогоСчета);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПеречислениеСотрудникуЧерезБанкПриИзменении_Сервер()
ПеречислениеСотрудникуЧерезБанкПриИзмененииСервер();
ОтображениеЗаголовкаПоляПодотчетноеЛицо();
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчетаКонтрагента(Объект, Элементы.БанковскийСчетКонтрагента);
НастроитьЗависимыеЭлементыФормыНаСервере("ПеречислениеСотрудникуЧерезБанк");
КонецПроцедуры
&НаСервере
Процедура УстановитьНадписьЗачисленияДС()
НаличиеДокументаЗачисленияДС = ДенежныеСредстваСервер.СуществуютЗачисленияДСНаЛицевыеСчета(Объект.Ссылка);
Элементы.ДекорацияОтсутствиеЗачисленияДСНаСчета.Заголовок = ?(НаличиеДокументаЗачисленияДС, "",
НСтр("ru = 'Требуется загрузить данные о зачислении денежных средств на лицевые счета'"));
КонецПроцедуры
&НаСервере
Функция СтрокаИсключенныхСвойствПоДоговору(СтрокаРасшифровкиПлатежа, СвойстваПоДоговору)
ИсключенныеСвойства = "";
Для Каждого ТекущееСвойство Из СвойстваПоДоговору Цикл
Если Не СтрокаРасшифровкиПлатежа.Свойство(ТекущееСвойство.Ключ) Тогда
Продолжить;
КонецЕсли;
Если Не ЗначениеЗаполнено(ТекущееСвойство.Значение)
И ЗначениеЗаполнено(СтрокаРасшифровкиПлатежа[ТекущееСвойство.Ключ]) Тогда
ИсключенныеСвойства = ?(ИсключенныеСвойства <> "", ИсключенныеСвойства + ",", "") + ТекущееСвойство.Ключ;
КонецЕсли;
КонецЦикла;
Возврат ИсключенныеСвойства;
КонецФункции
&НаКлиенте
Процедура ОтраженияВРеглУчетеПриИзменении(Результат, ДополнительныеПараметры) Экспорт
ОтраженияВРеглУчетеПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОтраженияВРеглУчетеПриИзмененииНаСервере()
РегистрацияВНалоговомОргане = Неопределено;
НастройкаСчетовУчетаРеквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.НастройкаСчетовУчета, "Субконто1, Субконто2, Субконто3");
Если ТипЗнч(НастройкаСчетовУчетаРеквизиты.Субконто1) = Тип("СправочникСсылка.РегистрацииВНалоговомОргане") Тогда
РегистрацияВНалоговомОргане = НастройкаСчетовУчетаРеквизиты.Субконто1;
ИначеЕсли ТипЗнч(НастройкаСчетовУчетаРеквизиты.Субконто2) = Тип("СправочникСсылка.РегистрацииВНалоговомОргане") Тогда
РегистрацияВНалоговомОргане = НастройкаСчетовУчетаРеквизиты.Субконто2;
ИначеЕсли ТипЗнч(НастройкаСчетовУчетаРеквизиты.Субконто3) = Тип("СправочникСсылка.РегистрацииВНалоговомОргане") Тогда
РегистрацияВНалоговомОргане = НастройкаСчетовУчетаРеквизиты.Субконто3;
КонецЕсли;
Если ЗначениеЗаполнено(РегистрацияВНалоговомОргане) Тогда
Объект.РегистрацияВНалоговомОргане = РегистрацияВНалоговомОргане;
КонецЕсли;
Возврат;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыПлатежаПоДоговоруАренды(ИдентификаторСтроки)
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдентификаторСтроки);
СписокДоговоров = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТекущаяСтрока.ДоговорАренды);
ТаблицаДанных = ДанныеПоДоговорамАренды(СписокДоговоров);
НайденнаяСтрока = ТаблицаДанных.Найти(ТекущаяСтрока.ДоговорАренды, "ДоговорАренды");
Если НайденнаяСтрока <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, НайденнаяСтрока, , "ДоговорАренды");
КонецЕсли;
РасшифровкаПлатежаДоговорАрендыПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыПлатежаПоДоговорамАренды()
ТаблицаРасшифровки = Объект.РасшифровкаПлатежа.Выгрузить(, "ДоговорАренды");
СписокДоговоров = ТаблицаРасшифровки.ВыгрузитьКолонку("ДоговорАренды");
ТаблицаДанных = ДанныеПоДоговорамАренды(СписокДоговоров);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
НайденнаяСтрока = ТаблицаДанных.Найти(СтрокаРасшифровки.ДоговорАренды, "ДоговорАренды");
Если ЗначениеЗаполнено(НайденнаяСтрока) Тогда
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, НайденнаяСтрока);
РасшифровкаПлатежаДоговорАрендыПриИзмененииСервер(СтрокаРасшифровки.ПолучитьИдентификатор());
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ДанныеПоДоговорамАренды(СписокДоговоров)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УсловияДоговоровАрендыСрезПоследних.Договор КАК Договор,
| УсловияДоговоровАрендыСрезПоследних.СтавкаНДС КАК СтавкаНДС
|ПОМЕСТИТЬ ДанныеДоговоровПоУсловиюЗаключения
|ИЗ
| РегистрСведений.УсловияДоговоровАренды.СрезПоследних(, Договор В (&Договоры)) КАК УсловияДоговоровАрендыСрезПоследних
|;
|
|
|ВЫБРАТЬ
| ДоговорыАренды.Ссылка КАК ДоговорАренды,
| ДоговорыАренды.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
| ДоговорыАренды.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
| ДанныеДоговоровПоУсловиюЗаключения.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Справочник.ДоговорыАренды КАК ДоговорыАренды
| ЛЕВОЕ СОЕДИНЕНИЕ ДанныеДоговоровПоУсловиюЗаключения КАК ДанныеДоговоровПоУсловиюЗаключения
| ПО ДоговорыАренды.Ссылка = ДанныеДоговоровПоУсловиюЗаключения.Договор
|ГДЕ
| ДоговорыАренды.Ссылка В(&Договоры)";
Запрос.УстановитьПараметр("Договоры", СписокДоговоров);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
&НаКлиенте
Процедура СуммаДокументаПриИзмененииКлиент()
ФинансыКлиентСервер.ПересчитатьСуммыВСтрокеРасшифровкиПлатежа(Объект, Объект.СуммаДокумента, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамОбработка(ПроцедураЗавершения)
ОплатаВДругуюОрганизацию =
(Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию"));
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчет", НСтр("ru = 'Счет'"));
Если ОплатаВДругуюОрганизацию Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчетПолучатель", НСтр("ru = 'Получатель'"));
Иначе
Если Не Объект.СписокКонтрагентов Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Контрагент", НСтр("ru = 'Контрагент'"));
КонецЕсли;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамПослеПроверки", ЭтотОбъект,
Новый Структура("ОплатаВДругуюОрганизацию, ПроцедураЗавершения", ОплатаВДругуюОрганизацию, ПроцедураЗавершения));
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтотОбъект, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииКонтрагента(
Контрагент,
БанковскийСчетКонтрагента,
ЗаполнитьРасшифровкуПоКонтрагенту = Истина,
ТекущийПартнер = Неопределено,
ТекущаяСтрокаРасшифровки = Неопределено) Экспорт
Если ЗаполнитьРасшифровкуПоКонтрагенту Тогда
Если ТекущийПартнер = Неопределено Тогда
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, Объект.ХозяйственнаяОперация);
Иначе
Партнер = ТекущийПартнер;
КонецЕсли;
ПолучитьДоговорПоУмолчаниюСервер(Контрагент, БанковскийСчетКонтрагента);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента)
КонецЕсли;
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
Если ТекущаяСтрокаРасшифровки = Неопределено Тогда
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ЗаполнитьРасшифровкуПлатежа(ТекущаяСтрокаРасшифровки, ОбъектРасчетовДоговор);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрокаРасшифровки, СтруктураДействий, Неопределено);
КонецЕсли;
ЗаполнитьВалютуВзаиморасчетовДокумента();
Если Не ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
ОбработатьИзменениеУИП();
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(
Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(
Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(
Объект, Элементы.РасшифровкаПлатежаДоговорАренды);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораАренды(
Объект, Элементы.РасшифровкаБезРазбиенияДоговорАренды);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасшифровкуПлатежа(ТекущаяСтрокаТаблицы, ОбъектРасчетовДоговор)
Если Не Объект.СписокКонтрагентов Тогда
ТекущаяСтрокаТаблицы.Контрагент = Объект.Контрагент;
КонецЕсли;
ТекущаяСтрокаТаблицы.Партнер = Партнер;
ТекущаяСтрокаТаблицы.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ТекущаяСтрокаТаблицы.ОбъектРасчетов = ОбъектРасчетовДоговор;
ТекущаяСтрокаТаблицы.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
ТекущаяСтрокаТаблицы.СтавкаНДС = СтавкаНДС;
РасшифровкаОбъектРасчетовПриИзмененииСервер(ТекущаяСтрокаТаблицы.ПолучитьИдентификатор());
ЗаполнитьУИП(ТекущаяСтрокаТаблицы.ПолучитьИдентификатор());
КонецЕсли;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрокаТаблицы);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
&НаСервере
Процедура ПеречислениеСотрудникуЧерезБанкПриИзмененииСервер()
Объект.ПеречислениеСотрудникуЧерезБанк = Булево(ПеречислениеСотрудникуЧерезБанк);
Если ВыплатаОдномуФизЛицу() Тогда
Объект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
Иначе
Если Объект.СписокФизЛиц Тогда
ТекущаяВалюта = Объект.Валюта;
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
КонецЕсли;
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы)
МассивСсылок = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаТаблицы.ОбъектРасчетов);
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(МассивСсылок);
СтрокаТаблицы.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТаблицы.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].Объект = Объект.Ссылка;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВозможностьЗаполненияЗаявки(СобытиеПослеПроверки)
ЭтоВыдачаВДругуюОрганизацию = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию"))
Или (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию"));
ЭтоВыдачаПодотчетнику = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику"));
ЭтоВнутренняяПередача = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств"));
ЭтоЗаймСотруднику = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаЗаймаСотруднику"));
ЭтоВыплатаЗарплаты = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту"));
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчет", НСтр("ru = 'Банковский счет'"));
Если ЭтоВыдачаВДругуюОрганизацию Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчетПолучатель", НСтр("ru = 'Банковский счет получатель'"));
ИначеЕсли (ЭтоВыдачаПодотчетнику Или ЭтоЗаймСотруднику) Тогда
Если Не Объект.СписокФизЛиц Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("ПодотчетноеЛицо", НСтр("ru = 'Подотчетное лицо'"));
Иначе
Если Объект.ЛицевыеСчетаСотрудников.Количество() = 0 Тогда
ТекстОшибки = СтрШаблон(НСтр("ru = 'Таблица ""%1"" не заполнена'"), Элементы.ЛицевыеСчетаСотрудников.Имя);
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки, , "ЛицевыеСчетаСотрудников", "Объект");
Возврат;
КонецЕсли;
КонецЕсли;
ИначеЕсли Не ЭтоВнутренняяПередача И Не ЭтоВыплатаЗарплаты И Не ЭтоВыдачаПодотчетнику И Не ЭтоЗаймСотруднику Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Контрагент", НСтр("ru = 'Контрагент'"));
КонецЕсли;
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтотОбъект, СобытиеПослеПроверки, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ДополнитьОтборПоСпискуФизЛиц(Отбор)
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику")
И Объект.СписокФизЛиц Тогда
СписокПодотчетныхЛиц = Новый Массив;
Для Каждого СтрокаТаблицы Из Объект.ЛицевыеСчетаСотрудников Цикл
СписокПодотчетныхЛиц.Добавить(СтрокаТаблицы.ФизическоеЛицо);
КонецЦикла;
Отбор.Вставить("ПодотчетноеЛицо", СписокПодотчетныхЛиц);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СписокФизЛицВключеноПриИзмененииНаСервере()
ВалютаПлательщика = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
Если ТекущаяВалюта <> ВалютаПлательщика Тогда
Объект.Валюта = ВалютаПлательщика;
КонецЕсли;
ВалютаПолучателя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "ВалютаДенежныхСредств");
Если Объект.Валюта <> ВалютаПолучателя Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ПодотчетноеЛицо) Тогда
НоваяСтрока = Объект.ЛицевыеСчетаСотрудников.Добавить();
НоваяСтрока.ФизическоеЛицо = Объект.ПодотчетноеЛицо;
НоваяСтрока.ЛицевойСчет = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
НоваяСтрока.Сумма = Объект.СуммаДокумента;
НоваяСтрока.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
КонецЕсли;
Если Не Объект.ОплатаПоЗаявкам Тогда
ЛицевыеСчетаСотрудниковПриИзмененииНаСервере();
КонецЕсли;
Если Объект.ВидЗачисления = "" Тогда
Объект.ВидЗачисления = "07";
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВалютуПоСчетуПолучателя(Счет)
ВалютаПолучателя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Счет, "ВалютаДенежныхСредств");
Если Объект.Валюта <> ВалютаПолучателя
И (Объект.ПлатежСКонвертацией
ИЛИ Не ЗначениеЗаполнено(Объект.Валюта))
И ЗначениеЗаполнено(ВалютаПолучателя) Тогда
Объект.Валюта = ВалютаПолучателя;
УстановитьПризнакПлатежаСКонвертацией();
КонецЕсли;
ОбновитьДанныеПоВалюте();
КонецПроцедуры
&НаСервере
Процедура ОчиститьОбъектРасчетов(СтрокаРасшифровки)
ДенежныеСредстваСервер.ОчиститьОбъектРасчетов(Объект, СтрокаРасшифровки);
КонецПроцедуры
&НаСервере
Процедура ДобавитьСтрокуРасшифровкиПоЗаявке(СтрокаПлатежа, ДополнительныеПараметры)
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаПлатежа);
Если Объект.СписокКонтрагентов Тогда
ЗаполнитьЗначенияСвойств(НоваяСтрока, ДополнительныеПараметры, "Контрагент");
КонецЕсли;
Если Не ЗначениеЗаполнено(НоваяСтрока.Партнер) Тогда
Если Не ЗначениеЗаполнено(Партнер) Тогда
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
КонецЕсли;
НоваяСтрока.Партнер = Партнер;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
Если ПустаяСтрока(Объект.ИдентификаторПлатежа) И ЗначениеЗаполнено(СтрокаПлатежа.ИдентификаторПлатежа) Тогда
Объект.ИдентификаторПлатежа = СтрокаПлатежа.ИдентификаторПлатежа;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПризнакПлатежаСКонвертацией()
ДенежныеСредстваСервер.УстановитьПризнакПлатежаСКонвертацией(
Объект,
"Документ.СписаниеБезналичныхДенежныхСредств");
Если Объект.ПлатежСКонвертацией Тогда
Счета = Новый Массив;
Счета.Добавить(Объект.БанковскийСчетКонтрагента);
Счета.Добавить(Объект.БанковскийСчетПолучатель);
ВалютыСчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Счета, "ВалютаДенежныхСредств");
Если Объект.Валюта <> ВалютыСчетов.Получить(Объект.БанковскийСчетКонтрагента) Тогда
Если ВыплатаОдномуФизЛицу() Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
Иначе
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
КонецЕсли;
Если Объект.Валюта <> ВалютыСчетов.Получить(Объект.БанковскийСчетПолучатель) Тогда
Объект.БанковскийСчетПолучатель =
Справочники.БанковскиеСчетаОрганизаций.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(
Неопределено,
Объект.Валюта);
КонецЕсли;
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("ПлатежСКонвертацией");
КонецПроцедуры
&НаСервере
Функция ВыплатаОдномуФизЛицу()
Возврат Не Объект.ПеречислениеСотрудникуЧерезБанк
И (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаЗаймаСотруднику
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета);
КонецФункции
&НаКлиенте
Процедура УстановитьПризнакОплатыПоЗаявкам()
Если Не РазрешеныПлатежиБезУказанияЗаявок
И ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.ОплатаПоЗаявкам = Истина;
ИначеЕсли Не ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.ОплатаПоЗаявкам = Ложь;
Объект.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
Для каждого Строка Из Объект.РасшифровкаПлатежа Цикл
Строка.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
КонецЦикла;
ОбновитьИнформациюПоЗаявкам();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора)
Если ТипЗнч(Объект.Договор) = Тип("СправочникСсылка.ДоговорыМеждуОрганизациями") Тогда
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, РеквизитыДоговора);
Иначе
ИсключаяСвойства = СтрокаИсключенныхСвойствПоДоговору(СтрокаРасшифровки, УчетнаяИнформацияДоговора);
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, РеквизитыДоговора, , ИсключаяСвойства);
КонецЕсли;
СтрокаРасшифровки.Договор = Объект.Договор;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаРасшифровки);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
&НаСервере
Функция СуммаОстаткаЗаявки(ЗаявкаНаОплату)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиКВыплате.СуммаОстаток КАК СуммаОстаток
|ИЗ
| РегистрНакопления.ДенежныеСредстваКВыплате.Остатки(, ЗаявкаНаРасходованиеДенежныхСредств = &Заявка) КАК ОстаткиКВыплате";
Запрос.УстановитьПараметр("Заявка", ЗаявкаНаОплату);
УстановитьПривилегированныйРежим(Истина);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Если РезультатЗапроса.Пустой() Тогда
Возврат 0;
Иначе
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Выборка.СуммаОстаток;
КонецЕсли;
КонецФункции
&НаСервере
Процедура ЗаполнитьУИП(ИдентификаторСтрокиРасшифровки)
Если Объект.ОплатаПоЗаявкам Или ЗначениеЗаполнено(Объект.ИдентификаторПлатежа) И ПереключательРасшифровки = 1 Тогда
Возврат;
КонецЕсли;
СтрокаРасшифровки = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдентификаторСтрокиРасшифровки);
Если ЗначениеЗаполнено(СтрокаРасшифровки.ИдентификаторПлатежа) Тогда
Объект.ИдентификаторПлатежа = СтрокаРасшифровки.ИдентификаторПлатежа;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьИзменениеУИП(СтрокаРасшифровки = Неопределено)
Если СтрокаРасшифровки <> Неопределено Тогда
ЗаполнитьИндексУИПОтличается(СтрокаРасшифровки);
Иначе
Для Каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьИндексУИПОтличается(СтрокаТЧ);
КонецЦикла;
КонецЕсли;
ОпределитьУИПОтличается();
КонецПроцедуры
&НаСервере
Процедура ОпределитьУИПОтличается()
УИПОтличается = Не Объект.ОплатаПоЗаявкам И Объект.РасшифровкаПлатежа.Итог("ИндексУИПОтличается") <> 0;
НастроитьЗависимыеЭлементыФормыНаСервере("УИПОтличается");
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИндексУИПОтличается(СтрокаРасшифровки)
Если ЗначениеЗаполнено(Объект.ИдентификаторПлатежа)
И ЗначениеЗаполнено(СтрокаРасшифровки.ИдентификаторПлатежа)
И СтрокаРасшифровки.ИдентификаторПлатежа <> Объект.ИдентификаторПлатежа Тогда
СтрокаРасшифровки.ИндексУИПОтличается = 1;
Иначе
СтрокаРасшифровки.ИндексУИПОтличается = 0;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДоговорОбъектаРасчетовКомиссии(Знач ОбъектРасчетов)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ОбъектРасчетов, "Договор");
КонецФункции
&НаСервере
Процедура ЗаполнитьДоговорОбъектРасчетовКомиссии()
Если Не ЗначениеЗаполнено(Объект.Организация)
Или Не ЗначениеЗаполнено(Объект.Партнер)
Или Не ЗначениеЗаполнено(Объект.Контрагент)
Или Не ЗначениеЗаполнено(Объект.Валюта) Тогда
ДоговорКомиссии = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
Если ЗначениеЗаполнено(ДоговорКомиссии) Тогда
РеквизитыДоговора = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДоговорКомиссии,
"Организация, Партнер, Контрагент, ВалютаВзаиморасчетов");
ОчиститьДоговор = (Объект.Организация <> РеквизитыДоговора.Организация
Или Объект.Партнер <> РеквизитыДоговора.Партнер
Или Объект.Контрагент <> РеквизитыДоговора.Контрагент
Или Объект.Валюта <> РеквизитыДоговора.ВалютаВзаиморасчетов);
Если ОчиститьДоговор Тогда
ДоговорКомиссии = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Объект.ОбъектРасчетовКомиссии = ?(ЗначениеЗаполнено(ДоговорКомиссии),
ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКомиссии), Справочники.ОбъектыРасчетов.ПустаяСсылка());
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Локализация
#Область Локализация_ПодключаемыеОбработчикиСобытийФормы
&НаСервере
Процедура Подключаемый_ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка)
ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервереЛокализация();
КонецЕсли;
ПараметрыОтображения = ОбменСБанкамиКлиентСервер.ПараметрыСозданияФормыДокумента();
ПараметрыОтображения.РодительСостояния = Элементы.СтраницаОсновное.Имя;
ОбменСБанками.ПриСозданииФормыДокументаНаСервере(ЭтотОбъект, ПараметрыОтображения);
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
ПараметрыПроцедуры = Новый Структура("ВариантОтображения", "Однострочный");
СПАРКРиски.ПриСозданииНаСервере(
ЭтотОбъект,
Неопределено,
Объект.Контрагент,
Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Объект.Контрагент),
ПараметрыПроцедуры);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЧтенииНаСервереЛокализация(ТекущийОбъект)
ПриЧтенииНаСервере(ТекущийОбъект);
ПриЧтенииСозданииНаСервереЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриОткрытииЛокализация(Отказ)
ПриОткрытии(Отказ);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиентЛокализация.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Объект.ДокументОснование);
ПрименениеПриказа107н = (Объект.Дата >= ДатаНачалаПримененияПриказа107н);
КонецЕсли;
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
СПАРКРискиКлиент.ПриОткрытии(ЭтотОбъект, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаВыбораЛокализация(РезультатВыбора, ИсточникВыбора)
ОбработкаВыбора(РезультатВыбора, ИсточникВыбора);
Если ИсточникВыбора.ИмяФормы = "ОбщаяФорма.РанееСовершенныеПлатежи" Тогда
Если Объект.БанковскийСчет <> РезультатВыбора.БанковскийСчет Тогда
Объект.БанковскийСчет = РезультатВыбора.БанковскийСчет;
БанковскийСчетПриИзменении(Элементы.БанковскийСчет);
КонецЕсли;
ЗаполнитьПоРанееСовершенномуПлатежу(РезультатВыбора);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.СписаниеБезналичныхДенежныхСредств.Форма.РеквизитыПлательщика" Тогда
Модифицированность = Истина;
ЗаполнитьЗначенияСвойств(Объект, РезультатВыбора);
УстановитьНадписьРеквизитыПлательщика();
ИначеЕсли ИсточникВыбора.ИмяФормы = "ОбщаяФорма.ВедомостиНаВыплатуЗарплаты" Тогда
Модифицированность = Истина;
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
ТекущиеДанные.Ведомость = РезультатВыбора.Ведомость;
Если Не Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПеречислениеВБюджет") Тогда
Объект.ПериодРегистрации = РезультатВыбора.ПериодРегистрации;
КонецЕсли;
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПеречислениеВБюджет") Тогда
ТекущиеДанные.Сумма = РезультатВыбора.Сумма;
Иначе
ТекущиеДанные.Сумма = СуммыКОплатеПоВедомости(РезультатВыбора.Ведомость, Объект.ПодотчетноеЛицо);
КонецЕсли;
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета") Тогда
Объект.КодВидаДохода = РезультатВыбора.КодВидаДохода;
КонецЕсли;
ТекущиеДанные.ВалютаВзаиморасчетов = Объект.Валюта;
ТекущиеДанные.КурсЧислительВзаиморасчетов = 1;
ТекущиеДанные.КурсЗнаменательВзаиморасчетов = 1;
Элементы.РасшифровкаПлатежа.ЗакончитьРедактированиеСтроки(Ложь);
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПередЗаписьюЛокализация(Отказ, ПараметрыЗаписи)
ХозОперацииИсключения = Новый Массив;
ХозОперацииИсключения.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту"));
ХозОперацииИсключения.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета"));
ПередЗаписьюОбработка(Отказ, ПараметрыЗаписи, ХозОперацииИсключения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПослеЗаписиЛокализация(ПараметрыЗаписи)
ПослеЗаписи(ПараметрыЗаписи);
ОбменСБанкамиКлиент.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПередЗаписьюНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверкаКонтрагентов.ПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
СПАРКРиски.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПослеЗаписиНаСервереЛокализация(ТекущийОбъект, ПараметрыЗаписи)
ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
ОбменСБанками.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник)
ОбработкаОповещения(ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "ОтправленоDirectBank" Тогда
ОбработатьЗавершениеВыгрузкиПрямойОбмен(Параметр);
ЭтотОбъект.Прочитать();
ИначеЕсли ИмяСобытия = "Запись_Файл" Тогда
ОбновитьНадписьФайлыДляПередачиВБанк();
НастроитьЗависимыеЭлементыФормы("ДатаВыгрузкиРеестра");
ИначеЕсли ИмяСобытия = "ОбновитьДокументИБПослеЗаполнения" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
Прочитать();
КонецЕсли;
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
СПАРКРискиКлиент.ОбработкаОповещения(ЭтотОбъект, Неопределено, ИмяСобытия, Параметр, Источник);
ОбменСБанкамиКлиент.ОбработатьОповещениеФормыДокумента(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
#Область Локализация_ПодключаемыеОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура Подключаемый_ДатаПриИзмененииЛокализация(Элемент)
НужнаОбработка = ДатаПриИзмененииКлиент();
Если НужнаОбработка Тогда
ПрименениеПриказа107н = (Объект.Дата >= ДатаНачалаПримененияПриказа107н);
ПрименениеПриказа126н = (ДатаНачалаПримененияПриказа126н <> '00010101'
И Объект.Дата >= ДатаНачалаПримененияПриказа126н);
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Объект.Дата);
ДатаПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииСерверЛокализация()
Если СписаниеБезналичныхДенежныхСредствЛокализация.ДействуетФедеральныйЗакон345ФЗ(Объект.Дата)
<> СписаниеБезналичныхДенежныхСредствЛокализация.ДействуетФедеральныйЗакон345ФЗ(ТекущаяДата) Тогда
Объект.ОчередностьПлатежа = 0;
Если СписаниеБезналичныхДенежныхСредствЛокализация.ДействуетФедеральныйЗакон345ФЗ(Объект.Дата) Тогда
Элементы.ОчередностьПлатежа.МаксимальноеЗначение = 5;
Иначе
Элементы.ОчередностьПлатежа.МаксимальноеЗначение = 6;
КонецЕсли;
КонецЕсли;
ДенежныеСредстваСерверЛокализация.ПриИзмененииПравилПлатежейВБюджет(Объект, ТекущаяДата, Объект.Дата);
ТекущаяДата = Объект.Дата;
ЗаполнитьСписокКодовВидаДохода();
ПлатежиВБюджет.РеквизитыПлатежаВБюджетПоУмолчанию(Объект);
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ХозяйственнаяОперацияПриИзмененииЛокализация(Элемент)
НуженПереходНаСервер = ХозяйственнаяОперацияПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ХозяйственнаяОперацияПриИзмененииСерверЛокализация();
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСерверЛокализация()
ХозяйственнаяОперацияПриИзмененииСервер();
ПеречислениеВБюджет = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет);
Если Не ПеречислениеВБюджет Тогда
Объект.НастройкаСчетовУчета = ПредопределенноеЗначение("Справочник.НастройкиСчетовУчетаПрочихОпераций.ПустаяСсылка");
КонецЕсли;
ПроверитьЗаполнитьТипПлатежа275ФЗ();
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.СтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаБезРазбиенияСтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаПлатежаСтатьяЦелевыхСредств);
Если ПеречислениеВБюджет
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
ЗаполнитьРеквизитыПлательщика();
УстановитьНадписьРеквизитыПлательщика();
КонецЕсли;
ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер();
УправлениеПоказателямиПлатежаВБюджет();
ЗаполнитьСписокКодовВидаДохода();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета
И Объект.КодВидаДохода = "" Тогда
Объект.КодВидаДохода = "1";
КонецЕсли;
СтароеЗначение = Объект.ОперацияССамозанятым;
Объект.ОперацияССамозанятым = Ложь;
ОписаниеРеквизитов = Новый Структура;
ДенежныеСредстваСерверЛокализация.ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов);
Если ОписаниеРеквизитов.Количество() <> 0 Тогда
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, "ХозяйственнаяОперация", ОписаниеРеквизитов);
КонецЕсли;
Если Объект.ОперацияССамозанятым <> СтароеЗначение Тогда
ОперацияССамозанятымПриИзмененииНаСервере();
КонецЕсли;
ДенежныеСредстваСерверЛокализация.ПриИзмененииХозяйственнойОперации(ЭтотОбъект);
ИнициализироватьБанковскиеСчетаСпискаКонтрагентов();
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
ДенежныеСредстваСерверЛокализация.ЗаполнитьСписокТиповДокумента(Объект, Элементы.ТипПлатежногоДокумента);
ОпределитьВалютныйПлатежЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ТипПлатежногоДокументаПриИзмененииЛокализация(Элемент)
ТипПлатежногоДокументаПриИзменении(Элемент);
ДенежныеСредстваКлиентСерверЛокализация.ПроверитьДлинуНазначенияПлатежа(Объект);
УстановитьМаксимальнуюДлинуНазначенияПлатежа(Элементы.НазначениеПлатежа, Объект.ТипПлатежногоДокумента);
ЭтотОбъект.ИндексыСПАРКРиски = Неопределено;
Если Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ПлатежноеПоручение") Тогда
ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);
Иначе
ОбновитьОтображениеИндексыСПАРК(ПредопределенноеЗначение("Справочник.Контрагенты.ПустаяСсылка"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанковскийСчетПриИзмененииЛокализация(Элемент)
СтруктураВозврата = БанковскийСчетПриИзмененииКлиент("РазрешенПересчетВВалютуЛокализация");
Если СтруктураВозврата.НуженПереходНаСервер Тогда
БанковскийСчетПриИзмененииСерверЛокализация(СтруктураВозврата.РеквизитыБанковскогоСчета, СтруктураВозврата.ПересчитыватьСуммы);
Иначе
ЗаполнитьДанныеОбменаСБанком();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазрешенПересчетВВалютуЛокализация(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ТекущаяВалюта = Объект.Валюта;
БанковскийСчетПриИзмененииСерверЛокализация(ДополнительныеПараметры.СтруктураРеквизитов, Истина);
ЦенообразованиеКлиент.ОповеститьОбОкончанииПересчетаСуммВВалюту(ТекущаяВалюта, Объект.Валюта);
Иначе
Объект.БанковскийСчет = ТекущийБанковскийСчет;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПриИзмененииСерверЛокализация(СтруктураРеквизитов, ПересчитыватьСуммы)
ИзмениласьОрганизация = (Объект.Организация <> СтруктураРеквизитов.Организация);
СтароеЗначение = Объект.ОперацияССамозанятым;
БанковскийСчетПриИзмененииСервер(СтруктураРеквизитов, ПересчитыватьСуммы);
Если ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Если ИзмениласьОрганизация Тогда
Реквизиты = Справочники.Организации.ПолучитьРеквизитыОрганизации(Объект.Организация);
ЮрФизЛицо = Реквизиты.ЮрФизЛицо;
Если Объект.ПеречислениеВБюджет Или Не ПустаяСтрока(Объект.КодОКАТО) Тогда
Если ПрименениеПриказа107н Тогда
Объект.КодОКАТО = Реквизиты.КодПоОКТМО;
Иначе
Объект.КодОКАТО = Реквизиты.КодПоОКАТО;
КонецЕсли;
КонецЕсли;
Если ДенежныеСредстваСерверЛокализация.МассивОперацийПеречисленияВБюджет().Найти(Объект.ХозяйственнаяОперация) <> Неопределено
И ЗначениеЗаполнено(Объект.Контрагент) Тогда
ИсключитьРеквизиты = ?(ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента), "БанковскийСчетКонтрагента", "");
ЗаполнитьРеквизитыПлатежаВБюджет(ИсключитьРеквизиты);
КонецЕсли;
ОписаниеРеквизитов = Новый Структура;
ДенежныеСредстваСерверЛокализация.ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов);
Если ОписаниеРеквизитов.Количество() <> 0 Тогда
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, "Организация", ОписаниеРеквизитов);
КонецЕсли;
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
Если ИзмениласьОрганизация
Или Не ЗначениеЗаполнено(Объект.ИННПлательщика)
Или Не ЗначениеЗаполнено(Объект.КПППлательщика) Тогда
ЗаполнитьРеквизитыПлательщика();
Иначе
РеквизитыПлательщика = ДенежныеСредстваСерверЛокализация.РеквизитыПлательщика(Объект);
Объект.ТекстПлательщика = РеквизитыПлательщика.ТекстПлательщика;
КонецЕсли;
УстановитьНадписьРеквизитыПлательщика();
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств Тогда
Если ИзмениласьОрганизация
Или Не ЗначениеЗаполнено(Объект.ИННПлательщика) Тогда
ЗаполнитьРеквизитыПлательщика();
КонецЕсли;
УстановитьНадписьРеквизитыПлательщика();
КонецЕсли;
Если СтруктураРеквизитов.ТипСчета = Перечисления.ТипыБанковскихСчетов.Транзитный
И ИспользоватьВалютныеПлатежи Тогда
Объект.ТипПлатежногоДокумента = Перечисления.ТипыПлатежныхДокументов.РаспоряжениеОбОбязательнойПродаже;
КонецЕсли;
КонецЕсли;
ЭтоТранзитныйСчет = (СтруктураРеквизитов.ТипСчета = Перечисления.ТипыБанковскихСчетов.Транзитный);
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьВалютныйПлатежЛокализация();
ЗаполнитьДанныеОбменаСБанком();
Если Объект.ОперацияССамозанятым <> СтароеЗначение Тогда
ОперацияССамозанятымПриИзмененииНаСервере();
КонецЕсли;
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
НастроитьЗависимыеЭлементыФормыНаСервере();
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанковскийСчетКонтрагентаПриИзмененииЛокализация(Элемент)
БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация()
БанковскийСчетКонтрагентаПриИзмененииСервер();
ОпределитьВалютныйПлатежЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтрагентПриИзмененииЛокализация(Элемент)
КонтрагентПриИзмененииСерверЛокализация();
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элемент);
ЭтотОбъект.ИндексыСПАРКРиски = Неопределено;
Если Объект.ТипПлатежногоДокумента = ПредопределенноеЗначение("Перечисление.ТипыПлатежныхДокументов.ПлатежноеПоручение") Тогда
ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСерверЛокализация()
СтароеЗначение = Объект.ОперацияССамозанятым;
КонтрагентПриИзмененииСервер();
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
Если ДенежныеСредстваСерверЛокализация.МассивОперацийПеречисленияВБюджет().Найти(Объект.ХозяйственнаяОперация) <> Неопределено
И ЗначениеЗаполнено(Объект.Организация)
И Не ЗначениеЗаполнено(Объект.ТипНалога) Тогда
ЗаполнитьРеквизитыПлатежаВБюджет();
КонецЕсли;
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
ОписаниеРеквизитов = Новый Структура;
ДенежныеСредстваСерверЛокализация.ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов);
Если ОписаниеРеквизитов.Количество() <> 0 Тогда
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, "Контрагент", ОписаниеРеквизитов);
КонецЕсли;
Иначе
Объект.ОперацияССамозанятым = Ложь;
КонецЕсли;
ОпределитьВалютныйПлатежЛокализация();
ДенежныеСредстваСерверЛокализация.УстановитьКодВидаДоходаСамозанятого(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере();
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
Если Объект.ОперацияССамозанятым <> СтароеЗначение Тогда
ОперацияССамозанятымПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолучательПриИзмененииЛокализация(Элемент)
Подключаемый_КонтрагентПриИзмененииЛокализация(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодотчетноеЛицоПриИзмененииЛокализация(Элемент)
ПодотчетноеЛицоПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСерверЛокализация()
ПодотчетноеЛицоПриИзмененииСервер();
Если ИспользоватьНачислениеЗарплатыУТ
И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаЗаймаСотруднику Тогда
Объект.Подразделение = ИнтеграцияБЗК.МестоСотрудникаВСтруктуреПредприятия(
Объект.Организация, Объект.ПодотчетноеЛицо, Объект.Дата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанковскийСчетПолучательПриИзмененииЛокализация(Элемент)
БанковскийСчетПолучательПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПолучательПриИзмененииСерверЛокализация()
БанковскийСчетПолучательПриИзмененииСервер();
ОпределитьВалютныйПлатежЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СуммаДокументаПриИзмененииЛокализация(Элемент)
СуммаДокументаПриИзмененииКлиент();
СуммаДокументаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВалютаПриИзмененииЛокализация(Элемент)
НуженПереходНаСервер = ВалютаПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ВалютаПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СписокФизЛицВключеноПриИзмененииЛокализация(Элемент)
Объект.СписокФизЛиц = (СписокФизЛиц = 1);
Если Объект.СписокФизЛиц Тогда
СписокФизЛицПриИзмененииЛокализацияНаСервере();
КонецЕсли;
ТекущаяВалюта = Объект.Валюта;
НастроитьЗависимыеЭлементыФормы("СписокФизЛиц");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииЛокализация(Элемент)
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияДоговорКредитаДепозитаПриИзмененииЛокализация(Элемент)
Подключаемый_РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииЛокализация(Элемент);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСерверЛокализация()
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер();
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
РеквизитыДоговора = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ТекущаяСтрока.ДоговорКредитаДепозита, "БанковскийСчет.ОтдельныйСчетГОЗ, ТипПлатежаФЗ275, ТипДоговора");
Если РеквизитыДоговора.БанковскийСчетОтдельныйСчетГОЗ <> Неопределено Тогда
Объект.ПлатежиПо275ФЗ = РеквизитыДоговора.БанковскийСчетОтдельныйСчетГОЗ;
Если РеквизитыДоговора.ТипДоговора = Перечисления.ТипыДоговораКредитовИДепозитов.ДепозитВБанке
Или РеквизитыДоговора.ТипДоговора = Перечисления.ТипыДоговораКредитовИДепозитов.ДепозитВБанкеСКапитализацией
Или ТекущаяСтрока.ТипСуммыКредитаДепозита = Перечисления.ТипыСуммГрафикаКредитовИДепозитов.ОсновнойДолг Тогда
Объект.ТипПлатежаФЗ275 = РеквизитыДоговора.ТипПлатежаФЗ275;
Иначе
Объект.ТипПлатежаФЗ275 = Неопределено;
КонецЕсли;
Иначе
Объект.ПлатежиПо275ФЗ = Ложь;
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("ПлатежиПо275ФЗ");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОперацияССамозанятымПриИзмененииЛокализация()
ОперацияССамозанятымПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДоговорПриИзмененииЛокализация()
ДоговорПриИзмененииЛокализацияНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииЛокализация(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСерверЛокализация(СтрокаТаблицы.ПолучитьИдентификатор());
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияОбработчикиСобытийЭлементовФормы
&НаСервере
Процедура ПеречислениеВБюджетПриИзмененииСервер()
Если Объект.ПеречислениеВБюджет Тогда
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж;
Иначе
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж;
КонецЕсли;
УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду();
Если ПустаяСтрока(Объект.КодОКАТО) Тогда
Реквизиты = Справочники.Организации.ПолучитьРеквизитыОрганизации(Объект.Организация);
Если ПрименениеПриказа107н Тогда
Объект.КодОКАТО = Реквизиты.КодПоОКТМО;
Иначе
Объект.КодОКАТО = Реквизиты.КодПоОКАТО;
КонецЕсли;
КонецЕсли;
КонецЕсли;
УправлениеПоказателямиПлатежаВБюджет();
НастроитьЗависимыеЭлементыФормыНаСервере("ПеречислениеВБюджет");
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлатежаВБюджетНажатиеЗавершение(РеквизитыПлатежаВБюджет, ДополнительныеПараметры) Экспорт
Если РеквизитыПлатежаВБюджет <> Неопределено Тогда
Модифицированность = Истина;
ЗаполнитьЗначенияСвойств(Объект, РеквизитыПлатежаВБюджет);
УправлениеПоказателямиПлатежаВБюджет();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПлатежиПо275ФЗПриИзмененииНаСервере()
Если Объект.ПлатежиПо275ФЗ
И Объект.РасшифровкаПлатежа.Количество() > 0 Тогда
ПервыйОбъектРасчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.РасшифровкаПлатежа[0].ОбъектРасчетов, "Объект");
Если ТипЗнч(ПервыйОбъектРасчетов) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПервыйОбъектРасчетов,
"ДоговорСУчастникомГОЗ, ОплатаРасходовПоТарифамСГосрегулированием,
|ГосударственныйКонтракт, ИностранныйИсполнительВУтвержденномПеречнеГОЗ");
ЗаполнитьЗначенияСвойств(Объект, ЗначенияРеквизитов, "ДоговорСУчастникомГОЗ");
ЗаполнитьЗначенияСвойств(ЭтаФорма, ЗначенияРеквизитов,
"ОплатаРасходовПоТарифамСГосрегулированием, ИностранныйИсполнительВУтвержденномПеречнеГОЗ, ГосударственныйКонтракт");
КонецЕсли;
КонецЕсли;
ПроверитьЗаполнитьТипПлатежа275ФЗ();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ТипНалогаПриИзмененииНаСервере()
Если ИспользоватьНачислениеЗарплаты И Объект.ТипНалога <> Справочники.ВидыНалоговВзносов.НДФЛ И Объект.ТипНалога <> Справочники.ВидыНалоговВзносов.НДФЛСПревышения Тогда
Объект.НДФЛПоВедомостям = Ложь;
ОплатаНДСВБюджетПоОтдельнымОперациям = (Объект.ТипНалога = Справочники.ВидыНалоговВзносов.НДС_ВвозимыеТовары
ИЛИ Объект.ТипНалога = Справочники.ВидыНалоговВзносов.НДС_НалоговыйАгент);
КонецЕсли;
УстановитьСчетУчетаНалогов();
ПараметрыНастройки = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
ПлатежиВБюджет.РеквизитыПлатежаВБюджетПоУмолчанию(Объект);
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтотОбъект);
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ОперацияССамозанятымПриИзмененииНаСервере()
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Контрагент");
Если Объект.ОперацияССамозанятым Тогда
Объект.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
Объект.ПеречислениеВБюджет = Ложь;
Объект.ПлатежиПо275ФЗ = Ложь;
ПроверитьЗаполнитьТипПлатежа275ФЗ();
ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер();
Иначе
Объект.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПустаяСсылка();
УправлениеПоказателямиПлатежаВБюджет();
КонецЕсли;
ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента)
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
ЗаполнитьВалютуВзаиморасчетовДокумента();
Если Не ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, , Истина);
КонецЕсли;
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
ДенежныеСредстваСерверЛокализация.ПриИзмененииХозяйственнойОперации(ЭтотОбъект);
ДенежныеСредстваСерверЛокализация.ИнициализироватьБанковскиеСчетаСпискаКонтрагентов(Объект);
ЗаполнитьНалогообложениеНДС();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчетаКонтрагента(Объект, Элементы.БанковскийСчетКонтрагента);
НастроитьЗависимыеЭлементыФормыНаСервере("ОперацияССамозанятым");
КонецПроцедуры
&НаСервере
Процедура СписокКонтрагентовПриИзмененииСервер()
ДенежныеСредстваСерверЛокализация.ПриИзмененииПризнакаСпискаКонтрагентов(ЭтотОбъект);
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецЕсли;
Если Не Объект.СписокКонтрагентов Тогда
Объект.РасшифровкаПлатежа.Очистить();
ИнициализироватьРасшифровкуПлатежа();
КонецЕсли;
УправлениеЭлементамиФормы();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура СуммаДокументаПриИзмененииСерверЛокализация()
СуммаДокументаПриИзмененииСервер();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
КонецПроцедуры
&НаСервере
Процедура ВалютаПриИзмененииСерверЛокализация()
ВалютаПриИзмененииНаСервере();
ОпределитьВалютныйПлатежЛокализация();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
НастроитьЗависимыеЭлементыФормыНаСервере("ВалютныйКонтроль,ВалютныйПлатеж,КонтрагентЮрФизЛицо");
КонецПроцедуры
&НаСервере
Процедура СписокФизЛицПриИзмененииЛокализацияНаСервере()
СписокФизЛицВключеноПриИзмененииНаСервере();
Если Объект.Валюта <> ТекущаяВалюта Тогда
ВалютаПриИзмененииСерверЛокализация();
КонецЕсли;
ЗаполнитьДанныеОбменаСБанком();
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаВыборЛокализация(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПриИзмененииЛокализация(Элемент)
РасшифровкаПлатежаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПриНачалеРедактированияЛокализация(Элемент, НоваяСтрока, Копирование)
РасшифровкаПлатежаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование);
ДенежныеСредстваКлиентЛокализация.УстановитьПараметрыВыбораКонтрагентаРасшифровкиПлатежа(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПриОкончанииРедактированияЛокализация(Элемент, НоваяСтрока, ОтменаРедактирования)
РасшифровкаПлатежаПриОкончанииРедактированияСерверЛокализация(НоваяСтрока, ОтменаРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаКонтрагентПриИзмененииЛокализация(Элемент)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
РасшифровкаПлатежаКонтрагентПриИзмененииСерверЛокализация(ИдентификаторСтроки);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПартнерПриИзмененииЛокализация(Элемент)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
РасшифровкаПлатежаПартнерПриИзмененииСерверЛокализация(ИдентификаторСтроки);
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияКоманды
&НаСервере
Функция СуммыКОплатеПоВедомости(Ведомость, Работник)
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("МассивВедомостей", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Ведомость));
СтруктураПараметров.Вставить("Организация", Объект.Организация);
СтруктураПараметров.Вставить("ДокументОплаты", Объект.Ссылка);
СтруктураПараметров.Вставить("ИсключатьОплаченные", Истина);
СтруктураПараметров.Вставить("Работник", Работник);
Возврат ДенежныеСредстваСерверЛокализация.ДанныеРаботниковПоВедомостям(СтруктураПараметров);
КонецФункции
&НаКлиенте
Процедура ВыгрузитьФайлДляОбменаСБанкомЛокализация(Команда)
ОчиститьСообщения();
Если Объект.ХозяйственнаяОперация =
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику") Тогда
ПередВыгрузкойРеестраНаЗачислениеДенежныхСредств();
ИначеЕсли Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаПоставщику")
И Объект.ОперацияССамозанятым Тогда
ПередВыгрузкойРеестрСамозанятых();
Иначе
Если Параметры.Ключ.Пустая() Тогда
ТекстВопроса =
НСтр("ru = 'Данные еще не записаны.
|Выполнение действия ""Выгрузить файл обмена с банком"" возможно только после записи данных.
|Данные будут записаны.'");
Обработчик = Новый ОписаниеОповещения("ВыгрузитьФайлДляОбменаСБанкомЗавершение", ЭтотОбъект);
ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ОКОтмена);
Иначе
Если ДенежныеСредстваКлиентЛокализация.ВедомостьНаВыплатуЗарплатыЗаполнена(ЭтотОбъект) Тогда
ОбменСБанкамиПоЗарплатнымПроектамКлиент.ВыгрузитьВФайлПлатежныеДокументыПеречисленияЗарплаты(
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Ссылка), ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьФайлДляОбменаСБанкомЗавершение(Ответ, ПараметрыОповещения) Экспорт
Если Ответ = КодВозвратаДиалога.ОК Тогда
Записать();
СсылкаНаОбъект = Объект.Ссылка;
ОбменСБанкамиПоЗарплатнымПроектамКлиент.ВыгрузитьВФайлПлатежныеДокументыПеречисленияЗарплаты(
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СсылкаНаОбъект), ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммСотрудникуЛокализация(Команда)
ЗаполнитьОстаткамиНевыданныхСуммСотрудникуНаСервере();
Возврат;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОстаткамиНевыданныхСуммСотрудникуНаСервере()
Объект.РасшифровкаПлатежа.Очистить();
РасшифровкаПлатежа =
ДенежныеСредстваСерверЛокализация.ДанныеРасшифровкиПлатежаДокументаДДСПоДоговоруЗаймаСотруднику(Объект, Ложь, Объект.Ссылка);
Объект.РасшифровкаПлатежа.Загрузить(РасшифровкаПлатежа);
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоПредыдущемуПлатежуЛокализация(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ссылка", Объект.Ссылка);
ПараметрыФормы.Вставить("БанковскийСчет", Объект.БанковскийСчет);
ПараметрыФормы.Вставить("ПрименениеПриказа107н", ПрименениеПриказа107н);
ПараметрыФормы.Вставить("ПрименениеПриказа126н", ПрименениеПриказа126н);
ПараметрыФормы.Вставить("ТипНалога", Объект.ТипНалога);
ОткрытьФорму("ОбщаяФорма.РанееСовершенныеПлатежи", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьСчетаФактурыЛокализация(Команда)
ПараметрыПодбора = УчетНДСУПКлиент.ПараметрыПодбораСчетовФактурТребующихОплатыНДС();
ПараметрыПодбора.ТипНалога = Объект.ТипНалога;
ПараметрыПодбора.Организация = Объект.Организация;
ПараметрыПодбора.ДатаДокумента = Объект.Дата;
ПараметрыПодбора.ДокументСсылка = Объект.Ссылка;
ПараметрыПодбора.АдресВременногоХранилища = ПоместитьВоВременноеХранилищеРасшифровкуПлатежа();
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаПодбораСчетовФактур", ЭтотОбъект);
УчетНДСУПКлиент.ОткрытьФормуПодбораСчетовФактурТребующихОплатыНДС(ПараметрыПодбора, ОписаниеОповещения);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПодбораСчетовФактур(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено И Результат.Свойство("АдресВременногоХранилища") Тогда
Модифицированность = Истина;
ПолучитьРасшифровкуПлатежаНДСНалоговогоАгента(Результат.АдресВременногоХранилища);
КонецЕсли;
Возврат;
КонецПроцедуры
&НаСервере
Функция ПоместитьВоВременноеХранилищеРасшифровкуПлатежа()
ТаблицаНалоговогоАгента = Новый ТаблицаЗначений;
ТаблицаНалоговогоАгента.Колонки.Добавить("Контрагент");
ТаблицаНалоговогоАгента.Колонки.Добавить("Договор");
ТаблицаНалоговогоАгента.Колонки.Добавить("ДокументРасчетов");
ТаблицаНалоговогоАгента.Колонки.Добавить("Сумма");
НастройкаСчетовУчетаСервер.ЗаписатьНастройкиСчетовУчетаФормы(ЭтотОбъект);
ТаблицаНастроекСчетовУчета = Объект.РасшифровкаПлатежа.Выгрузить(, "НастройкаСчетовУчета");
НастройкиСчетовУчета = ТаблицаНастроекСчетовУчета.ВыгрузитьКолонку("НастройкаСчетовУчета");
КоличествоНастроек = НастройкиСчетовУчета.Количество();
Для ОбратныйИндекс = 1 По КоличествоНастроек Цикл
Индекс = КоличествоНастроек - ОбратныйИндекс;
Если НЕ ЗначениеЗаполнено(НастройкиСчетовУчета[Индекс]) Тогда
НастройкиСчетовУчета.Удалить(Индекс);
КонецЕсли;
КонецЦикла;
Если НастройкиСчетовУчета.Количество() > 0 Тогда
ДанныеНастроекСчетов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(НастройкиСчетовУчета, "Субконто1,Субконто2,Субконто3");
Для Каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДанныеНастройкиСчетов = ДанныеНастроекСчетов[СтрокаТЧ.НастройкаСчетовУчета];
Если ДанныеНастройкиСчетов <> Неопределено И ЗначениеЗаполнено(ДанныеНастройкиСчетов.Субконто3) Тогда
СтрокаТЗ = ТаблицаНалоговогоАгента.Добавить();
СтрокаТЗ.Контрагент = ДанныеНастройкиСчетов.Субконто1;
СтрокаТЗ.Договор = ДанныеНастройкиСчетов.Субконто2;
СтрокаТЗ.ДокументРасчетов = ДанныеНастройкиСчетов.Субконто3;
СтрокаТЗ.Сумма = СтрокаТЧ.Сумма;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат ПоместитьВоВременноеХранилище(ТаблицаНалоговогоАгента, Новый УникальныйИдентификатор);
КонецФункции
&НаКлиенте
Процедура ВставитьВНазначениеЛокализация(Команда)
Если ЗначениеЗаполнено(Объект.КодВалютнойОперации) Тогда
СтрокаВставки = "{VO" + Строка(Объект.КодВалютнойОперации) + "}";
Если Лев(Объект.НазначениеПлатежа, СтрДлина(СтрокаВставки)) <> СтрокаВставки Тогда
Объект.НазначениеПлатежа = СтрокаВставки + " " + Объект.НазначениеПлатежа;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередВыгрузкойРеестраНаЗачислениеДенежныхСредств()
МожноПродолжить = РазрешеноПродолжитьВыгрузкуРеестра();
Если Не МожноПродолжить Тогда
Возврат;
КонецЕсли;
СписокЗаписей = Новый Массив;
ТекстЗаписи = "";
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Записывать", Ложь);
Если ЗначениеЗаполнено(Объект.Ссылка)
И Модифицированность Тогда
ДополнительныеПараметры.Вставить("Записывать", Истина);
СписокЗаписей.Добавить(НСтр("ru = 'Данные изменены и будут записаны в процессе выгрузки.'"));
КонецЕсли;
ИзмененаКодировка = Ложь;
Если Не ЗначениеЗаполнено(Объект.КодировкаФайла) Тогда
Объект.КодировкаФайла = "UTF-8";
ИзмененаКодировка = Истина;
Модифицированность = Истина;
ДополнительныеПараметры.Вставить("Записывать", Истина);
СписокЗаписей.Добавить(НСтр("ru = 'Заполнена кодировка файла обмена с банком.'"));
КонецЕсли;
ИсходныйНомерДоговораСБанком = Объект.НомерДоговораСБанком;
ИсходнаяКодировкаФайла = Объект.КодировкаФайла;
Если Не ЗначениеЗаполнено(Объект.НомерДоговораСБанком) Тогда
ЗаполнитьДанныеОбменаСБанком();
Если ИсходныйНомерДоговораСБанком <> Объект.НомерДоговораСБанком
И ЗначениеЗаполнено(Объект.НомерДоговораСБанком) Тогда
Модифицированность = Истина;
ДополнительныеПараметры.Вставить("Записывать", Истина);
СписокЗаписей.Добавить(НСтр("ru = 'Заполнен номер договора с банком.'"));
КонецЕсли;
Если ИсходнаяКодировкаФайла <> Объект.КодировкаФайла
И ЗначениеЗаполнено(Объект.КодировкаФайла)
И Не ИзмененаКодировка Тогда
Модифицированность = Истина;
ДополнительныеПараметры.Вставить("Записывать", Истина);
СписокЗаписей.Добавить(НСтр("ru = 'Изменена кодировка файла обмена с банком.'"));
КонецЕсли;
КонецЕсли;
ОшибкаЗаполнения = Ложь;
Если НЕ ЗначениеЗаполнено(Объект.НомерДоговораСБанком) Тогда
ТекстСообщения = НСтр("ru = 'Для реестра требуется заполнить номер договора'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, Объект.Ссылка, "НомерДоговораСБанком", "Объект", ОшибкаЗаполнения);
КонецЕсли;
Если Объект.КодировкаФайла = "" Тогда
ТекстСообщения = НСтр("ru = 'Для реестра требуется заполнить кодировку файла обмена'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, Объект.Ссылка, "КодировкаФайла", "Объект", ОшибкаЗаполнения);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.ВидЗачисления) Тогда
ТекстСообщения = НСтр("ru = 'Для реестра требуется заполнить вид зачисления'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, Объект.Ссылка, "ВидЗачисления", "Объект", ОшибкаЗаполнения);
КонецЕсли;
Если ОшибкаЗаполнения Тогда
Возврат;
КонецЕсли;
ТекстЗаписи = СтрСоединить(СписокЗаписей, Символы.ПС);
Если НаличиеДокументаЗачисленияДС Тогда
ТекстВопроса = НСтр("ru = 'Существует результат зачисления денежных средств по документу списания."
+ ?(НЕ ПустаяСтрока(ТекстЗаписи), "
|(" + ТекстЗаписи + ")", "") + "
|Продолжить выгрузку реестра?'");
ИначеЕсли Объект.ДатаВыгрузкиРеестра <> '00010101' Тогда
ТекстВопроса = НСтр("ru = 'Ранее выполнялась выгрузка реестра."
+ ?(НЕ ПустаяСтрока(ТекстЗаписи), "
|(" + ТекстЗаписи + ")", "") + "
|Продолжить выгрузку реестра?'");
ИначеЕсли НЕ ПустаяСтрока(ТекстЗаписи) Тогда
ТекстВопроса = ТекстЗаписи + Символы.ПС + НСтр("ru = 'Продолжить выгрузку реестра?'");
ИначеЕсли НЕ ЗначениеЗаполнено(Объект.НомерДоговораСБанком) Тогда
ТекстСообщения = НСтр("ru = 'Для реестра требуется заполнить номер договора'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, Объект.Ссылка, "НомерДоговораСБанком", "Объект");
Возврат;
Иначе
Оповещение = Новый ОписаниеОповещения("ВыгрузитьФайлРеестра", ЭтотОбъект);
ВыполнитьОбработкуОповещения(Оповещение);
Возврат;
КонецЕсли;
ОповещенияОЗавершении = Новый ОписаниеОповещения("ПроверкаВыгрузкиРеестраЗавершение", ЭтотОбъект, ДополнительныеПараметры);
Кнопки = РежимДиалогаВопрос.ДаНет;
ПоказатьВопрос(ОповещенияОЗавершении, ТекстВопроса, Кнопки);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодборПоОстаткамЛокализация(Команда)
ПодборПоОстаткамОбработка("ПодборПоОстаткамЗавершениеЛокализация");
КонецПроцедуры
#КонецОбласти
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентовЛокализация(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияСлужебные
&НаСервере
Процедура ПриЧтенииСозданииНаСервереЛокализация()
ДенежныеСредстваСерверЛокализация.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ИспользоватьНачислениеЗарплатыУТ = ПолучитьФункциональнуюОпцию("ИспользоватьНачислениеЗарплатыУТ");
ПоддержкаПлатежей275ФЗ = ПолучитьФункциональнуюОпцию("ПоддержкаБанковскогоИКазначейскогоСопровожденияГосконтрактов");
ИспользоватьРеглУчет = ПолучитьФункциональнуюОпцию("ИспользоватьРеглУчет");
ИспользованиеСПАРКРазрешено = СПАРКРиски.ИспользованиеРазрешено();
ПравоДоступаКПлануСчетов = ПравоДоступа("Просмотр", Метаданные.ПланыСчетов.Хозрасчетный);
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
ДатаНачалаПримененияПриказа107н = Константы.ДатаНачалаПримененияПриказа107н.Получить();
ПрименениеПриказа107н = (ТекущаяДата >= ДатаНачалаПримененияПриказа107н);
ДатаНачалаПримененияПриказа126н = Константы.ДатаНачалаПримененияПриказа126н.Получить();
ПрименениеПриказа126н = (ДатаНачалаПримененияПриказа126н <> '00010101' И ТекущаяДата >= ДатаНачалаПримененияПриказа126н);
ДействуетУказание2019_5286У = ПлатежиВБюджетКлиентСервер.ДействуетУказание2019_5286У(ТекущаяДата);
РеквизитыБанковскогоСчета = Справочники.БанковскиеСчетаОрганизаций.ПолучитьРеквизитыБанковскогоСчетаОрганизации(ТекущийБанковскийСчет);
КодВалютнойОперацииЗаполнен = ЗначениеЗаполнено(Объект.КодВалютнойОперации);
ЭтоТранзитныйСчет = (РеквизитыБанковскогоСчета.ТипСчета = Перечисления.ТипыБанковскихСчетов.Транзитный);
ТипДенежнаяСуммаНеотрицательная = Метаданные.ОпределяемыеТипы.ДенежнаяСуммаНеотрицательная.Тип;
ДенежныеСредстваКлиентСерверЛокализация.УстановитьПараметрыВыбораПолучателя(ЭтотОбъект, Объект, Элементы.Получатель);
ДенежныеСредстваКлиентСерверЛокализация.УстановитьПараметрыВыбораПолучателя(ЭтотОбъект, Объект, Элементы.РасшифровкаПлатежаКонтрагент);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если Не Объект.ПеречислениеВБюджет
И ЗначениеЗаполнено(Объект.ДокументОснование)
И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ЗаявкаНаРасходованиеДенежныхСредств")
И ДенежныеСредстваСерверЛокализация.МассивОперацийПеречисленияВБюджет().Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
ЗаполнитьРеквизитыПлатежаВБюджет("СтатьяДвиженияДенежныхСредств, БанковскийСчетКонтрагента");
КонецЕсли;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
И ЗначениеЗаполнено(Объект.БанковскийСчет)
И Не ЗначениеЗаполнено(Объект.НомерДоговораСБанком) Тогда
ЗаполнитьДанныеОбменаСБанком();
КонецЕсли;
КонецЕсли;
ОплатаНДСВБюджетПоОтдельнымОперациям = (Объект.ТипНалога = Справочники.ВидыНалоговВзносов.НДС_ВвозимыеТовары
Или Объект.ТипНалога = Справочники.ВидыНалоговВзносов.НДС_НалоговыйАгент);
Если Объект.ПлатежиПо275ФЗ
И Объект.РасшифровкаПлатежа.Количество() > 0 Тогда
ПервыйОбъектРасчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.РасшифровкаПлатежа[0].ОбъектРасчетов, "Объект");
Если ТипЗнч(ПервыйОбъектРасчетов) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
ДоговорКонтрагента = ПервыйОбъектРасчетов;
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДоговорКонтрагента,
"ОплатаРасходовПоТарифамСГосрегулированием, ИностранныйИсполнительВУтвержденномПеречнеГОЗ, ГосударственныйКонтракт");
ЗаполнитьЗначенияСвойств(ЭтаФорма, ЗначенияРеквизитов);
КонецЕсли;
КонецЕсли;
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.СтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаБезРазбиенияСтатьяЦелевыхСредств);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораСтатьиЦелевыхСредств(Объект, Элементы.РасшифровкаПлатежаСтатьяЦелевыхСредств);
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
КонецЕсли;
Если СписаниеБезналичныхДенежныхСредствЛокализация.ДействуетФедеральныйЗакон345ФЗ(Объект.Дата) Тогда
Элементы.ОчередностьПлатежа.МаксимальноеЗначение = 5;
Иначе
Элементы.ОчередностьПлатежа.МаксимальноеЗначение = 6;
КонецЕсли;
ЗаполнитьСписокХозяйственныхОперацийЛокализация();
УточнитьСписокХозяйственныхОперацийЛокализация();
ДенежныеСредстваСерверЛокализация.ЗаполнитьСписокТиповДокумента(Объект, Элементы.ТипПлатежногоДокумента);
УстановитьМаксимальнуюДлинуНазначенияПлатежа(Элементы.НазначениеПлатежа, Объект.ТипПлатежногоДокумента);
ИспользоватьВыплатыСамозанятым = ПолучитьФункциональнуюОпцию("ИспользоватьВыплатыСамозанятым");
СписокКонтрагентов = Число(Объект.СписокКонтрагентов);
ДенежныеСредстваСерверЛокализация.УстановитьПереключательРасшифровки(ЭтотОбъект);
ИнициализироватьБанковскиеСчетаСпискаКонтрагентов();
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьВалютныйПлатежЛокализация();
УстановитьНадписьРеквизитыПлательщика();
УправлениеПоказателямиПлатежаВБюджет();
ОбновитьНадписьФайлыДляПередачиВБанк();
ЗаполнитьСписокКодовВидаДохода();
ЗаполнитьВариантыКодировокФайла();
УстановитьЗаголовокГруппыДанныеОбменаСБанком();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокХозяйственныхОперацийЛокализация()
Операции = Перечисления.ХозяйственныеОперации;
ДоступныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
ДоступныеОперации.Очистить();
ДоступныеОперации.Добавить(Операции.ОплатаПоставщику);
ДоступныеОперации.Добавить(Операции.ВыдачаДенежныхСредствПодотчетнику, НСтр("ru = 'Выдача подотчетнику'"));
ДоступныеОперации.Добавить(Операции.ПеречислениеВБюджет);
ДоступныеОперации.Добавить(Операции.ПеречислениеТаможне);
ДоступныеОперации.Добавить(Операции.ОплатаДенежныхСредствВДругуюОрганизацию, НСтр("ru = 'Оплата другой организации'"));
ДоступныеОперации.Добавить(Операции.ВнутренняяПередачаДенежныхСредств, НСтр("ru = 'Передача между организацией и филиалом'"));
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплатыПоЗарплатномуПроекту);
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплатыНаЛицевыеСчета);
ДоступныеОперации.Добавить(Операции.ОплатаАрендодателю);
ДоступныеОперации.Добавить(Операции.ПеречислениеДенежныхСредствНаДругойСчет, НСтр("ru = 'Перечисление на другой счет'"));
ДоступныеОперации.Добавить(Операции.СнятиеНаличныхДенежныхСредств, НСтр("ru = 'Инкассация из банка'"));
ДоступныеОперации.Добавить(Операции.ОплатаПоКредитам);
ДоступныеОперации.Добавить(Операции.ПеречислениеНаДепозиты);
ДоступныеОперации.Добавить(Операции.ВыдачаЗаймов, НСтр("ru = 'Выдача займа контрагенту'"));
ДоступныеОперации.Добавить(Операции.ВыдачаЗаймаСотруднику, НСтр("ru = 'Выдача займа сотруднику'"));
ДоступныеОперации.Добавить(Операции.КонвертацияВалюты);
ДоступныеОперации.Добавить(Операции.ПрочаяВыдачаДенежныхСредств, НСтр("ru = 'Прочий расход'"));
ДоступныеОперации.Добавить(Операции.ВозвратОплатыКлиенту);
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствВДругуюОрганизацию, НСтр("ru = 'Возврат другой организации'"));
ДоступныеОперации.Добавить(Операции.ВозвратОплатыНаПлатежнуюКарту);
КонецПроцедуры
&НаСервере
Процедура УточнитьСписокХозяйственныхОперацийЛокализация()
УточнитьСписокХозяйственныхОпераций();
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСерверЛокализация.УстановитьВидимостьОперацииПеречислениеТаможне(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСерверЛокализация.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура ОпределитьВалютныйПлатежЛокализация()
ВалютныйКонтроль = Ложь;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СнятиеНаличныхДенежныхСредств Тогда
ВалютныйПлатеж = Ложь;
Возврат;
КонецЕсли;
ВалютныйПлатеж = ЗначениеЗаполнено(Объект.Валюта)
И ЗначениеЗаполнено(ВалютаРеглУчета)
И Объект.Валюта <> ВалютаРеглУчета;
Если ВалютныйПлатеж Тогда
ВалютныйКонтроль = Истина;
ИначеЕсли ЗначениеЗаполнено(Объект.Контрагент) Тогда
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
ВалютныйКонтроль = (КонтрагентЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицоНеРезидент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОпределитьБанковскийСчетПоГосконтрактуЛокализация()
БанковскийСчетПоГосконтракту = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "СчетПоГосконтракту");
КонецПроцедуры
&НаСервере
Процедура УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду()
Если Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж Тогда
Объект.СтатусСоставителя = "01";
Объект.ПоказательОснования = "";
Объект.ПоказательПериода = "";
Объект.ПоказательТипа = "";
ИначеЕсли Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж Тогда
Объект.СтатусСоставителя = "06";
Объект.ПоказательОснования = "";
Объект.ПоказательПериода = "";
Объект.ПоказательТипа = "";
ИначеЕсли Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж Тогда
Объект.СтатусСоставителя = "08";
Объект.ПоказательОснования = "0";
Объект.ПоказательПериода = "0";
Объект.ПоказательНомера = "0";
Объект.ПоказательДаты = "0";
Объект.ПоказательТипа = ?(ПрименениеПриказа126н, "", "0");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УправлениеПоказателямиПлатежаВБюджет()
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер()
МассивОпераций = ДенежныеСредстваСерверЛокализация.МассивОперацийПеречисленияВБюджет();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет Тогда
Объект.ПеречислениеВБюджет = Истина;
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж;
Периодичность = "МС";
НомерПериода = Месяц(ТекущаяДата);
ГодПериода = Год(ТекущаяДата);
Объект.ПоказательПериода = Периодичность
+ "."
+ ?(СтрДлина(СокрЛП(НомерПериода)) = 1, "0" + НомерПериода, НомерПериода)
+ "."
+ СтрЗаменить(Строка(ГодПериода), Символы.НПП, "");
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
Объект.ПеречислениеВБюджет = Истина;
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж;
Объект.ПоказательПериода = "";
ИначеЕсли МассивОпераций.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж;
Иначе
Объект.ПеречислениеВБюджет = Ложь;
КонецЕсли;
УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду();
КонецПроцедуры
&НаСервере
Процедура УстановитьСчетУчетаНалогов()
СчетУчетДоИзменения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.НастройкаСчетовУчета, "СчетУчета");
СчетПоТипуНалога = РеглУчетСервер.СчетУчетаПоТипуНалога(Объект.ТипНалога);
Если СчетУчетДоИзменения <> СчетПоТипуНалога Тогда
НоваяНастройка = НастройкаСчетовУчетаКлиентСервер.СоставНастройкиСчетовУчета();
НоваяНастройка.СчетУчета = СчетПоТипуНалога;
Объект.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(
НоваяНастройка, ЭтаФорма);
КонецЕсли;
Если Не ОплатаНДСВБюджетПоОтдельнымОперациям Тогда
Для Каждого СтрокаРасшифровкиПлатежа Из Объект.РасшифровкаПлатежа Цикл
НоваяНастройка = НастройкаСчетовУчетаКлиентСервер.СоставНастройкиСчетовУчета();
НоваяНастройка.СчетУчета = СчетПоТипуНалога;
СтрокаРасшифровкиПлатежа.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(
НоваяНастройка, ЭтаФорма);
СтрокаРасшифровкиПлатежа.ТипСтатьи = 0;
КонецЦикла;
Иначе
Для Каждого СтрокаРасшифровкиПлатежа Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровкиПлатежа.ТипСтатьи = 3;
Если СчетУчетДоИзменения <> СчетПоТипуНалога Тогда
НоваяНастройка.СчетУчета = СчетПоТипуНалога;
СтрокаРасшифровкиПлатежа.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(
НоваяНастройка, ЭтаФорма);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПроверитьЗаполнитьТипПлатежа275ФЗ()
Если Не ЗначениеЗаполнено(Объект.ТипПлатежаФЗ275) Тогда
ПараметрыПлатежа = Новый Структура;
ПараметрыПлатежа.Вставить("ПлатежиПо275ФЗ", Объект.ПлатежиПо275ФЗ);
ПараметрыПлатежа.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
ПараметрыПлатежа.Вставить("ДоговорСУчастникомГОЗ", Объект.ДоговорСУчастникомГОЗ);
ПараметрыПлатежа.Вставить("ОплатаРасходовПоТарифамСГосрегулированием", ОплатаРасходовПоТарифамСГосрегулированием);
ПараметрыПлатежа.Вставить("ИностранныйИсполнительВУтвержденномПеречнеГОЗ", ИностранныйИсполнительВУтвержденномПеречнеГОЗ);
ПараметрыПлатежа.Вставить("БанковскийСчет", Объект.БанковскийСчет);
ДоступныеТипыПлатежа275ФЗ = Справочники.ТипыПлатежейФЗ275.ДоступныеТипыПлатежа275ФЗ(ПараметрыПлатежа);
Если ДоступныеТипыПлатежа275ФЗ.Количество() Тогда
Объект.ТипПлатежаФЗ275 = ДоступныеТипыПлатежа275ФЗ[0];
Иначе
Объект.ТипПлатежаФЗ275 = Неопределено;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПолучитьРасшифровкуПлатежаНДСНалоговогоАгента(АдресТаблицыНалоговыйАгентНДСВХранилище)
ТаблицаНалоговыйАгентНДС = ПолучитьИзВременногоХранилища(АдресТаблицыНалоговыйАгентНДСВХранилище);
Если ТаблицаНалоговыйАгентНДС = Неопределено
ИЛИ ТаблицаНалоговыйАгентНДС.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ТекущаяРасшифровкаПлатежа = Объект.РасшифровкаПлатежа.Выгрузить();
Если ТекущаяРасшифровкаПлатежа.Количество() Тогда
СтрокаЗаполнения = ТекущаяРасшифровкаПлатежа[0];
Иначе
СтрокаЗаполнения = Неопределено;
КонецЕсли;
Объект.РасшифровкаПлатежа.Очистить();
Для Каждого СтрокаНалоговогоПлатежа Из ТаблицаНалоговыйАгентНДС Цикл
СтрокаРасшифровкиПлатежа = Объект.РасшифровкаПлатежа.Добавить();
Если СтрокаЗаполнения <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(СтрокаРасшифровкиПлатежа, СтрокаЗаполнения);
КонецЕсли;
СтрокаРасшифровкиПлатежа.Сумма = СтрокаНалоговогоПлатежа.Сумма;
СтрокаРасшифровкиПлатежа.СтатьяРасходов = ПредопределенноеЗначение("ПланВидовХарактеристик.СтатьиАктивовПассивов.ПустаяСсылка");
СтрокаРасшифровкиПлатежа.ТипСтатьи = 3;
НоваяНастройка = НастройкаСчетовУчетаКлиентСервер.СоставНастройкиСчетовУчета();
НоваяНастройка.СчетУчета = РеглУчетСервер.СчетУчетаПоТипуНалога(Объект.ТипНалога);
НоваяНастройка.Субконто1 = СтрокаНалоговогоПлатежа.Контрагент;
НоваяНастройка.Субконто2 = СтрокаНалоговогоПлатежа.Договор;
НоваяНастройка.Субконто3 = СтрокаНалоговогоПлатежа.ДокументРасчетов;
СтрокаРасшифровкиПлатежа.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(НоваяНастройка, ЭтотОбъект);
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
КонецЦикла;
НастройкаСчетовУчетаСервер.ОбновитьПредставлениеНастройки(ЭтотОбъект, "Объект.РасшифровкаПлатежа");
ПереключательРасшифровки = ?(Объект.РасшифровкаПлатежа.Количество() > 1, 1, 0);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыПлатежаВБюджет(ИсключаяРеквизиты = "")
ЗаполнитьПоСтатистике = Истина;
ОснованиеПеречисленияВБюджет = Неопределено;
Если ЗначениеЗаполнено(Объект.ЗаявкаНаРасходованиеДенежныхСредств) Тогда
ОснованиеПеречисленияВБюджет = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
Объект.ЗаявкаНаРасходованиеДенежныхСредств, "ДокументОснование");
ИначеЕсли ЗначениеЗаполнено(Объект.ДокументОснование) Тогда
ОснованиеПеречисленияВБюджет = Объект.ДокументОснование;
КонецЕсли;
Если ЗначениеЗаполнено(ОснованиеПеречисленияВБюджет)
И ТипЗнч(ОснованиеПеречисленияВБюджет) = Тип("ДокументСсылка.СчетФактураНалоговыйАгент") Тогда
РеквизитыСчетаФактуры = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
ОснованиеПеречисленияВБюджет, "Поставщик, Договор, ДокументОснование");
РеквизитыПлатежа = Новый Структура;
РеквизитыПлатежа.Вставить("СчетУчета", ПланыСчетов.Хозрасчетный.НДСНалоговогоАгента);
РеквизитыПлатежа.Вставить("Субконто1", РеквизитыСчетаФактуры.Поставщик);
РеквизитыПлатежа.Вставить("Субконто2", РеквизитыСчетаФактуры.Договор);
РеквизитыПлатежа.Вставить("Субконто3", РеквизитыСчетаФактуры.ДокументОснование);
ЗаполнитьПоСтатистике = Ложь;
КонецЕсли;
Если ЗаполнитьПоСтатистике Тогда
РеквизитыПлатежа = СписаниеБезналичныхДенежныхСредствЛокализация.ПодобратьРеквизитыПлатежаВБюджет(
Объект, ИсключаяРеквизиты);
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если Не ЗначениеЗаполнено(СтрокаРасшифровки.СтатьяРасходов) Тогда
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаРасшифровки, "Объект.РасшифровкаПлатежа");
КонецЕсли;
КонецЦикла;
ПараметрыВыбораСтатейИАналитик = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
КонецЕсли;
УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду();
УправлениеПоказателямиПлатежаВБюджет();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокКодовВидаДохода()
Элементы.КодВидаДохода.СписокВыбора.Очистить();
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
Для каждого ЭлементСписка Из ПлатежиВБюджетКлиентСервер.КодыВидовДохода(ТекущаяДата,
Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета) Цикл
Элементы.КодВидаДохода.СписокВыбора.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКорректностьЗаполненияПлатежаВБюджет()
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
ПлатежиВБюджет.ПроверитьКорректностьЗаполненияПлатежаВБюджет(ЭтотОбъект, ТекущаяДата);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыПлательщика()
РеквизитыПлательщика = ДенежныеСредстваСерверЛокализация.РеквизитыПлательщика(Объект);
ЗаполнитьЗначенияСвойств(Объект, РеквизитыПлательщика);
КонецПроцедуры
&НаСервере
Процедура УстановитьНадписьРеквизитыПлательщика()
Если ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
НадписьРеквизитыПлательщика = ДенежныеСредстваСерверЛокализация.НадписьРеквизитыПлательщика(
Объект.ИННПлательщика, Объект.КПППлательщика, Объект.ТекстПлательщика, ЮрФизЛицо, Объект.ХозяйственнаяОперация);
Иначе
НадписьРеквизитыПлательщика = "";
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНадписьФайлыДляПередачиВБанк()
Элементы.НадписьФайлыДляПередачиВБанк.Заголовок =
ДенежныеСредстваСерверЛокализация.НадписьФайлыДляПередачиВБанк(Объект.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДоговору(Ссылка)
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
"ПлатежиПо275ФЗ, ДоговорСУчастникомГОЗ, ОплатаРасходовПоТарифамСГосрегулированием,
|БанковскийСчет, ДоговорыСЗаказчиками, ГосударственныйКонтракт, ИностранныйИсполнительВУтвержденномПеречнеГОЗ");
ЗаполнитьЗначенияСвойств(Объект, ЗначенияРеквизитов, "ПлатежиПо275ФЗ, ДоговорСУчастникомГОЗ, БанковскийСчет");
ЗаполнитьЗначенияСвойств(ЭтаФорма, ЗначенияРеквизитов, "ОплатаРасходовПоТарифамСГосрегулированием, ГосударственныйКонтракт");
ДоговорКонтрагента = Ссылка;
ПроверитьЗаполнитьТипПлатежа275ФЗ();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ПроверитьРеквизитыБюджетаНаСервере()
НомерСчетаКонтрагента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "НомерСчета");
Ошибка = ПлатежиВБюджетКлиентСервер.ПроверитьУИН(Объект.ИдентификаторПлатежа,
ПлатежиВБюджетКлиентСервер.АдминистраторНачисленияФедеральныйОрганГосударственнойВласти(НомерСчетаКонтрагента));
Если Не ПустаяСтрока(Ошибка) Тогда
ШаблонТекста = НСтр("ru = '%1
|Если УИН достоверно не известен, не указывайте его (очистите поле).'");
Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, Ошибка);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибка, , "ИдентификаторПлатежа", "Объект");
КонецЕсли;
ДублиУИН = ПлатежиВБюджет.ПроверитьДублиУИН(Объект.ИдентификаторПлатежа, Объект.Ссылка);
Если ДублиУИН.Количество() > 0 Тогда
Для Каждого ОписаниеОшибки Из ДублиУИН Цикл
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ОписаниеОшибки.ТекстОшибки, , "ИдентификаторПлатежа", "Объект");
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоРанееСовершенномуПлатежу(РезультатВыбора)
Объект.ПеречислениеВБюджет = Истина;
Если Не ЗначениеЗаполнено(Объект.ТипНалога) Тогда
Объект.ТипНалога = РезультатВыбора.АналитикаАктивовПассивов;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Объект, РезультатВыбора,, "БанковскийСчет");
Если Не Объект.РасшифровкаПлатежа.Количество() Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецЕсли;
Для Каждого СтрокаПлатежа Из Объект.РасшифровкаПлатежа Цикл
СтрокаПлатежа.СтатьяДвиженияДенежныхСредств = РезультатВыбора.СтатьяДвиженияДенежныхСредств;
КонецЦикла;
ЗаполнитьЗначенияСвойств(Объект, РезультатВыбора, "Подразделение");
Если Не ОплатаНДСВБюджетПоОтдельнымОперациям Тогда
НоваяНастройка = НастройкаСчетовУчетаКлиентСервер.СоставНастройкиСчетовУчета();
ЗаполнитьЗначенияСвойств(НоваяНастройка, РезультатВыбора, "СчетУчета, Субконто1, Субконто2, Субконто3");
Объект.НастройкаСчетовУчета = НастройкаСчетовУчетаСервер.НоваяНастройкаСчетовУчета(НоваяНастройка, ЭтотОбъект);
ПараметрыНастройки = Документы.СписаниеБезналичныхДенежныхСредств.ПараметрыНастройкиСчетовУчета(
Объект.ХозяйственнаяОперация, Объект.ТипНалога);
НастройкаСчетовУчетаСервер.ПриИзмененииПараметровНастройки(ЭтотОбъект, ПараметрыНастройки);
КонецЕсли;
УправлениеПоказателямиПлатежаВБюджет();
УстановитьНадписьРеквизитыПлательщика();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецПроцедуры
&НаСервере
Процедура ОбработатьЗавершениеВыгрузкиПрямойОбмен(Платежи)
ДенежныеСредстваСервер.ЗаписатьДатуВыгрузкиПлатежей(Платежи, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьОтображениеИндексыСПАРК()
ОбновитьОтображениеИндексыСПАРК(Объект.Контрагент);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьОтображениеИндексыСПАРК(Контрагент)
ПараметрыОтображения = Новый Структура("ВариантОтображения", "Однострочный");
СПАРКРискиКлиент.ОтобразитьИндексыСПАРК(
ЭтотОбъект.ИндексыСПАРКРиски,
Неопределено,
Контрагент,
ВидКонтрагентаСПАРК(Объект.Контрагент),
ЭтотОбъект,
ПараметрыОтображения);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВидКонтрагентаСПАРК(Контрагент)
Возврат Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Контрагент);
КонецФункции
&НаСервере
Процедура ЗаполнитьДанныеОбменаСБанком()
Если Не Объект.СписокФизЛиц Тогда
Возврат;
КонецЕсли;
ДанныеДоговора = СписаниеБезналичныхДенежныхСредствЛокализация.ДанныеОбменаСБанкомПоЗарплатномуПроекту(Объект.БанковскийСчет);
Если ДанныеДоговора.КодировкаФайла = "" Тогда
ЗаполнитьЗначенияСвойств(Объект, ДанныеДоговора, , "КодировкаФайла");
Иначе
ЗаполнитьЗначенияСвойств(Объект, ДанныеДоговора);
КонецЕсли;
Если Объект.КодировкаФайла = "" Тогда
Объект.КодировкаФайла = "UTF-8";
КонецЕсли;
УстановитьЗаголовокГруппыДанныеОбменаСБанком();
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокГруппыДанныеОбменаСБанком()
ТекстЗаголовка = СтрШаблон(НСтр("ru = 'Договор обмена с банком № %1 от %2, отделение банка: %3, филиал: %4'"),
?(Объект.НомерДоговораСБанком = "", "-", Объект.НомерДоговораСБанком),
Формат(Объект.ДатаДоговораСБанком, "ДЛФ=D; ДП=-"),
?(Объект.ОтделениеБанка = "", "-", Объект.ОтделениеБанка),
?(Объект.ФилиалОтделенияБанка = "", "-", Объект.ФилиалОтделенияБанка));
Элементы.ГруппаРеквизитыОбменаСБанком.Заголовок = ТекстЗаголовка;
КонецПроцедуры
&НаСервере
Процедура РеквизитДоговораСБанкомПриИзмененииНаСервере()
УстановитьЗаголовокГруппыДанныеОбменаСБанком();
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьФайлРеестра(Результат, ДополнительныеПараметры) Экспорт
ОписаниеФайлов = ВыгрузитьФайлРеестраНаСервере();
Если ЗначениеЗаполнено(Объект.ДатаВыгрузкиРеестра) Тогда
ОписаниеФайла = ОписаниеФайлов.Получить(0);
ТекстОповещения = СтрШаблон(НСтр("ru = 'Новый файл %1 и присоединен к %2'"),
ОписаниеФайла.ИмяФайла, ОписаниеФайла.ВладелецФайла);
ПоказатьОповещениеПользователя(НСтр("ru = 'Создан файл-реестр'"), , ТекстОповещения);
Оповестить("Запись_Файл", Новый Структура);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверкаВыгрузкиРеестраЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
Если ДополнительныеПараметры <> Неопределено Тогда
Если ДополнительныеПараметры.Свойство("Записывать")
И ДополнительныеПараметры.Записывать Тогда
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыЗаписи);
КонецЕсли;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ВыгрузитьФайлРеестра", ЭтотОбъект);
ВыполнитьОбработкуОповещения(Оповещение);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ВыгрузитьФайлРеестраНаСервере()
МассивДокументов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Ссылка);
ЭтоСчетСбербанка = ДенежныеСредстваСерверЛокализация.ЭтоСчетСбербанка(Объект.БанковскийСчет);
ПараметрыОбмена = Новый Соответствие;
ПараметрыОбмена.Вставить(Объект.Ссылка, ЭтоСчетСбербанка);
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("МассивДокументов", МассивДокументов);
СтруктураПараметров.Вставить("УникальныйИдентификаторФормы", УникальныйИдентификатор);
СтруктураПараметров.Вставить("МассивОписанийФайлов", Новый Массив);
СтруктураПараметров.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
СтруктураПараметров.Вставить("НастройкиОбменаСБанком", ПараметрыОбмена);
СписаниеБезналичныхДенежныхСредствЛокализация.ВыгрузитьФайлыОбменаСБанком(СтруктураПараметров);
Если СтруктураПараметров.МассивОписанийФайлов.Количество() <> 0 Тогда
СтрокаМассива = СтруктураПараметров.МассивОписанийФайлов[0];
Если СтрокаМассива.ВладелецФайла = Объект.Ссылка
И ЗначениеЗаполнено(СтрокаМассива.ДвоичныеДанные) Тогда
Объект.ДатаВыгрузкиРеестра = ТекущаяДатаСеанса();
Записать();
КонецЕсли;
КонецЕсли;
Возврат СтруктураПараметров.МассивОписанийФайлов;
КонецФункции
&НаКлиенте
Процедура ПодборПоОстаткамЗавершениеЛокализация(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ПодборПоОстаткамЗавершениеСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодборПоОстаткамЗавершениеСерверЛокализация()
ПодборПоОстаткамЗавершениеСервер();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриИзмененииСервер()
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьБанковскиеСчетаСпискаКонтрагентов()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.УдалитьОплатаСамозанятому
ИЛИ (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику
И Объект.ОперацияССамозанятым) Тогда
Если Объект.БанковскиеСчетаСпискаКонтрагентов.Количество() = 0 Тогда
Объект.БанковскиеСчетаСпискаКонтрагентов.Добавить();
КонецЕсли;
Иначе
Объект.БанковскиеСчетаСпискаКонтрагентов.Очистить();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередВыгрузкойРеестрСамозанятых()
МожноПродолжить = РазрешеноПродолжитьВыгрузкуРеестра();
Если Объект.БанковскиеСчетаСпискаКонтрагентов.Количество() = 0 Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(Нстр("ru = 'Вкладка ""Реестр получателей"" не заполнена.'"));
МожноПродолжить = Ложь;
КонецЕсли;
Если Не МожноПродолжить Тогда
Возврат;
КонецЕсли;
ТекстЗаписи = "";
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Записывать", Ложь);
Если ЗначениеЗаполнено(Объект.Ссылка)
И Модифицированность Тогда
ДополнительныеПараметры.Вставить("Записывать", Истина);
ТекстЗаписи = НСтр("ru = 'Данные изменены и будут записаны в процессе выгрузки.'");
КонецЕсли;
Если Объект.ДатаВыгрузкиРеестра <> '00010101' Тогда
ТекстВопроса = Нстр("ru = 'Ранее выполнялась выгрузка реестра."
+ ?(НЕ ПустаяСтрока(ТекстЗаписи), "
|(" + ТекстЗаписи + ")", "") + "
|Продолжить выгрузку реестра?'");
ИначеЕсли НЕ ПустаяСтрока(ТекстЗаписи) Тогда
ТекстВопроса = ТекстЗаписи + Символы.ПС + Нстр("ru = 'Продолжить выгрузку реестра?'");
Иначе
Оповещение = Новый ОписаниеОповещения("ВыгрузитьФайлРеестра", ЭтотОбъект);
ВыполнитьОбработкуОповещения(Оповещение);
Возврат;
КонецЕсли;
ОповещенияОЗавершении = Новый ОписаниеОповещения(
"ПроверкаВыгрузкиРеестраЗавершение",
ЭтотОбъект,
ДополнительныеПараметры);
Кнопки = РежимДиалогаВопрос.ДаНет;
ПоказатьВопрос(ОповещенияОЗавершении, ТекстВопроса, Кнопки);
КонецПроцедуры
&НаКлиенте
Функция РазрешеноПродолжитьВыгрузкуРеестра()
Результат = Истина;
Если Не Объект.Проведен Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(Нстр("ru = 'Для выгрузки реестра документ должен быть проведен.'"));
Результат = Ложь;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Процедура РасшифровкаПлатежаКонтрагентПриИзмененииСерверЛокализация(ИдентификаторСтроки)
ПараметрыПроцедуры = ДенежныеСредстваСерверЛокализация.ПараметрыПриИзмененииКонтрагентаВРасшифровкеПлатежа(
ЭтотОбъект, ИдентификаторСтроки);
Если ПараметрыПроцедуры <> Неопределено Тогда
ПриИзмененииКонтрагента(
ПараметрыПроцедуры.Контрагент,
ПараметрыПроцедуры.БанковскийСчетКонтрагента,
ПараметрыПроцедуры.ЗаполнитьРасшифровкуПоКонтрагенту,
ПараметрыПроцедуры.ТекущийПартнер,
ПараметрыПроцедуры.ТекущаяСтрокаРасшифровки);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПартнерПриИзмененииСерверЛокализация(ИдентификаторСтроки)
ПараметрыПроцедуры = ДенежныеСредстваСерверЛокализация.ПараметрыПриИзмененииПартнераВРасшифровкеПлатежа(
ЭтотОбъект, ИдентификаторСтроки);
Если ПараметрыПроцедуры <> Неопределено Тогда
ПриИзмененииКонтрагента(
ПараметрыПроцедуры.Контрагент,
ПараметрыПроцедуры.БанковскийСчетКонтрагента,
ПараметрыПроцедуры.ЗаполнитьРасшифровкуПоКонтрагенту,
ПараметрыПроцедуры.ТекущийПартнер,
ПараметрыПроцедуры.ТекущаяСтрокаРасшифровки);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииЛокализацияНаСервере()
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСерверЛокализация(ИдентификаторСтроки)
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер(ИдентификаторСтроки);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВариантыКодировокФайла()
Элементы.КодировкаФайла.СписокВыбора.Очистить();
Элементы.КодировкаФайла.СписокВыбора.Добавить("UTF-8", НСтр("ru = 'UTF-8'"));
Элементы.КодировкаФайла.СписокВыбора.Добавить("windows-1251", НСтр("ru = 'windows-1251'"));
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриОкончанииРедактированияСерверЛокализация(НоваяСтрока, ОтменаРедактирования)
Если НоваяСтрока
И ОтменаРедактирования Тогда
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
Иначе
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьМаксимальнуюДлинуНазначенияПлатежа(ЭлементНазначениеПлатежа, ТипПлатежногоДокумента)
ДоступнаяДлина = ДенежныеСредстваКлиентСерверЛокализация.МаксимальнаяДлинаНазначенияПлатежа(ТипПлатежногоДокумента);
ЭлементНазначениеПлатежа.ОграничениеТипа = Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(ДоступнаяДлина));
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Инициализация
#Если НаСервере Тогда
Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
ПодключеныОбработчикиЛокализация = Истина;
ПодключаемыеОбработчикиСобытийФормы = Новый Массив;
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриСозданииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЧтенииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриОткрытии");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаВыбора");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписью");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписьюНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписи");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаОповещения");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийФормы Цикл
УстановитьДействие(Обработчик, "Подключаемый_" + Обработчик + "Локализация");
КонецЦикла;
КомандыЛокализация = Новый Массив;
КомандыЛокализация.Добавить("ПодборПоОстаткам");
Для каждого Обработчик Из КомандыЛокализация Цикл
Команда = Команды.Найти(Обработчик);
Если Команда <> Неопределено Тогда
Команда.Действие = "Подключаемый_" + Обработчик + "Локализация";
КонецЕсли;
КонецЦикла;
ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие;
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Дата", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ТипПлатежногоДокумента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ХозяйственнаяОперация", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчет", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчетКонтрагента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Контрагент", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Получатель", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ПодотчетноеЛицо", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчетПолучатель", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("СуммаДокумента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ОперацияССамозанятым", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Договор", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Валюта", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("СписокФизЛицВключено", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа", "ПриИзменении,Выбор,ПриНачалеРедактирования,ПриОкончанииРедактирования");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаКонтрагент","ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаПартнер", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаДоговорКредитаДепозита", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияДоговорКредитаДепозита", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияОбъектРасчетов", "ПриИзменении");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
Если Элементы.Найти(Обработчик.Ключ) <> Неопределено Тогда
СписокСобытий = СтрРазделить(Обработчик.Значение, ",");
Для Каждого Событие Из СписокСобытий Цикл
Элементы[Обработчик.Ключ].УстановитьДействие(
Событие, "Подключаемый_" + Обработчик.Ключ + Событие + "Локализация");
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
#КонецЕсли
#КонецОбласти