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