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