Нематериальные активы и расходы на НИОКР / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

// Возвращает сведения о нематериальном активе.
//
// Параметры:
//  НематериальныйАктив - СправочникСсылка.НематериальныеАктивы	 - Нематериальный актив для которого нужно получить сведения.
//  Период			 - Дата - На какую дату нужно получить сведения.
// 
// Возвращаемое значение:
//  Структура - Содержит сведения о нематериальном активе.
//
Функция ПервоначальныеСведения(НематериальныйАктив, Период = '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";
		СтандартнаяОбработка = Ложь;
		Возврат;

	КонецЕсли;
	
КонецПроцедуры

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	ДанныеВыбора = ВнеоборотныеАктивыВызовСервера.ДанныеВыбораНематериальныхАктивов(Параметры, СтандартнаяОбработка);
	
КонецПроцедуры

#КонецОбласти

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныйПрограммныйИнтерфейс

Функция ЕстьПраваНаЧтениеСведений() Экспорт

	Если НЕ ВнеоборотныеАктивы.ИспользуетсяУправлениеВНА_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")));
	
	УстановитьПривилегированныйРежим(Истина);
	ИсторияИзменений = Запрос.Выполнить().Выгрузить();
	УстановитьПривилегированныйРежим(Ложь);

	Возврат ИсторияИзменений;
	
КонецФункции

#КонецОбласти

#КонецОбласти

#КонецЕсли

Связанные материалы