#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыВыбораСтатейИАналитик =
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
Если Параметры.Свойство("Основание") Тогда
Основание = Параметры.Основание;
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Объект.Закрыта = Ложь;
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтаФорма);
Элементы.РасшифровкаБезРазбиенияДатаПогашения.ТолькоПросмотр = Не ПравоДоступа(
"Редактирование",
Метаданные.Документы.ЗаявкаНаРасходованиеДенежныхСредств.ТабличныеЧасти.РасшифровкаПлатежа.Реквизиты.ДатаПогашения);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтаФорма);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиент.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Основание);
ТекущаяДата = Объект.Дата;
Если ПериодАвансовогоОтчета = НСтр("ru = 'Через неделю'") Тогда
Объект.ДатаАвансовогоОтчета = ?(ЗначениеЗаполнено(Объект.ДатаПлатежа), Объект.ДатаПлатежа, ТекущаяДата()) + 7 * 24 * 3600;
КонецЕсли;
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПараметрыВыбораСтатейИАналитик =
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ПриЧтенииСозданииНаСервере();
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтаФорма);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "Запись_СписаниеБезналичныхДенежныхСредств"
Или ИмяСобытия = "Запись_РасходныйКассовыйОрдер"
Или ИмяСобытия = "Запись_ОперацияПоПлатежнойКарте" Тогда
ЗаполнитьДанныеОбОплатеЗаявки();
КонецЕсли;
Если ИмяСобытия = "СчитанПодарочныйСертификат"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
ОбработатьПодарочныйСертификат(Параметр.ПодарочныйСертификат);
КонецЕсли;
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
Если Не ПереключательРасшифровки Тогда
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ДополнительныеСвойства.Вставить("РасшифровкаБезРазбиения", Истина);
Если Не ДокументОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ПроверяемыеРеквизиты.Очистить();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплаты")
И Не ИспользоватьНачислениеЗарплатыУТ
И Объект.ХозяйственнаяОперацияПоЗарплате = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику")
И Объект.СписокФизЛиц Тогда
ТабличнаяЧасть = "ЛицевыеСчетаСотрудников";
Иначе
ТабличнаяЧасть = "РасшифровкаПлатежа";
КонецЕсли;
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ФинансыКлиент.ПересчитатьСуммуДокументаПоРасшифровкеПлатежа(
ЭтаФорма,
Новый ОписаниеОповещения("ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение", ЭтотОбъект, ДополнительныеПараметры),
ТабличнаяЧасть);
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса Тогда
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ДополнительныеПараметры.ПараметрыЗаписи,,Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект.ДополнительныеСвойства);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьДанныеОбОплатеЗаявки();
ЗаполнитьНалогообложениеНДС(Ложь);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
НастроитьЗависимыеЭлементыФормыНаСервере();
РазблокироватьДанныеФормыДляРедактирования();
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
НастроитьЗависимыеЭлементыФормы("Модифицированность");
Оповестить("Запись_ЗаявкаНаРасходованиеДенежныхСредств", ПараметрыЗаписи, Объект.Ссылка);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтаФорма, Объект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
Если Объект.ДатаПлатежа < Объект.Дата Тогда
Объект.ДатаПлатежа = Объект.Дата;
КонецЕсли;
ТекущаяДата = Объект.Дата;
ДатаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДатаПриИзмененииНаСервере()
ЗаполнитьКурсВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьНалогообложениеНДС();
ЗаполнитьСписокКодовВидаДохода();
ПлатежиВБюджет.РеквизитыПлатежаВБюджетПоУмолчанию(Объект);
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЖелательнаяДатаПлатежаПриИзменении(Элемент)
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.ЖелательнаяДатаПлатежа);
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
НуженПереходНаСервер = ХозяйственнаяОперацияПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ХозяйственнаяОперацияПриИзмененииСервер();
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Функция ХозяйственнаяОперацияПриИзмененииКлиент()
Если СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСервер()
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаРасшифровки, "Объект.РасшифровкаПлатежа");
КонецЦикла;
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
МенеджерДокумента = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Документ.ЗаявкаНаРасходованиеДенежныхСредств");
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыПоСпискуРеквизитовХозяйственнойОперации(Объект, МенеджерДокумента);
ТекущийКонтрагент = Объект.Контрагент;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплаты Тогда
Объект.ХозяйственнаяОперацияПоЗарплате = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета;
Иначе
Объект.ХозяйственнаяОперацияПоЗарплате = Неопределено;
КонецЕсли;
СохраненнаяХозяйственнаяОперацияПоЗарплате = Объект.ХозяйственнаяОперацияПоЗарплате;
Если ЗначениеЗаполнено(Объект.ДокументОснование)
И ДоступныеОперацииПоОснованию.НайтиПоЗначению(Объект.ХозяйственнаяОперация) = Неопределено Тогда
Объект.ДокументОснование = Неопределено;
ДоступныеОперацииПоОснованию.Очистить();
КонецЕсли;
УстановитьФормыОплатыПоХозяйственнойОперации();
ФормаОплатыОграничена = ФормаОплатыОграничена();
УстановитьФормуОплаты();
ПроверитьИОчиститьОрганизацию();
ПроверитьИОчиститьОрганизациюПолучатель();
Если Не СчетСоответствуетВладельцу() Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
Объект.СтатьяДвиженияДенежныхСредств =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(
?(Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплаты,
Объект.ХозяйственнаяОперацияПоЗарплате, Объект.ХозяйственнаяОперация));
Если Не ЗначениеЗаполнено(Партнер) Тогда
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Объект.Контрагент, Объект.ХозяйственнаяОперация);
КонецЕсли;
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровки.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(
СтрокаРасшифровки.ОбъектРасчетов, Объект.ХозяйственнаяОперация);
Если Не ЗначениеЗаполнено(СтрокаРасшифровки.Партнер) Тогда
СтрокаРасшифровки.Партнер = Партнер;
КонецЕсли;
КонецЦикла;
Объект.СписокФизЛиц = Ложь;
СписокФизЛиц = 0;
Объект.ПеречислениеСотрудникуЧерезБанк = Ложь;
ПеречислениеСотрудникуЧерезБанк = 0;
Если Не Объект.ПеречислениеВБюджет Тогда
Объект.ИдентификаторПлатежа = "";
КонецЕсли;
ДенежныеСредстваСервер.ОпределитьВалютныйПлатеж(ЭтотОбъект);
Если Объект.ПлатежСКонвертацией
И ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
Объект.БанковскийСчет, "ВалютаДенежныхСредств");
ВалютаСчетаПлательщика = Объект.Валюта;
Если Не ПодключеныОбработчикиЛокализация Тогда
ОбновитьДанныеПоВалюте();
КонецЕсли;
КонецЕсли;
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента);
ДенежныеСредстваСервер.ПроверитьЗаполнитьНаправлениеДеятельности(Объект, Объект.НаправлениеДеятельности);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
Если Не ПодключеныОбработчикиЛокализация Тогда
УправлениеЭлементамиФормы();
КонецЕсли;
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаПлатежаПартнер", Объект.ХозяйственнаяОперация);
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаБезРазбиенияПартнер", Объект.ХозяйственнаяОперация);
ПараметрыВыбораСтатейИАналитик =
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
НуженПереходНаСервер = СуммаДокументаПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
СуммаДокументаПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВалютаПриИзменении(Элемент)
НуженПереходНаСервер = ВалютаПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ВалютаПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСервер()
УстановитьПараметрыВыбораОрганизацииПолучателя();
УстановитьПараметрыВыбораДоговоровКредитовДепозитов(Объект.Контрагент);
ПроверитьИОчиститьОрганизациюПолучатель();
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.КонвертацияВалюты
И Не Объект.ПеречислениеВБюджет Тогда
Объект.ИдентификаторПлатежа = "";
КонецЕсли;
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
Если Не ЗначениеЗаполнено(Объект.Валюта) Тогда
Объект.Валюта = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Организация) И ЗначениеЗаполнено(Объект.ФормаОплатыЗаявки) Тогда
СтруктураПараметров = ДенежныеСредстваСервер.ПараметрыЗаполненияБанковскогоСчетаОрганизацииПоУмолчанию();
СтруктураПараметров.Организация = Объект.Организация;
СтруктураПараметров.ФормаОплаты = Объект.ФормаОплатыЗаявки;
СтруктураПараметров.БанковскийСчет = Объект.БанковскийСчет;
Если Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеПлатежа Тогда
СтруктураПараметров.Валюта = Объект.Валюта;
КонецЕсли;
Объект.БанковскийСчет = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(СтруктураПараметров);
СтруктураПараметров = ДенежныеСредстваСервер.ПараметрыЗаполненияКассыОрганизацииПоУмолчанию();
СтруктураПараметров.Организация = Объект.Организация;
СтруктураПараметров.ФормаОплаты = Объект.ФормаОплатыЗаявки;
СтруктураПараметров.Касса = Объект.Касса;
Если Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеПлатежа Тогда
СтруктураПараметров.Валюта = Объект.Валюта;
КонецЕсли;
Объект.Касса = ЗначениеНастроекПовтИсп.ПолучитьКассуОрганизацииПоУмолчанию(СтруктураПараметров);
КонецЕсли;
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Организация");
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Организация, "ЮрФизЛицо");
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
Иначе
ФилиалыОрганизации.Очистить();
КонецЕсли;
Если Не ПодключеныОбработчикиЛокализация Тогда
Если ТекущийБанковскийСчет <> Объект.БанковскийСчет Тогда
БанковскийСчетПриИзмененииСервер();
КонецЕсли;
Если ТекущаяВалюта <> Объект.Валюта Тогда
ОбновитьДанныеПоВалюте();
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента);
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
Если Не ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ЗаполнитьНалогообложениеНДС();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПоЗарплатеПриИзменении(Элемент)
НуженПереходНаСервер = ХозяйственнаяОперацияПоЗарплатеПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ХозяйственнаяОперацияПоЗарплатеПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ХозяйственнаяОперацияПоЗарплатеПриИзмененииКлиент()
Если СохраненнаяХозяйственнаяОперацияПоЗарплате = Объект.ХозяйственнаяОперацияПоЗарплате Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ХозяйственнаяОперацияПоЗарплатеПриИзмененииСервер()
Если СохраненнаяХозяйственнаяОперацияПоЗарплате <> Объект.ХозяйственнаяОперацияПоЗарплате Тогда
Объект.СтатьяДвиженияДенежныхСредств =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(Объект.ХозяйственнаяОперацияПоЗарплате);
КонецЕсли;
СохраненнаяХозяйственнаяОперацияПоЗарплате = Объект.ХозяйственнаяОперацияПоЗарплате;
УстановитьФормыОплатыПоХозяйственнойОперации();
ФормаОплатыОграничена = ФормаОплатыОграничена();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ФормаОплатыПриИзменении(Элемент)
ТипыРаспределения = Новый Массив;
Для каждого СтрокаРаспределения Из Объект.РаспределениеПоСчетам Цикл
ТипыРаспределения.Добавить(ТипЗнч(СтрокаРаспределения.БанковскийСчетКасса));
КонецЦикла;
НесоответствиеТиповРаспределения = Ложь;
Если ФормаОплаты = "Наличная" Тогда
НесоответствиеТиповРаспределения =
(ТипыРаспределения.Найти(Тип("СправочникСсылка.БанковскиеСчетаОрганизаций")) <> Неопределено);
Объект.БанковскийСчет = Неопределено;
ВалютаСчетаПлательщика = Неопределено;
ИначеЕсли ФормаОплаты = "Безналичная" Тогда
НесоответствиеТиповРаспределения =
(ТипыРаспределения.Найти(Тип("СправочникСсылка.Кассы")) <> Неопределено);
Объект.Касса = Неопределено;
КонецЕсли;
Если НесоответствиеТиповРаспределения Тогда
ТекстВопроса = НСтр("ru = 'Выбранная форма оплаты отличается от указанной в распределении по счетам. Удалить некорректные строки распределения?'");
Оповещение = Новый ОписаниеОповещения("ФормаОплатыПриИзмененииЗавершение", ЭтаФорма, Неопределено);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Иначе
ФормаОплатыПриИзмененииФрагмент();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ФормаОплатыПриИзмененииЗавершение(Результат, Параметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
ОчиститьРаспределениеПоСчетамПоФормеОплаты();
Иначе
УстановитьФормуОплаты();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ФормаОплатыПриИзмененииФрагмент()
Если ФормаОплаты = "Наличная" Тогда
Объект.ФормаОплатыНаличная = Истина;
Объект.ФормаОплатыБезналичная = Ложь;
Объект.ФормаОплатыПлатежнаяКарта = Ложь;
Объект.ФормаОплатыЗаявки = ПредопределенноеЗначение("Перечисление.ФормыОплаты.Наличная");
ИначеЕсли ФормаОплаты = "Безналичная" Тогда
Объект.ФормаОплатыНаличная = Ложь;
Объект.ФормаОплатыБезналичная = Истина;
Объект.ФормаОплатыПлатежнаяКарта = Ложь;
Объект.ФормаОплатыЗаявки = ПредопределенноеЗначение("Перечисление.ФормыОплаты.Безналичная");
ИначеЕсли ФормаОплаты = "Любая" Тогда
Объект.ФормаОплатыНаличная = Истина;
Объект.ФормаОплатыБезналичная = Истина;
Объект.ФормаОплатыПлатежнаяКарта = Ложь;
Объект.ФормаОплатыЗаявки = Неопределено;
ИначеЕсли ФормаОплаты = "ПлатежнаяКарта" Тогда
Объект.ФормаОплатыНаличная = Ложь;
Объект.ФормаОплатыБезналичная = Ложь;
Объект.ФормаОплатыПлатежнаяКарта = Истина;
Объект.ФормаОплатыЗаявки = ПредопределенноеЗначение("Перечисление.ФормыОплаты.ПлатежнаяКарта");
Иначе
Объект.ФормаОплатыНаличная = Ложь;
Объект.ФормаОплатыБезналичная = Ложь;
Объект.ФормаОплатыПлатежнаяКарта = Ложь;
КонецЕсли;
ФормаОплатыЗаявкиПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ФормаОплатыЗаявкиПриИзмененииСервер()
Если Объект.ФормаОплатыЗаявки <> Перечисления.ФормыОплаты.Безналичная Тогда
Объект.ПеречислениеСотрудникуЧерезБанк = Ложь;
ПеречислениеСотрудникуЧерезБанк = 0;
ПеречислениеСотрудникуЧерезБанкПриИзмененииНаСервере();
КонецЕсли;
ЗаполнитьРеквизитыДокументаПоФормеОплаты();
УстановитьПризнакПлатежаСКонвертацией();
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьВалютныйПлатежЛокализация();
УстановитьПараметрыВыбораБанковскогоСчетаКассы();
УстановитьПараметрыВыбораБанковскогоСчетаКонтрагента(Объект, Элементы.БанковскийСчетКонтрагента);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчетаКассыПолучателя(Объект, Элементы.БанковскийСчетПолучатель, Ложь);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораБанковскогоСчетаКассыПолучателя(Объект, Элементы.КассаПолучатель);
УстановитьПараметрыВыбораДоговоровКредитовДепозитов(Объект.Контрагент);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетПриИзменении(Элемент)
БанковскийСчетПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПриИзмененииСервер()
ВалютаСчетаПлательщика = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
Если ЗначениеЗаполнено(ВалютаСчетаПлательщика)
И Объект.ПланированиеСуммы <> Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеВзаиморасчетов Тогда
Объект.Валюта = ВалютаСчетаПлательщика;
КонецЕсли;
ОбновитьДанныеПоВалюте();
ТекущийБанковскийСчет = Объект.БанковскийСчет;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
Если ТекущийКонтрагент <> Объект.Контрагент Тогда
Если Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
Объект.ИдентификаторПлатежа = "";
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Контрагент");
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Контрагент");
КонецЕсли;
ПриИзмененииКонтрагента(Объект.Контрагент, Объект.БанковскийСчетКонтрагента, Объект.СписокКонтрагентов = Ложь);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОплатыНаПлатежнуюКарту Тогда
ПараметрыОтбора = Справочники.ДоговорыЭквайринга.ПараметрыОтбораДоговораЭквайринга();
ПараметрыОтбора.Организация = Объект.Организация;
ПараметрыОтбора.Эквайер = Объект.Контрагент;
ПараметрыОтбора.БанковскийСчет = Объект.БанковскийСчет;
Объект.ДоговорЭквайринга = Справочники.ДоговорыЭквайринга.ДоговорЭквайрингаПоУмолчанию(ПараметрыОтбора);
Если ЗначениеЗаполнено(Объект.ДоговорЭквайринга) Тогда
ДоговорЭквайрингаПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
Если ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "Закрыт") Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
ВалютаПолучателя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "ВалютаДенежныхСредств");
Если (Объект.Валюта <> ВалютаПолучателя
И Объект.ПлатежСКонвертацией)
Или Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Наличная Тогда
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
ЗаполнитьНазначениеПлатежаПоСчетуПолучателя();
КонецЕсли;
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
ТекущийКонтрагент = Объект.Контрагент;
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ДоговорЭквайрингаПриИзменении(Элемент)
ДоговорЭквайрингаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорЭквайрингаПриИзмененииНаСервере()
ЗначенияРеквизитов = Справочники.ДоговорыЭквайринга.РеквизитыДоговора(Объект.ДоговорЭквайринга);
Объект.СтатьяДвиженияДенежныхСредств = ЗначенияРеквизитов.СтатьяДвиженияДенежныхСредствВозврат;
Объект.ОтражатьКомиссию = (ЗначенияРеквизитов.СпособОтраженияКомиссии = Перечисления.СпособыОтраженияЭквайринговойКомиссии.ПриЗачислении
И ЗначенияРеквизитов.ВзимаетсяКомиссияПриВозврате);
Если Объект.ОтражатьКомиссию Тогда
Если ЗначенияРеквизитов.ФиксированнаяСтавкаКомиссии Тогда
СтавкаКомиссии = ЗначенияРеквизитов.СтавкаКомиссии;
Объект.СуммаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСуммуКомиссии(Объект.СуммаДокумента, СтавкаКомиссии);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Объект.СтатьяРасходов = ЗначенияРеквизитов.СтатьяРасходов;
Объект.АналитикаРасходов = ЗначенияРеквизитов.АналитикаРасходов;
Объект.Подразделение = ЗначенияРеквизитов.ПодразделениеРасходов;
Объект.НаправлениеДеятельности = ЗначенияРеквизитов.НаправлениеДеятельности;
КонецЕсли;
ПараметрыВыбораСтатейИАналитик = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПараметрыВыбораСтатейИАналитик(
Объект.ХозяйственнаяОперация, Объект.ОтражатьКомиссию);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетКонтрагентаПриИзменении(Элемент)
БанковскийСчетКонтрагентаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииНаСервере()
ЗаполнитьВалютуПоСчетуПолучателя(Объект.БанковскийСчетКонтрагента);
Если Не ЗначениеЗаполнено(Объект.НазначениеПлатежа) Тогда
ЗаполнитьНазначениеПлатежаПоСчетуПолучателя();
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ПланированиеСуммыПриИзменении(Элемент)
ПланированиеСуммыПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПланированиеСуммыПриИзмененииСервер()
Если Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеПлатежа Тогда
Если Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Наличная Тогда
Если ЗначениеЗаполнено(Объект.Касса) Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Касса, "ВалютаДенежныхСредств");
КонецЕсли;
Иначе
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
И ЗначениеЗаполнено(Объект.БанковскийСчетПолучатель) Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетПолучатель, "ВалютаДенежныхСредств");
ИначеЕсли ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "ВалютаДенежныхСредств");
ИначеЕсли ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
КонецЕсли;
КонецЕсли;
Иначе
МассивВалют = Новый Массив;
Для Каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.ВалютаВзаиморасчетов)
И МассивВалют.Найти(СтрокаТаблицы.ВалютаВзаиморасчетов) = Неопределено Тогда
МассивВалют.Добавить(СтрокаТаблицы.ВалютаВзаиморасчетов);
КонецЕсли;
КонецЦикла;
Если МассивВалют.Количество() = 1 Тогда
Объект.Валюта = МассивВалют[0];
Иначе
Объект.Валюта = Неопределено;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Валюта) Тогда
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Валюта");
ОчиститьДанныеПоФормеОплаты();
УстановитьПризнакПлатежаСКонвертацией(Объект.ПлатежСКонвертацией);
Если Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеВзаиморасчетов Тогда
Для каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
СтрокаТаблицы.Сумма = СтрокаТаблицы.СуммаВзаиморасчетов;
СтрокаТаблицы.КурсЧислительВзаиморасчетов = 1;
СтрокаТаблицы.КурсЗнаменательВзаиморасчетов = 1;
КонецЦикла;
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
Иначе
ДенежныеСредстваСервер.ПересчетСуммДокументаВВалюту(Объект, ТекущаяВалюта, Объект.Валюта);
КонецЕсли;
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы);
ТребуетсяИнформацияДляРегулирующихОрганов = (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Валюта, "Код") = "980");
ПроверитьСоответствиеВалют();
ЗаполнитьРеквизитыДокументаПоФормеОплаты();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ТекущаяВалюта = Объект.Валюта;
Иначе
ПослеИзмененияВалюты();
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ПодотчетноеЛицоПриИзменении(Элемент)
ПодотчетноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСервер()
Если (Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента)
Или Не СчетСоответствуетВладельцу())
И Не Объект.ПеречислениеСотрудникуЧерезБанк Тогда
Объект.БанковскийСчетКонтрагента =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
КонецЕсли;
УправлениеЭлементамиФормы();
НастроитьЗависимыеЭлементыФормыНаСервере("ПодотчетноеЛицо");
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПолучательПриИзменении(Элемент)
ОрганизацияПолучательПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПолучательПриИзмененииСервер()
Если ЗначениеЗаполнено(Объект.ОрганизацияПолучатель) Тогда
Объект.БанковскийСчетПолучатель =
Справочники.БанковскиеСчетаОрганизаций.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(Объект.ОрганизацияПолучатель, Объект.Валюта);
УправлениеЭлементамиФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СтатусПриИзменении(Элемент)
Если ТекущийСтатус <> Объект.Статус Тогда
СтатусПриИзмененииСервер();
ТекущийСтатус = Объект.Статус;
КонецЕсли;
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.ЖелательнаяДатаПлатежа);
КонецПроцедуры
&НаСервере
Процедура СтатусПриИзмененииСервер()
Если (Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована
Или Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате)
И Не ЗначениеЗаполнено(Объект.ДатаПлатежа)
И ЗначениеЗаполнено(Объект.ЖелательнаяДатаПлатежа) Тогда
Объект.ДатаПлатежа = Макс(Объект.Дата, Объект.ЖелательнаяДатаПлатежа);
КонецЕсли;
Если Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована
Или ТекущийСтатус <> Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована
И Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате Тогда
Объект.КтоРешил = Пользователи.ТекущийПользователь();
КонецЕсли;
УстановитьСписокСтатусов();
НастроитьЗависимыеЭлементыФормыНаСервере("Статус");
КонецПроцедуры
&НаКлиенте
Процедура ВалютаКонвертацииПриИзменении(Элемент)
ВалютаКонвертацииПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КурсКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецПроцедуры
&НаКлиенте
Процедура СверхЛимитаПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы(Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура СуммаКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("СуммаКонвертации");
Если Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Объект.РасшифровкаПлатежа[0].Сумма = Объект.СуммаДокумента;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьОплатаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("КлючВарианта", "ОплатаЗаявокНаРасходованиеДенежныхСредств");
ПараметрыФормы.Вставить("КлючНазначенияИспользования", "ОплатаЗаявокНаРасходованиеДенежныхСредств");
ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыФормы.Вставить("ВидимостьКомандВариантовОтчетов", Ложь);
Отбор = Новый Структура;
Отбор.Вставить("ЗаявкаНаРасходованиеДенежныхСредств", Объект.Ссылка);
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("Отчет.ОплатаЗаявокНаРасходованиеДенежныхСредств.Форма", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница = Элементы.СтраницаРасшифровка И Не ПереключательРасшифровки И Не ТолькоПросмотр Тогда
РасшифровкаПлатежаПриНачалеРедактирования(Элемент, Ложь, Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура БанковскийСчетПолучательПриИзменении(Элемент)
БанковскийСчетПолучательПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПолучательПриИзмененииНаСервере()
ЗаполнитьВалютуПоСчетуПолучателя(Объект.БанковскийСчетПолучатель);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура КодыИнструкцийБанкуНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокИнструкций = Новый Массив;
Для каждого СтрокаИнструкции Из Объект.ИнструкцииБанку Цикл
СписокИнструкций.Добавить(СтрокаИнструкции.Инструкция);
КонецЦикла;
ПараметрыВыбораИнструкций = Новый Структура;
ПараметрыВыбораИнструкций.Вставить("СписокИнструкций", СписокИнструкций);
ПараметрыВыбораИнструкций.Вставить("ТолькоПросмотр", Элемент.ТолькоПросмотр);
ОткрытьФорму("Справочник.ИнструкцииБанку.ФормаВыбора",
ПараметрыВыбораИнструкций,
ЭтаФорма,,,,
Новый ОписаниеОповещения("ПослеВыбораИнструкцийБанку", ЭтотОбъект),
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораИнструкцийБанку(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) = Тип("Массив") Тогда
Модифицированность = Истина;
Объект.ИнструкцииБанку.Очистить();
Для каждого НоваяИнструкция Из Результат Цикл
Объект.ИнструкцииБанку.Добавить().Инструкция = НоваяИнструкция;
КонецЦикла;
КодыИнструкцийБанку = НадписьКодыИнструкцийБанку(Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИнформацияДляРегулирующихОргановНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьВводСтроки(Новый ОписаниеОповещения("ПослеВводаСтрокиИнформацияДляРегулирующихОрганов", ЭтотОбъект),
Объект.ИнформацияДляРегулирующихОрганов, НСтр("ru = 'Информация для регулятора (77B):'"),, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВводаСтрокиИнформацияДляРегулирующихОрганов(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено И Объект.ИнформацияДляРегулирующихОрганов <> Результат Тогда
Модифицированность = Истина;
Объект.ИнформацияДляРегулирующихОрганов = Результат;
ИнформацияДляРегулирующихОрганов = НадписьИнформацияДляРегулирующихОрганов(Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокФизЛицПриИзменении(Элемент)
Объект.СписокФизЛиц = Булево(СписокФизЛиц);
Если Объект.СписокФизЛиц Тогда
СписокФизЛицПриИзмененииНаСервере();
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("СписокФизЛиц");
КонецПроцедуры
&НаКлиенте
Процедура ПериодАвансовогоОтчетаПриИзменении(Элемент)
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.ДатаПлатежа);
НастроитьЗависимыеЭлементыФормы("ПериодАвансовогоОтчетаДата");
КонецПроцедуры
&НаКлиенте
Процедура ПериодАвансовогоОтчетаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ВыполнитьПослеВыбораДаты", ЭтотОбъект);
ДенежныеСредстваКлиент.ПериодАвансовогоОтчетаОбработкаВыбора(
Элемент, ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма, Объект.ЖелательнаяДатаПлатежа, Оповещение);
ПериодАвансовогоОтчетаДата = (ТипЗнч(ВыбранноеЗначение) = Тип("Дата") Или ВыбранноеЗначение = "ДоДаты");
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПослеВыбораДаты(ВыбраннаяДата, Параметры) Экспорт
ПериодАвансовогоОтчетаДата = (ТипЗнч(ПериодАвансовогоОтчета) = Тип("Дата"));
НастроитьЗависимыеЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииНаСервере()
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(ТекущаяСтрока, РеквизитыДоговора);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьНалогообложениеНДС();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорВозвратаСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДенежныеСредстваКлиент.ОткрытьСозданиеДоговораВозврата(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СуммаКомиссииПриИзменении(Элемент)
Если Объект.СуммаДокумента <> 0 Тогда
СтавкаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСтавкуКомиссии(Объект.СуммаДокумента, Объект.СуммаКомиссии);
Иначе
СтавкаКомиссии = 0;
КонецЕсли;
Элементы.ГруппаКомиссия.Заголовок = ЗаголовокЭквайринговойКомиссии(Объект.СуммаКомиссии, Объект.Валюта, СтавкаКомиссии);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СтатьяРасходовНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура АналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ДекорацияВалютыИКурсПлатежаНажатиеЗавершение", ЭтотОбъект);
ДенежныеСредстваКлиент.ВалютыИКурсПлатежаНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере()
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаКлиенте
Процедура ПеречислениеСотрудникуЧерезБанкПриИзменении(Элемент)
Если ПеречислениеСотрудникуЧерезБанк = 1 Тогда
ФормаОплаты = "Безналичная";
Иначе
ФормаОплаты = "Любая";
КонецЕсли;
ФормаОплатыПриИзменении(Элемент);
ПеречислениеСотрудникуЧерезБанкПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПеречислениеСотрудникуЧерезБанкПриИзмененииНаСервере()
Объект.ПеречислениеСотрудникуЧерезБанк = Булево(ПеречислениеСотрудникуЧерезБанк);
Если НЕ Объект.ПеречислениеСотрудникуЧерезБанк Тогда
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаЗаймаСотруднику
ИЛИ (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплаты
И Объект.ХозяйственнаяОперацияПоЗарплате = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета) Тогда
Объект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.ПодотчетноеЛицо, Объект.Валюта);
Иначе
Если Объект.СписокФизЛиц Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
ОбновитьДанныеПоВалюте();
КонецЕсли;
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент, Объект.Валюта);
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("ПеречислениеСотрудникуЧерезБанк");
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОчиститьСообщения();
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияИндексыСПАРКРискиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СПАРКРискиКлиент.ОбработкаНавигационнойСсылки(
ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлательщикаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("ТолькоПросмотр", ТолькоПросмотр);
СтруктураПараметров.Вставить("Объект", Объект);
СтруктураПараметров.Вставить("ЮрФизЛицо", ЮрФизЛицо);
ОткрытьФорму("Документ.СписаниеБезналичныхДенежныхСредств.Форма.РеквизитыПлательщика", СтруктураПараметров, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИдентификаторПлатежаПриИзменении(Элемент)
Если Объект.ПеречислениеВБюджет Тогда
ОчиститьСообщения();
ПроверитьРеквизитыБюджетаНаСервере();
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПлатежиПо275ФЗПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТипПлатежаФЗ275ПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПоВедомостямПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ТипНалогаПриИзменении(Элемент)
ТипНалогаПриИзмененииНаСервере();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлатежаВБюджетНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТолькоПросмотр", ТолькоПросмотр);
ПараметрыФормы.Вставить("ВидПеречисленияВБюджет", Объект.ВидПеречисленияВБюджет);
ПараметрыФормы.Вставить("КодБК", Объект.КодБК);
ПараметрыФормы.Вставить("КодОКАТО", Объект.КодОКАТО);
ПараметрыФормы.Вставить("ПоказательДаты", Объект.ПоказательДаты);
ПараметрыФормы.Вставить("ПоказательНомера", Объект.ПоказательНомера);
ПараметрыФормы.Вставить("ПоказательОснования", Объект.ПоказательОснования);
ПараметрыФормы.Вставить("ПоказательПериода", Объект.ПоказательПериода);
ПараметрыФормы.Вставить("ПоказательТипа", Объект.ПоказательТипа);
ПараметрыФормы.Вставить("СтатусСоставителя", Объект.СтатусСоставителя);
ПараметрыФормы.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
ПараметрыФормы.Вставить("ПрименениеПриказа107н", ПрименениеПриказа107н);
ПараметрыФормы.Вставить("ПрименениеПриказа126н", ПрименениеПриказа126н);
ПараметрыФормы.Вставить("ТекущаяДата", ТекущаяДата);
ПараметрыФормы.Вставить("ТипНалога", Объект.ТипНалога);
Оповещение = Новый ОписаниеОповещения("НадписьРеквизитыПлатежаВБюджетНажатиеЗавершение", ЭтотОбъект);
ОткрытьФорму(
"ОбщаяФорма.РеквизитыПлатежаВБюджет",
ПараметрыФормы,
ЭтотОбъект,,,,
Оповещение,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПеречислениеВБюджетПриИзменении(Элемент)
ПеречислениеВБюджетПриИзмененииСервер();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура СписокКонтрагентовПриИзменении(Элемент)
СписокКонтрагентовПриИзмененииСервер();
ФормаОплатыОграничена = ФормаОплатыОграниченаЛокализация();
Если Объект.СписокКонтрагентов
И ФормаОплаты <> "Безналичная" Тогда
ФормаОплаты = "Безналичная";
ОчиститьРаспределениеПоСчетамПоФормеОплаты();
Иначе
НастроитьЗависимыеЭлементыФормы();
КонецЕсли;
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура КратностьКурсаКонвертацииПриИзменении(Элемент)
КратностьКурсаКонвертацииПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЗакрытаПриИзменении(Элемент)
НастроитьЗависимыеЭлементыФормы("Закрыта");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа
&НаКлиенте
Процедура ПереключательРасшифровкиПриИзменении(Элемент)
Если Не ПереключательРасшифровки Тогда
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
РасшифровкаПлатежаПриНачалеРедактирования(Элементы.РасшифровкаПлатежа, Истина, Ложь);
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Если Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Неопределено Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
КонецЕсли;
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() > 1 Тогда
ОчиститьСообщения();
ТекстСообщения = НСтр("ru = 'Переключение в режим без разбиения невозможно, если в расшифровке платежа введено более одной строки!'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
ПереключательРасшифровки = 1;
КонецЕсли;
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриАктивизацииЯчейки(Элемент)
КолонкаТаблицы = Элементы.РасшифровкаПлатежа.ТекущийЭлемент;
Если КолонкаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
Если КолонкаТаблицы.Имя = "РасшифровкаПлатежаПартнер" Тогда
УстановитьВидимостьДоступностьЭлементаРасшифровкаПлатежаПартнер();
КонецЕсли;
Если КолонкаТаблицы.Имя = "РасшифровкаПлатежаСуммаВзаиморасчетов" Тогда
ДенежныеСредстваКлиент.УстановитьДоступностьЭлементаРасшифровкаПлатежаСуммаВзаиморасчетов(ЭтотОбъект, Объект.Валюта);
КонецЕсли;
ДенежныеСредстваКлиент.УстановитьДоступностьЭлементаРасшифровкаПлатежаДоговор(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если Объект.СписокКонтрагентов Тогда
Партнер = СтрокаТаблицы.Партнер;
КонецЕсли;
Если Не ЗначениеЗаполнено(Партнер)
И Не Объект.СписокКонтрагентов Тогда
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
КонецЕсли;
ФинансыКлиент.РасшифровкаПлатежаПриНачалеРедактирования(
Объект, Партнер, ДоговорКонтрагента, СтрокаТаблицы, НоваяСтрока, Копирование);
Если НоваяСтрока Тогда
Если Не Объект.СписокКонтрагентов Тогда
СтрокаТаблицы.Контрагент = Объект.Контрагент;
КонецЕсли;
Если Не Копирование Тогда
СтрокаТаблицы.ВалютаВзаиморасчетов = Объект.Валюта;
СтрокаТаблицы.КурсЧислительВзаиморасчетов = 1;
СтрокаТаблицы.КурсЗнаменательВзаиморасчетов = 1;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаТаблицы, "Объект.РасшифровкаПлатежа");
КонецЕсли;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаТаблицы.ПолучитьИдентификатор());
КонецЕсли;
РасшифровкаПлатежаСуммаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
РасшифровкаПлатежаПриОкончанииРедактированияНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриОкончанииРедактированияНаСервере()
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзменении(Элемент)
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер();
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер()
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.ЗаявкаНаРасходованиеДенежныхСредств", Объект, ВалютаРеглУчета);
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьНалогообложениеНДС();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтотОбъект);
РассчитатьФлагКонтролироватьОплатуПоОбъектамРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПредставлениеОтраженияВРеглУчетеНажатие(Элемент, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетов = ПредопределенноеЗначение("Справочник.ОбъектыРасчетов.ПустаяСсылка");
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОбъектРасчетов = ТекущиеДанные.ОбъектРасчетов;
КонецЕсли;
ДополнительныйОтбор = Неопределено;
ДенежныеСредстваКлиентЛокализация.ДополнитьОтборОбъектовРасчета(ЭтотОбъект, ДополнительныйОтбор);
ВзаиморасчетыКлиент.ОбъектРасчетовНачалоВыбора(
ЭтотОбъект, Элемент, СтандартнаяОбработка,, ОбъектРасчетов, ДополнительныйОтбор);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдентификаторСтроки);
ДополнитьВыбранноеЗначение(ВыбранноеЗначение);
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение);
Модифицированность = Истина;
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
РасшифровкаОбъектРасчетовПриИзмененииСервер(ИдентификаторСтроки);
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДополнитьВыбранноеЗначение(ВыбранноеЗначение)
ВыбранноеЗначение.Вставить("СтатьяДвиженияДенежныхСредств",
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(ВыбранноеЗначение.ОбъектРасчетов, Объект.ХозяйственнаяОперация));
Если ЗначениеЗаполнено(ВыбранноеЗначение.Договор) Тогда
ПлатежиПо275ФЗ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВыбранноеЗначение.Договор, "ПлатежиПо275ФЗ");
Иначе
ПлатежиПо275ФЗ = Ложь;
КонецЕсли;
ВыбранноеЗначение.Вставить("ПлатежиПо275ФЗ", ПлатежиПо275ФЗ);
ОбъектыРасчетов = Новый Массив;
ОбъектыРасчетов.Добавить(ВыбранноеЗначение.ОбъектРасчетов);
ТаблицаНДС = ДенежныеСредстваСервер.РасшифровкаПлатежаНДС(Объект.Организация, Неопределено, Неопределено, ОбъектыРасчетов, ВыбранноеЗначение.ЭтоРасчетыСКлиентами);
Если ТаблицаНДС.Количество() = 1 Тогда
ВыбранноеЗначение.Вставить("СтавкаНДС", ТаблицаНДС[0].СтавкаНДС);
Если ВыбранноеЗначение.СуммаПлатежа = ВыбранноеЗначение.СуммаЗаказа Тогда
ВыбранноеЗначение.Вставить("СуммаНДС", ТаблицаНДС[0].СуммаНДС);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ВыбранноеЗначение.ВалютаВзаиморасчетов) Тогда
КурсВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(ВыбранноеЗначение.ВалютаВзаиморасчетов, Неопределено, ВалютаРеглУчета);
ВыбранноеЗначение.Вставить("КурсЧислительВзаиморасчетов", КурсВалюты.КурсЧислитель);
ВыбранноеЗначение.Вставить("КурсЗнаменательВзаиморасчетов", КурсВалюты.КурсЗнаменатель);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПартнерСоздание(Элемент, СтандартнаяОбработка)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
ДанныеСтроки = Новый Структура("ОбъектРасчетов, ДоговорАренды, ДоговорКредитаДепозита");
ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтрокаТаблицы);
ДанныеСтроки.Вставить("Ссылка", Объект.Ссылка);
Если НельзяРедактироватьЭлементПартнер(ДанныеСтроки) Тогда
СтандартнаяОбработка = Ложь;
СтрокаВывода = СтрШаблон(НСтр("ru = 'Поле ""%1"" не доступно для редактирования'"), Элемент.Заголовок);
ОбщегоНазначенияКлиент.СообщитьПользователю(СтрокаВывода, , Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСуммаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(СтрокаТаблицы, СтруктураДействий, КэшированныеЗначения);
РасшифровкаПлатежаСуммаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСуммаПриИзмененииНаСервере()
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСуммаВзаиморасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ЗначениеЗаполнено(СтрокаТаблицы.СуммаВзаиморасчетов)
И СтрокаТаблицы.ВалютаВзаиморасчетов = Объект.Валюта
И СтрокаТаблицы.СуммаВзаиморасчетов <> СтрокаТаблицы.Сумма Тогда
СтрокаТаблицы.СуммаВзаиморасчетов = СтрокаТаблицы.Сумма;
Иначе
РасшифровкаПлатежаСуммаВзаиморасчетовПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСуммаВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
Если ТекущаяСтрока.Сумма = 0 Тогда
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВСтрокеРасшифровки(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
Иначе
ДенежныеСредстваКлиентСервер.РассчитатьКурсЧислительВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
КонецЕсли;
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзменении(Элемент)
РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
МассивРеквизитовОперации = Новый Массив;
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, Неопределено, МассивРеквизитовОперации);
Если ТекущаяСтрока.ВалютаВзаиморасчетов <> ВалютаВзаиморасчетов
И МассивРеквизитовОперации.Найти("Договор") <> Неопределено Тогда
Объект.Договор = Неопределено;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзменении(Элемент)
РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ)
ДенежныеСредстваСервер.ЗаполнитьКурсВзаиморасчетовСтрокиРасшифровки(Объект, ВалютаРеглУчета, Объект.Дата, СтрокаТЧ);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзменении(Элемент)
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
РеквизитыДоговора = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяСтрока.ДоговорКредитаДепозита,
"ВалютаВзаиморасчетов, ХарактерДоговора, СтатьяДДСОсновногоДолга, СтатьяДДСПоступленияВыдачи");
ТекущаяСтрока.ВалютаВзаиморасчетов = РеквизитыДоговора.ВалютаВзаиморасчетов;
Если РеквизитыДоговора.ХарактерДоговора = Перечисления.ХарактерыДоговоровФинансовыхИнструментов.КредитИлиЗайм Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ТипСуммыКредитаДепозита) Тогда
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДоговораКредитаДепозитаПоТипуСуммыКредитаДепозита(
ТекущаяСтрока.ДоговорКредитаДепозита,
ТекущаяСтрока.ТипСуммыКредитаДепозита,
Объект.СтатьяДвиженияДенежныхСредств);
Иначе
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = РеквизитыДоговора.СтатьяДДСОсновногоДолга;
КонецЕсли;
Иначе
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = РеквизитыДоговора.СтатьяДДСПоступленияВыдачи;
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаТипСуммыКредитаДепозитаПриИзменении(Элемент)
ТипСуммыКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ТипСуммыКредитаДепозитаПриИзмененииСервер()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДоговораКредитаДепозитаПоТипуСуммыКредитаДепозита(
ТекущаяСтрока.ДоговорКредитаДепозита,
ТекущаяСтрока.ТипСуммыКредитаДепозита,
Объект.СтатьяДвиженияДенежныхСредств);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяРасходовПриИзменении(Элемент)
РасшифровкаПлатежаСтатьяРасходовПриИзмененииСервер(Элемент.Имя);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСтатьяРасходовПриИзмененииСервер(ИмяЭлемента)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элементы[ИмяЭлемента]);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение);
СтандартнаяОбработка = Ложь;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаАктивовПассивовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаАктивовПассивовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатие(Элемент)
ЗаблокироватьДанные();
ОписаниеОповещения = Новый ОписаниеОповещения("ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершение", ЭтотОбъект);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию") Тогда
ПараметрыФормы.Вставить("Контрагент", Объект.ОрганизацияПолучатель);
Иначе
ПараметрыФормы.Вставить("Контрагент", Объект.Контрагент);
КонецЕсли;
ПараметрыФормы.Вставить("ГруппаФинансовогоУчета", Объект.ГруппаФинансовогоУчета);
ПараметрыФормы.Вставить("НаправлениеДеятельности", Объект.НаправлениеДеятельности);
ПараметрыФормы.Вставить("Договор", Объект.Договор);
ПараметрыФормы.Вставить("Организация", Объект.Организация);
ПараметрыФормы.Вставить("Подразделение", Объект.Подразделение);
ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыФормы.Вставить("СписокНалогообложенияНДС", Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС.СписокВыбора);
ПараметрыФормы.Вставить("ДокументСсылка", Объект.Ссылка);
ПараметрыФормы.Вставить("АдресВоВременномХранилище", ПоместитьРасшифровкуВоВременноеХранилище());
ОткрытьФорму("ОбщаяФорма.ФормаВыбораРеквизитовОбъектаРасчетовПлатежа",
ПараметрыФормы,
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
РазблокироватьДанные();
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если НЕ Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате") Тогда
Объект.ГруппаФинансовогоУчета = Результат.ГруппаФинансовогоУчета;
Объект.НаправлениеДеятельности = Результат.НаправлениеДеятельности;
Объект.Договор = Результат.Договор;
Объект.Подразделение = Результат.Подразделение;
ЕстьИзменениеПоНалогообложениюНДС = ?(Объект.НалогообложениеНДС = Результат.НалогообложениеНДС, Ложь, Истина);
ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере();
Если ЕстьИзменениеПоНалогообложениюНДС Тогда
Объект.НалогообложениеНДС = Результат.НалогообложениеНДС;
ЗаполнитьНалогообложениеНДС();
КонецЕсли;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере()
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект);
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если (Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов)
Или СтрокаРасшифровки.ОбъектОбъектаРасчетов = Объект.Ссылка) Тогда
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора);
КонецЕсли;
КонецЦикла;
ЗаполнитьВалютуВзаиморасчетовДокумента();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ДенежныеСредстваСервер.ОчиститьДоговорРасшифровкиПлатежа(Объект);
КонецЕсли;
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", Объект.Организация);
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
Если ЗначениеЗаполнено(Элементы.РасшифровкаПлатежа.ТекущиеДанные.ВалютаВзаиморасчетов) Тогда
СтруктураОтбора.Вставить("ВалютаВзаиморасчетов", Элементы.РасшифровкаПлатежа.ТекущиеДанные.ВалютаВзаиморасчетов);
КонецЕсли;
СтруктураПараметровВыбора = Новый Структура;
СтруктураПараметровВыбора.Вставить("РежимВыбора", Истина);
СтруктураПараметровВыбора.Вставить("РазрешитьВыборФилиальныхДоговоров", Истина);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
ИЛИ Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию") Тогда
СтруктураОтбора.Организация = Объект.ОрганизацияПолучатель;
СтруктураОтбора.Вставить("ОрганизацияПолучатель", Объект.Организация);
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыМеждуОрганизациями.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
Иначе
Если ФинансыКлиент.ЭтоРасчетыСКлиентами(Объект.ХозяйственнаяОперация) Тогда
СтруктураПараметровВыбора.Вставить("ТипыДоговоров", ВзаиморасчетыКлиентСервер.ТипыДоговоровСКлиентом());
Иначе
СтруктураПараметровВыбора.Вставить("ТипыДоговоров", ВзаиморасчетыКлиентСервер.ТипыДоговоровСПоставщиком());
КонецЕсли;
Если Объект.СписокКонтрагентов Тогда
СтруктураОтбора.Вставить("Контрагент", Элементы.РасшифровкаПлатежа.ТекущиеДанные.Контрагент);
Иначе
СтруктураОтбора.Вставить("Контрагент", Объект.Контрагент);
КонецЕсли;
СтруктураОтбора.Вставить("ДоговорССамозанятым", Объект.ОперацияССамозанятым);
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПослеУдаления(Элемент)
РасшифровкаПлатежаПослеУдаленияСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПослеУдаленияСервер()
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
РасшифровкаПлатежаОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаОбъектРасчетовПриИзмененииСервер(ИдСтроки)
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдСтроки);
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.ЗаявкаНаРасходованиеДенежныхСредств", Объект, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
РасшифровкаОбъектРасчетовПриИзмененииСервер(ИдСтроки)
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтавкаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Элементы.РасшифровкаБезРазбиенияСуммаНДС.ТолькоПросмотр =
ДенежныеСредстваКлиентСервер.ЭтоНулеваяСтавкаНДС(ТекущаяСтрока.СтавкаНДС);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаНалогообложениеНДСПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорАрендыПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаТипПлатежаПоАрендеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВедомостьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ПодтверждающиеДокументыФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияВариантКурсаДоговораНажатие(Элемент, СтандартнаяОбработка)
ВзаиморасчетыКлиент.РасшифровкаПлатежаВариантКурсаДоговораНажатие(Элементы.РасшифровкаПлатежа.ТекущиеДанные, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияПриИзменении(Элемент)
Объект.РасшифровкаПлатежа[0].ДатаПогашения = ДатаПогашенияБезРазбиения;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыОткрытия = Новый Структура("НачальноеЗначение", Объект.РасшифровкаПлатежа[0].ДатаПогашения);
ОписаниеОповещения = Новый ОписаниеОповещения("РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ВыборДаты", ПараметрыОткрытия, ЭтотОбъект,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Дата(1, 1, 1);
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
Если ТипЗнч(ДатаПогашенияБезРазбиения) = Тип("Дата") Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
ДатаЦифрами = СтрСоединить(СтрРазделить(Текст, СтрСоединить(СтрРазделить(Текст, "0123456789"))));
Если Не ПустаяСтрока(ДатаЦифрами) Тогда
ВыбранныйДень = Лев(ДатаЦифрами, 2);
Если СтрДлина(ДатаЦифрами) > 2 Тогда
ВыбранныйМесяц = Сред(ДатаЦифрами, 3, 2);
Иначе
ВыбранныйМесяц = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=MM")
КонецЕсли;
Если СтрДлина(ДатаЦифрами) > 4 Тогда
ВыбранныйГод = Сред(ДатаЦифрами, 5, 4);
Иначе
ВыбранныйГод = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=yyyy")
КонецЕсли;
ВыбраннаяДатаСтрокой = СтрШаблон("%1.%2.%3", ВыбранныйДень, ВыбранныйМесяц, ВыбранныйГод);
ВыбраннаяДата = СтроковыеФункцииКлиентСервер.СтрокаВДату(ВыбраннаяДатаСтрокой);
Объект.РасшифровкаПлатежа[0].ДатаПогашения = ВыбраннаяДата;
ОбновитьПредставлениеДатыПогашения();
ДанныеВыбора = Новый СписокЗначений();
ДанныеВыбора.Добавить(ВыбраннаяДата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если СтрокаТабличнойЧасти = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.Договор = СтрокаТабличнойЧасти.Договор;
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыВедомостиНаВыплатуЗарплаты
&НаКлиенте
Процедура ЛицевыеСчетаСотрудниковФизическоеЛицоПриИзменении(Элемент)
ТекущаяСтрокаТЧЛицевыеСчета = Элементы.ЛицевыеСчетаСотрудников.ТекущиеДанные;
Если Не ЗначениеЗаполнено(ТекущаяСтрокаТЧЛицевыеСчета.ЛицевойСчет) Тогда
ТекущаяСтрокаТЧЛицевыеСчета.ЛицевойСчет =
ПолучитьЛицевойСчетФЛ(ТекущаяСтрокаТЧЛицевыеСчета.ФизическоеЛицо, Объект.Валюта);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьЛицевойСчетФЛ(ФизЛицо, Валюта)
Возврат Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(ФизЛицо, Валюта);
КонецФункции
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРаспределениеПоСчетам
&НаКлиенте
Процедура РаспределениеПоСчетамПослеУдаления(Элемент)
УстановитьПризнакПлатежаСКонвертацией();
КонецПроцедуры
&НаКлиенте
Процедура РаспределениеПоСчетамПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока И Объект.РаспределениеПоСчетам.Количество() = 1 Тогда
ТекущиеДанные = Элемент.ТекущиеДанные;
ТекущиеДанные.Сумма = Объект.СуммаДокумента;
ТекущиеДанные.ДатаПлатежа = Объект.ДатаПлатежа;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РаспределениеПоСчетамБанковскийСчетНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
МассивТипов = Новый Массив;
Если Объект.ФормаОплатыБезналичная Тогда
МассивТипов.Добавить(Тип("СправочникСсылка.БанковскиеСчетаОрганизаций"));
КонецЕсли;
Если Объект.ФормаОплатыНаличная Тогда
МассивТипов.Добавить(Тип("СправочникСсылка.Кассы"));
КонецЕсли;
Элементы.РаспределениеПоСчетамБанковскийСчет.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
КонецПроцедуры
&НаКлиенте
Процедура РаспределениеПоСчетамБанковскийСчетПриИзменении(Элемент)
УстановитьПризнакПлатежаСКонвертацией();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткам(Команда)
ПодборПоОстаткамОбработка("ПодборПоОстаткамЗавершение");
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамОбработка(ПроцедураЗавершения)
ОплатаВДругуюОрганизацию =
Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
Или Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию");
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Организация", НСтр("ru = 'Организация'"));
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Валюта", НСтр("ru = 'Валюта'"));
Если ОплатаВДругуюОрганизацию Тогда
Если Объект.ФормаОплатыЗаявки = ПредопределенноеЗначение("Перечисление.ФормыОплаты.Наличная") Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("КассаПолучатель", НСтр("ru = 'Касса получателя'"));
ИначеЕсли Объект.ФормаОплатыЗаявки = ПредопределенноеЗначение("Перечисление.ФормыОплаты.Безналичная") Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("БанковскийСчетПолучатель", НСтр("ru = 'Счет получателя'"));
КонецЕсли;
Иначе
Если Не Объект.СписокКонтрагентов Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Контрагент", НСтр("ru = 'Контрагент'"));
КонецЕсли;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамПослеПроверки", ЭтотОбъект,
Новый Структура("ОплатаВДругуюОрганизацию, ПроцедураЗавершения", ОплатаВДругуюОрганизацию, ПроцедураЗавершения));
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамПослеПроверки(Результат, ДополнительныеПараметры) Экспорт
Оповещение = Новый ОписаниеОповещения(ДополнительныеПараметры.ПроцедураЗавершения, ЭтотОбъект);
ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
ДополнительныйОтбор = Неопределено;
ДенежныеСредстваКлиентЛокализация.ДополнитьОтборОбъектовРасчета(ЭтотОбъект, ДополнительныйОтбор, Истина);
ВзаиморасчетыКлиент.ПодборВРасшифровкуПлатежа(
ЭтотОбъект, Элементы.РасшифровкаПлатежаПодборПоОстаткам.Имя, Оповещение, ДополнительныйОтбор);
КонецПроцедуры
&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма, "РасшифровкаПлатежаПодборПоОстаткам");
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ПодборПоОстаткамЗавершениеСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодборПоОстаткамЗавершениеСервер()
ВзаиморасчетыСервер.ЗагрузитьРасшифровкуПлатежаИзВременногоХранилища(ЭтотОбъект);
СтатьяДДСПоУмолчанию =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);
ТаблицаОбъектовРасчетов = Объект.РасшифровкаПлатежа.Выгрузить(, "ОбъектРасчетов");
ТаблицаОбъектовРасчетов.Свернуть("ОбъектРасчетов");
НалогообложениеОбъектовРасчетов =
ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ТаблицаОбъектовРасчетов.ВыгрузитьКолонку("ОбъектРасчетов"), "НалогообложениеНДС");
Для каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.НалогообложениеНДС = НалогообложениеОбъектовРасчетов[СтрокаТаблицы.ОбъектРасчетов];
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоУмолчанию;
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммКонтрагенту(Команда)
ЗаполнитьОстаткамиНевыданныхСуммКонтрагентуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОстаткамиНевыданныхСуммКонтрагентуНаСервере()
Объект.РасшифровкаПлатежа.Очистить();
ДействующиеДоговоры = Справочники.ДоговорыКредитовИДепозитов.ДействующиеДоговорыПоКонтрагенту(
Объект.Организация, Объект.Контрагент, Перечисления.ХарактерыДоговоровФинансовыхИнструментов.ЗаймВыданный);
Для Каждого Договор Из ДействующиеДоговоры Цикл
ДанныеРасшифровки = Справочники.ДоговорыКредитовИДепозитов.ДанныеРасшифровкиПлатежаДокументаДДС(
Договор, Ложь, Объект.Ссылка);
Для Каждого Строка Из ДанныеРасшифровки Цикл
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецЦикла;
КонецЦикла;
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНазначениеПлатежа(Команда)
ЗаполнитьНазначениеПлатежаСервер();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНазначениеПлатежаСервер()
ДенежныеСредстваСервер.ЗаполнитьТекстНазначенияПлатежа(Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьФайлДляОбменаСБанком(Команда)
ВыгрузитьФайлДляОбменаСБанкомЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьВедомостиНаВыплатуЗарплатыПоОстаткам(Команда)
ЗаполнитьВедомостиНаВыплатуЗарплатыПоОстаткамЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммСотруднику(Команда)
ЗаполнитьОстаткамиНевыданныхСуммСотрудникуЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПодтверждающиеДокументы(Команда)
ЗаполнитьПодтверждающиеДокументыЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоПредыдущемуПлатежу(Команда)
ЗаполнитьПоПредыдущемуПлатежуЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификат(Команда)
Если ПодарочныеСертификатыКлиент.ПроверитьВозможностьДобавленияПодарочногоСертификата(ЭтотОбъект, Ложь) Тогда
ОписаниеОповещенияЗаверщения = Новый ОписаниеОповещения("ПодобратьПодарочныйСертификатЗавершение", ЭтотОбъект);
Если Объект.Проведен Тогда
РозничныеПродажиКлиент.ОтобразитьВопросОНеобходимостиНепроведенногоДокумента(ЭтотОбъект, ОписаниеОповещенияЗаверщения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗаверщения, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификатЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Истина Тогда
СтатусыДляОтбора = Новый Массив;
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.Активирован"));
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.ЧастичноПогашен"));
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Организация", Объект.Организация);
ПараметрыОтбора.Вставить("Валюта", ВалютаРеглУчета);
ПараметрыОтбора.Вставить("Статус", СтатусыДляОтбора);
ПараметрыОтбора.Вставить("УчетПодарочныхСертификатов2_5", Истина);
ПараметрыОтбора.Вставить("ТипОперации", ПодарочныеСертификатыКлиентСервер.ТипОперацииПоПодарочнымСертификатам(Объект));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Организация", Объект.Организация);
ДополнительныеПараметры.Вставить("НеИспользоватьРучнойВвод", Ложь);
ДополнительныеПараметры.Вставить("Отбор", ПараметрыОтбора);
ДополнительныеПараметры.Вставить("РегистрироватьНовые", Ложь);
ОткрытьФорму(
"Справочник.ПодарочныеСертификаты.Форма.СчитываниеПодарочногоСертификата",
ДополнительныеПараметры,
ЭтотОбъект,
УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьСчетаФактуры(Команда)
ПодобратьСчетаФактурыЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПросмотретьПодтверждающийДокумент(Команда)
ПросмотретьПодтверждающийДокументЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗакрытьЗаявку(Команда)
Объект.Закрыта = Истина;
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);
Записать(ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьСтатьюДвиженияДенежныхСредств(Команда)
ДенежныеСредстваКлиент.ЗаполнитьСтатьюДвиженияДенежныхСредств(
ЭтотОбъект, Элементы.ЛицевыеСчетаСотрудников, "ЛицевыеСчетаСотрудников");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ОбработчикиСобытийЭлементов
&НаКлиенте
Процедура ОтраженияВРеглУчетеПриИзменении(Результат, ДополнительныеПараметры) Экспорт
ОтраженияВРеглУчетеПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОтраженияВРеглУчетеПриИзмененииНаСервере()
ДанныеМеханизма = ОбщегоНазначенияУТКлиентСервер.ПолучитьДанныеМеханизмаИзКэшаФормы(ЭтотОбъект, "НастройкаСчетовУчета");
Если НЕ ЗначениеЗаполнено(ДанныеМеханизма) Тогда
Возврат;
КонецЕсли;
НастройкаСчетовУчета = ДанныеМеханизма.НастройкиСчетовУчета[Объект.НастройкаСчетовУчета];
Если НЕ ЗначениеЗаполнено(НастройкаСчетовУчета) Тогда
Возврат;
КонецЕсли;
РегистрацияВНалоговомОргане = Неопределено;
Если ТипЗнч(НастройкаСчетовУчета.Субконто1) = Тип("СправочникСсылка.РегистрацииВНалоговомОргане") Тогда
РегистрацияВНалоговомОргане = НастройкаСчетовУчета.Субконто1;
ИначеЕсли ТипЗнч(НастройкаСчетовУчета.Субконто2) = Тип("СправочникСсылка.РегистрацииВНалоговомОргане") Тогда
РегистрацияВНалоговомОргане = НастройкаСчетовУчета.Субконто2;
ИначеЕсли ТипЗнч(НастройкаСчетовУчета.Субконто3) = Тип("СправочникСсылка.РегистрацииВНалоговомОргане") Тогда
РегистрацияВНалоговомОргане = НастройкаСчетовУчета.Субконто3;
КонецЕсли;
Если ЗначениеЗаполнено(РегистрацияВНалоговомОргане) Тогда
Объект.РегистрацияВНалоговомОргане = РегистрацияВНалоговомОргане;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СписокФизЛицПриИзмененииНаСервере()
СписокФизЛицВключеноПриИзмененииНаСервере();
ОбновитьДанныеПоВалюте();
КонецПроцедуры
&НаСервере
Процедура СписокФизЛицВключеноПриИзмененииНаСервере()
Если Объект.ПеречислениеСотрудникуЧерезБанк Тогда
Объект.Валюта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
КонецЕсли;
Объект.РасшифровкаПлатежа.Очистить();
ИнициализироватьРасшифровкуПлатежа();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаКлиенте
Функция СуммаДокументаПриИзмененииКлиент()
ФинансыКлиентСервер.ПересчитатьСуммыВСтрокеРасшифровкиПлатежа(Объект, Объект.СуммаДокумента, Ложь);
Возврат Истина;
КонецФункции
&НаСервере
Процедура СуммаДокументаПриИзмененииСервер()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецЕсли;
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
Если Объект.ОтражатьКомиссию Тогда
Объект.СуммаКомиссии = ДенежныеСредстваКлиентСервер.РассчитатьСуммуКомиссии(Объект.СуммаДокумента, СтавкаКомиссии);
Элементы.ГруппаКомиссия.Заголовок = ЗаголовокЭквайринговойКомиссии(Объект.СуммаКомиссии, Объект.Валюта, СтавкаКомиссии);
КонецЕсли;
ЗаполнитьКурсВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаКлиенте
Функция ВалютаПриИзмененииКлиент()
Если ТекущаяВалюта = Объект.Валюта Тогда
Возврат Ложь;
КонецЕсли;
Объект.Касса = Неопределено;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ВалютаПриИзмененииСервер(ПерезаполнитьРеквизит = Истина)
ПослеИзмененияВалюты();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ВалютаКонвертацииПриИзмененииСервер()
ПересчитатьПараметрыКонвертации("ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецПроцедуры
&НаСервере
Процедура КратностьКурсаКонвертацииПриИзмененииНаСервере()
ПересчитатьПараметрыКонвертации("КратностьКурсаКонвертации");
КонецПроцедуры
#КонецОбласти
#Область ПриИзмененииРеквизитов
&НаСервере
Процедура ПослеИзмененияВалюты()
ЗаполнитьПодчиненныеСвойстваПоСтатистике("Валюта");
ОчиститьДанныеПоФормеОплаты();
УстановитьПризнакПлатежаСКонвертацией(Объект.ПлатежСКонвертацией);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ВалютаКонвертацииПриИзмененииСервер();
КонецЕсли;
ДенежныеСредстваСервер.ПересчетСуммДокументаВВалюту(Объект, ТекущаяВалюта, Объект.Валюта);
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы);
ТребуетсяИнформацияДляРегулирующихОрганов = (ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Валюта, "Код") = "980");
ПроверитьСоответствиеВалют();
ЗаполнитьРеквизитыДокументаПоФормеОплаты();
ДенежныеСредстваСервер.ОбновитьВалютуВзаиморасчетовРасшифровкиПлатежа(
"Документ.ЗаявкаНаРасходованиеДенежныхСредств", Объект, ВалютаРеглУчета);
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ТекущаяВалюта = Объект.Валюта;
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеПоВалюте()
Если ТекущаяВалюта <> Объект.Валюта Тогда
ПослеИзмененияВалюты();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчиститьДанныеПоФормеОплаты()
Если Объект.ФормаОплатыНаличная
И Объект.ФормаОплатыБезналичная Тогда
Объект.БанковскийСчет = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
Объект.Касса = Справочники.Кассы.ПустаяСсылка();
Объект.БанковскийСчетПолучатель = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
Объект.КассаПолучатель = Справочники.Кассы.ПустаяСсылка();
ВалютаСчетаПлательщика = Неопределено;
ТекущийБанковскийСчет = Объект.БанковскийСчет;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаОбъектРасчетовПриИзмененииСервер(ИдСтроки)
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, ИдСтроки);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки);
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтотОбъект);
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдСтроки);
ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, ИдСтроки);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
РассчитатьФлагКонтролироватьОплатуПоОбъектамРасчетов();
КонецПроцедуры
#КонецОбласти
#Область Свойства
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ТабличнаяЧасть = Объект.ПодтверждающиеДокументы;
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("ТипПлатежаФЗ275", НСтр("ru = 'Тип платежа 275-ФЗ'"));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПодчиненныеСвойстваПоСтатистике(ИмяРеквизитаРодителя)
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, ИмяРеквизитаРодителя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область УправлениеЭлементамиФормы
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаСтатьяРасходов.Имя);
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаБезРазбиенияСтатьяРасходов.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Статус");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована);
СписокЗначений.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Отклонена);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетКонтрагента.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.БанковскийСчетКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетПолучатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.БанковскийСчетПолучатель");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетКонтрагента.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетПолучатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыБезналичная");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Ложь;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыЗаявки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ФормыОплаты.Безналичная;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетКонтрагента.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.БанковскийСчетКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.БанковскийСчетКонтрагента");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована);
СписокЗначений.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыБезналичная");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыЗаявки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ФормыОплаты.Безналичная;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыЗаявки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетПолучатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.БанковскийСчетПолучатель");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыБезналичная");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыЗаявки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ФормыОплаты.Безналичная;
ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ФормаОплатыЗаявки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.БанковскийСчетПолучатель.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.КассаПолучатель.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.КонвертацияВалюты;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
НаправленияДеятельностиСервер.УстановитьУсловноеОформлениеНаправленияДеятельности(ЭтаФорма);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаКурсЧислительВзаиморасчетов.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаДатаПогашения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ДатаПогашения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСТР("ru='<автоматически>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеВалютыВзаиморасчетов(ЭтотОбъект);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеПартнера(ЭтотОбъект);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеСуммыНДСРасшифровкиПлатежа(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ДенежныеСредстваСервер.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ИспользоватьНачислениеЗарплатыУТ = Константы.ИспользоватьНачислениеЗарплаты.Получить();
ИспользоватьНесколькоВалют = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют");
ИспользоватьВалютныеПлатежи = ПолучитьФункциональнуюОпцию("ИспользоватьВалютныеПлатежи");
ИспользоватьДоговорыМеждуОрганизациями = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыМеждуОрганизациями");
ИспользоватьДоговорыСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСКлиентами");
ИспользоватьДоговорыСПоставщиками = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСПоставщиками");
ИспользоватьУчетПрочихАктивовПассивов = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов");
ИспользоватьСинхронизациюДанных = ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных");
ИспользоватьУчетНДС = ПолучитьФункциональнуюОпцию("ИспользоватьУчетНДС");
ИспользованиеПартнеровКакКонтрагентов = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов");
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
ПравоСогласования = ПраваПользователяПовтИсп.СогласованиеЗаявокНаРасходованиеДенежныхСредств();
ПравоУтверждения = ПраваПользователяПовтИсп.УтверждениеЗаявокНаРасходованиеДенежныхСредств();
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Организация, "ЮрФизЛицо");
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
КонецЕсли;
КонтрагентЮрФизЛицо = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Контрагент, "ЮрФизЛицо");
Если ЗначениеЗаполнено(Объект.ДоговорЭквайринга) Тогда
Если Объект.ОтражатьКомиссию Тогда
Если Объект.СуммаДокумента <> 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 = 'Через кассу'"));
КонецПроцедуры
&НаСервере
Процедура УточнитьСписокХозяйственныхОпераций()
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПередачиМеждуОрганизациями(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийВнутреннейПередачи(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииПрочаяВыдачаДенежныхСредств(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПоДоговорамКредитовИДепозитов(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииОплатаАрендодателю(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЭквайринга(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура УстановитьСписокСтатусов()
СписокВыбора = Элементы.Статус.СписокВыбора;
СписокВыбора.Очистить();
Если Не Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате
И Не Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована Тогда
СписокВыбора.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована);
КонецЕсли;
Если (ПравоСогласования И Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована)
Или Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована Тогда
СписокВыбора.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована);
КонецЕсли;
Если (ПравоУтверждения
И (Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована
Или Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована))
Или Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате Тогда
СписокВыбора.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате);
КонецЕсли;
Если Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.НеСогласована
Или Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Согласована
Или (ПравоУтверждения И Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате)
Или Объект.Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Отклонена Тогда
СписокВыбора.Добавить(Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.Отклонена);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НастроитьДоступныеФормыОплаты()
СписокВыбора = Элементы.ФормаОплаты.СписокВыбора;
СписокВыбора.Очистить();
ОплатаНаличная = СписокВыбора.Добавить("Наличная", НСтр("ru = 'Наличными'"));
ОплатаБезналичная = СписокВыбора.Добавить("Безналичная", НСтр("ru = 'Безналичными'"));
ОплатаЛюбая = СписокВыбора.Добавить("Любая", НСтр("ru = 'В любой форме'"));
ОплатаКартой = СписокВыбора.Добавить("ПлатежнаяКарта", НСтр("ru = 'Платежной картой'"));
Если (Объект.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту)
Или Не ПолучитьФункциональнуюОпциюФормы("ИспользоватьОплатуПлатежнымиКартами") Тогда
Элементы.ФормаОплаты.СписокВыбора.Удалить(ОплатаКартой);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеОбОплатеЗаявки()
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ОстатокОплаты = -1;
Иначе
ОстатокОплаты = ОстатокОплатыПоЗаявке(Объект.Ссылка);
КонецЕсли;
Если ОстатокОплаты < 0 Тогда
НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru='<span style=""color: %1"">Не оплачена</span>'"), "ЦветТекстаПредупреждение");
ИначеЕсли ОстатокОплаты = 0 Тогда
Если Объект.Закрыта Тогда
СуммаЗакрыто = СуммаЗакрыто(Объект.Ссылка);
НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru='Оплачена частично, <span style=""color: %1"">закрыто: %2</span>'"),
"ЦветТекстаПредупреждение", ФормированиеПечатныхФорм.ФорматСумм(СуммаЗакрыто, Объект.Валюта));
Иначе
НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Оплачена полностью'"));
КонецЕсли;
Иначе
НадписьФактическаяОплата = СтроковыеФункции.ФорматированнаяСтрока(
НСтр("ru='Оплачена частично, <span style=""color: %1"">не оплачено: %2</span>'"),
"ЦветТекстаПредупреждение", ФормированиеПечатныхФорм.ФорматСумм(ОстатокОплаты, Объект.Валюта));
КонецЕсли;
НастроитьЗависимыеЭлементыФормыНаСервере("ОстатокОплаты");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ОстатокОплатыПоЗаявке(Ссылка)
Результат = Неопределено;
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| 1
|ИЗ
| РегистрНакопления.ДенежныеСредстваКВыплате КАК ДенежныеСредства
|ГДЕ
| ДенежныеСредства.ЗаявкаНаРасходованиеДенежныхСредств = &Ссылка
| И ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|;
|
|ВЫБРАТЬ
| ДенежныеСредства.СуммаОстаток КАК НеОплачено
|ИЗ
| РегистрНакопления.ДенежныеСредстваКВыплате.Остатки(,
| ЗаявкаНаРасходованиеДенежныхСредств = &Ссылка
| ) КАК ДенежныеСредства
|";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
УстановитьПривилегированныйРежим(Истина);
МассивРезультатов = Запрос.ВыполнитьПакет();
УстановитьПривилегированныйРежим(Ложь);
Если МассивРезультатов[0].Пустой() Тогда
Результат = -1;
Иначе
Результат = МассивРезультатов[1].Выгрузить()[0].НеОплачено;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция СуммаЗакрыто(Ссылка)
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| -СУММА(ДенежныеСредства.Сумма) КАК Закрыто
|ИЗ
| РегистрНакопления.ДенежныеСредстваКВыплате КАК ДенежныеСредства
|ГДЕ
| ДенежныеСредства.ЗаявкаНаРасходованиеДенежныхСредств = &Ссылка
| И ДенежныеСредства.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ДенежныеСредства.Сумма < 0
|";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
УстановитьПривилегированныйРежим(Истина);
РезультатЗапроса = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Возврат РезультатЗапроса.Выгрузить()[0].Закрыто;
КонецФункции
&НаСервере
Процедура ЗаполнитьРеквизитыДокументаПоФормеОплаты()
Если Не ЗначениеЗаполнено(Объект.БанковскийСчетКонтрагента) Тогда
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику Тогда
Получатель = Объект.ПодотчетноеЛицо;
Иначе
Получатель = Объект.Контрагент;
КонецЕсли;
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(
Получатель,
Объект.Валюта);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
Объект.БанковскийСчет = Справочники.БанковскиеСчетаОрганизаций.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(
Объект.Организация,
Объект.Валюта);
ТекущийБанковскийСчет = Объект.БанковскийСчет;
ВалютаСчетаПлательщика = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Касса) Тогда
Объект.Касса = Справочники.Кассы.ПолучитьКассуПоУмолчанию(
Объект.Организация,
Объект.Валюта);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.БанковскийСчетПолучатель) Тогда
Объект.БанковскийСчетПолучатель = Справочники.БанковскиеСчетаОрганизаций.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(
Объект.ОрганизацияПолучатель,
Объект.Валюта);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.КассаПолучатель) Тогда
Объект.КассаПолучатель = Справочники.Кассы.ПолучитьКассуПоУмолчанию(
Объект.ОрганизацияПолучатель,
Объект.Валюта);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПолучитьДоговорПоУмолчаниюСервер(Контрагент, БанковскийСчетКонтрагента, ЗаполнятьСчетПоДоговору = Истина)
МассивВсехРеквизитов = Новый Массив;
МассивРеквизитовОперации = Новый Массив;
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ОбъектРасчетов") = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПравоДоступа("Чтение", Метаданные.Справочники.ДоговорыКонтрагентов) Тогда
Отбор = Неопределено;
ХозяйственнаяОперацияДоговора = Новый Массив;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику
И Не Объект.ОперацияССамозанятым Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаКомиссию);
Отбор = Новый Структура;
Отбор.Вставить("ДоговорССамозанятым", Ложь);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику
И Объект.ОперацияССамозанятым Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
Отбор = Новый Структура;
Отбор.Вставить("ДоговорССамозанятым", Истина);
КонецЕсли;
ДоговорКонтрагента = ДенежныеСредстваСервер.ДоговорПоУмолчанию(
ДоговорКонтрагента, Партнер, Контрагент, Объект.Организация, ХозяйственнаяОперацияДоговора, Отбор);
Если ЗаполнятьСчетПоДоговору Тогда
ЗакупкиВызовСервера.ЗаполнитьБанковскиеСчетаПоДоговору(ДоговорКонтрагента,, БанковскийСчетКонтрагента);
Если (Объект.Валюта <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(БанковскийСчетКонтрагента, "ВалютаДенежныхСредств")
И Объект.ПлатежСКонвертацией)
Или Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Наличная Тогда
БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
УчетнаяИнформацияПоДоговору = Справочники.ДоговорыКонтрагентов.УчетнаяИнформацияПоДоговору(ДоговорКонтрагента);
Если ЗначениеЗаполнено(УчетнаяИнформацияПоДоговору) Тогда
Если Не ЗначениеЗаполнено(Объект.СтатьяДвиженияДенежныхСредств) Тогда
УчетнаяИнформацияПоДоговору.Свойство("СтатьяДвиженияДенежныхСредств", Объект.СтатьяДвиженияДенежныхСредств);
КонецЕсли;
УчетнаяИнформацияПоДоговору.Свойство("СтавкаНДС", СтавкаНДС);
УчетнаяИнформацияПоДоговору.Свойство("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПолучитьПартнераПоУмолчаниюСервер(Контрагент, Партнер, ХозяйственнаяОперация)
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, ХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНазначениеПлатежаПоСчетуПолучателя()
Реквизиты =
Справочники.БанковскиеСчетаКонтрагентов.ПолучитьРеквизитыБанковскогоСчета(Объект.БанковскийСчетКонтрагента);
ТекстНазначенияПлатежа = Реквизиты.ТекстНазначения;
Если ЗначениеЗаполнено(Объект.НазначениеПлатежа) Тогда
Объект.НазначениеПлатежа = Объект.НазначениеПлатежа + "
|" + ТекстНазначенияПлатежа;
Иначе
Объект.НазначениеПлатежа = ТекстНазначенияПлатежа;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораОрганизации()
МассивПараметров = Новый Массив;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("РежимВыбораВзаимосвязанныхОрганизаций", "ТолькоВзаимосвязанные"));
КонецЕсли;
Элементы.Организация.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораОрганизацииПолучателя()
МассивПараметров = Новый Массив;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("РежимВыбораВзаимосвязанныхОрганизаций", "ТолькоВзаимосвязанные"));
МассивПараметров.Добавить(Новый ПараметрВыбора("Организация", Объект.Организация));
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("РежимВыбораВзаимосвязанныхОрганизаций", "ТолькоНеВзаимосвязанные"));
МассивПараметров.Добавить(Новый ПараметрВыбора("Организация", Объект.Организация));
КонецЕсли;
Элементы.ОрганизацияПолучатель.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецПроцедуры
&НаСервере
Процедура ПроверитьИОчиститьОрганизацию()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств
И Не Справочники.Организации.ОрганизацияВзаимосвязанаСДругимиОрганизациями(Объект.Организация) Тогда
Объект.Организация = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПроверитьИОчиститьОрганизациюПолучатель()
Если ЗначениеЗаполнено(Объект.Организация)
И Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств
И Не Справочники.Организации.ОрганизацииВзаимосвязаныПоОрганизационнойСтруктуре(
Объект.Организация, Объект.ОрганизацияПолучатель) Тогда
Объект.ОрганизацияПолучатель = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораБанковскогоСчетаКассы()
МассивПараметров = Новый Массив;
СвязьПараметров = Новый СвязьПараметраВыбора("Отбор.Владелец", "Объект.Организация", РежимИзмененияСвязанногоЗначения.Очищать);
МассивПараметров.Добавить(СвязьПараметров);
Элементы.БанковскийСчет.СвязиПараметровВыбора = Новый ФиксированныйМассив(МассивПараметров);
Элементы.РаспределениеПоСчетамБанковскийСчет.СвязиПараметровВыбора = Новый ФиксированныйМассив(МассивПараметров);
Если Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеПлатежа Тогда
СвязьПараметров = Новый СвязьПараметраВыбора("Отбор.ВалютаДенежныхСредств", "Объект.Валюта");
МассивПараметров.Добавить(СвязьПараметров);
КонецЕсли;
Элементы.Касса.СвязиПараметровВыбора = Новый ФиксированныйМассив(МассивПараметров);
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораБанковскогоСчетаКонтрагента(Объект, ЭлементБанковскийСчетКонтрагента)
МассивПараметров = Новый Массив;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаЗаймаСотруднику)
И Не Объект.ПеречислениеСотрудникуЧерезБанк Тогда
СвязьПараметров = Новый СвязьПараметраВыбора("Отбор.Владелец", "Объект.ПодотчетноеЛицо", РежимИзмененияСвязанногоЗначения.Очищать);
МассивПараметров.Добавить(СвязьПараметров);
Иначе
СвязьПараметров = Новый СвязьПараметраВыбора("Отбор.Владелец", "Объект.Контрагент", РежимИзмененияСвязанногоЗначения.Очищать);
МассивПараметров.Добавить(СвязьПараметров);
КонецЕсли;
МассивПараметровВыбора = Новый Массив;
ПараметрВыбора = Новый ПараметрВыбора("Отбор.Закрыт", Ложь);
МассивПараметровВыбора.Добавить(ПараметрВыбора);
ЭлементБанковскийСчетКонтрагента.СвязиПараметровВыбора = Новый ФиксированныйМассив(МассивПараметров);
ЭлементБанковскийСчетКонтрагента.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровВыбора)
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения()
ДенежныеСредстваСервер.УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьПараметрыВыбораДоговоровКредитовДепозитов(Контрагент)
МассивПараметров = Новый Массив;
Если НЕ Объект.Организация.Пустая() Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.Организация", Объект.Организация));
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ФормаОплатыЗаявки)
И (Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Безналичная
ИЛИ Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Наличная) Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ФормаОплаты", Объект.ФормаОплатыЗаявки));
КонецЕсли;
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.Статус", Перечисления.СтатусыДоговоровКонтрагентов.Действует));
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ХарактерДоговора",
Справочники.ДоговорыКредитовИДепозитов.ХарактерДоговораПоОперации(Объект.ХозяйственнаяОперация)));
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.ПометкаУдаления",Ложь));
Если НЕ Контрагент.Пустая() Тогда
МассивПараметров.Добавить(Новый ПараметрВыбора("Отбор.Контрагент", Контрагент));
КонецЕсли;
НовыеПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);
Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита.ПараметрыВыбора = НовыеПараметрыВыбора;
Элементы.РасшифровкаПлатежаДоговорКредитаДепозита.ПараметрыВыбора = НовыеПараметрыВыбора;
КонецПроцедуры
&НаСервере
Процедура УстановитьФормыОплатыПоХозяйственнойОперации()
СтруктураДанныхЗаполнения = Новый Структура;
СтруктураДанныхЗаполнения.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
СтруктураДанныхЗаполнения.Вставить("ХозяйственнаяОперацияПоЗарплате", Объект.ХозяйственнаяОперацияПоЗарплате);
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ЗаполнитьФормуОплатыПоХозОперации(СтруктураДанныхЗаполнения);
Если СтруктураДанныхЗаполнения.Свойство("ФормаОплатыНаличная")
И СтруктураДанныхЗаполнения.Свойство("ФормаОплатыБезналичная")
И СтруктураДанныхЗаполнения.Свойство("ФормаОплатыПлатежнаяКарта")
И СтруктураДанныхЗаполнения.Свойство("ФормаОплатыЗаявки") Тогда
ЗаполнитьЗначенияСвойств(Объект, СтруктураДанныхЗаполнения,
"ФормаОплатыНаличная, ФормаОплатыБезналичная, ФормаОплатыПлатежнаяКарта, ФормаОплатыЗаявки");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСуммыКонвертации()
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.ЗаголовокВалютыКурсаИКратностиКонвертации(ЭтотОбъект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДС(ОбновлятьСтавкуИСуммуНДС = Истина)
ДенежныеСредстваСервер.ЗаполнитьНалогообложениеНДС(Объект, Объект.НалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДСВозврата, ОбновлятьСтавкуИСуммуНДС);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецПроцедуры
&НаСервере
Процедура ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки)
ДенежныеСредстваСервер.ОбновитьСтавкуНДСИПересчитатьСуммуНДС(Объект, ИдСтроки);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьВидимостьДоступностьЭлементаРасшифровкаПлатежаПартнер()
ТекущаяКолонкаТаблицы = Элементы.РасшифровкаПлатежа.ТекущийЭлемент;
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеСтроки = Новый Структура("ОбъектРасчетов, ДоговорАренды, ДоговорКредитаДепозита");
ЗаполнитьЗначенияСвойств(ДанныеСтроки, СтрокаТаблицы);
ДанныеСтроки.Вставить("Ссылка", Объект.Ссылка);
ТолькоПросмотрЯчейки = НельзяРедактироватьЭлементПартнер(ДанныеСтроки);
ТекущаяКолонкаТаблицы.РедактированиеТекста = НЕ ТолькоПросмотрЯчейки;
ТекущаяКолонкаТаблицы.КнопкаВыпадающегоСписка = НЕ ТолькоПросмотрЯчейки;
ТекущаяКолонкаТаблицы.КнопкаВыбора = НЕ ТолькоПросмотрЯчейки;
ТекущаяКолонкаТаблицы.ИсторияВыбораПриВводе = ?(ТолькоПросмотрЯчейки, ИсторияВыбораПриВводе.НеИспользовать, ИсторияВыбораПриВводе.Авто);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьПредставлениеДатыПогашения()
Если Объект.РасшифровкаПлатежа.Количество() = 0
Или Не ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
Иначе
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Результат;
Модифицированность = Истина;
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура УстановитьОграничениеТипаДоговораРасшифровкиПлатежа()
ДенежныеСредстваСервер.УстановитьОграничениеТипаДоговораРасшифровкиПлатежа(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьРаспределениеПоСчетамПоФормеОплаты()
Инд = Объект.РаспределениеПоСчетам.Количество() - 1;
Пока Инд >= 0 Цикл
Если ФормаОплаты = "Наличная"
И ТипЗнч(Объект.РаспределениеПоСчетам[Инд].БанковскийСчетКасса) <> Тип("СправочникСсылка.Кассы") Тогда
Объект.РаспределениеПоСчетам.Удалить(Инд);
ИначеЕсли ФормаОплаты = "Безналичная"
И ТипЗнч(Объект.РаспределениеПоСчетам[Инд].БанковскийСчетКасса) <> Тип("СправочникСсылка.БанковскиеСчетаОрганизаций") Тогда
Объект.РаспределениеПоСчетам.Удалить(Инд);
КонецЕсли;
Инд = Инд - 1;
КонецЦикла;
ФормаОплатыПриИзмененииФрагмент();
КонецПроцедуры
&НаСервере
Процедура ИзменитьСуммуНераспределено()
СуммаНераспределено = ДенежныеСредстваСервер.НераспределенныйОстатокПлатежа(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
&НаСервере
Функция ФормаОплатыОграничена()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплаты Тогда
ДопустимаяФормаОплаты = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ОграничениеФормыОплаты(Объект.ХозяйственнаяОперацияПоЗарплате);
Иначе
ДопустимаяФормаОплаты = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ОграничениеФормыОплаты(Объект.ХозяйственнаяОперация);
КонецЕсли;
Возврат (ДопустимаяФормаОплаты <> Неопределено);
КонецФункции
&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
Элементы.РасшифровкаБезРазбиенияСтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
Элементы.РасшифровкаПлатежаСтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПроверитьСоответствиеВалют()
Если Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Наличная
И Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеПлатежа Тогда
ВалютаКассы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Касса, "ВалютаДенежныхСредств");
ВалютаСравнения = Объект.Валюта;
Если ВалютаКассы <> ВалютаСравнения Тогда
Объект.Касса = Неопределено;
КонецЕсли;
ИначеЕсли Объект.ФормаОплатыЗаявки = Перечисления.ФормыОплаты.Безналичная Тогда
ВалютаСчета = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "ВалютаДенежныхСредств");
ВалютаСчетаКонтрагента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "ВалютаДенежныхСредств");
МассивСчетов = Новый Массив;
Для Каждого СтрокаСчета Из Объект.РаспределениеПоСчетам Цикл
Если ЗначениеЗаполнено(СтрокаСчета.БанковскийСчетКасса)
И ТипЗнч(СтрокаСчета.БанковскийСчетКасса) = Тип("СправочникСсылка.БанковскиеСчетаОрганизаций") Тогда
МассивСчетов.Добавить(СтрокаСчета.БанковскийСчетКасса);
КонецЕсли;
КонецЦикла;
ВалютыСчетов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(МассивСчетов, "ВалютаДенежныхСредств");
ВалютаСравнения = ВалютаПланированияДенежныхСредств(ВалютаСчета);
Если ВалютаСчетаКонтрагента <> ВалютаСравнения
И Объект.ПлатежСКонвертацией Тогда
Объект.БанковскийСчетКонтрагента = Неопределено;
КонецЕсли;
КУдалению = Новый Массив;
Для Каждого СтрокаСчета Из Объект.РаспределениеПоСчетам Цикл
Если ЗначениеЗаполнено(СтрокаСчета.БанковскийСчетКасса)
И ТипЗнч(СтрокаСчета.БанковскийСчетКасса) = Тип("СправочникСсылка.БанковскиеСчетаОрганизаций") Тогда
Если ВалютыСчетов[СтрокаСчета.БанковскийСчетКасса].ВалютаДенежныхСредств <> ВалютаСравнения
И Не Объект.ПлатежСКонвертацией Тогда
КУдалению.Добавить(СтрокаСчета);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаСчета Из КУдалению Цикл
Объект.РаспределениеПоСчетам.Удалить(СтрокаСчета);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ВалютаПланированияДенежныхСредств(ВалютаБанковскогоСчета)
Если Объект.ФормаОплатыЗаявки <> Перечисления.ФормыОплаты.Безналичная Тогда
Возврат Неопределено;
КонецЕсли;
Если Объект.ПланированиеСуммы = Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеВзаиморасчетов Тогда
Возврат ВалютаБанковскогоСчета;
Иначе
Возврат Объект.Валюта;
КонецЕсли;
КонецФункции
&НаСервере
Процедура УстановитьФормуОплаты()
Если Объект.ФормаОплатыНаличная И Объект.ФормаОплатыБезналичная Тогда
ФормаОплаты = "Любая";
ИначеЕсли Объект.ФормаОплатыНаличная Тогда
ФормаОплаты = "Наличная";
ИначеЕсли Объект.ФормаОплатыБезналичная Тогда
ФормаОплаты = "Безналичная";
ИначеЕсли Объект.ФормаОплатыПлатежнаяКарта Тогда
ФормаОплаты = "ПлатежнаяКарта";
Иначе
ФормаОплаты = "";
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов()
ДенежныеСредстваСервер.СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов(ЭтаФорма, Объект);
КонецПроцедуры
&НаСервере
Функция ПоместитьРасшифровкуВоВременноеХранилище()
Возврат ПоместитьВоВременноеХранилище(Объект.РасшифровкаПлатежа.Выгрузить());
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция НадписьКодыИнструкцийБанку(Объект)
КодыИнструкцийБанку = "";
Если Объект.ИнструкцииБанку.Количество() Тогда
КодыИнструкцийБанку = НСтр("ru = 'Инструкции банку:'") + " ";
Для каждого СтрокаИнструкции Из Объект.ИнструкцииБанку Цикл
КодыИнструкцийБанку = КодыИнструкцийБанку + Строка(СтрокаИнструкции.Инструкция) + ", ";
КонецЦикла;
КодыИнструкцийБанку = Лев(КодыИнструкцийБанку, СтрДлина(КодыИнструкцийБанку) - 2);
Иначе
КодыИнструкцийБанку = НСтр("ru = '<Указать инструкции банку>'");
КонецЕсли;
Возврат КодыИнструкцийБанку;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция НадписьИнформацияДляРегулирующихОрганов(Объект)
ИнформацияДляРегулирующихОрганов = НСтр("ru = 'Для регулятора (77B):'");
Если ЗначениеЗаполнено(Объект.ИнформацияДляРегулирующихОрганов) Тогда
ИнформацияДляРегулирующихОрганов = ИнформацияДляРегулирующихОрганов + " " + Объект.ИнформацияДляРегулирующихОрганов;
Иначе
ИнформацияДляРегулирующихОрганов = ИнформацияДляРегулирующихОрганов + " " + НСтр("ru = '<Указать>'");
КонецЕсли;
Возврат ИнформацияДляРегулирующихОрганов;
КонецФункции
&НаСервере
Процедура ПересчитатьПараметрыКонвертации(ИмяРеквизита)
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.РассчитатьПараметрыКонвертации(ПараметрыКонвертации, ИмяРеквизита);
ЗаполнитьЗначенияСвойств(Объект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Функция СчетСоответствуетВладельцу()
Результат = Ложь;
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаЗаймаСотруднику)
И Не Объект.ПеречислениеСотрудникуЧерезБанк Тогда
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.ПодотчетноеЛицо);
Иначе
Результат = Справочники.БанковскиеСчетаКонтрагентов.ПроверитьВладельцаБанковскогоСчета(
Объект.БанковскийСчетКонтрагента, Объект.Контрагент);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Процедура ЗаблокироватьДанные()
ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка,,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура РазблокироватьДанные()
РазблокироватьДанныеДляРедактирования(,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ЗаголовокЭквайринговойКомиссии(Сумма, Валюта, Ставка)
Возврат НСтр("ru='Комиссия'") + " " + Строка(Сумма) + " " + Строка(Валюта) + " " + Строка(Ставка) + "%";
КонецФункции
&НаСервере
Процедура ЗаполнитьВалютуВзаиморасчетовДокумента()
ДенежныеСредстваСервер.ЗаполнитьВалютуВзаиморасчетовДокумента(ЭтаФорма);
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсКратностьТекстом()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура РассчитатьСуммыВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция НельзяРедактироватьЭлементПартнер(Данные)
Возврат (ЗначениеЗаполнено(Данные.ОбъектРасчетов)
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.ОбъектРасчетов,"Объект") <> Данные.Ссылка)
ИЛИ ЗначениеЗаполнено(Данные.ДоговорАренды)
ИЛИ ЗначениеЗаполнено(Данные.ДоговорКредитаДепозита);
КонецФункции
&НаСервере
Процедура УстановитьВидимостьКнопкиПодбораПодарочногоСертификата()
РазрешенаПродажаПодарочногоСертификата =
РозничныеПродажиЛокализация.РазрешенаПродажаПодарочногоСертификатаВДокументе(Объект.ХозяйственнаяОперация);
Элементы.РасшифровкаПлатежаПодобратьПодарочныйСертификат.Видимость = РазрешенаПродажаПодарочногоСертификата;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьПереключателяРасшифровки()
Если ЗначениеЗаполнено(Объект.ДокументОснование)
И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.ОперацияПоПлатежнойКарте") Тогда
Элементы.ПереключательРасшифровки.Доступность = Ложь;
Иначе
Элементы.ПереключательРасшифровки.Доступность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьПодарочныйСертификат(ПодарочныйСертификат)
НайденнаяСтрока = ПодарочныеСертификатыСервер.ДобавитьПодарочныйСертификатВТабличуюЧастьРасшифровкаПлатежа(ПодарочныйСертификат, ЭтотОбъект);
Если НайденнаяСтрока <> Неопределено Тогда
Модифицированность = Истина;
РасшифровкаПлатежаОбъектРасчетовПриИзмененииСервер(НайденнаяСтрока.ПолучитьИдентификатор());
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(НайденнаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииКонтрагента(
Контрагент,
БанковскийСчетКонтрагента,
ЗаполнитьРасшифровкуПоКонтрагенту = Истина,
ТекущийПартнер = Неопределено,
ТекущаяСтрокаРасшифровки = Неопределено)
Если ЗаполнитьРасшифровкуПоКонтрагенту Тогда
Если ТекущийПартнер = Неопределено Тогда
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, Объект.ХозяйственнаяОперация);
Иначе
Партнер = ТекущийПартнер;
КонецЕсли;
ПолучитьДоговорПоУмолчаниюСервер(Контрагент, БанковскийСчетКонтрагента);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента);
КонецЕсли;
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
Если ТекущаяСтрокаРасшифровки = Неопределено Тогда
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ЗаполнитьРасшифровкуПлатежа(ТекущаяСтрокаРасшифровки, ОбъектРасчетовДоговор);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрокаРасшифровки, СтруктураДействий, Неопределено);
КонецЕсли;
УстановитьПараметрыВыбораДоговоровКредитовДепозитов(Контрагент);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(
Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(
Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасшифровкуПлатежа(ТекущаяСтрокаТаблицы, ОбъектРасчетовДоговор)
Если Не Объект.СписокКонтрагентов Тогда
ТекущаяСтрокаТаблицы.Контрагент = Объект.Контрагент;
КонецЕсли;
ТекущаяСтрокаТаблицы.Партнер = Партнер;
ТекущаяСтрокаТаблицы.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ТекущаяСтрокаТаблицы.ОбъектРасчетов = ОбъектРасчетовДоговор;
ТекущаяСтрокаТаблицы.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
ТекущаяСтрокаТаблицы.СтавкаНДС = СтавкаНДС;
РасшифровкаОбъектРасчетовПриИзмененииСервер(ТекущаяСтрокаТаблицы.ПолучитьИдентификатор());
КонецЕсли;
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы)
МассивСсылок = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаТаблицы.ОбъектРасчетов);
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(МассивСсылок);
СтрокаТаблицы.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТаблицы.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].Объект = Объект.Ссылка;
КонецПроцедуры
&НаСервере
Процедура УстановитьПризнакПлатежаСКонвертацией(ЗначениеПоУмолчанию = Ложь)
Объект.ПлатежСКонвертацией = ЗначениеПоУмолчанию;
Если Объект.ПланированиеСуммы <> Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеВзаиморасчетов Тогда
ДенежныеСредстваСервер.УстановитьПризнакПлатежаСКонвертацией(
Объект,
"Документ.ЗаявкаНаРасходованиеДенежныхСредств");
Иначе
Объект.ПлатежСКонвертацией = Ложь;
Возврат;
КонецЕсли;
Если Объект.ПлатежСКонвертацией Тогда
Счета = Новый Массив;
Счета.Добавить(Объект.БанковскийСчетКонтрагента);
Счета.Добавить(Объект.БанковскийСчетПолучатель);
ВалютыСчетов = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Счета, "ВалютаДенежныхСредств");
Если Объект.Валюта <> ВалютыСчетов.Получить(Объект.БанковскийСчетКонтрагента) Тогда
Объект.БанковскийСчетКонтрагента = Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка();
КонецЕсли;
Если Объект.Валюта <> ВалютыСчетов.Получить(Объект.БанковскийСчетПолучатель) Тогда
Объект.БанковскийСчетПолучатель = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(ВалютаСчетаПлательщика)
И Объект.Валюта <> ВалютаСчетаПлательщика
И Объект.ПланированиеСуммы <> Перечисления.СпособыПланированияОплатыЗаявок.ВВалютеВзаиморасчетов Тогда
Объект.БанковскийСчет = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
Объект.Касса = Справочники.Кассы.ПустаяСсылка();
ВалютаСчетаПлательщика = Неопределено;
ТекущийБанковскийСчет = Объект.БанковскийСчет;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВалютуПоСчетуПолучателя(Счет)
ВалютаПолучателя = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Счет, "ВалютаДенежныхСредств");
Если Объект.Валюта <> ВалютаПолучателя
И Объект.ПлатежСКонвертацией
И ЗначениеЗаполнено(ВалютаПолучателя) Тогда
Объект.Валюта = ВалютаПолучателя;
КонецЕсли;
ОбновитьДанныеПоВалюте();
КонецПроцедуры
&НаСервере
Процедура РассчитатьФлагКонтролироватьОплатуПоОбъектамРасчетов()
ОперацииВзаиморасчетов = Документы.ЗаявкаНаРасходованиеДенежныхСредств.ОперацииВзаиморасчетов();
Если ОперацииВзаиморасчетов.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
Объект.КонтролироватьОплатуПоОбъектамРасчетов = Истина;
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов) Тогда
Объект.КонтролироватьОплатуПоОбъектамРасчетов = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
Объект.КонтролироватьОплатуПоОбъектамРасчетов = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора)
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, РеквизитыДоговора);
СтрокаРасшифровки.Договор = Объект.Договор;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаРасшифровки);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Локализация
#Область Локализация_ПодключаемыеОбработчикиСобытийФормы
&НаСервере
Процедура Подключаемый_ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка)
ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
УстановитьУсловноеОформлениеЛокализация();
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если Не ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
ЗаполнитьРеквизитыПлательщика();
КонецЕсли;
КонецЕсли;
ПриЧтенииСозданииНаСервереЛокализация();
КонецЕсли;
Элементы.ДекорацияСостояниеЭДО.Видимость = Истина;
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументССылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
ПараметрыПроцедуры = Новый Структура("ВариантОтображения", "Однострочный");
СПАРКРиски.ПриСозданииНаСервере(
ЭтотОбъект,
Неопределено,
Объект.Контрагент,
Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Объект.Контрагент),
ПараметрыПроцедуры);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЧтенииНаСервереЛокализация(ТекущийОбъект)
ПриЧтенииНаСервере(ТекущийОбъект);
ПриЧтенииСозданииНаСервереЛокализация();
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриОткрытииЛокализация(Отказ)
ПриОткрытии(Отказ);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПрименениеПриказа107н = (Объект.Дата >= ДатаНачалаПримененияПриказа107н);
КонецЕсли;
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
СПАРКРискиКлиент.ПриОткрытии(ЭтотОбъект, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаВыбораЛокализация(РезультатВыбора, ИсточникВыбора)
ОбработкаВыбора(РезультатВыбора, ИсточникВыбора);
Если ИсточникВыбора.ИмяФормы = "ОбщаяФорма.РанееСовершенныеПлатежи" Тогда
Модифицированность = Истина;
ЗаполнитьПоРанееСовершенномуПлатежу(РезультатВыбора);
ИначеЕсли ИсточникВыбора.ИмяФормы = "Документ.СписаниеБезналичныхДенежныхСредств.Форма.РеквизитыПлательщика" Тогда
Модифицированность = Истина;
ЗаполнитьЗначенияСвойств(Объект, РезультатВыбора);
УстановитьНадписьРеквизитыПлательщика();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПередЗаписьюНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник)
ОбработкаОповещения(ИмяСобытия, Параметр, Источник);
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
СПАРКРискиКлиент.ОбработкаОповещения(ЭтотОбъект, Неопределено, ИмяСобытия, Параметр, Источник);
Если ИмяСобытия = "ОбновитьДокументИБПослеЗаполнения" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
ЭтаФорма.Прочитать();
ИначеЕсли ИмяСобытия = "ОбновитьДокументИБПослеЗаполненияИзФайла" И Параметр.Найти(Объект.Ссылка) <> Неопределено Тогда
ПриЧтенииСозданииНаСервере();
КонецЕсли;
Если ИмяСобытия = "Запись_Файл"
И Параметр.Свойство("ВладелецФайла")
И Параметр.ВладелецФайла = ВыбранныйВладелецФайла
И Параметр.ЭтоНовый
И ДобавляетсяФайлПодтверждающегоДокумента Тогда
Элементы.ПодтверждающиеДокументы.ТекущиеДанные.Файл = Источник[0];
ДобавляетсяФайлПодтверждающегоДокумента = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПослеЗаписиНаСервереЛокализация(ТекущийОбъект, ПараметрыЗаписи)
ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
СПАРКРиски.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПослеЗаписиЛокализация(ПараметрыЗаписи)
ПослеЗаписи(ПараметрыЗаписи);
ОбменСКонтрагентамиКлиент.ПослеЗаписи_ФормаДокумента(ЭтаФорма, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область Локализация_ПодключаемыеОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура Подключаемый_ХозяйственнаяОперацияПриИзмененииЛокализация(Элемент)
НуженПереходНаСервер = ХозяйственнаяОперацияПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ХозяйственнаяОперацияПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСерверЛокализация()
ХозяйственнаяОперацияПриИзмененииСервер();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплаты Тогда
Объект.ХозяйственнаяОперацияПоЗарплате = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту;
Иначе
Объект.ХозяйственнаяОперацияПоЗарплате = Неопределено;
КонецЕсли;
СохраненнаяХозяйственнаяОперацияПоЗарплате = Объект.ХозяйственнаяОперацияПоЗарплате;
УстановитьФормыОплатыПоХозяйственнойОперацииЛокализация();
ФормаОплатыОграничена = ФормаОплатыОграничена Или ФормаОплатыОграниченаЛокализация();
ПеречислениеВБюджет = (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет);
Если ПеречислениеВБюджет
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств
ИЛИ Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
ЗаполнитьРеквизитыПлательщика();
УстановитьНадписьРеквизитыПлательщика();
КонецЕсли;
СтароеЗначение = Объект.ОперацияССамозанятым;
Объект.ОперацияССамозанятым = Ложь;
ЗаполнитьПодчиненныеРеквизитыОбъектаПоСтатистике("ХозяйственнаяОперация");
Если Объект.ОперацияССамозанятым <> СтароеЗначение Тогда
ОперацияССамозанятымПриИзмененииНаСервере();
КонецЕсли;
Если ТекущаяВалюта <> Объект.Валюта Тогда
ПослеИзмененияВалютыЛокализация();
КонецЕсли;
ОпределитьВалютныйПлатежЛокализация();
ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер();
УправлениеПоказателямиПлатежаВБюджет();
ЗаполнитьСписокКодовВидаДохода();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета Тогда
Объект.КодВидаДохода = "1";
Иначе
Объект.КодВидаДохода = "";
КонецЕсли;
ДенежныеСредстваСерверЛокализация.ПриИзмененииХозяйственнойОперации(ЭтотОбъект);
ДенежныеСредстваСерверЛокализация.ИнициализироватьБанковскиеСчетаСпискаКонтрагентов(Объект);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СуммаДокументаПриИзмененииЛокализация(Элемент)
НуженПереходНаСервер = СуммаДокументаПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
СуммаДокументаПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СуммаДокументаПриИзмененииСерверЛокализация()
СуммаДокументаПриИзмененииСервер();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВалютаПриИзмененииЛокализация(Элемент)
НуженПереходНаСервер = ВалютаПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ВалютаПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВалютаПриИзмененииСерверЛокализация()
ПослеИзмененияВалютыЛокализация();
ОпределитьВалютныйПлатежЛокализация();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
УправлениеЭлементамиФормы();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОрганизацияПриИзмененииЛокализация(Элемент)
ОрганизацияПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииСерверЛокализация()
СтароеЗначение = Объект.ОперацияССамозанятым;
ЗаполнитьПодчиненныеРеквизитыОбъектаПоСтатистике("Организация");
ОрганизацияПриИзмененииСервер();
Если ТекущийБанковскийСчет <> Объект.БанковскийСчет Тогда
БанковскийСчетПриИзмененииСерверЛокализация();
Иначе
ЗаполнитьРеквизитыПлательщика();
УстановитьНадписьРеквизитыПлательщика();
КонецЕсли;
Если ТекущаяВалюта <> Объект.Валюта Тогда
ВалютаПриИзмененииСерверЛокализация();
Иначе
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(
Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
КонецЕсли;
Если Объект.ОперацияССамозанятым <> СтароеЗначение Тогда
ОперацияССамозанятымПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ХозяйственнаяОперацияПоЗарплатеПриИзмененииЛокализация(Элемент)
НуженПереходНаСервер = ХозяйственнаяОперацияПоЗарплатеПриИзмененииКлиент();
Если НуженПереходНаСервер Тогда
ХозяйственнаяОперацияПоЗарплатеПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПоЗарплатеПриИзмененииСерверЛокализация()
ЗаполнитьСписокКодовВидаДохода();
ХозяйственнаяОперацияПоЗарплатеПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанковскийСчетПриИзмененииЛокализация(Элемент)
БанковскийСчетПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетПриИзмененииСерверЛокализация()
БанковскийСчетПриИзмененииСервер();
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьВалютныйПлатежЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
ЗаполнитьРеквизитыПлательщика();
УстановитьНадписьРеквизитыПлательщика();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтрагентПриИзмененииЛокализация()
ЭтотОбъект.ИндексыСПАРКРиски = Неопределено;
ОбновитьОтображениеИндексыСПАРК();
КонтрагентПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСерверЛокализация()
СтароеЗначение = Объект.ОперацияССамозанятым;
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ЗаполнитьПодчиненныеРеквизитыОбъектаПоСтатистике("Контрагент");
Иначе
Объект.ОперацияССамозанятым = Ложь;
КонецЕсли;
КонтрагентПриИзмененииСервер();
Если Объект.ОперацияССамозанятым <> СтароеЗначение Тогда
ОперацияССамозанятымПриИзмененииНаСервере();
КонецЕсли;
ОпределитьВалютныйПлатежЛокализация();
ДенежныеСредстваСерверЛокализация.УстановитьКодВидаДоходаСамозанятого(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере();
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолучательПриИзмененииЛокализация(Элемент)
Подключаемый_КонтрагентПриИзмененииЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_БанковскийСчетКонтрагентаПриИзмененииЛокализация()
БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура БанковскийСчетКонтрагентаПриИзмененииСерверЛокализация()
БанковскийСчетКонтрагентаПриИзмененииНаСервере();
ОпределитьВалютныйПлатежЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПланированиеСуммыПриИзмененииЛокализация()
ПланированиеСуммыПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ПланированиеСуммыПриИзмененииСерверЛокализация()
ПланированиеСуммыПриИзмененииСервер();
ОпределитьВалютныйПлатежЛокализация();
НастроитьЗависимыеЭлементыФормыНаСервере();
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОперацияССамозанятымПриИзмененииЛокализация()
ОперацияССамозанятымПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДоговорПриИзмененииЛокализация()
ДоговорПриИзмененииЛокализацияНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииЛокализация(Элемент)
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСерверЛокализация();
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СписокФизЛицВключеноПриИзмененииЛокализация(Элемент)
Объект.СписокФизЛиц = Булево(СписокФизЛиц);
Если Объект.СписокФизЛиц Тогда
СписокФизЛицПриИзмененииЛокализацияНаСервере();
КонецЕсли;
НастроитьЗависимыеЭлементыФормы("СписокФизЛиц");
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияОбработчикиСобытийЭлементовФормы
&НаСервере
Процедура ПеречислениеВБюджетПриИзмененииСервер()
Если Объект.ПеречислениеВБюджет Тогда
МассивОпераций = ДенежныеСредстваСерверЛокализация.МассивОперацийПеречисленияВБюджет();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж;
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж;
ИначеЕсли МассивОпераций.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж;
КонецЕсли;
УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду();
Если ПустаяСтрока(Объект.КодОКАТО) Тогда
Реквизиты = Справочники.Организации.ПолучитьРеквизитыОрганизации(Объект.Организация);
Если ПрименениеПриказа107н Тогда
Объект.КодОКАТО = Реквизиты.КодПоОКТМО;
Иначе
Объект.КодОКАТО = Реквизиты.КодПоОКАТО;
КонецЕсли;
КонецЕсли;
КонецЕсли;
УправлениеПоказателямиПлатежаВБюджет();
НастроитьЗависимыеЭлементыФормыНаСервере("ПеречислениеВБюджет");
КонецПроцедуры
&НаКлиенте
Процедура НадписьРеквизитыПлатежаВБюджетНажатиеЗавершение(РеквизитыПлатежаВБюджет, ДополнительныеПараметры) Экспорт
Если РеквизитыПлатежаВБюджет <> Неопределено Тогда
Модифицированность = Истина;
ЗаполнитьЗначенияСвойств(Объект, РеквизитыПлатежаВБюджет);
УправлениеПоказателямиПлатежаВБюджет();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ТипНалогаПриИзмененииНаСервере()
ИнициализироватьРасшифровкуПлатежа();
ПлатежиВБюджет.РеквизитыПлатежаВБюджетПоУмолчанию(Объект);
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтотОбъект);
УправлениеЭлементамиФормы();
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
КонецПроцедуры
&НаСервере
Процедура ОперацияССамозанятымПриИзмененииНаСервере()
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "Контрагент");
Если Объект.ОперацияССамозанятым Тогда
Объект.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
Объект.ПеречислениеВБюджет = Ложь;
ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер();
Иначе
Объект.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПустаяСсылка();
УправлениеПоказателямиПлатежаВБюджет();
КонецЕсли;
ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
ПолучитьДоговорПоУмолчаниюСервер(Объект.Контрагент, Объект.БанковскийСчетКонтрагента);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента)
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьРасшифровкуПлатежа(СтрокаТЧ, ОбъектРасчетовДоговор);
КонецЦикла;
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
ДенежныеСредстваСерверЛокализация.ПриИзмененииХозяйственнойОперации(ЭтотОбъект);
ДенежныеСредстваСерверЛокализация.ИнициализироватьБанковскиеСчетаСпискаКонтрагентов(Объект);
ЗаполнитьНалогообложениеНДС();
РассчитатьФлагКонтролироватьОплатуПоОбъектамРасчетов();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
НастроитьЗависимыеЭлементыФормыНаСервере("ОперацияССамозанятым");
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииЛокализацияНаСервере()
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСерверЛокализация()
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура СписокФизЛицПриИзмененииЛокализацияНаСервере()
СписокФизЛицВключеноПриИзмененииНаСервере();
Если ТекущаяВалюта <> Объект.Валюта Тогда
ВалютаПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежаЛокализация
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаВыборЛокализация(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПриИзмененииЛокализация(Элемент)
РасшифровкаПлатежаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПриНачалеРедактированияЛокализация(Элемент, НоваяСтрока, Копирование)
РасшифровкаПлатежаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование);
ДенежныеСредстваКлиентЛокализация.УстановитьПараметрыВыбораКонтрагентаРасшифровкиПлатежа(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаКонтрагентПриИзмененииЛокализация(Элемент)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
РасшифровкаПлатежаКонтрагентПриИзмененииСерверЛокализация(ИдентификаторСтроки);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаПартнерПриИзмененииЛокализация(Элемент)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
РасшифровкаПлатежаПартнерПриИзмененииСерверЛокализация(ИдентификаторСтроки);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииЛокализация(Элемент)
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РасшифровкаБезРазбиенияДоговорКредитаДепозитаПриИзмененииЛокализация(Элемент)
Подключаемый_РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииЛокализация(Элемент);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСерверЛокализация()
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияКоманды
&НаКлиенте
Процедура ЗаполнитьВедомостиНаВыплатуЗарплатыПоОстаткамЛокализация(Команда)
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ТабличнаяЧасть = Объект.РасшифровкаПлатежа;
ПараметрыПроверки.ПроверятьРаспроведенность = Ложь;
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Организация", НСтр("ru = 'Организация'"));
Оповещение = Новый ОписаниеОповещения("ЗаполнитьВедомостиНаВыплатуЗарплатыПоОстаткамЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьВедомостиНаВыплатуЗарплатыПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
ЗаполнитьВедомостиПоОстаткамНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьФайлДляОбменаСБанкомЛокализация(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьОстаткамиНевыданныхСуммСотрудникуЛокализация(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПодтверждающиеДокументыЛокализация(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПросмотретьПодтверждающийДокументЛокализация(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоПредыдущемуПлатежуЛокализация(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Ссылка", Объект.Ссылка);
ПараметрыФормы.Вставить("БанковскийСчет", Объект.БанковскийСчет);
ПараметрыФормы.Вставить("ПрименениеПриказа107н", ПрименениеПриказа107н);
ПараметрыФормы.Вставить("ПрименениеПриказа126н", ПрименениеПриказа126н);
Если ЗначениеЗаполнено(Объект.ТипНалога) Тогда
ПараметрыФормы.Вставить("ТипНалога", Объект.ТипНалога);
КонецЕсли;
ОткрытьФорму("ОбщаяФорма.РанееСовершенныеПлатежи", ПараметрыФормы, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьСчетаФактурыЛокализация(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПодбораСчетовФактур(Результат, ДополнительныеПараметры) Экспорт
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодборПоОстаткамЛокализация(Команда)
ПодборПоОстаткамОбработка("ПодборПоОстаткамЗавершениеЛокализация");
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамЗавершениеЛокализация(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ПодборПоОстаткамЗавершениеСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодборПоОстаткамЗавершениеСерверЛокализация()
ПодборПоОстаткамЗавершениеСервер();
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗаполнитьНазначениеПлатежаЛокализация(Команда)
ЗаполнитьНазначениеПлатежаСервер();
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияСлужебные
#Область ПриИзмененииРеквизитовЛокализация
&НаСервере
Процедура ПослеИзмененияВалютыЛокализация()
ПослеИзмененияВалюты();
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура УстановитьУсловноеОформлениеЛокализация()
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииСозданииНаСервереЛокализация()
ДенежныеСредстваСерверЛокализация.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
ДатаНачалаПримененияПриказа107н = Константы.ДатаНачалаПримененияПриказа107н.Получить();
ПрименениеПриказа107н = (ТекущаяДата >= ДатаНачалаПримененияПриказа107н);
ДатаНачалаПримененияПриказа126н = Константы.ДатаНачалаПримененияПриказа126н.Получить();
ПрименениеПриказа126н = (ДатаНачалаПримененияПриказа126н <> '00010101' И ТекущаяДата >= ДатаНачалаПримененияПриказа126н);
ДействуетУказание2019_5286У = ПлатежиВБюджетКлиентСервер.ДействуетУказание2019_5286У(ТекущаяДата);
ТоварыРаботыУслугиСТарифнымРегулированием.Загрузить(ОбщегоНазначения.ПрочитатьXMLВТаблицу(
Документы.ЗаявкаНаРасходованиеДенежныхСредств.ПолучитьМакет("ТоварыРаботыУслугиСТарифнымРегулированием").ПолучитьТекст()).Данные);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораКонтрагента(ЭтотОбъект, Объект, Элементы.Контрагент);
ДенежныеСредстваКлиентСерверЛокализация.УстановитьПараметрыВыбораПолучателя(ЭтотОбъект, Объект, Элементы.Получатель);
ДенежныеСредстваКлиентСерверЛокализация.УстановитьПараметрыВыбораПолучателя(ЭтотОбъект, Объект, Элементы.РасшифровкаПлатежаКонтрагент);
ДенежныеСредстваСерверЛокализация.УстановитьПараметрыВыбораБанковскихСчетаСпискаКонтрагентов(Объект, Элементы.БанковскиеСчетаСпискаКонтрагентовБанковскийСчетКонтрагента);
ПроверитьКорректностьЗаполненияПлатежаВБюджет();
ЗаполнитьСписокХозяйственныхОперацийЛокализация();
ЗаполнитьСписокХозяйственныхОперацийПоЗарплатеЛокализация();
УточнитьСписокХозяйственныхОперацийЛокализация();
ИспользоватьВыплатыСамозанятым = ПолучитьФункциональнуюОпцию("ИспользоватьВыплатыСамозанятым");
СписокКонтрагентов = Число(Объект.СписокКонтрагентов);
ДенежныеСредстваСерверЛокализация.УстановитьПереключательРасшифровки(ЭтотОбъект);
ФормаОплатыОграничена = ФормаОплатыОграничена Или ФормаОплатыОграниченаЛокализация();
ОпределитьБанковскийСчетПоГосконтрактуЛокализация();
ОпределитьВалютныйПлатежЛокализация();
УстановитьНадписьРеквизитыПлательщика();
УправлениеПоказателямиПлатежаВБюджет();
ЗаполнитьСписокКодовВидаДохода();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокХозяйственныхОперацийЛокализация()
Операции = Перечисления.ХозяйственныеОперации;
ДоступныеОперации = Элементы.ХозяйственнаяОперация.СписокВыбора;
ДоступныеОперации.Очистить();
ДоступныеОперации.Добавить(Операции.ОплатаПоставщику);
ДоступныеОперации.Добавить(Операции.ВыдачаДенежныхСредствПодотчетнику, НСтр("ru = 'Выдача подотчетнику'"));
ДоступныеОперации.Добавить(Операции.ПеречислениеВБюджет);
ДоступныеОперации.Добавить(Операции.ПеречислениеТаможне);
ДоступныеОперации.Добавить(Операции.ОплатаДенежныхСредствВДругуюОрганизацию, НСтр("ru = 'Оплата в другую организацию'"));
ДоступныеОперации.Добавить(Операции.ВнутренняяПередачаДенежныхСредств, НСтр("ru = 'Передача между организацией и филиалом'"));
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплаты);
ДоступныеОперации.Добавить(Операции.ОплатаАрендодателю);
ДоступныеОперации.Добавить(Операции.ОплатаПоКредитам);
ДоступныеОперации.Добавить(Операции.ПеречислениеНаДепозиты);
ДоступныеОперации.Добавить(Операции.ВыдачаЗаймов, НСтр("ru = 'Выдача займа контрагенту'"));
ДоступныеОперации.Добавить(Операции.ВыдачаЗаймаСотруднику, НСтр("ru = 'Выдача займа сотруднику'"));
ДоступныеОперации.Добавить(Операции.КонвертацияВалюты);
ДоступныеОперации.Добавить(Операции.ПрочаяВыдачаДенежныхСредств, НСтр("ru = 'Прочий расход'"));
ДоступныеОперации.Добавить(Операции.ВозвратОплатыКлиенту);
ДоступныеОперации.Добавить(Операции.ВозвратДенежныхСредствВДругуюОрганизацию, НСтр("ru = 'Возврат в другую организацию'"));
ДоступныеОперации.Добавить(Операции.ВозвратОплатыНаПлатежнуюКарту);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокХозяйственныхОперацийПоЗарплатеЛокализация()
Операции = Перечисления.ХозяйственныеОперации;
ДоступныеОперации = Элементы.ХозяйственнаяОперацияПоЗарплате.СписокВыбора;
ДоступныеОперации.Очистить();
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплатыПоЗарплатномуПроекту, НСтр("ru = 'По зарплатному проекту'"));
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплатыНаЛицевыеСчета, НСтр("ru = 'На лицевые счета'"));
ДоступныеОперации.Добавить(Операции.ВыплатаЗарплатыЧерезКассу, НСтр("ru = 'Через кассу'"));
КонецПроцедуры
&НаСервере
Процедура УточнитьСписокХозяйственныхОперацийЛокализация()
УточнитьСписокХозяйственныхОпераций();
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСерверЛокализация.УстановитьВидимостьОперацииПеречислениеТаможне(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСерверЛокализация.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура УправлениеПоказателямиПлатежаВБюджет()
ПлатежиВБюджет.УстановитьНадписьРеквизитовПлатежаВБюджет(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСписокКодовВидаДохода()
Элементы.КодВидаДохода.СписокВыбора.Очистить();
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
Для каждого ЭлементСписка Из ПлатежиВБюджетКлиентСервер.КодыВидовДохода(ТекущаяДата,
Объект.ХозяйственнаяОперацияПоЗарплате = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыПоЗарплатномуПроекту
Или Объект.ХозяйственнаяОперацияПоЗарплате = Перечисления.ХозяйственныеОперации.ВыплатаЗарплатыНаЛицевыеСчета) Цикл
Элементы.КодВидаДохода.СписокВыбора.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКорректностьЗаполненияПлатежаВБюджет()
ТекущаяДата = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДатаСеанса());
ПлатежиВБюджет.ПроверитьКорректностьЗаполненияПлатежаВБюджет(ЭтотОбъект, ТекущаяДата);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРеквизитыПлательщика()
РеквизитыПлательщика = ДенежныеСредстваСерверЛокализация.РеквизитыПлательщика(Объект);
ЗаполнитьЗначенияСвойств(Объект, РеквизитыПлательщика);
КонецПроцедуры
&НаСервере
Процедура УстановитьНадписьРеквизитыПлательщика()
Если ЗначениеЗаполнено(Объект.Организация) Тогда
НадписьРеквизитыПлательщика = ДенежныеСредстваСерверЛокализация.НадписьРеквизитыПлательщика(
Объект.ИННПлательщика, Объект.КПППлательщика, Объект.ТекстПлательщика, ЮрФизЛицо, Объект.ХозяйственнаяОперация);
Иначе
НадписьРеквизитыПлательщика = "";
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПроверитьРеквизитыБюджетаНаСервере()
НомерСчетаКонтрагента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчетКонтрагента, "НомерСчета");
Ошибка = ПлатежиВБюджетКлиентСервер.ПроверитьУИН(Объект.ИдентификаторПлатежа,
ПлатежиВБюджетКлиентСервер.АдминистраторНачисленияФедеральныйОрганГосударственнойВласти(НомерСчетаКонтрагента));
Если Не ПустаяСтрока(Ошибка) Тогда
ШаблонТекста = НСтр("ru = '%1
|Если УИН достоверно не известен, не указывайте его (очистите поле).'");
Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, Ошибка);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Ошибка, , "ИдентификаторПлатежа", "Объект");
КонецЕсли;
ДублиУИН = ПлатежиВБюджет.ПроверитьДублиУИН(Объект.ИдентификаторПлатежа, Объект.Ссылка);
Если ДублиУИН.Количество() > 0 Тогда
Для каждого ОписаниеОшибки Из ДублиУИН Цикл
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ОписаниеОшибки.ТекстОшибки,, "ИдентификаторПлатежа", "Объект");
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВедомостиПоОстаткамНаСервере()
Если Не ИспользоватьНачислениеЗарплатыУТ Тогда
ВызватьИсключение НСтр("ru = 'Не используется начисление зарплаты'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду()
Если Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж Тогда
Объект.СтатусСоставителя = "01";
Объект.ПоказательОснования = "";
Объект.ПоказательПериода = "";
Объект.ПоказательТипа = "";
ИначеЕсли Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж Тогда
Объект.СтатусСоставителя = "06";
Объект.ПоказательОснования = "";
Объект.ПоказательПериода = "";
Объект.ПоказательТипа = "";
ИначеЕсли Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж Тогда
Объект.СтатусСоставителя = "08";
Объект.ПоказательОснования = "0";
Объект.ПоказательПериода = "0";
Объект.ПоказательНомера = "0";
Объект.ПоказательДаты = "0";
Объект.ПоказательТипа = ?(ПрименениеПриказа126н, "", "0");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ФормаОплатыОграниченаЛокализация()
ДопустимаяФормаОплаты = ЗаявкаНаРасходованиеДенежныхСредствЛокализация.ОграничениеФормыОплаты(Объект.ХозяйственнаяОперация);
Возврат (ДопустимаяФормаОплаты <> Неопределено)
ИЛИ Объект.СписокКонтрагентов;
КонецФункции
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоказателиПлатежаВБюджетПоУмолчаниюСервер()
МассивОпераций = ДенежныеСредстваСерверЛокализация.МассивОперацийПеречисленияВБюджет();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеВБюджет Тогда
Объект.ПеречислениеВБюджет = Истина;
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.НалоговыйПлатеж;
Периодичность = "МС";
НомерПериода = Месяц(ТекущаяДата);
ГодПериода = Год(ТекущаяДата);
Объект.ПоказательПериода = Периодичность
+ "."
+ ?(СтрДлина(СокрЛП(НомерПериода)) = 1, "0" + НомерПериода, НомерПериода)
+ "."
+ СтрЗаменить(Строка(ГодПериода), Символы.НПП, "");
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПеречислениеТаможне Тогда
Объект.ПеречислениеВБюджет = Истина;
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ТаможенныйПлатеж;
Объект.ПоказательПериода = "";
ИначеЕсли МассивОпераций.Найти(Объект.ХозяйственнаяОперация) <> Неопределено Тогда
Объект.ВидПеречисленияВБюджет = Перечисления.ВидыПеречисленийВБюджет.ИнойПлатеж;
Иначе
Объект.ПеречислениеВБюджет = Ложь;
КонецЕсли;
УстановитьЗначенияПоказателейПлатежаВБюджетПоВиду();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоРанееСовершенномуПлатежу(РезультатВыбора)
Объект.ПеречислениеВБюджет = Истина;
Если Не ЗначениеЗаполнено(Объект.ТипНалога) Тогда
Объект.ТипНалога = РезультатВыбора.АналитикаАктивовПассивов;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Объект, РезультатВыбора,,);
Если Не Объект.РасшифровкаПлатежа.Количество() Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецЕсли;
Для Каждого СтрокаПлатежа Из Объект.РасшифровкаПлатежа Цикл
СтрокаПлатежа.СтатьяДвиженияДенежныхСредств = РезультатВыбора.СтатьяДвиженияДенежныхСредств;
КонецЦикла;
УправлениеПоказателямиПлатежаВБюджет();
УстановитьНадписьРеквизитыПлательщика();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОпределитьВалютныйПлатежЛокализация()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ВалютныйПлатеж = Ложь;
Иначе
Если ЗначениеЗаполнено(ВалютаСчетаПлательщика) Тогда
ВалютныйПлатеж = (ВалютаСчетаПлательщика <> ВалютаРеглУчета);
ИначеЕсли ЗначениеЗаполнено(Объект.Валюта) Тогда
ВалютныйПлатеж = (Объект.Валюта <> ВалютаРеглУчета);
Иначе
ВалютныйПлатеж = Ложь;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОпределитьБанковскийСчетПоГосконтрактуЛокализация()
БанковскийСчетПоГосконтракту = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.БанковскийСчет, "СчетПоГосконтракту");
КонецПроцедуры
&НаСервере
Процедура УстановитьФормыОплатыПоХозяйственнойОперацииЛокализация()
СтруктураДанныхЗаполнения = Новый Структура;
СтруктураДанныхЗаполнения.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
ЗаявкаНаРасходованиеДенежныхСредствЛокализация.ЗаполнитьФормуОплатыПоХозОперации(СтруктураДанныхЗаполнения);
Если СтруктураДанныхЗаполнения.Свойство("ФормаОплатыНаличная")
И СтруктураДанныхЗаполнения.Свойство("ФормаОплатыБезналичная")
И СтруктураДанныхЗаполнения.Свойство("ФормаОплатыПлатежнаяКарта")
И СтруктураДанныхЗаполнения.Свойство("ФормаОплатыЗаявки") Тогда
ЗаполнитьЗначенияСвойств(Объект, СтруктураДанныхЗаполнения,
"ФормаОплатыНаличная, ФормаОплатыБезналичная, ФормаОплатыПлатежнаяКарта, ФормаОплатыЗаявки");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СписокКонтрагентовПриИзмененииСервер()
ДенежныеСредстваСерверЛокализация.ПриИзмененииПризнакаСпискаКонтрагентов(ЭтотОбъект);
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецЕсли;
Если Не Объект.СписокКонтрагентов Тогда
Объект.РасшифровкаПлатежа.Очистить();
ИнициализироватьРасшифровкуПлатежа();
КонецЕсли;
УправлениеЭлементамиФормы();
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриИзмененииСервер()
ДенежныеСредстваСерверЛокализация.ЗаполнитьРеестрКонтрагентов(Объект);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаКонтрагентПриИзмененииСерверЛокализация(ИдентификаторСтроки)
ПараметрыПроцедуры = ДенежныеСредстваСерверЛокализация.ПараметрыПриИзмененииКонтрагентаВРасшифровкеПлатежа(
ЭтотОбъект, ИдентификаторСтроки);
Если ПараметрыПроцедуры <> Неопределено Тогда
ПриИзмененииКонтрагента(
ПараметрыПроцедуры.Контрагент,
ПараметрыПроцедуры.БанковскийСчетКонтрагента,
ПараметрыПроцедуры.ЗаполнитьРасшифровкуПоКонтрагенту,
ПараметрыПроцедуры.ТекущийПартнер,
ПараметрыПроцедуры.ТекущаяСтрокаРасшифровки);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПартнерПриИзмененииСерверЛокализация(ИдентификаторСтроки)
ПараметрыПроцедуры = ДенежныеСредстваСерверЛокализация.ПараметрыПриИзмененииПартнераВРасшифровкеПлатежа(
ЭтотОбъект, ИдентификаторСтроки);
Если ПараметрыПроцедуры <> Неопределено Тогда
ПриИзмененииКонтрагента(
ПараметрыПроцедуры.Контрагент,
ПараметрыПроцедуры.БанковскийСчетКонтрагента,
ПараметрыПроцедуры.ЗаполнитьРасшифровкуПоКонтрагенту,
ПараметрыПроцедуры.ТекущийПартнер,
ПараметрыПроцедуры.ТекущаяСтрокаРасшифровки);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПодчиненныеРеквизитыОбъектаПоСтатистике(ИмяРеквизита)
ОписаниеРеквизитов = Новый Структура;
ДенежныеСредстваСерверЛокализация.ЗадатьОписаниеЗаполняемыхРеквизитовПоСтатистике(ОписаниеРеквизитов);
Если ОписаниеРеквизитов.Количество() <> 0 Тогда
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьПодчиненныеРеквизитыОбъекта(Объект, ИмяРеквизита, ОписаниеРеквизитов);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьОтображениеИндексыСПАРК()
ОбновитьОтображениеИндексыСПАРК();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьОтображениеИндексыСПАРК()
ПараметрыОтображения = Новый Структура("ВариантОтображения", "Однострочный");
СПАРКРискиКлиент.ОтобразитьИндексыСПАРК(
ЭтотОбъект.ИндексыСПАРКРиски,
Неопределено,
Объект.Контрагент,
ВидКонтрагентаСПАРК(Объект.Контрагент),
ЭтотОбъект,
ПараметрыОтображения);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВидКонтрагентаСПАРК(Контрагент)
Возврат Перечисления.ЮрФизЛицо.ВидКонтрагентаСПАРКРиски(Контрагент);
КонецФункции
#КонецОбласти
#КонецОбласти
#Область Инициализация
#Если НаСервере Тогда
Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
ПодключеныОбработчикиЛокализация = Истина;
ПодключаемыеОбработчикиСобытийФормы = Новый Массив;
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриСозданииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЧтенииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриОткрытии");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаВыбора");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписьюНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаОповещения");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписи");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийФормы Цикл
УстановитьДействие(Обработчик, "Подключаемый_" + Обработчик + "Локализация");
КонецЦикла;
КомандыЛокализация = Новый Массив;
КомандыЛокализация.Добавить("ПодборПоОстаткам");
КомандыЛокализация.Добавить("ЗаполнитьНазначениеПлатежа");
Для каждого Обработчик Из КомандыЛокализация Цикл
Команда = Команды.Найти(Обработчик);
Если Команда <> Неопределено Тогда
Команда.Действие = "Подключаемый_" + Обработчик + "Локализация";
КонецЕсли;
КонецЦикла;
ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие;
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ХозяйственнаяОперация", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Организация", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("СуммаДокумента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Валюта", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ХозяйственнаяОперацияПоЗарплате", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчет", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Контрагент", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Получатель", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("БанковскийСчетКонтрагента", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ПланированиеСуммы", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ОперацияССамозанятым", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Договор", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("СписокФизЛицВключено", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа", "ПриИзменении,Выбор,ПриНачалеРедактирования");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаКонтрагент", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаПартнер", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежаДоговорКредитаДепозита", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияДоговорКредитаДепозита", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаБезРазбиенияОбъектРасчетов", "ПриИзменении");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
Если Элементы.Найти(Обработчик.Ключ) <> Неопределено Тогда
СписокСобытий = СтрРазделить(Обработчик.Значение, ",");
Для Каждого Событие Из СписокСобытий Цикл
Элементы[Обработчик.Ключ].УстановитьДействие(
Событие, "Подключаемый_" + Обработчик.Ключ + Событие + "Локализация");
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
#КонецЕсли
#КонецОбласти