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