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