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