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