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