#Область ОписаниеПеременных
&НаКлиенте
Перем КэшированныеЗначения;
&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;
&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;
&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПараметрыВыбораСтатейИАналитик = Документы.РасходныйКассовыйОрдер.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ФормаПриСозданииНаСервере(ЭтаФорма);
ФормированиеФискальныхЧековСервер.ФормаПриСозданииНаСервере(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервере();
Если Параметры.Свойство("Основание") Тогда
Если ЗначениеЗаполнено(Параметры.Основание) И ТипЗнч(Параметры.Основание) <> Тип("Структура") Тогда
Если ТипЗнч(Параметры.Основание) = Тип("СправочникСсылка.ПодарочныеСертификаты") Тогда
Объект.Основание = Параметры.Основание;
Иначе
Объект.Основание = ОбщегоНазначенияУТ.ПолучитьПредставлениеДокумента(Параметры.Основание,
ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Параметры.Основание.Номер),
Параметры.Основание.Дата);
КонецЕсли;
КонецЕсли;
Основание = Параметры.Основание;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.КассаККМ) Тогда
ПараметрыКассыККМ = Новый ФиксированнаяСтруктура(Справочники.КассыККМ.ПараметрыКассыККМ(Объект.КассаККМ));
ПраваДоступа = НастройкиПродажДляПользователейСервер.ПраваДоступаРМК(Пользователи.ТекущийПользователь());
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
КонецЕсли;
Элементы.РасшифровкаБезРазбиенияДатаПогашения.ТолькоПросмотр = Не ПравоДоступа(
"Редактирование",
Метаданные.Документы.РасходныйКассовыйОрдер.ТабличныеЧасти.РасшифровкаПлатежа.Реквизиты.ДатаПогашения);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтаФорма);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтаФорма, ДополнительныеПараметры);
Элементы.ДекорацияСостояниеЭДО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьОбменЭД");
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
ИсправлениеДокументов.ПриСозданииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиент.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Основание);
Если ПериодАвансовогоОтчета = НСтр("ru = 'Через неделю'") Тогда
Объект.ДатаАвансовогоОтчета = ?(ЗначениеЗаполнено(Объект.Дата), Объект.Дата, ТекущаяДата()) + 7 * 24 * 3600;
КонецЕсли;
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(РезультатВыбора, ИсточникВыбора)
Если ИсточникВыбора.ИмяФормы = "Документ.ЗаявкаНаРасходованиеДенежныхСредств.Форма.ПодборЗаявокВДокументыОплаты" Тогда
ОбработкаПодбораИзЗаявок(РезультатВыбора.АдресЗаявокВХранилище);
КонецЕсли;
Если Окно <> Неопределено Тогда
Окно.Активизировать();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ПараметрыВыбораСтатейИАналитик = Документы.РасходныйКассовыйОрдер.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ФормаПриЧтенииНаСервере(ЭтаФорма);
ФормированиеФискальныхЧековСервер.ФормаПриЧтенииНаСервере(ЭтотОбъект);
ПриЧтенииСозданииНаСервере();
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
СобытияФорм.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
СобытияФормКлиент.ПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи);
Если НеВыполнятьПроверкуПередЗаписью Тогда
НеВыполнятьПроверкуПередЗаписью = Ложь;
Возврат;
КонецЕсли;
ХозОперацииИсключения = Новый Массив;
ХозОперацииИсключения.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыЧерезКассу"));
ХозОперацииИсключения.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыРаздатчиком"));
ХозОперацииИсключения.Добавить(ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыплатаЗарплатыРаботнику"));
Если ХозОперацииИсключения.Найти(Объект.ХозяйственнаяОперация) = Неопределено
И ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ФинансыКлиент.ПересчитатьСуммуДокументаПоРасшифровкеПлатежа(ЭтаФорма, ОписаниеОповещения);
Возврат;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ПараметрыЗаписи, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписьюПредложитьПересчитатьСуммуДокументаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса Тогда
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ДополнительныеПараметры.ПараметрыЗаписи,,Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("КлючиДокументаОповещение", РаботаСЖурналамиДокументовКлиент.ПолучитьПараметрыКлючаПоДокументу(
Объект.Ссылка, Объект.Дата, Объект.ХозяйственнаяОперация));
Оповестить("Запись_РасходныйКассовыйОрдер", ПараметрыЗаписи, Объект.Ссылка);
ВзаиморасчетыКлиент.ФормаПослеЗаписи(ЭтаФорма);
МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);
ОбщегоНазначенияУТКлиент.ВыполнитьДействияПослеЗаписи(ЭтаФорма, Объект, ПараметрыЗаписи);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
КонецЕсли;
ИсправлениеДокументовКлиент.ПослеЗаписи(Объект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
ВзаиморасчетыСервер.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект);
МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере(ЭтаФорма, Отказ, ТекущийОбъект, ПараметрыЗаписи);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
ВзаиморасчетыСервер.ФормаПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект.ДополнительныеСвойства);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьНалогообложениеНДС(Ложь);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере(ЭтаФорма, ТекущийОбъект, ПараметрыЗаписи);
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
СобытияФорм.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтаФорма, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
Если ИмяСобытия = "СчитанПодарочныйСертификат"
И Параметр.ФормаВладелец = УникальныйИдентификатор Тогда
ОбработатьПодарочныйСертификат(Параметр.ПодарочныйСертификат);
КонецЕсли;
СобытияФормКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
Если Не ПереключательРасшифровки Тогда
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.ДополнительныеСвойства.Вставить("РасшифровкаБезРазбиения", Истина);
Если Не ДокументОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ПроверяемыеРеквизиты.Очистить();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
ПринудительноЗакрытьФорму = Истина;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
НужнаОбработка = ДатаПриИзмененииКлиент();
Если НужнаОбработка Тогда
ДатаПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ДатаПриИзмененииКлиент()
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.Дата);
Возврат Истина;
КонецФункции
&НаСервере
Процедура ДатаПриИзмененииСервер()
ОтветственныеЛицаСервер.ПриИзмененииСвязанныхРеквизитовДокумента(Объект);
ЗаполнитьНалогообложениеНДС();
ЗаполнитьКурсКурсЗнаменательВзаиморасчетов();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзменении(Элемент)
Оповещение = Новый ОписаниеОповещения("ХозяйственнаяОперацияПриИзмененииФрагмент", ЭтотОбъект);;
ХозяйственнаяОперацияПриИзмененииКлиент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзмененииКлиент(Оповещение)
Если СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация Тогда
Возврат;
КонецЕсли;
УстановитьПризнакОплатыПоЗаявкам();
Объект.КассаПолучатель = Неопределено;
Объект.ОрганизацияПолучатель = Неопределено;
Если Объект.ВыплатаЗаработнойПлаты.Количество() > 0 Тогда
ТекстВопроса = НСтр("ru = 'Список работников будет очищен. Продолжить?'");
КодОтвета = Неопределено;
ДополнительныеПараметры = Новый Структура("Оповещение", Оповещение);
ОповещениеЗавершение =
Новый ОписаниеОповещения("ХозяйственнаяОперацияПриИзмененииЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВопрос(ОповещениеЗавершение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Возврат;
КонецЕсли;
ВыполнитьОбработкуОповещения(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзмененииЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
КодОтвета = РезультатВопроса;
Если КодОтвета = КодВозвратаДиалога.Нет Тогда
Объект.ХозяйственнаяОперация = СохраненнаяХозяйственнаяОперация;
Возврат;
КонецЕсли;
Объект.ВыплатаЗаработнойПлаты.Очистить();
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзмененииФрагмент(Результат, ДополнительныеПараметры) Экспорт
ХозяйственнаяОперацияПриИзмененииСервер();
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСервер()
ИнициализироватьРасшифровкуПлатежа();
Если ЗначениеЗаполнено(Объект.ДокументОснование)
И ДоступныеОперацииПоОснованию.НайтиПоЗначению(Объект.ХозяйственнаяОперация) = Неопределено Тогда
Объект.ДокументОснование = Неопределено;
ДоступныеОперацииПоОснованию.Очистить();
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаРасшифровки, "Объект.РасшифровкаПлатежа");
КонецЦикла;
УстановитьВозможныеЗначенияКассыПолучателя();
СтатьяДДСПоХО = Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(
Объект.ХозяйственнаяОперация);
Объект.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоХО;
Для каждого СтрокаРасшифровкиПлатежа Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровкиПлатежа.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоХО;
КонецЦикла;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств
И Не Справочники.Организации.ОрганизацияВзаимосвязанаСДругимиОрганизациями(Объект.Организация) Тогда
Объект.Касса = Неопределено;
Объект.Организация = Неопределено;
ВалютаРеглУчета = Неопределено;
ТекущаяКасса = Объект.Касса;
КонецЕсли;
МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
Документы.РасходныйКассовыйОрдер.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("Контрагент") = Неопределено Тогда
Объект.Контрагент = Неопределено;
Объект.Договор = Неопределено;
Для каждого ТекСтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
ТекСтрокаРасшифровки.ОбъектРасчетов = Справочники.ОбъектыРасчетов.ПустаяСсылка();
КонецЦикла;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Контрагент) Тогда
ОчиститьДополнительныеСведенияРасхода();
КонецЕсли;
ПараметрыВыбораСтатейИАналитик = Документы.РасходныйКассовыйОрдер.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
ДоходыИРасходыСервер.ПриИзмененииПараметровВыбораСтатей(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
ВзаиморасчетыСервер.ПриИзмененииПараметровМеханизма(ЭтотОбъект);
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СдачаДенежныхСредствВБанк
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ИнкассацияДенежныхСредствВБанк)
И Не ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
ПолучитьБанковскийСчетПоУмолчанию();
Если Не ЗначениеЗаполнено(Объект.БанковскийСчет) И Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоРасчетныхСчетов") Тогда
ВызватьИсключение НСтр("ru = 'Не удалось заполнить поле ""Банковский счет"". Возможно, в информационной базе не введено ни одного банковского счета организации!'");
КонецЕсли;
КонецЕсли;
ПолучитьДоговорПоУмолчаниюСервер();
ДенежныеСредстваСервер.ПроверитьЗаполнитьНаправлениеДеятельности(Объект, Объект.НаправлениеДеятельности);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьНалогообложениеНДС();
УправлениеЭлементамиФормы();
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
КонецПроцедуры
&НаКлиенте
Процедура КассаПриИзменении(Элемент)
СтруктурыРеквизитов = ПолучитьРеквизитыКассы(Объект.Касса);
РазрешеныПлатежиБезУказанияЗаявок =
СтруктурыРеквизитов.РазрешитьПлатежиБезУказанияЗаявок
Или Не ИспользоватьЗаявкиНаРасходованиеДенежныхСредств;
УстановитьПризнакОплатыПоЗаявкам();
Если Не ЗначениеЗаполнено(Объект.Валюта) Тогда
Объект.Валюта = СтруктурыРеквизитов.Валюта;
КонецЕсли;
Если Не ФинансыКлиент.НеобходимПересчетВВалюту(Объект, Объект.Валюта, СтруктурыРеквизитов.Валюта) Тогда
Если Объект.Валюта <> СтруктурыРеквизитов.Валюта Тогда
ФинансыКлиент.ОчиститьСуммуИВалютуВзаиморасчетовРасшифровкиПлатежа(Объект);
КонецЕсли;
КассаПриИзмененииСервер(СтруктурыРеквизитов, Ложь);
Иначе
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Пересчитать суммы в документе в валюту %1?'"),
СтруктурыРеквизитов.Валюта);
КнопкиДиалогаВопрос = Новый СписокЗначений;
КнопкиДиалогаВопрос.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Пересчитать'"));
КнопкиДиалогаВопрос.Добавить(КодВозвратаДиалога.Отмена, НСтр("ru = 'Отменить'"));
ОписаниеОповещения = Новый ОписаниеОповещения(
"РазрешенПересчетВВалюту", ЭтотОбъект, Новый Структура("СтруктурыРеквизитов", СтруктурыРеквизитов));
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, КнопкиДиалогаВопрос);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазрешенПересчетВВалюту(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ТекущаяВалюта = Объект.Валюта;
КассаПриИзмененииСервер(ДополнительныеПараметры.СтруктурыРеквизитов, Истина);
ЦенообразованиеКлиент.ОповеститьОбОкончанииПересчетаСуммВВалюту(ТекущаяВалюта, Объект.Валюта);
Иначе
Объект.Касса = ТекущаяКасса;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура КассаПриИзмененииСервер(СтруктураРеквизитов, ПересчитыватьСуммы)
ИзмениласьОрганизация = (Объект.Организация <> СтруктураРеквизитов.Организация);
ИзмениласьВалюта = (Объект.Валюта <> СтруктураРеквизитов.Валюта);
ТекущаяКасса = Объект.Касса;
ТекущаяВалюта = Объект.Валюта;
Объект.Валюта = СтруктураРеквизитов.Валюта;
Объект.Организация = СтруктураРеквизитов.Организация;
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
МассивРеквизитов = Новый Массив;
Если ИзмениласьОрганизация Тогда
МассивРеквизитов.Добавить("Организация");
КонецЕсли;
Если ИзмениласьВалюта Тогда
МассивРеквизитов.Добавить("Валюта");
КонецЕсли;
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, МассивРеквизитов);
Если ЗначениеЗаполнено(ТекущаяКасса) Тогда
Если ЗначениеЗаполнено(ТекущаяВалюта) И ИзмениласьВалюта Тогда
Объект.КассаПолучатель = Справочники.Кассы.ПустаяСсылка();
Объект.БанковскийСчет = Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка();
Объект.КассаККМ = Справочники.КассыККМ.ПустаяСсылка();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ВалютаКонвертацииПриИзмененииСервер();
КонецЕсли;
КонецЕсли;
ПолучитьДоговорПоУмолчаниюСервер();
Если ИзмениласьОрганизация Тогда
Объект.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
Для каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровки.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
КонецЦикла;
Объект.КассаККМ = Справочники.КассыККМ.ПустаяСсылка();
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
ЕстьФилиалы = ФилиалыОрганизации.Количество() > 0;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ТипРасчетов = ?(Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаПоставщику")
ИЛИ Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию"),
ПредопределенноеЗначение("Перечисление.ТипыРасчетовСПартнерами.РасчетыСПоставщиком"),
ПредопределенноеЗначение("Перечисление.ТипыРасчетовСПартнерами.РасчетыСКлиентом"));
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента,,ТипРасчетов);
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.Партнер = Партнер;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
СтрокаТЧ.ОбъектРасчетов = ОбъектРасчетовДоговор;
СтрокаТЧ.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
СтрокаТЧ.СтавкаНДС = СтавкаНДС;
КонецЕсли;
КонецЦикла;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьНалогообложениеНДС();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
ДенежныеСредстваСервер.ЗаполнитьОтветственныхЛицОрганизации(Объект);
КонецЕсли;
Иначе
ФилиалыОрганизации.Очистить();
КонецЕсли;
Если ПересчитыватьСуммы Тогда
ДенежныеСредстваСервер.ПересчетСуммДокументаВВалюту(Объект, ТекущаяВалюта, Объект.Валюта);
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
Если ИзмениласьВалюта Тогда
Если Не ЗначениеЗаполнено(СтрокаТЧ.ОбъектРасчетов)
И Не ЗначениеЗаполнено(Объект.Договор) Тогда
СтрокаТЧ.СуммаВзаиморасчетов = СтрокаТЧ.Сумма;
СтрокаТЧ.ВалютаВзаиморасчетов = Объект.Валюта;
СтрокаТЧ.КурсЧислительВзаиморасчетов = 1;
СтрокаТЧ.КурсЗнаменательВзаиморасчетов = 1;
КонецЕсли;
ДенежныеСредстваКлиентСервер.РассчитатьКурсЧислительВзаиморасчетовВСтрокеРасшифровки(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
РассчитатьСуммыВзаиморасчетов();
КонецЕсли;
КонецЦикла;
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы);
Элементы.НадписьВалюта.Заголовок = Строка(Объект.Валюта);
УстановитьВозможныеЗначенияКассыПолучателя();
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СдачаДенежныхСредствВБанк
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ИнкассацияДенежныхСредствВБанк)
И Не ЗначениеЗаполнено(Объект.БанковскийСчет) Тогда
ПолучитьБанковскийСчетПоУмолчанию();
КонецЕсли;
ЗаполнитьКассира();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура СуммаДокументаПриИзменении(Элемент)
ФинансыКлиентСервер.ПересчитатьСуммыВСтрокеРасшифровкиПлатежа(Объект, Объект.СуммаДокумента, Ложь);
СуммаДокументаПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КассаККМПриИзменении(Элемент)
КассаККМПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура КассаККМПриИзмененииСервер()
ПараметрыКассыККМ = Новый ФиксированнаяСтруктура(Справочники.КассыККМ.ПараметрыКассыККМ(Объект.КассаККМ));
ПраваДоступа = НастройкиПродажДляПользователейСервер.ПраваДоступаРМК(Пользователи.ТекущийПользователь());
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
КонтрагентПриИзмененииСервер();
ТекущийКонтрагент = Объект.Контрагент;
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСервер()
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтаФорма, "Контрагент");
Если ТекущийКонтрагент <> Объект.Контрагент Тогда
ДенежныеСредстваСервер.ОчиститьЗаявкуНаРасходованиеДенежныхСредств(Объект);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
Если ТекущийКонтрагент <> Объект.Контрагент Тогда
ОчиститьДополнительныеСведенияРасхода();
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.Выдать) Тогда
ДанныеКонтрагента = Новый Структура();
ФормированиеПечатныхФорм.ЗаполнитьСведенияОЮрФизЛице(ДанныеКонтрагента, Объект.Контрагент, Объект.Дата);
Объект.Выдать = ДанныеКонтрагента.Представление;
КонецЕсли;
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Объект.Контрагент, Объект.ХозяйственнаяОперация);
ПолучитьДоговорПоУмолчаниюСервер();
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ОбъектРасчетовДоговор = ОбъектыРасчетовСервер.ПолучитьОбъектРасчетовПоСсылке(ДоговорКонтрагента)
КонецЕсли;
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
СтрокаТЧ.Партнер = Партнер;
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
СтрокаТЧ.ОбъектРасчетов = ОбъектРасчетовДоговор;
СтрокаТЧ.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
СтрокаТЧ.СтавкаНДС = СтавкаНДС;
СтрокаТЧ.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
РасшифровкаОбъектРасчетовПриИзмененииСервер(СтрокаТЧ.ПолучитьИдентификатор());
КонецЕсли;
КонецЦикла;
Если Не ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
КонецЕсли;
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита);
Иначе
ОчиститьДополнительныеСведенияРасхода();
КонецЕсли;
УстановитьВидимостьКнопкиПодбораПодарочногоСертификата();
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецЕсли;
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
ФормированиеФискальныхЧековСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект);
Если Объект.ОплатаПоЗаявкам Тогда
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(
Объект, Элементы.РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(
Объект, Элементы.РасшифровкаБезРазбиенияЗаявкаНаРасходованиеДенежныхСредств);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодотчетноеЛицоПриИзменении(Элемент)
ПодотчетноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСервер()
Если ЗначениеЗаполнено(Объект.ПодотчетноеЛицо) Тогда
Объект.Выдать = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ПодотчетноеЛицо, "Наименование");
ДокументФизическогоЛица = ФизическиеЛицаУТ.ПолучитьДокументФизическогоЛицаПоУмолчанию(Объект.ПодотчетноеЛицо).Представление;
Объект.ПоДокументу = ДокументФизическогоЛица;
Объект.Подразделение = ФизическиеЛицаУТ.ПодразделениеФизическогоЛица(Объект.ПодотчетноеЛицо);
Иначе
ОчиститьДополнительныеСведенияРасхода();
КонецЕсли;
Если Объект.ОплатаПоЗаявкам Тогда
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(
Объект, Элементы.РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(
Объект, Элементы.РасшифровкаБезРазбиенияЗаявкаНаРасходованиеДенежныхСредств);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КассаПолучательПриИзменении(Элемент)
КассаПолучательПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура КассаПолучательПриИзмененииСервер()
ИсходнаяОрганизацияПолучатель = Объект.ОрганизацияПолучатель;
ЗаполнитьОрганизациюПолучателя();
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
СтруктураРеквизитов = Справочники.Кассы.ПолучитьРеквизитыКассы(Объект.КассаПолучатель);
Если ЗначениеЗаполнено(СтруктураРеквизитов.Валюта) Тогда
Объект.ВалютаКонвертации = СтруктураРеквизитов.Валюта;
УстановитьВозможныеЗначенияКассыПолучателя(Ложь);
ПересчитатьПараметрыКонвертации("ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.КассаПолучатель)
И ИсходнаяОрганизацияПолучатель <> Объект.ОрганизацияПолучатель Тогда
ОчиститьДополнительныеСведенияРасхода();
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецПроцедуры
&НаКлиенте
Процедура ЗаявкаНаРасходованиеДенежныхСредствПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.ЗаявкаНаРасходованиеДенежныхСредств) Тогда
ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСервер()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(Объект.ЗаявкаНаРасходованиеДенежныхСредств);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
УстановитьВозможныеЗначенияКассыПолучателя();
КонецПроцедуры
&НаКлиенте
Процедура РаспоряжениеНаПеремещениеДенежныхСредствПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.РаспоряжениеНаПеремещениеДенежныхСредств) Тогда
РаспоряжениеНаПеремещениеДенежныхСредствПриИзмененииСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РаспоряжениеНаПеремещениеДенежныхСредствПриИзмененииСервер()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(Объект.РаспоряжениеНаПеремещениеДенежныхСредств);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецПроцедуры
&НаКлиенте
Процедура ВалютаКонвертацииПриИзменении(Элемент)
ВалютаКонвертацииПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура КурсКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецПроцедуры
&НаКлиенте
Процедура СуммаКонвертацииПриИзменении(Элемент)
ПересчитатьПараметрыКонвертации("СуммаКонвертации");
Если Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Объект.РасшифровкаПлатежа[0].Сумма = Объект.СуммаДокумента;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадписьЗаголовокЗаявкиНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если СписокЗаявок.Количество() = 1 Тогда
ПоказатьЗначение(, СписокЗаявок[0].Значение);
Иначе
ОткрытьФорму(
"ОбщаяФорма.ПросмотрСпискаДокументов",
Новый Структура("СписокДокументов, Заголовок",
СписокЗаявок,
НСтр("ru = 'Заявки на расход ДС (%КоличествоДокументов%)'")
),
ЭтаФорма,,,, Неопределено, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаПоЗаявкамПриИзменении(Элемент)
ПриИзмененииОплатыПоНесколькимЗаявкам();
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииОплатыПоНесколькимЗаявкам()
Если Не Объект.ОплатаПоЗаявкам Тогда
Для каждого Строка Из Объект.РасшифровкаПлатежа Цикл
Строка.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
КонецЦикла;
Объект.ЗаявкаНаРасходованиеДенежныхСредств = Неопределено;
СписокЗаявок.Очистить();
КонецЕсли;
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
ОбновитьИнформациюПоЗаявкам();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
Если ТекущаяСтраница = Элементы.СтраницаРасшифровка И Не ПереключательРасшифровки И Не ТолькоПросмотр Тогда
РасшифровкаПлатежаПриНачалеРедактирования(Элемент, Ложь, Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПериодАвансовогоОтчетаПриИзменении(Элемент)
Объект.ДатаАвансовогоОтчета =
ДенежныеСредстваКлиент.ПересчитатьДатуАвансовогоОтчета(ПериодАвансовогоОтчета, Объект.Дата);
НастроитьЗависимыеЭлементыФормы("ПериодАвансовогоОтчетаДата");
КонецПроцедуры
&НаКлиенте
Процедура ПериодАвансовогоОтчетаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ВыполнитьПослеВыбораДаты", ЭтотОбъект);
ДенежныеСредстваКлиент.ПериодАвансовогоОтчетаОбработкаВыбора(
Элемент, ВыбранноеЗначение, СтандартнаяОбработка, ЭтаФорма, Объект.Дата, Оповещение);
ПериодАвансовогоОтчетаДата = (ТипЗнч(ВыбранноеЗначение) = Тип("Дата") Или ВыбранноеЗначение = "ДоДаты");
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПослеВыбораДаты(ВыбраннаяДата, Параметры) Экспорт
ПериодАвансовогоОтчетаДата = (ТипЗнч(ПериодАвансовогоОтчета) = Тип("Дата"));
НастроитьЗависимыеЭлементыФормы();
КонецПроцедуры
&НаКлиенте
Процедура ФискальнаяОперацияСтатусОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
ФормированиеФискальныхЧековКлиент.ФискальнаяОперацияОбработкаНавигационнойСсылки(
ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ФискальнаяОперацияЗавершение(Результат, ДополнительныеПараметры) Экспорт
РезультатВыполненияФискальнойОперации = Неопределено;
Если Результат = Ложь
И ТипЗнч(ДополнительныеПараметры) = Тип("Структура")
И ДополнительныеПараметры.Свойство("РезультатВыполненияФискальнойОперации", РезультатВыполненияФискальнойОперации)
И ТипЗнч(РезультатВыполненияФискальнойОперации) = Тип("Структура")
И РезультатВыполненияФискальнойОперации.Свойство("Результат")
И Не РезультатВыполненияФискальнойОперации.Результат Тогда
СсылкаНаДокумент = Неопределено;
ДополнительныеПараметры.Свойство("СсылкаНаДокумент", СсылкаНаДокумент);
КонецЕсли;
ФискальнаяОперацияЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ФискальнаяОперацияЗавершениеНаСервере()
ФормированиеФискальныхЧековСервер.ОбновитьГиперссылкуПробитияФискальногоЧека(Объект.Ссылка, ЭтотОбъект, ФискальнаяОперацияСтатус);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДоговорПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(ТекущаяСтрока, РеквизитыДоговора);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецЕсли;
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьНалогообложениеНДС();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ДоговорВозвратаСоздание(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДенежныеСредстваКлиент.ОткрытьСозданиеДоговораВозврата(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(
ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияЭДОНажатие(Элемент, СтандартнаяОбработка)
ОчиститьСообщения();
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаДокумента(ЭтотОбъект, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ДекорацияВалютыИКурсПлатежаНажатиеЗавершение", ЭтотОбъект);
ДенежныеСредстваКлиент.ВалютыИКурсПлатежаНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ДекорацияВалютыИКурсПлатежаНажатиеЗавершениеНаСервере()
ЗаполнитьКурсКратностьТекстом();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаКлиенте
Процедура ВедомостьПриИзменении(Элемент)
ВедомостьПриИзмененииНаСервере();
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ВедомостьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура СтрокаФизическиеЛицаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОчиститьСообщения();
КонецПроцедуры
&НаКлиенте
Процедура КратностьКурсаКонвертацииПриИзменении(Элемент)
КратностьКурсаКонвертацииПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НаправлениеДеятельностиПриИзменении(Элемент)
НаправлениеДеятельностиПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ГруппаФинансовогоУчетаПриИзменении(Элемент)
ГруппаФинансовогоУчетаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПартнерПриИзменении(Элемент)
РасшифровкаПлатежаПартнерПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа
&НаКлиенте
Процедура ПереключательРасшифровкиПриИзменении(Элемент)
Если Не ПереключательРасшифровки Тогда
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
РасшифровкаПлатежаПриНачалеРедактирования(Элементы.РасшифровкаПлатежа, Истина, Ложь);
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Если Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Неопределено Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
КонецЕсли;
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() > 1 Тогда
ОчиститьСообщения();
ТекстСообщения = НСтр("ru = 'Переключение в режим без разбиения невозможно, если в расшифровке платежа введено более одной строки!'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
ПереключательРасшифровки = 1;
КонецЕсли;
КонецЕсли;
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияПредставлениеОтраженияВРеглУчетеНажатие(Элемент, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если Не ЗначениеЗаполнено(Партнер) Тогда
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
КонецЕсли;
ФинансыКлиент.РасшифровкаПлатежаПриНачалеРедактирования(
Объект, Партнер, ДоговорКонтрагента, СтрокаТаблицы, НоваяСтрока, Копирование, СтатьяДвиженияДенежныхСредств);
Если НоваяСтрока Тогда
Если Не Копирование Тогда
Если Не ЗначениеЗаполнено(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, СтрокаТаблицы, "Объект.РасшифровкаПлатежа");
КонецЕсли;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаТаблицы.ПолучитьИдентификатор());
КонецЕсли;
РасшифровкаПлатежаСуммаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
РасшифровкаПлатежаПриОкончанииРедактированияНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПриОкончанииРедактированияНаСервере()
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСуммаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(СтрокаТаблицы, СтруктураДействий, КэшированныеЗначения);
РасшифровкаПлатежаСуммаПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСуммаПриИзмененииНаСервере()
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСуммаВзаиморасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ЗначениеЗаполнено(СтрокаТаблицы.СуммаВзаиморасчетов)
И СтрокаТаблицы.ВалютаВзаиморасчетов = Объект.Валюта
И СтрокаТаблицы.СуммаВзаиморасчетов <> СтрокаТаблицы.Сумма Тогда
СтрокаТаблицы.СуммаВзаиморасчетов = СтрокаТаблицы.Сумма;
Иначе
РасшифровкаПлатежаСуммаВзаиморасчетовПриИзмененииНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСуммаВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
Если ТекущаяСтрока.Сумма = 0 Тогда
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВСтрокеРасшифровки(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
Иначе
ДенежныеСредстваКлиентСервер.РассчитатьКурсЧислительВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
КонецЕсли;
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзменении(Элемент)
РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаВалютаВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
МассивРеквизитовОперации = Новый Массив;
Документы.РасходныйКассовыйОрдер.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, Неопределено, МассивРеквизитовОперации);
Если ТекущаяСтрока.ВалютаВзаиморасчетов <> ВалютаВзаиморасчетов
И МассивРеквизитовОперации.Найти("Договор") <> Неопределено Тогда
Объект.Договор = Неопределено;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецЕсли;
ОчиститьОбъектРасчетов(ТекущаяСтрока);
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(ТекущаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзменении(Элемент)
РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаКурсЧислительВзаиморасчетовПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ)
КурсИКратность = ДенежныеСредстваСервер.КурсЧислительИКурсЗнаменательВзаиморасчетов(
Объект.Валюта, СтрокаТЧ.ВалютаВзаиморасчетов, ВалютаРеглУчета, Объект.Дата, СтрокаТЧ.ОбъектРасчетов, Объект.Договор);
СтрокаТЧ.КурсЧислительВзаиморасчетов = КурсИКратность.КурсЧислитель;
СтрокаТЧ.КурсЗнаменательВзаиморасчетов = КурсИКратность.КурсЗнаменатель;
СтрокаТЧ.ВариантКурсаДоговора = КурсИКратность.ВариантКурсаДоговора;
СтрокаТЧ.ТипОбъектаРасчетов = КурсИКратность.ТипОбъектаРасчетов;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.ДатаПогашения = Дата(1, 1, 1);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаБезРазбиенияОбъектРасчетовПриИзмененииСервер()
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
ЗаполнитьНалогообложениеНДС();
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(
Объект, Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетов = Неопределено;
ТекущиеДанные = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОбъектРасчетов = ТекущиеДанные.ОбъектРасчетов;
КонецЕсли;
ВзаиморасчетыКлиент.ОбъектРасчетовНачалоВыбора(ЭтаФорма, Элемент, СтандартнаяОбработка,, ОбъектРасчетов);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаОбъектРасчетовОбработкаВыбораНаСервере(ВыбранноеЗначение)
ИдентификаторСтроки = Элементы.РасшифровкаПлатежа.ТекущаяСтрока;
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдентификаторСтроки);
ДополнитьВыбранноеЗначение(ВыбранноеЗначение);
ИсключаемыеСвойства = "";
Если ВыбранноеЗначение.Свойство("СтатьяДвиженияДенежныхСредств")
И Не ЗначениеЗаполнено(ВыбранноеЗначение.СтатьяДвиженияДенежныхСредств) Тогда
ИсключаемыеСвойства = "СтатьяДвиженияДенежныхСредств";
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение,, ИсключаемыеСвойства);
Модифицированность = Истина;
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
РасшифровкаОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ВзаиморасчетыКлиент.ОбъектРасчетовОснованиеПлатежаАвтоПодбор(ЭтаФорма, Элементы.РасшифровкаПлатежа, Текст, ДанныеВыбора, СтандартнаяОбработка, Ложь, Истина);
КонецПроцедуры
&НаСервере
Процедура ДополнитьВыбранноеЗначение(ВыбранноеЗначение)
ВыбранноеЗначение.Вставить("СтатьяДвиженияДенежныхСредств",
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(ВыбранноеЗначение.ОбъектРасчетов, Объект.ХозяйственнаяОперация));
ОбъектыРасчетов = Новый Массив;
ОбъектыРасчетов.Добавить(ВыбранноеЗначение.ОбъектРасчетов);
ТаблицаНДС = ДенежныеСредстваСервер.РасшифровкаПлатежаНДС(Объект.Организация, Неопределено, Неопределено, ОбъектыРасчетов, ВыбранноеЗначение.ЭтоРасчетыСКлиентами);
Если ТаблицаНДС.Количество() = 1 Тогда
ВыбранноеЗначение.Вставить("СтавкаНДС", ТаблицаНДС[0].СтавкаНДС);
Если ВыбранноеЗначение.СуммаПлатежа = ВыбранноеЗначение.СуммаЗаказа Тогда
ВыбранноеЗначение.Вставить("СуммаНДС", ТаблицаНДС[0].СуммаНДС);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ВыбранноеЗначение.ВалютаВзаиморасчетов) Тогда
КурсВалюты = РаботаСКурсамиВалютУТ.ПолучитьКурсВалюты(ВыбранноеЗначение.ВалютаВзаиморасчетов, Неопределено,
ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация));
ВыбранноеЗначение.Вставить("КурсЧислительВзаиморасчетов", КурсВалюты.КурсЧислитель);
ВыбранноеЗначение.Вставить("КурсЗнаменательВзаиморасчетов", КурсВалюты.КурсЗнаменатель);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяРасходовПриИзменении(Элемент)
РасшифровкаПлатежаСтатьяРасходовПриИзмененииСервер(КэшированныеЗначения, Элемент.Имя);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаСтатьяРасходовПриИзмененииСервер(КэшированныеЗначения, ИмяЭлемента)
ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элементы[ИмяЭлемента]);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзменении(Элемент)
РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаДоговорКредитаДепозитаПриИзмененииСервер()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
РеквизитыДоговора = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ТекущаяСтрока.ДоговорКредитаДепозита,
"ВалютаВзаиморасчетов, ХарактерДоговора, СтатьяДДСОсновногоДолга, СтатьяДДСПоступленияВыдачи");
ТекущаяСтрока.ВалютаВзаиморасчетов = РеквизитыДоговора.ВалютаВзаиморасчетов;
Если РеквизитыДоговора.ХарактерДоговора = Перечисления.ХарактерыДоговоровФинансовыхИнструментов.КредитИлиЗайм Тогда
Если ЗначениеЗаполнено(ТекущаяСтрока.ТипСуммыКредитаДепозита) Тогда
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДоговораКредитаДепозитаПоТипуСуммыКредитаДепозита(
ТекущаяСтрока.ДоговорКредитаДепозита,
ТекущаяСтрока.ТипСуммыКредитаДепозита,
Объект.СтатьяДвиженияДенежныхСредств);
Иначе
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = РеквизитыДоговора.СтатьяДДСОсновногоДолга;
КонецЕсли;
Иначе
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств = РеквизитыДоговора.СтатьяДДСПоступленияВыдачи;
КонецЕсли;
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(ТекущаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаТипСуммыКредитаДепозитаПриИзменении(Элемент)
ТипСуммыКредитаДепозитаПриИзмененииСервер();
КонецПроцедуры
&НаСервере
Процедура ТипСуммыКредитаДепозитаПриИзмененииСервер()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ТекущаяСтрока.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДоговораКредитаДепозитаПоТипуСуммыКредитаДепозита(
ТекущаяСтрока.ДоговорКредитаДепозита,
ТекущаяСтрока.ТипСуммыКредитаДепозита,
Объект.СтатьяДвиженияДенежныхСредств);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредствПриИзменении(Элемент)
РасшифровкаПлатежаЗаявкаПриИзмененииСервер(Элементы.РасшифровкаПлатежа.ТекущиеДанные.ЗаявкаНаРасходованиеДенежныхСредств);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаЗаявкаПриИзмененииСервер(ЗаявкаСсылка)
Если ТипЗнч(ЗаявкаСсылка) = Тип("ДокументСсылка.ЗаявкаНаРасходованиеДенежныхСредств") Тогда
КонтрагентЗаявки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЗаявкаСсылка, "Контрагент");
Если Не ЗначениеЗаполнено(Объект.Контрагент) Тогда
Объект.Контрагент = КонтрагентЗаявки;
ИначеЕсли ЗначениеЗаполнено(КонтрагентЗаявки) И Объект.Контрагент <> КонтрагентЗаявки Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получатель платежа ""%1"" в документе оплаты не соответствует получателю ""%2"" в заявке!'"),
Объект.Контрагент,
КонтрагентЗаявки);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
КонецЕсли;
КонецЕсли;
ОбновитьИнформациюПоЗаявкам();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПослеУдаления(Элемент)
РасшифровкаПлатежаПослеУдаленияСервер();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПослеУдаленияСервер()
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ОбновитьИнформациюПоЗаявкам();
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаРасходовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаАналитикаАктивовПассивовПриИзменении(Элемент)
ДоходыИРасходыКлиентСервер.АналитикаАктивовПассивовПриИзменении(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаСтавкаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
СтруктураПересчетаСуммы = Новый Структура;
СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Элементы.РасшифровкаБезРазбиенияСуммаНДС.ТолькоПросмотр =
ДенежныеСредстваКлиентСервер.ЭтоНулеваяСтавкаНДС(ТекущаяСтрока.СтавкаНДС);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаОбъектРасчетовПриИзменении(Элемент)
СтрокаТаблицы = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
РасшифровкаПлатежаОбъектРасчетовПриИзмененииСервер(СтрокаТаблицы.ПолучитьИдентификатор());
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаОбъектРасчетовПриИзмененииСервер(ИдСтроки)
РасшифровкаОбъектРасчетовПриИзмененииСервер(ИдСтроки);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатие(Элемент)
ЗаблокироватьДанные();
ОписаниеОповещения = Новый ОписаниеОповещения("ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершение", ЭтотОбъект);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
ИЛИ Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию") Тогда
ПараметрыФормы.Вставить("Контрагент", Объект.ОрганизацияПолучатель);
Иначе
ПараметрыФормы.Вставить("Контрагент", Объект.Контрагент);
КонецЕсли;
ПараметрыФормы.Вставить("ГруппаФинансовогоУчета", Объект.ГруппаФинансовогоУчета);
ПараметрыФормы.Вставить("НаправлениеДеятельности", Объект.НаправлениеДеятельности);
ПараметрыФормы.Вставить("Договор", Объект.Договор);
ПараметрыФормы.Вставить("Организация", Объект.Организация);
ПараметрыФормы.Вставить("НалогообложениеНДС", Объект.НалогообложениеНДС);
ПараметрыФормы.Вставить("СписокНалогообложенияНДС",Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС.СписокВыбора);
ПараметрыФормы.Вставить("ДокументСсылка", Объект.Ссылка);
ПараметрыФормы.Вставить("АдресВоВременномХранилище", ПоместитьРасшифровкуВоВременноеХранилище());
ОткрытьФорму("ОбщаяФорма.ФормаВыбораРеквизитовОбъектаРасчетовПлатежа",
ПараметрыФормы,
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершение(Результат, ДополнительныеПараметры) Экспорт
РазблокироватьДанные();
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ГруппаФинансовогоУчета = Результат.ГруппаФинансовогоУчета;
Объект.НаправлениеДеятельности = Результат.НаправлениеДеятельности;
Объект.Договор = Результат.Договор;
ЕстьИзменениеПоНалогообложениюНДС = ?(Объект.НалогообложениеНДС = Результат.НалогообложениеНДС, Ложь, Истина);
ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере();
Если ЕстьИзменениеПоНалогообложениюНДС Тогда
Объект.НалогообложениеНДС = Результат.НалогообложениеНДС;
ЗаполнитьНалогообложениеНДС();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГиперссылкаРеквизитыОбъектаРасчетовНажатиеЗавершениеНаСервере()
ДенежныеСредстваСервер.ПроверитьЗаполнитьОбъектРасчетов(Объект);
Если ЗначениеЗаполнено(Объект.Договор) Тогда
РеквизитыДоговора = Неопределено;
ДенежныеСредстваСервер.ЗаполнитьДанныеФормыДокументаПоДоговору(ЭтотОбъект, РеквизитыДоговора);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если (Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов)
Или СтрокаРасшифровки.ОбъектОбъектаРасчетов = Объект.Ссылка) Тогда
ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора);
КонецЕсли;
КонецЦикла;
ЗаполнитьВалютуВзаиморасчетовДокумента();
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ДенежныеСредстваСервер.ОчиститьДоговорРасшифровкиПлатежа(Объект);
КонецЕсли;
ИзменитьСуммуНераспределено();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
КонецПроцедуры
&НаКлиенте
Процедура ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация", Объект.Организация);
СтруктураОтбора.Вставить("ПометкаУдаления", Ложь);
Если ЗначениеЗаполнено(Элементы.РасшифровкаПлатежа.ТекущиеДанные.ВалютаВзаиморасчетов) Тогда
СтруктураОтбора.Вставить("ВалютаВзаиморасчетов", Элементы.РасшифровкаПлатежа.ТекущиеДанные.ВалютаВзаиморасчетов);
КонецЕсли;
СтруктураПараметровВыбора = Новый Структура;
СтруктураПараметровВыбора.Вставить("РежимВыбора", Истина);
СтруктураПараметровВыбора.Вставить("РазрешитьВыборФилиальныхДоговоров", Истина);
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию")
ИЛИ Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию") Тогда
Если Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию") Тогда
СтруктураОтбора.Организация = Объект.ОрганизацияПолучатель;
СтруктураОтбора.Вставить("ОрганизацияПолучатель", Объект.Организация);
Иначе
СтруктураОтбора.Вставить("ОрганизацияПолучатель", Объект.ОрганизацияПолучатель);
КонецЕсли;
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыМеждуОрганизациями.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
Иначе
СтруктураОтбора.Вставить("Контрагент", Объект.Контрагент);
Если ФинансыКлиент.ЭтоРасчетыСКлиентами(Объект.ХозяйственнаяОперация) Тогда
СтруктураПараметровВыбора.Вставить("ТипыДоговоров", ВзаиморасчетыКлиентСервер.ТипыДоговоровСКлиентом());
Иначе
СтруктураПараметровВыбора.Вставить("ТипыДоговоров", ВзаиморасчетыКлиентСервер.ТипыДоговоровСПоставщиком());
КонецЕсли;
СтруктураПараметровВыбора.Вставить("Отбор",СтруктураОтбора);
ОткрытьФорму("Справочник.ДоговорыКонтрагентов.Форма.ФормаВыбора",
СтруктураПараметровВыбора,
Элемент,
Элемент,)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаНалогообложениеНДСПриИзменении(Элемент)
ЗаполнитьНалогообложениеНДС();
КонецПроцедуры
&НаСервере
Процедура РасшифровкаОбъектРасчетовПриИзмененииСервер(ИдСтроки)
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект, ИдСтроки);
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект, ИдСтроки);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ВзаиморасчетыСервер.ЗаблокироватьОбъектыРасчетов(ЭтаФорма);
СтрокаТаблицы = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(ИдСтроки);
ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорАрендыПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаТипПлатежаПоАрендеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПриАктивизацииЯчейки(Элемент)
ДенежныеСредстваКлиент.УстановитьДоступностьЭлементаРасшифровкаПлатежаСуммаВзаиморасчетов(ЭтотОбъект, Объект.Валюта);
ДенежныеСредстваКлиент.УстановитьДоступностьЭлементаРасшифровкаПлатежаДоговор(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияВариантКурсаДоговораНажатие(Элемент, СтандартнаяОбработка)
ВзаиморасчетыКлиент.РасшифровкаПлатежаВариантКурсаДоговораНажатие(Элементы.РасшифровкаПлатежа.ТекущиеДанные, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияПриИзменении(Элемент)
Объект.РасшифровкаПлатежа[0].ДатаПогашения = ДатаПогашенияБезРазбиения;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыОткрытия = Новый Структура("НачальноеЗначение", Объект.РасшифровкаПлатежа[0].ДатаПогашения);
ОписаниеОповещения = Новый ОписаниеОповещения("РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ВыборДаты", ПараметрыОткрытия, ЭтотОбъект,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Дата(1, 1, 1);
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
Если ТипЗнч(ДатаПогашенияБезРазбиения) = Тип("Дата") Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
ДатаЦифрами = СтрСоединить(СтрРазделить(Текст, СтрСоединить(СтрРазделить(Текст, "0123456789"))));
Если Не ПустаяСтрока(ДатаЦифрами) Тогда
ВыбранныйДень = Лев(ДатаЦифрами, 2);
Если СтрДлина(ДатаЦифрами) > 2 Тогда
ВыбранныйМесяц = Сред(ДатаЦифрами, 3, 2);
Иначе
ВыбранныйМесяц = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=MM")
КонецЕсли;
Если СтрДлина(ДатаЦифрами) > 4 Тогда
ВыбранныйГод = Сред(ДатаЦифрами, 5, 4);
Иначе
ВыбранныйГод = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=yyyy")
КонецЕсли;
ВыбраннаяДатаСтрокой = СтрШаблон("%1.%2.%3", ВыбранныйДень, ВыбранныйМесяц, ВыбранныйГод);
ВыбраннаяДата = СтроковыеФункцииКлиентСервер.СтрокаВДату(ВыбраннаяДатаСтрокой);
Объект.РасшифровкаПлатежа[0].ДатаПогашения = ВыбраннаяДата;
ОбновитьПредставлениеДатыПогашения();
ДанныеВыбора = Новый СписокЗначений();
ДанныеВыбора.Добавить(ВыбраннаяДата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.РасшифровкаПлатежа.ТекущиеДанные;
Если СтрокаТабличнойЧасти = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.Договор = СтрокаТабличнойЧасти.Договор;
ДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОбъектРасчетовДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаПлатежаПартнерПриИзменении(Элемент)
РасшифровкаПлатежаПартнерПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиДокумент(Команда)
ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткам(Команда)
ЭтоВыдачаВДругуюОрганизацию =
(Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию"))
Или (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию"));
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Касса", НСтр("ru = 'Касса'"));
Если ЭтоВыдачаВДругуюОрганизацию Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("КассаПолучатель", НСтр("ru = 'Получатель'"));
Иначе
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Контрагент", НСтр("ru = 'Получатель'"));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамПослеПроверки", ЭтотОбъект,
Новый Структура("ЭтоВыдачаВДругуюОрганизацию", ЭтоВыдачаВДругуюОрганизацию));
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификат(Команда)
Если ПодарочныеСертификатыКлиент.ПроверитьВозможностьДобавленияПодарочногоСертификата(ЭтотОбъект, Ложь) Тогда
ОписаниеОповещенияЗаверщения = Новый ОписаниеОповещения("ПодобратьПодарочныйСертификатЗавершение", ЭтотОбъект);
Если Объект.Проведен Тогда
РозничныеПродажиКлиент.ОтобразитьВопросОНеобходимостиНепроведенногоДокумента(ЭтотОбъект, ОписаниеОповещенияЗаверщения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещенияЗаверщения, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьПодарочныйСертификатЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Истина Тогда
СтатусыДляОтбора = Новый Массив;
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.Активирован"));
СтатусыДляОтбора.Добавить(ПредопределенноеЗначение("Перечисление.СтатусыПодарочныхСертификатов.ЧастичноПогашен"));
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Организация", Объект.Организация);
ПараметрыОтбора.Вставить("Валюта", ВалютаРеглУчета);
ПараметрыОтбора.Вставить("Статус", СтатусыДляОтбора);
ПараметрыОтбора.Вставить("УчетПодарочныхСертификатов2_5", Истина);
ПараметрыОтбора.Вставить("ТипОперации", ПодарочныеСертификатыКлиентСервер.ТипОперацииПоПодарочнымСертификатам(Объект));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Организация", Объект.Организация);
ДополнительныеПараметры.Вставить("НеИспользоватьРучнойВвод", Ложь);
ДополнительныеПараметры.Вставить("Отбор", ПараметрыОтбора);
ДополнительныеПараметры.Вставить("РегистрироватьНовые", Ложь);
ОткрытьФорму(
"Справочник.ПодарочныеСертификаты.Форма.СчитываниеПодарочногоСертификата",
ДополнительныеПараметры,
ЭтотОбъект,
УникальныйИдентификатор);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамПослеПроверки(Результат, ДополнительныеПараметры) Экспорт
Оповещение = Новый ОписаниеОповещения("ПодборПоОстаткамЗавершение", ЭтотОбъект);
ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
ВзаиморасчетыКлиент.ПодборВРасшифровкуПлатежа(ЭтаФорма, Элементы.РасшифровкаПлатежаПодборПоОстаткам.Имя, Оповещение);
КонецПроцедуры
&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма, "РасшифровкаПлатежаПодборПоОстаткам");
КонецПроцедуры
&НаКлиенте
Процедура ПодборПоОстаткамЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
ПодборПоОстаткамЗавершениеСервер();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодборПоОстаткамЗавершениеСервер()
ВзаиморасчетыСервер.ЗагрузитьРасшифровкуПлатежаИзВременногоХранилища(ЭтотОбъект);
СтатьяДДСПоУмолчанию =
Справочники.СтатьиДвиженияДенежныхСредств.СтатьяДвиженияДенежныхСредствПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);
ТаблицаОбъектовРасчетов = Объект.РасшифровкаПлатежа.Выгрузить(, "ОбъектРасчетов");
ТаблицаОбъектовРасчетов.Свернуть("ОбъектРасчетов");
НалогообложениеОбъектовРасчетов =
ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ТаблицаОбъектовРасчетов.ВыгрузитьКолонку("ОбъектРасчетов"), "НалогообложениеНДС");
Для каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.ОбъектРасчетов) Тогда
СтрокаТаблицы.НалогообложениеНДС = НалогообложениеОбъектовРасчетов[СтрокаТаблицы.ОбъектРасчетов];
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.СтатьяДвиженияДенежныхСредств) Тогда
СтрокаТаблицы.СтатьяДвиженияДенежныхСредств = СтатьяДДСПоУмолчанию;
КонецЕсли;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТаблицы);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТаблицы, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
ДенежныеСредстваСервер.ПроверитьЗаполнитьДоговор(Объект);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
Если Не ЗначениеЗаполнено(СтрокаРасшифровки.ОбъектРасчетов)
Или СтрокаРасшифровки.ОбъектОбъектаРасчетов = Объект.Ссылка Тогда
Если ЗначениеЗаполнено(СтрокаРасшифровки.Договор) Тогда
СтрокаРасшифровки.СтавкаНДС = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СтрокаРасшифровки.Договор, "СтавкаНДС");
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаРасшифровки.СтавкаНДС) Тогда
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", Новый Структура("ЦенаВключаетНДС", Истина));
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
Иначе
ОбновитьСтавкуНДСИПересчитатьСуммуНДС(СтрокаРасшифровки.ПолучитьИдентификатор());
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИзЗаявок(Команда)
ЭтоВыдачаВДругуюОрганизацию = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию"))
Или (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию"));
ЭтоВыдачаПодотчетнику = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику"));
ЭтоВнутренняяПередача = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств"));
ЭтоЗаймСотруднику = (Объект.ХозяйственнаяОперация = ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВыдачаЗаймаСотруднику"));
ПараметрыПроверки = РаботаСТабличнымиЧастямиКлиент.ПараметрыПроверкиЗаполнения();
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Касса", НСтр("ru = 'Касса'"));
Если ЭтоВыдачаВДругуюОрганизацию Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("КассаПолучатель", НСтр("ru = 'Получатель'"));
ИначеЕсли ЭтоВыдачаПодотчетнику Или ЭтоЗаймСотруднику Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("ПодотчетноеЛицо", НСтр("ru = 'Подотчетное лицо'"));
ИначеЕсли Не ЭтоВнутренняяПередача Тогда
ПараметрыПроверки.ПроверяемыеРеквизиты.Вставить("Контрагент", НСтр("ru = 'Получатель'"));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ПодобратьИзЗаявокЗавершение", ЭтотОбъект);
РаботаСТабличнымиЧастямиКлиент.ПроверитьВозможностьЗаполнения(ЭтаФорма, Оповещение, ПараметрыПроверки);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьИзЗаявокЗавершение(Результат, ДополнительныеПараметры) Экспорт
АдресПлатежейВХранилище = ПоместитьРасшифровкуПлатежаВХранилище();
ПараметрыПодбора = Новый Структура(
"Контрагент,
|КассаПолучатель,
|ПодотчетноеЛицо,
|Организация,
|ХозяйственнаяОперация,
|ХозяйственнаяОперацияПоЗарплате,
|Валюта,
|СуммаДокумента,
|Дата");
ЗаполнитьЗначенияСвойств(ПараметрыПодбора, Объект);
ПараметрыПодбора.Вставить("Ссылка", Объект.Ссылка);
ПараметрыПодбора.Вставить("ФормаОплаты", ПредопределенноеЗначение("Перечисление.ФормыОплаты.Наличная"));
ПараметрыПодбора.Вставить("БанковскийСчетКасса", Объект.Касса);
ПараметрыПодбора.Вставить("АдресПлатежейВХранилище", АдресПлатежейВХранилище);
ПараметрыПодбора.Вставить("СписокКонтрагентов", Ложь);
ОткрытьФорму("Документ.ЗаявкаНаРасходованиеДенежныхСредств.Форма.ПодборЗаявокВДокументыОплаты",
ПараметрыПодбора,
ЭтотОбъект,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьДокумент(Команда)
ОбщегоНазначенияУТКлиент.Записать(ЭтаФорма, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагенту(Команда)
ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагентуСервер();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамКонтрагентуСервер()
Объект.РасшифровкаПлатежа.Очистить();
ДействующиеДоговоры = Справочники.ДоговорыКредитовИДепозитов.ДействующиеДоговорыПоКонтрагенту(
Объект.Организация, Объект.Контрагент, Перечисления.ХарактерыДоговоровФинансовыхИнструментов.ЗаймВыданный);
Для Каждого Договор Из ДействующиеДоговоры Цикл
ДанныеРасшифровки = Справочники.ДоговорыКредитовИДепозитов.ДанныеРасшифровкиПлатежаДокументаДДС(Договор, Ложь, Объект.Ссылка);
Для Каждого Строка Из ДанныеРасшифровки Цикл
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецЦикла;
КонецЦикла;
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтаФорма, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьЗаписьОбъекта()
ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПометкуУдаленияДокумента(Команда)
ОбщегоНазначенияУТКлиент.УстановитьПометкуУдаленияДокумента(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотруднику(Команда)
ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуЛокализация(Команда);
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентов(Команда)
ПроверитьКонтрагентовЛокализация(Команда);
Возврат;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ОбработчикиСобытийЭлементов
&НаСервере
Процедура СуммаДокументаПриИзмененииСервер()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
ПересчитатьПараметрыКонвертации("КурсКонвертации");
КонецЕсли;
ПараметрыПересчетаНДС = Новый Структура("ЦенаВключаетНДС", Истина);
СтруктураДействий = Новый Структура("ПересчитатьСуммуНДС", ПараметрыПересчетаНДС);
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.РасшифровкаПлатежа, СтруктураДействий, Неопределено);
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
РассчитатьСуммыВзаиморасчетов();
ЗаполнитьВалютуВзаиморасчетовДокумента();
КонецПроцедуры
&НаСервере
Процедура ВалютаКонвертацииПриИзмененииСервер()
УстановитьВозможныеЗначенияКассыПолучателя();
ПересчитатьПараметрыКонвертации("ВалютаКонвертации");
УстановитьЗаголовокСуммыКонвертации();
КонецПроцедуры
&НаСервере
Процедура КратностьКурсаКонвертацииПриИзмененииНаСервере()
ПересчитатьПараметрыКонвертации("КратностьКурсаКонвертации");
КонецПроцедуры
#КонецОбласти
#Область Свойства
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область УправлениеЭлементамиФормы
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеВалютыВзаиморасчетов(ЭтотОбъект);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеПартнера(ЭтотОбъект);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Контрагент.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Контрагент.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
СписокЗначений = Новый СписокЗначений;
СписокЗначений.Добавить(Перечисления.ХозяйственныеОперации.ПрочаяВыдачаДенежныхСредств);
ОтборЭлемента.ПравоеЗначение = СписокЗначений;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Контрагент");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаПартнер.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.Партнер");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Подразделение.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствПодотчетнику;
Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаОбъектРасчетов.Имя);
ГруппаОтбора = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетов");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлемента = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ОбъектРасчетовСовпадаетСДокументом");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.DarkGray);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '<этот документ>'"));
НаправленияДеятельностиСервер.УстановитьУсловноеОформлениеНаправленияДеятельности(ЭтаФорма);
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаКурсЧислительВзаиморасчетов.Имя);
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", "");
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.РасшифровкаПлатежаДатаПогашения.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.РасшифровкаПлатежа.ДатаПогашения");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСТР("ru='<автоматически>'"));
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
ДенежныеСредстваСервер.УстановитьУсловноеОформлениеСуммыНДСРасшифровкиПлатежа(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УправлениеЭлементамиФормы()
УстановитьВозможныеЗначенияКассыПолучателя(Ложь);
Элементы.ХозяйственнаяОперация.Доступность = НЕ Объект.Исправление;
Элементы.СуммаДокумента.Доступность = НЕ Объект.Исправление;
Элементы.Касса.Доступность = НЕ Объект.Исправление;
Элементы.КассаПолучатель.Доступность = НЕ Объект.Исправление;
Элементы.Контрагент.Доступность = НЕ Объект.Исправление;
Элементы.КассаПолучатель.Доступность = НЕ Объект.Исправление;
Элементы.БанковскийСчет.Доступность = НЕ Объект.Исправление;
Элементы.КассаККМ.Доступность = НЕ Объект.Исправление;
МассивРеквизитовОперации = Новый Массив;
Документы.РасходныйКассовыйОрдер.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, Неопределено, МассивРеквизитовОперации);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораКассы(Объект, Элементы.Касса);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(Объект, Элементы.ЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(Объект, Элементы.РасшифровкаПлатежаЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораЗаявки(Объект, Элементы.РасшифровкаБезРазбиенияЗаявкаНаРасходованиеДенежныхСредств);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораКонтрагента(Объект, Элементы.Контрагент);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораПартнера(Объект, Элементы.РасшифровкаПлатежаПартнер);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораПартнера(Объект, Элементы.РасшифровкаБезРазбиенияПартнер);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаПлатежаДоговорКредитаДепозита);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговораКредитаДепозита(Объект, Элементы.РасшифровкаБезРазбиенияДоговорКредитаДепозита);
Если МассивРеквизитовОперации.Найти("Договор") <> Неопределено Тогда
ДенежныеСредстваСервер.УстановитьПараметрыВыбораДоговора(ЭтотОбъект, Элементы.Договор);
КонецЕсли;
ДенежныеСредстваСервер.УстановитьПараметрыВыбораСтатьяДвиженияДенежныхСредств(Объект, Элементы.СтатьяДвиженияДенежныхСредств);
ДенежныеСредстваСервер.УстановитьСвязиПараметровВыбораСтавкиНДС(Объект, Элементы.РасшифровкаБезРазбиенияСтавкаНДС);
ДенежныеСредстваСервер.УстановитьСвязиПараметровВыбораСтавкиНДС(Объект, Элементы.РасшифровкаПлатежаСтавкаНДС);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.НаправлениеДеятельности);
ДенежныеСредстваСервер.УстановитьПараметрыВыбораНаправленияДеятельности(Объект, Элементы.НаправлениеДеятельностиВозврата);
УстановитьВидимостьКнопкиПодбораПодарочногоСертификата();
ДенежныеСредстваСервер.ЗаполнитьСписокТиповСуммКредитовДепозитов(
Элементы.РасшифровкаПлатежаТипСуммыКредитаДепозита.СписокВыбора, Объект.ХозяйственнаяОперация);
ДенежныеСредстваСервер.ЗаполнитьСписокТиповСуммКредитовДепозитов(
Элементы.РасшифровкаБезРазбиенияТипСуммыКредитаДепозита.СписокВыбора, Объект.ХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьЗаголовокСуммыПлатежа(Объект.Валюта, Элементы);
Элементы.НадписьВалюта.Заголовок = Строка(Объект.Валюта);
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаПлатежаПартнер", Объект.ХозяйственнаяОперация);
ПартнерыИКонтрагенты.ЗаголовокЭлементаПартнерВЗависимостиОтХозяйственнойОперации(
ЭтотОбъект, "РасшифровкаБезРазбиенияПартнер", Объект.ХозяйственнаяОперация);
Если ПереключательРасшифровки Тогда
Элементы.СтраницыРасшифровки.ТекущаяСтраница = Элементы.РасшифровкаСписком;
Иначе
Элементы.СтраницыРасшифровки.ТекущаяСтраница = Элементы.РасшифровкаБезРазбиения;
КонецЕсли;
Если Не ПереключательРасшифровки Тогда
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
Если Объект.РасшифровкаПлатежа.Количество() > 0
И ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
Иначе
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
КонецЕсли;
КонецЕсли;
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НастроитьЗависимыеЭлементыФормы(ИзмененныйРеквизит = "")
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
&НаСервере
Процедура НастроитьЗависимыеЭлементыФормыНаСервере(ИзмененныйРеквизит = "")
ДенежныеСредстваКлиентСервер.НастроитьЭлементыФормы(ЭтаФорма, ИзмененныйРеквизит, РеквизитыФормы(ЭтаФорма));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыФормы(Форма)
РеквизитыФормы = Новый Структура;
РеквизитыФормы.Вставить("ИспользоватьЗаявкиНаРасходованиеДенежныхСредств");
РеквизитыФормы.Вставить("ИспользоватьНесколькоВалют");
РеквизитыФормы.Вставить("РазрешеныПлатежиБезУказанияЗаявок");
РеквизитыФормы.Вставить("ИспользоватьНачислениеЗарплатыУТ");
РеквизитыФормы.Вставить("ПериодАвансовогоОтчетаДата");
РеквизитыФормы.Вставить("ЕстьФилиалы");
РеквизитыФормы.Вставить("СуммаНераспределено");
РеквизитыФормы.Вставить("ИспользоватьДоговорыМеждуОрганизациями");
РеквизитыФормы.Вставить("ИспользоватьДоговорыСКлиентами");
РеквизитыФормы.Вставить("ИспользоватьДоговорыСПоставщиками");
РеквизитыФормы.Вставить("ВалютаВзаиморасчетов");
РеквизитыФормы.Вставить("ВариантКурсаДоговора");
РеквизитыФормы.Вставить("ТипОбъектаРасчетов");
РеквизитыФормы.Вставить("НесколькоВалютВзаиморасчетов");
ЗаполнитьЗначенияСвойств(РеквизитыФормы, Форма);
Возврат РеквизитыФормы;
КонецФункции
&НаСервере
Процедура УточнитьСписокХозяйственныхОпераций()
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПередачиМеждуОрганизациями(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийВнутреннейПередачи(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПоДоговорамКредитовИДепозитов(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииПрочаяВыдачаДенежныхСредств(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииКонвертацияВалютыНаличные(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийПередачиМеждуКассами(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийСКассамиККМ(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацииОплатаАрендодателю(ЭлементХозяйственнаяОперация);
ДенежныеСредстваСервер.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура ОбновитьИнформациюПоЗаявкам()
МенеджерДокумента = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени("Документ.РасходныйКассовыйОрдер");
ДенежныеСредстваСервер.ВывестиИнформациюПоЗаявкам(ЭтотОбъект, МенеджерДокумента);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения()
ДенежныеСредстваСервер.УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСуммыКонвертации()
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.ЗаголовокВалютыКурсаИКратностиКонвертации(ЭтотОбъект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНалогообложениеНДС(ОбновлятьСтавкуИСуммуНДС = Истина)
ДенежныеСредстваСервер.ЗаполнитьНалогообложениеНДС(Объект, Объект.НалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДС, Элементы.РасшифровкаБезРазбиенияНалогообложениеНДСВозврата, ОбновлятьСтавкуИСуммуНДС);
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
КонецПроцедуры
&НаСервере
Процедура ОбновитьСтавкуНДСИПересчитатьСуммуНДС(ИдСтроки = Неопределено)
ДенежныеСредстваСервер.ОбновитьСтавкуНДСИПересчитатьСуммуНДС(Объект, ИдСтроки);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьПредставлениеДатыПогашения()
Если Объект.РасшифровкаПлатежа.Количество() = 0
Или Не ЗначениеЗаполнено(Объект.РасшифровкаПлатежа[0].ДатаПогашения) Тогда
ДатаПогашенияБезРазбиения = НСтр("ru='<автоматически>'");
Иначе
ДатаПогашенияБезРазбиения = Объект.РасшифровкаПлатежа[0].ДатаПогашения;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасшифровкаБезРазбиенияДатаПогашенияОкончаниеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Объект.РасшифровкаПлатежа[0].ДатаПогашения = Результат;
Модифицированность = Истина;
КонецЕсли;
ОбновитьПредставлениеДатыПогашения();
КонецПроцедуры
&НаСервере
Процедура УстановитьОграничениеТипаДоговораРасшифровкиПлатежа()
ДенежныеСредстваСервер.УстановитьОграничениеТипаДоговораРасшифровкиПлатежа(ЭтотОбъект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
&НаСервере
Процедура НаправлениеДеятельностиПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ГруппаФинансовогоУчетаПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура РасшифровкаПлатежаПартнерПриИзмененииНаСервере()
ТекущаяСтрока = Объект.РасшифровкаПлатежа.НайтиПоИдентификатору(Элементы.РасшифровкаПлатежа.ТекущаяСтрока);
ОчиститьОбъектРасчетов(ТекущаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ИзменитьСуммуНераспределено()
СуммаНераспределено = ДенежныеСредстваСервер.НераспределенныйОстатокПлатежа(Объект);
НастроитьЗависимыеЭлементыФормыНаСервере("СуммаНераспределено");
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
ДенежныеСредстваСервер.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
ИспользоватьЗаявкиНаРасходованиеДенежныхСредств = ПолучитьФункциональнуюОпцию("ИспользоватьЗаявкиНаРасходованиеДенежныхСредств");
ИспользоватьНесколькоВалют = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют");
ИспользоватьНачислениеЗарплатыУТ = ПолучитьФункциональнуюОпцию("ИспользоватьНачислениеЗарплатыУТ");
ИспользоватьСинхронизациюДанных = ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных");
ИспользоватьДоговорыМеждуОрганизациями = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыМеждуОрганизациями");
ИспользоватьДоговорыСКлиентами = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСКлиентами");
ИспользоватьДоговорыСПоставщиками = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСПоставщиками");
ВалютаРеглУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
Если ЗначениеЗаполнено(Объект.КассаККМ) Тогда
ПараметрыКассыККМ = Новый ФиксированнаяСтруктура(Справочники.КассыККМ.ПараметрыКассыККМ(Объект.КассаККМ));
ПраваДоступа = НастройкиПродажДляПользователейСервер.ПраваДоступаРМК(Пользователи.ТекущийПользователь());
КонецЕсли;
ТекущаяКасса = Объект.Касса;
СохраненнаяХозяйственнаяОперация = Объект.ХозяйственнаяОперация;
ТекущийКонтрагент = Объект.Контрагент;
ТекущаяОрганизацияПолучатель = Объект.ОрганизацияПолучатель;
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ФилиалыОрганизации.ЗагрузитьЗначения(Справочники.Организации.ФилиалыСРасчетамиЧерезГоловнуюОрганизацию(Объект.Организация));
ЕстьФилиалы = ФилиалыОрганизации.Количество() > 0;
КонецЕсли;
РазрешеныПлатежиБезУказанияЗаявок =
Справочники.Кассы.ПолучитьРеквизитыКассы(ТекущаяКасса).РазрешитьПлатежиБезУказанияЗаявок
Или Не ИспользоватьЗаявкиНаРасходованиеДенежныхСредств;
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
ПолучитьДоговорПоУмолчаниюСервер();
ИнициализироватьРасшифровкуПлатежа();
ДенежныеСредстваСервер.ЗаполнитьСписокВыбораПериодовАвансовогоОтчета(ЭтаФорма, Объект.Дата);
ПериодАвансовогоОтчетаДата = (ТипЗнч(ПериодАвансовогоОтчета) = Тип("Дата"));
УточнитьСписокХозяйственныхОпераций();
ДенежныеСредстваСервер.ПолучитьДоступныеХозяйственныеОперацииПоОснованию(
Объект.ДокументОснование, Перечисления.ФормыОплаты.Наличная, ДоступныеОперацииПоОснованию);
УстановитьЗаголовокСтатьяДоходовРасходов();
УстановитьЗаголовокСуммыКонвертации();
ОбновитьИнформациюПоЗаявкам();
ЗаполнитьВалютуВзаиморасчетовДокумента();
ЗаполнитьКурсКратностьТекстом();
УправлениеЭлементамиФормы();
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьРасшифровкуПлатежа()
МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
Документы.РасходныйКассовыйОрдер.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа") = Неопределено
Или Документы.РасходныйКассовыйОрдер.МассивОперацийБезРасшифровкиПлатежа().Найти(Объект.ХозяйственнаяОперация) <> Неопределено
И Не Объект.ОплатаПоЗаявкам Тогда
Объект.РасшифровкаПлатежа.Очистить();
ПереключательРасшифровки = 0;
Иначе
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ДатаПогашения") = Неопределено Тогда
Для Каждого СтрокаРасшифровки Из Объект.РасшифровкаПлатежа Цикл
СтрокаРасшифровки.ДатаПогашения = Дата(1 , 1 ,1);
КонецЦикла;
КонецЕсли;
Если Объект.РасшифровкаПлатежа.Количество() = 0 Тогда
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
ПереключательРасшифровки = 0;
НоваяСтрока.СтатьяДвиженияДенежныхСредств = Объект.СтатьяДвиженияДенежныхСредств;
НоваяСтрока.Сумма = Объект.СуммаДокумента;
НоваяСтрока.ВалютаВзаиморасчетов = Объект.Валюта;
НоваяСтрока.КурсЧислительВзаиморасчетов = 1;
НоваяСтрока.КурсЗнаменательВзаиморасчетов = 1;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
ЗаполнитьНалогообложениеНДС();
ИначеЕсли Объект.РасшифровкаПлатежа.Количество() = 1 Тогда
Элементы.РасшифровкаПлатежа.ТекущаяСтрока = Объект.РасшифровкаПлатежа[0].ПолучитьИдентификатор();
ПереключательРасшифровки = 0;
ЗаполнитьНалогообложениеНДС(Ложь);
Иначе
ПереключательРасшифровки = 1;
ЗаполнитьНалогообложениеНДС(Ложь);
КонецЕсли;
ДенежныеСредстваСервер.ЗаполнитьДанныеОбъектаРасчетовРасшифровкиПлатежа(Объект);
ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПараметрыОбъектаРасчетовВРасшифровке()
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(
Объект.РасшифровкаПлатежа.Выгрузить(,"ОбъектРасчетов").ВыгрузитьКолонку("ОбъектРасчетов"));
Для Каждого СтрокаТч Из Объект.РасшифровкаПлатежа Цикл
СтрокаТч.ВариантКурсаДоговора = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].ВариантКурсаДоговора;
СтрокаТч.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТч.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].Объект = Объект.Ссылка;
Если ЗначениеЗаполнено(СтрокаТч.ОбъектРасчетов) Тогда
СтрокаТч.ТипОбъектаРасчетов = СоответствиеКурсаВалютыДоговора[СтрокаТч.ОбъектРасчетов].ТипОбъектаРасчетов;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОрганизациюПолучателя()
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
СтруктураРеквизитов = Справочники.Кассы.ПолучитьРеквизитыКассы(Объект.КассаПолучатель);
Если ЗначениеЗаполнено(СтруктураРеквизитов.Организация) Тогда
Если ЗначениеЗаполнено(ТекущаяОрганизацияПолучатель)
И ТекущаяОрганизацияПолучатель <> СтруктураРеквизитов.Организация Тогда
ВзаиморасчетыСервер.ФормаПриИзмененииРеквизитов(ЭтотОбъект, "КассаПолучатель.Владелец");
КонецЕсли;
Объект.ОрганизацияПолучатель = СтруктураРеквизитов.Организация;
ТекущийВыдать = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущаяОрганизацияПолучатель, "НаименованиеПолное");
Если Не ЗначениеЗаполнено(Объект.Выдать) Или Объект.Выдать = ТекущийВыдать Тогда
Объект.Выдать = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ОрганизацияПолучатель, "НаименованиеПолное");
КонецЕсли;
ТекущаяОрганизацияПолучатель = Объект.ОрганизацияПолучатель;
КонецЕсли;
Иначе
Объект.ОрганизацияПолучатель = Неопределено;
Объект.Выдать = "";
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПоместитьРасшифровкуПлатежаВХранилище()
АдресПлатежейВХранилище = ДенежныеСредстваСервер.ПоместитьРасшифровкуПлатежаВХранилище(
Объект.РасшифровкаПлатежа,
УникальныйИдентификатор);
Возврат АдресПлатежейВХранилище;
КонецФункции
&НаСервере
Процедура ПолучитьДоговорПоУмолчаниюСервер()
МассивВсехРеквизитов = Новый Массив;
МассивРеквизитовОперации = Новый Массив;
Документы.РасходныйКассовыйОрдер.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Если МассивРеквизитовОперации.Найти("РасшифровкаПлатежа.ОбъектРасчетов") = Неопределено Тогда
Возврат;
КонецЕсли;
Если ПравоДоступа("Чтение", Метаданные.Справочники.ДоговорыКонтрагентов) Тогда
ХозяйственнаяОперацияДоговора = Новый Массив;
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПриемНаКомиссию);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту Тогда
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.РеализацияКлиенту);
ХозяйственнаяОперацияДоговора.Добавить(Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию);
КонецЕсли;
ДоговорКонтрагента = ДенежныеСредстваСервер.ДоговорПоУмолчанию(
ДоговорКонтрагента, Партнер, Объект.Контрагент, Объект.Организация, ХозяйственнаяОперацияДоговора);
Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
УчетнаяИнформацияПоДоговору = Справочники.ДоговорыКонтрагентов.УчетнаяИнформацияПоДоговору(ДоговорКонтрагента);
Если ЗначениеЗаполнено(УчетнаяИнформацияПоДоговору) Тогда
Если Не ЗначениеЗаполнено(Объект.СтатьяДвиженияДенежныхСредств) Тогда
УчетнаяИнформацияПоДоговору.Свойство("СтатьяДвиженияДенежныхСредств", Объект.СтатьяДвиженияДенежныхСредств);
КонецЕсли;
УчетнаяИнформацияПоДоговору.Свойство("СтавкаНДС", СтавкаНДС);
УчетнаяИнформацияПоДоговору.Свойство("ВалютаВзаиморасчетов", ВалютаВзаиморасчетов);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПолучитьБанковскийСчетПоУмолчанию()
Объект.БанковскийСчет = Справочники.БанковскиеСчетаОрганизаций.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(
Объект.Организация, Объект.Валюта);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПолучитьПартнераПоУмолчаниюСервер(Контрагент, Партнер, ХозяйственнаяОперация)
Партнер = ДенежныеСредстваСервер.ПолучитьПартнераПоКонтрагенту(Контрагент, ХозяйственнаяОперация);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьРеквизитыКассы(Касса)
Возврат Справочники.Кассы.ПолучитьРеквизитыКассы(Касса);
КонецФункции
&НаСервере
Процедура УстановитьВозможныеЗначенияКассыПолучателя(ИзменятьКассуПолучателя = Истина)
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствВДругуюКассу
И ЗначениеЗаполнено(Объект.Касса) Тогда
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| Получатели.Ссылка КАК Ссылка
|
|ИЗ
| Справочник.Кассы.ПолучателиПлатежейПриПеремещенииДС КАК Получатели
|
|ГДЕ
| Получатели.Ссылка = &КассаОтправитель
|");
Запрос.УстановитьПараметр("КассаОтправитель", Объект.Касса);
ЕстьКассыПолучатели = НЕ Запрос.Выполнить().Пустой();
Иначе
ЕстьКассыПолучатели = Ложь;
КонецЕсли;
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Кассы.Ссылка КАК Ссылка
|
|ИЗ
| Справочник.Кассы КАК Кассы
|
| ЛЕВОЕ СОЕДИНЕНИЕ
| Справочник.Кассы.ПолучателиПлатежейПриПеремещенииДС КАК ПолучателиКассыОтправителя
| ПО
| ПолучателиКассыОтправителя.ПолучательПлатежа = Кассы.Ссылка
| И ПолучателиКассыОтправителя.Ссылка = &КассаОтправитель
| И &ОтбиратьПоКассамПолучателям
|
|ГДЕ
| (Кассы.ВалютаДенежныхСредств = &Валюта ИЛИ НЕ &ОтбиратьПоВалюте)
| И (Кассы.ВалютаДенежныхСредств <> &Валюта ИЛИ НЕ &ОтбиратьПоВалютеКонвертации)
| И (Кассы.Владелец В (&Владелец) ИЛИ НЕ &ОтбиратьПоВладельцу)
| И Кассы.Владелец НЕ В (&ФильтрВладельца)
| И (ПолучателиКассыОтправителя.Ссылка ЕСТЬ НЕ NULL ИЛИ НЕ &ОтбиратьПоКассамПолучателям)
| И Кассы.Ссылка <> &КассаОтправитель
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Кассы.Ссылка КАК Ссылка
|
|ИЗ
| Справочник.КассыККМ КАК Кассы
|
|ГДЕ
| (Кассы.ВалютаДенежныхСредств = &Валюта ИЛИ НЕ &ОтбиратьПоВалюте)
| И (Кассы.Владелец В (&Владелец) ИЛИ НЕ &ОтбиратьПоВладельцу)
| И Кассы.Владелец НЕ В (&ФильтрВладельца)
| И Кассы.ТипКассы НЕ В (ЗНАЧЕНИЕ(Перечисление.ТипыКассККМ.АвтономнаяККМ), ЗНАЧЕНИЕ(Перечисление.ТипыКассККМ.ККМOffline))
|");
Запрос.УстановитьПараметр("КассаОтправитель", Объект.Касса);
Запрос.УстановитьПараметр("ОтбиратьПоКассамПолучателям", ЕстьКассыПолучатели);
Запрос.УстановитьПараметр("ОтбиратьПоВалютеКонвертации", Ложь);
Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты Тогда
Если ЗначениеЗаполнено(Объект.ВалютаКонвертации) Тогда
Запрос.УстановитьПараметр("Валюта", Объект.ВалютаКонвертации);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Истина);
Иначе
Запрос.УстановитьПараметр("Валюта", Объект.Валюта);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Ложь);
Запрос.УстановитьПараметр("ОтбиратьПоВалютеКонвертации", Истина);
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(Объект.Валюта) Тогда
Запрос.УстановитьПараметр("Валюта", Объект.Валюта);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Истина);
Иначе
Запрос.УстановитьПараметр("Валюта", Неопределено);
Запрос.УстановитьПараметр("ОтбиратьПоВалюте", Ложь);
КонецЕсли;
Запрос.УстановитьПараметр("Владелец", Неопределено);
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыдачаДенежныхСредствВДругуюКассу
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КонвертацияВалюты)
И ЗначениеЗаполнено(Объект.Касса)
И ЗначениеЗаполнено(Объект.Организация) Тогда
Запрос.УстановитьПараметр("Владелец", Объект.Организация);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
ИначеЕсли Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВнутренняяПередачаДенежныхСредств Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.Организация);
Запрос.УстановитьПараметр("Владелец", МассивВзаимосвязанныхОрганизаций);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
Иначе
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Ложь);
КонецЕсли;
Запрос.УстановитьПараметр("ФильтрВладельца", Неопределено);
Если (Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию
Или Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратДенежныхСредствВДругуюОрганизацию) Тогда
Если ЗначениеЗаполнено(Объект.Касса)
И ЗначениеЗаполнено(Объект.Организация) Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.Организация);
МассивВзаимосвязанныхОрганизаций.Добавить(Объект.Организация);
Запрос.УстановитьПараметр("ФильтрВладельца", МассивВзаимосвязанныхОрганизаций);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ОрганизацияПолучатель) Тогда
МассивВзаимосвязанныхОрганизаций = Справочники.Организации.МассивВзаимосвязанныхОрганизаций(Объект.ОрганизацияПолучатель);
МассивВзаимосвязанныхОрганизаций.Добавить(Объект.ОрганизацияПолучатель);
Запрос.УстановитьПараметр("Владелец", МассивВзаимосвязанныхОрганизаций);
Запрос.УстановитьПараметр("ОтбиратьПоВладельцу", Истина);
КонецЕсли;
КонецЕсли;
МассивКассПолучателей = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Элементы.КассаПолучатель.СписокВыбора.ЗагрузитьЗначения(МассивКассПолучателей);
Если ИзменятьКассуПолучателя Тогда
Если МассивКассПолучателей.Количество() = 1 Тогда
Объект.КассаПолучатель = МассивКассПолучателей[0];
КассаПолучательПриИзмененииСервер();
ИначеЕсли ЗначениеЗаполнено(Объект.КассаПолучатель)
И МассивКассПолучателей.Найти(Объект.КассаПолучатель) = Неопределено Тогда
Объект.КассаПолучатель = Справочники.Кассы.ПустаяСсылка();
КассаПолучательПриИзмененииСервер();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСтатьяДоходовРасходов()
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихАктивовПассивов") Тогда
Элементы.РасшифровкаБезРазбиенияСтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
Элементы.РасшифровкаПлатежаСтатьяРасходов.Заголовок = НСтр("ru = 'Статья расходов'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов()
ДенежныеСредстваСервер.СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов(ЭтаФорма, Объект);
КонецПроцедуры
&НаСервере
Функция ПоместитьРасшифровкуВоВременноеХранилище()
Возврат ПоместитьВоВременноеХранилище(Объект.РасшифровкаПлатежа.Выгрузить());
КонецФункции
&НаСервере
Процедура ПересчитатьПараметрыКонвертации(ИмяРеквизита)
ПараметрыКонвертации = ДенежныеСредстваСервер.ИнициализироватьПараметрыКонвертации();
ЗаполнитьЗначенияСвойств(ПараметрыКонвертации, Объект);
ПараметрыКонвертации.ВалютаРеглУчета = ВалютаРеглУчета;
ДенежныеСредстваСервер.РассчитатьПараметрыКонвертации(ПараметрыКонвертации, ИмяРеквизита);
ЗаполнитьЗначенияСвойств(Объект, ПараметрыКонвертации);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПодбораИзЗаявок(АдресЗаявокВХранилище)
Объект.ОплатаПоЗаявкам = Истина;
ТаблицаПлатежей = ПолучитьИзВременногоХранилища(АдресЗаявокВХранилище);
СтруктураПоиска = Новый Структура;
МассивВсехРеквизитов = Новый Массив; МассивРеквизитовОперации = Новый Массив;
Документы.РасходныйКассовыйОрдер.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
Объект, МассивВсехРеквизитов, МассивРеквизитовОперации);
Для каждого РеквизитОперации Из МассивРеквизитовОперации Цикл
Поз = СтрНайти(РеквизитОперации, "РасшифровкаПлатежа.");
КоличествоСимволов = СтрДлина("РасшифровкаПлатежа");
Если Поз Тогда
СтруктураПоиска.Вставить(Сред(РеквизитОперации, Поз + КоличествоСимволов + 1));
КонецЕсли;
КонецЦикла;
Для каждого СтрокаПлатежа Из ТаблицаПлатежей Цикл
ЗаполнитьЗначенияСвойств(СтруктураПоиска, СтрокаПлатежа);
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СтруктураПоиска, "Организация")
И Не ЗначениеЗаполнено(СтруктураПоиска.Организация) Тогда
СтруктураПоиска.Организация = Справочники.Организации.ПустаяСсылка();
КонецЕсли;
Строки = Объект.РасшифровкаПлатежа.НайтиСтроки(СтруктураПоиска);
Если Строки.Количество() = 0 Тогда
ДобавитьСтрокуРасшифровкиПоЗаявке(СтрокаПлатежа, СтруктураПоиска);
КонецЕсли;
КонецЦикла;
Объект.СуммаДокумента = Объект.РасшифровкаПлатежа.Итог("Сумма");
ОбновитьИнформациюПоЗаявкам();
НастроитьЗависимыеЭлементыФормыНаСервере("ОплатаПоЗаявкам");
КонецПроцедуры
&НаКлиенте
Процедура ПересчитатьСуммуДокументаПоРасшифровкеПлатежаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если ДополнительныеПараметры.Свойство("ИмяТабличнойЧасти") Тогда
ТабличнаяЧасть = Объект[ДополнительныеПараметры.ИмяТабличнойЧасти];
Иначе
ТабличнаяЧасть = Объект.РасшифровкаПлатежа;
КонецЕсли;
КодОтвета = РезультатВопроса;
Если КодОтвета = КодВозвратаДиалога.Да Тогда
Объект.СуммаДокумента = ТабличнаяЧасть.Итог("Сумма");
ОбщегоНазначенияУТКлиент.ЗаписатьОбъектПриНеобходимости(ЭтотОбъект, ДополнительныеПараметры.ПараметрыЗаписи,,Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаблокироватьДанные()
ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка,,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура РазблокироватьДанные()
РазблокироватьДанныеДляРедактирования(,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВалютуВзаиморасчетовДокумента()
ДенежныеСредстваСервер.ЗаполнитьВалютуВзаиморасчетовДокумента(ЭтаФорма);
Элементы.ДекорацияВалютыИКурсПлатежа.Заголовок = ДенежныеСредстваСервер.НадписьВалютыИКурсПлатежа(ЭтаФорма);
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсКурсЗнаменательВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаТЧ);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКурсКратностьТекстом()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура РассчитатьСуммыВзаиморасчетов()
Для каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаТЧ, Объект.Валюта, ВалютаРеглУчета);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКнопкиПодбораПодарочногоСертификата()
РазрешенаПродажаПодарочногоСертификата =
РозничныеПродажиЛокализация.РазрешенаПродажаПодарочногоСертификатаВДокументе(Объект.ХозяйственнаяОперация);
Элементы.РасшифровкаПлатежаПодобратьПодарочныйСертификат.Видимость = РазрешенаПродажаПодарочногоСертификата;
КонецПроцедуры
&НаСервере
Процедура ОбработатьПодарочныйСертификат(ПодарочныйСертификат)
НайденнаяСтрока = ПодарочныеСертификатыСервер.ДобавитьПодарочныйСертификатВТабличуюЧастьРасшифровкаПлатежа(ПодарочныйСертификат, ЭтотОбъект);
Если НайденнаяСтрока <> Неопределено Тогда
Модифицированность = Истина;
РасшифровкаОбъектРасчетовПриИзмененииСервер(НайденнаяСтрока.ПолучитьИдентификатор());
УстановитьОграничениеТипаДоговораРасшифровкиПлатежа();
СформироватьНадписьГиперссылкиРеквизитыОбъектаРасчетов();
УстановитьВидимостьДоступностьЭлементовРасшифровкиБезРазбиения();
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(НайденнаяСтрока);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(НайденнаяСтрока, Объект.Валюта, ВалютаРеглУчета);
ЗаполнитьВалютуВзаиморасчетовДокумента();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРазрешенаРаботаСДочернимиПартнерами(СтрокаТаблицы)
МассивСсылок = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаТаблицы.ОбъектРасчетов);
СоответствиеКурсаВалютыДоговора = ВзаиморасчетыСервер.СоответствиеОбъектовРасчетовИПараметровДоговора(МассивСсылок);
СтрокаТаблицы.РазрешенаРаботаСДочернимиПартнерами = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].РазрешенаРаботаСДочернимиПартнерами;
СтрокаТаблицы.ОбъектРасчетовСовпадаетСДокументом = СоответствиеКурсаВалютыДоговора[СтрокаТаблицы.ОбъектРасчетов].Объект = Объект.Ссылка;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьКассира()
КассирКассы = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Касса, "Кассир");
Если ЗначениеЗаполнено(КассирКассы) Тогда
Объект.Кассир = КассирКассы;
Иначе
Объект.Кассир = ДенежныеСредстваСервер.КассирПоследнегоРКОИлиПКО(Объект.Дата, Объект.Организация, Объект.Касса);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчиститьДополнительныеСведенияРасхода()
Объект.Выдать = "";
Объект.ПоДокументу = "";
Объект.Основание = "";
Объект.Приложение = "";
КонецПроцедуры
&НаСервере
Процедура ОчиститьОбъектРасчетов(СтрокаРасшифровки)
ДенежныеСредстваСервер.ОчиститьОбъектРасчетов(Объект, СтрокаРасшифровки);
КонецПроцедуры
&НаСервере
Процедура ДобавитьСтрокуРасшифровкиПоЗаявке(СтрокаПлатежа, ДополнительныеПараметры)
НоваяСтрока = Объект.РасшифровкаПлатежа.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаПлатежа);
Если Не ЗначениеЗаполнено(НоваяСтрока.Партнер) Тогда
Если Не ЗначениеЗаполнено(Партнер) Тогда
ПолучитьПартнераПоУмолчаниюСервер(Объект.Контрагент, Партнер, Объект.ХозяйственнаяОперация);
КонецЕсли;
НоваяСтрока.Партнер = Партнер;
КонецЕсли;
ДоходыИРасходыКлиентСервер.ПриДобавленииСтрокиВТаблицу(ЭтотОбъект, НоваяСтрока, "Объект.РасшифровкаПлатежа");
КонецПроцедуры
&НаКлиенте
Процедура УстановитьПризнакОплатыПоЗаявкам()
Если Не РазрешеныПлатежиБезУказанияЗаявок
И ЗначениеЗаполнено(Объект.Касса) Тогда
Объект.ОплатаПоЗаявкам = Истина;
ИначеЕсли Не ЗначениеЗаполнено(Объект.Касса) Тогда
Объект.ОплатаПоЗаявкам = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДоговоруСтрокуРасшифровкиПлатежа(СтрокаРасшифровки, РеквизитыДоговора)
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, РеквизитыДоговора);
СтрокаРасшифровки.Договор = Объект.Договор;
ЗаполнитьКурсИКратностьВСтрокеРасшифровки(СтрокаРасшифровки);
ДенежныеСредстваКлиентСервер.РассчитатьСуммуВзаиморасчетовВСтрокеРасшифровки(
СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
ДенежныеСредстваКлиентСервер.СформироватьКурсЗнаменательТекстом(СтрокаРасшифровки, Объект.Валюта, ВалютаРеглУчета);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Локализация
#Область Локализация_ПодключаемыеОбработчикиСобытийФормы
&НаСервере
Процедура Подключаемый_ПриСозданииНаСервереЛокализация(Отказ, СтандартнаяОбработка)
ПриСозданииНаСервере(Отказ, СтандартнаяОбработка);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ПриЧтенииСозданииНаСервереЛокализация();
КонецЕсли;
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
ПроверкаКонтрагентовВызовСервераПереопределяемыйУТ.ФормаДокументаПриСозданииНаСервере(ЭтотОбъект);
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЧтенииНаСервереЛокализация(ТекущийОбъект)
ПриЧтенииНаСервере(ТекущийОбъект);
ПриЧтенииСозданииНаСервереЛокализация();
ПараметрыЭДОПриСоздании = ОбменСКонтрагентами.ПараметрыПриЧтенииНаСервере_ФормаДокумента();
ПараметрыЭДОПриСоздании.Форма = ЭтотОбъект;
ПараметрыЭДОПриСоздании.ДокументСсылка = Объект.Ссылка;
ПараметрыЭДОПриСоздании.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыЭДОПриСоздании.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыЭДОПриСоздании.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПриЧтенииНаСервере_ФормаДокумента(ПараметрыЭДОПриСоздании);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриОткрытииЛокализация(Отказ)
ПриОткрытии(Отказ);
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
ФинансыКлиентЛокализация.ПроверитьЗаполнениеДокументаНаОсновании(Объект, Основание);
КонецЕсли;
ПроверкаКонтрагентовКлиент.ПриОткрытииДокумент(ЭтотОбъект);
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПередЗаписьюНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи);
ПроверкаКонтрагентов.ПередЗаписьюНаСервереДокумент(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПриЗаписиНаСервереЛокализация(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПроверкаКонтрагентов.ПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПослеЗаписиЛокализация(ПараметрыЗаписи)
ПослеЗаписи(ПараметрыЗаписи);
ОбменСКонтрагентамиКлиент.ПослеЗаписи_ФормаДокумента(ЭтаФорма, ПараметрыЗаписи);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ПослеЗаписиНаСервереЛокализация(ТекущийОбъект, ПараметрыЗаписи)
ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи);
ПроверкаКонтрагентов.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект);
ПараметрыПослеЗаписи = ОбменСКонтрагентами.ПараметрыПослеЗаписиНаСервере();
ПараметрыПослеЗаписи.Форма = ЭтотОбъект;
ПараметрыПослеЗаписи.ДокументСсылка = Объект.Ссылка;
ПараметрыПослеЗаписи.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыПослеЗаписи.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентами.ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи, ПараметрыПослеЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаОповещенияЛокализация(ИмяСобытия, Параметр, Источник)
ОбработкаОповещения(ИмяСобытия, Параметр, Источник);
ПроверкаКонтрагентовКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
ПараметрыОповещения = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаДокумента();
ПараметрыОповещения.Форма = ЭтотОбъект;
ПараметрыОповещения.ДокументСсылка = Объект.Ссылка;
ПараметрыОповещения.КонтроллерСостояниеЭДО = Элементы.ДекорацияСостояниеЭДО;
ПараметрыОповещения.ГруппаСостояниеЭДО = Элементы.ГруппаСостояниеЭДО;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаДокумента(ИмяСобытия, Параметр, Источник, ПараметрыОповещения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаВыбораЛокализация(РезультатВыбора, ИсточникВыбора)
ОбработкаВыбора(РезультатВыбора, ИсточникВыбора);
КонецПроцедуры
#КонецОбласти
#Область Локализация_ПодключаемыеОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура Подключаемый_ДатаПриИзмененииЛокализация(Элемент)
НужнаОбработка = ДатаПриИзмененииКлиент();
Если НужнаОбработка Тогда
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Объект.Дата);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ХозяйственнаяОперацияПриИзмененииЛокализация(Элемент)
Оповещение = Новый ОписаниеОповещения("ХозяйственнаяОперацияПриИзмененииФрагментЛокализация", ЭтотОбъект);;
ХозяйственнаяОперацияПриИзмененииКлиент(Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ХозяйственнаяОперацияПриИзмененииФрагментЛокализация(Результат, ДополнительныеПараметры) Экспорт
ХозяйственнаяОперацияПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ХозяйственнаяОперацияПриИзмененииСерверЛокализация()
ХозяйственнаяОперацияПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтрагентПриИзмененииЛокализация(Элемент)
КонтрагентПриИзмененииСерверЛокализация();
ТекущийКонтрагент = Объект.Контрагент;
ПроверкаКонтрагентовКлиент.ЗапуститьПроверкуКонтрагентовВДокументе(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаСервере
Процедура КонтрагентПриИзмененииСерверЛокализация()
КонтрагентПриИзмененииСервер();
Если ЗначениеЗаполнено(Объект.Контрагент) Тогда
ТекущийВыдать = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийКонтрагент, "НаименованиеПолное");
Если Не ЗначениеЗаполнено(Объект.Выдать) Или Объект.Выдать = ТекущийВыдать Тогда
ДанныеКонтрагента = Новый Структура();
ФормированиеПечатныхФорм.ЗаполнитьСведенияОЮрФизЛице(ДанныеКонтрагента, Объект.Контрагент, Объект.Дата);
Объект.Выдать = ДанныеКонтрагента.Представление;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодотчетноеЛицоПриИзмененииЛокализация(Элемент)
ПодотчетноеЛицоПриИзмененииСерверЛокализация();
КонецПроцедуры
&НаСервере
Процедура ПодотчетноеЛицоПриИзмененииСерверЛокализация()
ПодотчетноеЛицоПриИзмененииСервер();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииЛокализация(Элемент)
Если ЗначениеЗаполнено(Объект.ЗаявкаНаРасходованиеДенежныхСредств) Тогда
ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСерверЛокализация();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСерверЛокализация()
ЗаявкаНаРасходованиеДенежныхСредствПриИзмененииСервер();
ОбновитьОтображениеСтрокаФизическиеЛица();
КонецПроцедуры
#КонецОбласти
#Область Локализация_ОбработчикиСобытийЭлементовФормы
&НаСервере
Процедура ВедомостьПриИзмененииНаСервере()
Возврат;
КонецПроцедуры
#КонецОбласти
#Область Локализация_ОбработчикиСобытийЭлементовТаблицыФормыРасшифровкаПлатежа
&НаКлиенте
Процедура Подключаемый_РасшифровкаПлатежаВыборЛокализация(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
РасшифровкаПлатежаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
Возврат;
КонецПроцедуры
#КонецОбласти
#Область ЛокализацияКоманды
&НаКлиенте
Процедура ЗаполнитьРасшифровкуПлатежаПоЗаймамСотрудникуЛокализация(Команда)
Возврат;
КонецПроцедуры
#Область РаботаСКонтрагентами
&НаКлиенте
Процедура Подключаемый_ПоказатьПредложениеИспользоватьПроверкуКонтрагентов()
ПроверкаКонтрагентовКлиент.ПредложитьВключитьПроверкуКонтрагентов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьРезультатПроверкиКонтрагентов()
ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОтобразитьРезультатПроверкиКонтрагента() Экспорт
ПроверкаКонтрагентов.ОтобразитьРезультатПроверкиКонтрагентаВДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания) Экспорт
ПроверкаКонтрагентов.ПроверитьКонтрагентовВДокументеФоновоеЗадание(ЭтотОбъект, ПараметрыФоновогоЗадания);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьКонтрагентовЛокализация(Команда)
ПроверкаКонтрагентовКлиент.ПроверитьКонтрагентовВДокументеПоКнопке(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область ЛокализацияСлужебные
&НаСервере
Процедура ПриЧтенииСозданииНаСервереЛокализация()
ДенежныеСредстваСерверЛокализация.УправлениеЭлементамиФормыПриЧтенииСозданииНаСервере(ЭтотОбъект);
УточнитьСписокХозяйственныхОперацийЛокализация();
ОбновитьОтображениеСтрокаФизическиеЛица();
НастроитьЗависимыеЭлементыФормыНаСервере();
КонецПроцедуры
&НаСервере
Процедура УточнитьСписокХозяйственныхОперацийЛокализация()
ЭлементХозяйственнаяОперация = Элементы.ХозяйственнаяОперация;
ДенежныеСредстваСерверЛокализация.УстановитьВидимостьОперацийЗаймамСотрудникам(ЭлементХозяйственнаяОперация);
КонецПроцедуры
&НаСервере
Процедура ОбновитьОтображениеСтрокаФизическиеЛица()
СтрокаФизическиеЛица = НСтр("ru = 'Список работников'") + " (" + Объект.ВыплатаЗаработнойПлаты.Количество() + ")";
Элементы.СтрокаФизическиеЛица.ЦветТекста =
?(Объект.ВыплатаЗаработнойПлаты.Количество() = 0, ЦветаСтиля.ЦветОсобогоТекста, ЦветаСтиля.ГиперссылкаЦвет);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область Инициализация
#Если НаСервере Тогда
Если Не ПодключеныОбработчикиЛокализация И ПолучитьФункциональнуюОпцию("ПоддержкаПлатежейРФ") Тогда
ПодключеныОбработчикиЛокализация = Истина;
ПодключаемыеОбработчикиСобытийФормы = Новый Массив;
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриСозданииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЧтенииНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриОткрытии");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПередЗаписьюНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПриЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписи");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ПослеЗаписиНаСервере");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаОповещения");
ПодключаемыеОбработчикиСобытийФормы.Добавить("ОбработкаВыбора");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийФормы Цикл
УстановитьДействие(Обработчик, "Подключаемый_" + Обработчик + "Локализация");
КонецЦикла;
ПодключаемыеОбработчикиСобытийЭлементов = Новый Соответствие;
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Дата", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ХозяйственнаяОперация", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("Контрагент", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ПодотчетноеЛицо", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("ЗаявкаНаРасходованиеДенежныхСредств", "ПриИзменении");
ПодключаемыеОбработчикиСобытийЭлементов.Вставить("РасшифровкаПлатежа", "Выбор");
Для каждого Обработчик Из ПодключаемыеОбработчикиСобытийЭлементов Цикл
Если Элементы.Найти(Обработчик.Ключ) <> Неопределено Тогда
Элементы[Обработчик.Ключ].УстановитьДействие(
Обработчик.Значение, "Подключаемый_" + Обработчик.Ключ + Обработчик.Значение + "Локализация");
КонецЕсли;
КонецЦикла;
КонецЕсли;
#КонецЕсли
#КонецОбласти