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