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