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