Учетная политика финансового учета / Модуль менеджера

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

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

// Возвращает значения по умолчанию для ресурсов регистра.
// Имена ключей структуры должны строго соответствовать именам ресурсов регистра.
// 
// Возвращаемое значение:
// 	Структура - структура значений ресурсов регистра.
Функция ЗначенияПоУмолчанию() Экспорт
	
	СтруктураЗначений = Новый Структура;
	
	СтруктураЗначений.Вставить("МетодОценкиСтоимостиТоваров", Перечисления.МетодыОценкиСтоимостиТоваров.СредняяЗаМесяц);
	СтруктураЗначений.Вставить("УчетГотовойПродукцииПоПлановойСтоимости", Ложь);
	СтруктураЗначений.Вставить("ФормироватьРезервыПоСомнительнымДолгам", Ложь);
	СтруктураЗначений.Вставить("ПериодичностьРезервовПоСомнительнымДолгам", Перечисления.Периодичность.Месяц);
	СтруктураЗначений.Вставить("ПризнаватьРасходыПоИсследованиям", Ложь);
	СтруктураЗначений.Вставить("СтатьяРасходовПоИсследованиям", Неопределено);
	СтруктураЗначений.Вставить("АналитикаРасходовПоИсследованиям", Неопределено);
	СтруктураЗначений.Вставить("ИспользоватьВыделениеДолгосрочныхАктивовОбязательств", Ложь);
	СтруктураЗначений.Вставить("ДлительностьОперационногоЦикла", 12);
	СтруктураЗначений.Вставить("УчетАрендыПоФСБУ25_2018", Истина);
	СтруктураЗначений.Вставить("УчетДисконтированнойКредиторскойЗадолженностиПоставщикам", Ложь);
	СтруктураЗначений.Вставить("СтатьяСписанияПроцентныхРасходов", Неопределено);
	СтруктураЗначений.Вставить("АналитикаСписанияПроцентныхРасходов", Неопределено);
	СтруктураЗначений.Вставить("УчетДисконтированияРезервовПредстоящихРасходов", Ложь);
	СтруктураЗначений.Вставить("СтатьяСписанияПроцентныхРасходовДисконтированияРезервов", Неопределено);
	СтруктураЗначений.Вставить("АналитикаСписанияПроцентныхРасходовДисконтированияРезервов", Неопределено);
	СтруктураЗначений.Вставить("СрокДляПримененияДисконтирования", 0);
	СтруктураЗначений.Вставить("УчетнаяПолитикаСуществует", Ложь);
	СтруктураЗначений.Вставить("МесяцНачалаФинансовогоГода", 1);
	СтруктураЗначений.Вставить("ДетализироватьМатериальныеИПостатейныеЗатратыВСебестоимостиТоваров", Ложь);
	СтруктураЗначений.Вставить("ВосстанавливатьРезервПриСписанииЗапасовНаРасходы", Истина);
	СтруктураЗначений.Вставить("ПорядокОценкиЗадолженности", Неопределено);
	СтруктураЗначений.Вставить("СтатьяПроцентныхДоходовФинансовойАренды", Неопределено);
	СтруктураЗначений.Вставить("АналитикаПроцентныхДоходовФинансовойАренды", Неопределено);
	СтруктураЗначений.Вставить("СтатьяДоходовДляУслугФинансовойАренды", Неопределено);
	СтруктураЗначений.Вставить("АналитикаДоходовДляУслугФинансовойАренды", Неопределено);
	СтруктураЗначений.Вставить("ДетализироватьОтклоненияПоНаправлениямДеятельности", Ложь);
	СтруктураЗначений.Вставить("ДетализироватьОтклоненияПоПодразделениям", Ложь);
	СтруктураЗначений.Вставить("ДетализироватьОтклоненияПоСкладам", Ложь);
	
	//++ НЕ УТ
	СтруктураЗначений.Вставить("СписыватьОтклоненияВСтоимостиПродукцииНаСебестоимостьПродаж", Истина);
	СтруктураЗначений.Вставить("ПорядокУчетаВНА", Перечисления.ПорядокУчетаВНА.ПоСтандартамМУ);
	СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииОС", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
	СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииНМА", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
	СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииАренда", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
	СтруктураЗначений.Вставить("МетодПереоценкиОС", Перечисления.МетодыПереоценкиВНА.МетодПропорциональногоПересчета);
	СтруктураЗначений.Вставить("МетодПереоценкиНМА", Перечисления.МетодыПереоценкиВНА.МетодПропорциональногоПересчета);
	
	Если ПолучитьФункциональнуюОпцию("РегламентированныйУчетВНА") Тогда
		СтруктураЗначений.Вставить("ПорядокУчетаВНАРегл", Перечисления.ПорядокУчетаВНАРегл.Независимый);
		СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииОСРегл", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
		СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииНМАРегл", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
		СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииАрендаРегл", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
	Иначе
		СтруктураЗначений.Вставить("ПорядокУчетаВНАРегл", Перечисления.ПорядокУчетаВНАРегл.СовпадаетСУпрУчетом);
		СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииОСРегл", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
		СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииНМАРегл", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
		СтруктураЗначений.Вставить("ПорядокНачисленияАмортизацииАрендаРегл", Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету);
	КонецЕсли;
	
	СтруктураЗначений.Вставить("ВариантПроводокПоОбесценениюВНА", Перечисления.ВариантыПроводокПоОбесценениюВНА.ДоначислятьКорректировкуОбесценения);
	
	СтруктураЗначений.Вставить("ПроизводитПодакцизныйТовар", Ложь);
	//-- НЕ УТ
	
	СтруктураЗначений.Вставить("ИмпортируетПодакцизныйТовар", Ложь);
	
	Возврат СтруктураЗначений
	
КонецФункции

// Возвращает представление начала финансового года
// 
// Параметры:
//  МесяцНачалаФинансовогоГода - Число - Порядковый номер месяца
// 
// Возвращаемое значение:
//  Строка - Представление месяца начала финансового года
Функция ПредставлениеНачалаФинансовогоГода(МесяцНачалаФинансовогоГода) Экспорт
	
	Если МесяцНачалаФинансовогоГода = 1 Тогда
		Возврат НСтр("ru='Январь'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 2 Тогда
		Возврат НСтр("ru='Февраль'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 3 Тогда
		Возврат НСтр("ru='Март'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 4 Тогда
		Возврат НСтр("ru='Апрель'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 5 Тогда
		Возврат НСтр("ru='Май'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 6 Тогда
		Возврат НСтр("ru='Июнь'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 7 Тогда
		Возврат НСтр("ru='Июль'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 8 Тогда
		Возврат НСтр("ru='Август'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 9 Тогда
		Возврат НСтр("ru='Сентябрь'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 10 Тогда
		Возврат НСтр("ru='Октябрь'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 11 Тогда
		Возврат НСтр("ru='Ноябрь'");
	ИначеЕсли МесяцНачалаФинансовогоГода = 12 Тогда
		Возврат НСтр("ru='Декабрь'");
	Иначе
		Возврат НСтр("ru='Неопределено'");
	КонецЕсли;
	
КонецФункции

// Возращает текст запроса по данным регистра.
// 
// Возвращаемое значение:
// 	Строка - Текст запроса.
Функция ТекстЗапросаДействующиеПараметрыНалоговУчетныхПолитик() Экспорт
	ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВЫБОР КОГДА ТаблицаСрезПоследних.Период ЕСТЬ NULL Тогда
	|		ЛОЖЬ
	|	ИНАЧЕ
	|		ИСТИНА
	|	КОНЕЦ КАК УчетнаяПолитикаСуществует,
	|	ТаблицаСрезПоследних.Период КАК Период,
	|	ГоловныеОрганизации.ОбособленноеПодразделение КАК Организация,
	|	ТаблицаСрезПоследних.МетодОценкиСтоимостиТоваров КАК МетодОценкиСтоимостиТоваров,
	|	ТаблицаСрезПоследних.ФормироватьРезервыПоСомнительнымДолгам КАК ФормироватьРезервыПоСомнительнымДолгам,
	|	ТаблицаСрезПоследних.ПериодичностьРезервовПоСомнительнымДолгам КАК ПериодичностьРезервовПоСомнительнымДолгам,
	|	ТаблицаСрезПоследних.УчетГотовойПродукцииПоПлановойСтоимости КАК УчетГотовойПродукцииПоПлановойСтоимости,
	|	ТаблицаСрезПоследних.ПризнаватьРасходыПоИсследованиям КАК ПризнаватьРасходыПоИсследованиям,
	|	ТаблицаСрезПоследних.СтатьяРасходовПоИсследованиям КАК СтатьяРасходовПоИсследованиям,
	|	ТаблицаСрезПоследних.АналитикаРасходовПоИсследованиям КАК АналитикаРасходовПоИсследованиям,
	|	ТаблицаСрезПоследних.ИспользоватьВыделениеДолгосрочныхАктивовОбязательств,
	|	ТаблицаСрезПоследних.ДлительностьОперационногоЦикла,
	|	ТаблицаСрезПоследних.ПорядокУчетаВНА КАК ПорядокУчетаВНА,
	|	ТаблицаСрезПоследних.ПорядокНачисленияАмортизацииОС КАК ПорядокНачисленияАмортизацииОС,
	|	ТаблицаСрезПоследних.ПорядокНачисленияАмортизацииНМА КАК ПорядокНачисленияАмортизацииНМА,
	|	ТаблицаСрезПоследних.ПорядокНачисленияАмортизацииАренда КАК ПорядокНачисленияАмортизацииАренда,
	|	ТаблицаСрезПоследних.ПорядокУчетаВНАРегл КАК ПорядокУчетаВНАРегл,
	|	ТаблицаСрезПоследних.ПорядокНачисленияАмортизацииОСРегл КАК ПорядокНачисленияАмортизацииОСРегл,
	|	ТаблицаСрезПоследних.ПорядокНачисленияАмортизацииНМАРегл КАК ПорядокНачисленияАмортизацииНМАРегл,
	|	ТаблицаСрезПоследних.ПорядокНачисленияАмортизацииАрендаРегл КАК ПорядокНачисленияАмортизацииАрендаРегл,
	|	ТаблицаСрезПоследних.МетодПереоценкиОС КАК МетодПереоценкиОС,
	|	ТаблицаСрезПоследних.МетодПереоценкиНМА КАК МетодПереоценкиНМА,
	|	ТаблицаСрезПоследних.УчетАрендыПоФСБУ25_2018 КАК УчетАрендыПоФСБУ25_2018,
	|	ТаблицаСрезПоследних.ВариантПроводокПоОбесценениюВНА КАК ВариантПроводокПоОбесценениюВНА,
	|	ТаблицаСрезПоследних.МесяцНачалаФинансовогоГода КАК МесяцНачалаФинансовогоГода,
	|	ТаблицаСрезПоследних.УчетДисконтированнойКредиторскойЗадолженностиПоставщикам КАК УчетДисконтированнойКредиторскойЗадолженностиПоставщикам,
	|	ТаблицаСрезПоследних.СтатьяСписанияПроцентныхРасходов КАК СтатьяСписанияПроцентныхРасходов,
	|	ТаблицаСрезПоследних.АналитикаСписанияПроцентныхРасходов КАК АналитикаСписанияПроцентныхРасходов,
	|	ТаблицаСрезПоследних.СтатьяСписанияПроцентныхРасходовДисконтированияРезервов КАК СтатьяСписанияПроцентныхРасходовДисконтированияРезервов,
	|	ТаблицаСрезПоследних.АналитикаСписанияПроцентныхРасходовДисконтированияРезервов КАК АналитикаСписанияПроцентныхРасходовДисконтированияРезервов,
	|	ТаблицаСрезПоследних.УчетДисконтированияРезервовПредстоящихРасходов КАК УчетДисконтированияРезервовПредстоящихРасходов,
	|	ТаблицаСрезПоследних.СрокДляПримененияДисконтирования КАК СрокДляПримененияДисконтирования,
	|	ТаблицаСрезПоследних.ДетализироватьМатериальныеИПостатейныеЗатратыВСебестоимостиТоваров,
	|	ТаблицаСрезПоследних.ВосстанавливатьРезервПриСписанииЗапасовНаРасходы,
	|	ТаблицаСрезПоследних.ПорядокОценкиЗадолженности КАК ПорядокОценкиЗадолженности,
	|	ТаблицаСрезПоследних.СтатьяПроцентныхДоходовФинансовойАренды,
	|	ТаблицаСрезПоследних.АналитикаПроцентныхДоходовФинансовойАренды,
	|	ТаблицаСрезПоследних.СтатьяДоходовДляУслугФинансовойАренды,
	|	ТаблицаСрезПоследних.АналитикаДоходовДляУслугФинансовойАренды,
	|	ТаблицаСрезПоследних.ПроизводитПодакцизныйТовар,
	|	ТаблицаСрезПоследних.ИмпортируетПодакцизныйТовар,
	|	ТаблицаСрезПоследних.ДетализироватьОтклоненияПоНаправлениямДеятельности,
	|	ТаблицаСрезПоследних.ДетализироватьОтклоненияПоПодразделениям,
	|	ТаблицаСрезПоследних.ДетализироватьОтклоненияПоСкладам,
	|	ТаблицаСрезПоследних.СписыватьОтклоненияВСтоимостиПродукцииНаСебестоимостьПродаж
	|ИЗ
	|	ВтГоловныеОрганизации КАК ГоловныеОрганизации
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаФинансовогоУчета.СрезПоследних(&Период, Организация В
	|			(ВЫБРАТЬ
	|				ГоловныеОрганизации.Организация
	|			ИЗ
	|				ВтГоловныеОрганизации КАК ГоловныеОрганизации)) КАК ТаблицаСрезПоследних
	|		ПО ГоловныеОрганизации.Организация = ТаблицаСрезПоследних.Организация
	|";
	Возврат ТекстЗапроса
	
КонецФункции

// Формирует текстовое описание установленных параметров.
// 
// Параметры:
// 	Организация - СправочникСсылка.Организации - ссылка на организацию.
// 	ДатаДействия - Дата - период действия настроек.
// 	ДействующиеНастройки - Структура - действующие параметры учетной политики.
// 	Все - Булево - если Истина, то возвращает описание всех настроек.
// Возвращаемое значение:
// 	Строка - Описание действующих параметров строкой.
Функция ОписаниеДействующихПараметров(Организация, ДатаДействия = Неопределено, ДействующиеНастройки = Неопределено, Все = Ложь) Экспорт
	
	Если ДействующиеНастройки = Неопределено Тогда
		ДействующиеНастройки = НастройкиНалоговУчетныхПолитик.ДействующиеПараметрыНалоговУчетныхПолитикНаДату(
			"УчетнаяПолитикаФинансовогоУчета",
			Организация,
			ДатаДействия,
			Ложь);
	КонецЕсли;
	СтрокаШаблон = "%1: %2." + Символы.ПС;
	СтрокаШаблонБулево = "%1." + Символы.ПС;
	Если НЕ ЗначениеЗаполнено(ДействующиеНастройки) Тогда
		СтрокаОписанияНастроек = НСтр("ru='Не заданы параметры.'");
		Возврат СтрокаОписанияНастроек;
	КонецЕсли;
	
	СтрокаОписанияНастроек = СтрШаблон(СтрокаШаблон, 
		НСтр("ru='Начало финансового года'"),
		ПредставлениеНачалаФинансовогоГода(ДействующиеНастройки.МесяцНачалаФинансовогоГода));
	
	СтрокаОписанияНастроек = СтрокаОписанияНастроек 
		+ СтрШаблон(СтрокаШаблон, 
			НСтр("ru='Метод оценки стоимости товаров'"),
			ДействующиеНастройки.МетодОценкиСтоимостиТоваров);
	
	Если ДействующиеНастройки.УчетГотовойПродукцииПоПлановойСтоимости Тогда
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблонБулево,
				НСтр("ru='Готовая продукция учитывается по плановой стоимости'"));
	КонецЕсли;
	
	Если ДействующиеНастройки.МетодОценкиСтоимостиТоваров = Перечисления.МетодыОценкиСтоимостиТоваров.Среднескользящая Или Все Тогда
		Если ДействующиеНастройки.ДетализироватьОтклоненияПоНаправлениямДеятельности Или Все Тогда
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Отклонения в стоимости учитываются по направлениям деятельности'"));
		КонецЕсли;
		Если ДействующиеНастройки.ДетализироватьОтклоненияПоПодразделениям Или Все Тогда
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Отклонения в стоимости учитываются по подразделениям'"));
		КонецЕсли;
		Если ДействующиеНастройки.ДетализироватьОтклоненияПоСкладам Или Все Тогда
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Отклонения в стоимости учитываются по складам/местам хранения'"));
		КонецЕсли;
	КонецЕсли;
	
	//++ НЕ УТ
	
	Если ДействующиеНастройки.УчетГотовойПродукцииПоПлановойСтоимости Или Все Тогда
		Если ДействующиеНастройки.СписыватьОтклоненияВСтоимостиПродукцииНаСебестоимостьПродаж Или Все Тогда
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Отклонения в стоимости выпущенной продукции списываются на себестоимость продаж'"));
		Иначе
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Отклонения в стоимости выпущенной продукции включаются в стоимость (доводя стоимость до фактической)'"));
		КонецЕсли;
	КонецЕсли;
	
	Если ПолучитьФункциональнуюОпцию("ФормироватьРезервыПодОбесценениеЗапасов") Или Все Тогда
		Если ДействующиеНастройки.ВосстанавливатьРезервПриСписанииЗапасовНаРасходы Или Все Тогда
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='При списании запасов на расходы резервы восстанавливаются (уменьшают себестоимость продаж)'"));
		Иначе
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='При списании запасов на расходы сумма расходов уменьшается на сумму резерва'"));
		КонецЕсли;
	КонецЕсли;
	
	//-- НЕ УТ
	
	Если ДействующиеНастройки.ИспользоватьВыделениеДолгосрочныхАктивовОбязательств Или Все Тогда
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблонБулево,
				НСтр("ru='Используется выделение долгосрочных активов/обязательств'"));
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблон,
				НСтр("ru='Длительность операционного цикла в месяцах'"),
				ДействующиеНастройки.ДлительностьОперационногоЦикла);

	КонецЕсли;
	
	//++ НЕ УТ
	
	Если ПолучитьФункциональнуюОпцию("ИспользоватьВнеоборотныеАктивы2_4") Тогда
		
		РегламентированныйУчетВНА = ПолучитьФункциональнуюОпцию("РегламентированныйУчетВНА");
				
		Если РегламентированныйУчетВНА Или Все Тогда
			
			Если ДействующиеНастройки.ПорядокУчетаВНА = Перечисления.ПорядокУчетаВНА.ПоСтандартамМУ Тогда
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Учет ОС и НМА в управленческом учете ведется по стандартам международного учета'"));
			Иначе
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Учет ОС и НМА в управленческом учете ведется по ПБУ 6/01 и 14/2007'"));
			КонецЕсли;
			
		КонецЕсли;
		
		Если ДействующиеНастройки.ПорядокНачисленияАмортизацииОС = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца
			И ДействующиеНастройки.ПорядокНачисленияАмортизацииНМА = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца
			И ДействующиеНастройки.ПорядокНачисленияАмортизацииАренда = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Или Все Тогда
			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Амортизация ОС и НМА в управленческом учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
			
		ИначеЕсли ДействующиеНастройки.ПорядокНачисленияАмортизацииОС = Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету
			И ДействующиеНастройки.ПорядокНачисленияАмортизацииНМА = Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету
			И ДействующиеНастройки.ПорядокНачисленияАмортизацииАренда = Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету Тогда
			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Амортизация ОС и НМА в управленческом учете начисляется с даты принятия к учету'"));
					
		Иначе
			
			Если ДействующиеНастройки.ПорядокНачисленияАмортизацииОС = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Тогда
			
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Амортизация собственных ОС в управленческом учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
			Иначе
				
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Амортизация собственных ОС в управленческом учете начисляется с даты принятия к учету'"));
						
			КонецЕсли;
					
			Если ДействующиеНастройки.ПорядокНачисленияАмортизацииАренда = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Тогда
			
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Амортизация арендованных ОС в управленческом учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
			Иначе
				
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Амортизация арендованных ОС в управленческом учете начисляется с даты принятия к учету'"));
						
			КонецЕсли;
					
			Если ДействующиеНастройки.ПорядокНачисленияАмортизацииНМА = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Тогда
			
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Амортизация НМА в управленческом учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
			Иначе
				
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Амортизация НМА в управленческом учете начисляется с даты принятия к учету'"));
						
			КонецЕсли;
					
		КонецЕсли;
		
		Если НЕ РегламентированныйУчетВНА Или Все Тогда
			
			Если ДействующиеНастройки.ПорядокУчетаВНАРегл = Перечисления.ПорядокУчетаВНАРегл.Независимый Или Все Тогда
			
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Учет ОС и НМА в регламентированном учете ведется независимо от управленческого учета'"));
						
				Если ДействующиеНастройки.ПорядокНачисленияАмортизацииОСРегл = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца
					И ДействующиеНастройки.ПорядокНачисленияАмортизацииНМАРегл = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца
					И ДействующиеНастройки.ПорядокНачисленияАмортизацииАрендаРегл = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Или Все Тогда
					
					СтрокаОписанияНастроек = СтрокаОписанияНастроек
						+ СтрШаблон(СтрокаШаблонБулево,
							НСтр("ru='Амортизация ОС и НМА в регламентированном учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
					
				ИначеЕсли ДействующиеНастройки.ПорядокНачисленияАмортизацииОСРегл = Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету
					И ДействующиеНастройки.ПорядокНачисленияАмортизацииНМАРегл = Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету
					И ДействующиеНастройки.ПорядокНачисленияАмортизацииАрендаРегл = Перечисления.ПорядокНачисленияАмортизации.СДатыПринятияКУчету Тогда
					
					СтрокаОписанияНастроек = СтрокаОписанияНастроек
						+ СтрШаблон(СтрокаШаблонБулево,
							НСтр("ru='Амортизация ОС и НМА в регламентированном учете начисляется с даты принятия к учету'"));
							
				Иначе
					
					Если ДействующиеНастройки.ПорядокНачисленияАмортизацииОСРегл = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Тогда
					
						СтрокаОписанияНастроек = СтрокаОписанияНастроек
							+ СтрШаблон(СтрокаШаблонБулево,
								НСтр("ru='Амортизация собственных ОС в регламентированном учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
					Иначе
						
						СтрокаОписанияНастроек = СтрокаОписанияНастроек
							+ СтрШаблон(СтрокаШаблонБулево,
								НСтр("ru='Амортизация собственных ОС в регламентированном учете начисляется с даты принятия к учету'"));
								
					КонецЕсли;
							
					Если ДействующиеНастройки.ПорядокНачисленияАмортизацииАрендаРегл = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Тогда
					
						СтрокаОписанияНастроек = СтрокаОписанияНастроек
							+ СтрШаблон(СтрокаШаблонБулево,
								НСтр("ru='Амортизация арендованных ОС в регламентированном учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
					Иначе
						
						СтрокаОписанияНастроек = СтрокаОписанияНастроек
							+ СтрШаблон(СтрокаШаблонБулево,
								НСтр("ru='Амортизация арендованных ОС в регламентированном учете начисляется с даты принятия к учету'"));
								
					КонецЕсли;
							
					Если ДействующиеНастройки.ПорядокНачисленияАмортизацииНМАРегл = Перечисления.ПорядокНачисленияАмортизации.СоСледующегоМесяца Тогда
					
						СтрокаОписанияНастроек = СтрокаОписанияНастроек
							+ СтрШаблон(СтрокаШаблонБулево,
								НСтр("ru='Амортизация НМА в регламентированном учете начисляется с первого числа месяца, следующего за месяцем принятия к учету'"));
					Иначе
						
						СтрокаОписанияНастроек = СтрокаОписанияНастроек
							+ СтрШаблон(СтрокаШаблонБулево,
								НСтр("ru='Амортизация НМА в регламентированном учете начисляется с даты принятия к учету'"));
								
					КонецЕсли;
							
				КонецЕсли;
				
			Иначе
				
				СтрокаОписанияНастроек = СтрокаОписанияНастроек
					+ СтрШаблон(СтрокаШаблонБулево,
						НСтр("ru='Учет ОС и НМА в регламентированном учете совпадает с управленческим учетом'"));
						
			КонецЕсли;
			
		КонецЕсли;
		
		Если ПолучитьФункциональнуюОпцию("ИспользоватьОбесценениеВНА") Тогда
			Если ДействующиеНастройки.ВариантПроводокПоОбесценениюВНА
				= Перечисления.ВариантыПроводокПоОбесценениюВНА.ДоначислятьКорректировкуОбесценения Или Все Тогда
				СтрокаОписанияНастроек = СтрокаОписанияНастроек + СтрШаблон(СтрокаШаблонБулево, НСтр(
					"ru='Амортизация ОС и НМА с обесценением начисляется на стоимость с учетом обесценения. Корректировка обесценения доначисляется'"));
			Иначе
				СтрокаОписанияНастроек = СтрокаОписанияНастроек + СтрШаблон(СтрокаШаблонБулево, НСтр(
					"ru='Амортизация ОС и НМА с обесценением начисляется на полную стоимость. Корректировка обесценения сторнируется'"));
			КонецЕсли;
		КонецЕсли;
		
		Если ДействующиеНастройки.ПризнаватьРасходыПоИсследованиям Или Все Тогда
			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Расходы по исследованиям учитываются в текущем периоде'"));
			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблон,
					НСтр("ru='Статья расходов по исследованиям'"),
					ДействующиеНастройки.СтатьяРасходовПоИсследованиям);
			
	
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблон,
					НСтр("ru='Аналитика расходов по исследованиям'"),
					ДействующиеНастройки.АналитикаРасходовПоИсследованиям);
	
		КонецЕсли;
		
	КонецЕсли;
	
	//-- НЕ УТ
	
	Если ДействующиеНастройки.УчетДисконтированнойКредиторскойЗадолженностиПоставщикам 
		И ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Или Все Тогда
			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблонБулево,
					НСтр("ru='Ведется учет дисконтированной кредиторской задолженности поставщикам'"));
			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблон,
					НСтр("ru='Статья списания процентных расходов дисконтирования'"),
					ДействующиеНастройки.СтатьяСписанияПроцентныхРасходов);
			
 			
			СтрокаОписанияНастроек = СтрокаОписанияНастроек
				+ СтрШаблон(СтрокаШаблон,
					НСтр("ru='Аналитика списания процентных расходов дисконтирования'"),
					ДействующиеНастройки.АналитикаСписанияПроцентныхРасходов);
			
	КонецЕсли;
	
	Если ДействующиеНастройки.ФормироватьРезервыПоСомнительнымДолгам Или Все Тогда
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблонБулево,
				НСтр("ru='Формируются резервы по сомнительным долгам'"));
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблон,
				НСтр("ru='Периодичность резервов по сомнительным долгам'"),
				ДействующиеНастройки.ПериодичностьРезервовПоСомнительнымДолгам);
		
	КонецЕсли;
	//++ НЕ УТ
	
	Если ДействующиеНастройки.ПроизводитПодакцизныйТовар Или Все Тогда
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблонБулево,
				НСтр("ru='Производит подакцизный товар (начисление и отражение акциза при продаже)'"));
	КонецЕсли;
	
	//-- НЕ УТ
	
	Если ДействующиеНастройки.ИмпортируетПодакцизныйТовар Или Все Тогда
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблонБулево,
				НСтр("ru='Импортирует подакцизный товар (начисление и отражение акциза при импорте)'"));
			КонецЕсли;
			
	МассивДетализации = Новый Массив;
	Если ДействующиеНастройки.ДетализироватьОтклоненияПоНаправлениямДеятельности Или Все Тогда
		МассивДетализации.Добавить(НСтр("ru = 'по направлениям деятельности'"));
	КонецЕсли;
	Если ДействующиеНастройки.ДетализироватьОтклоненияПоПодразделениям Или Все Тогда
		МассивДетализации.Добавить(НСтр("ru = 'по подразделениям'"));
	КонецЕсли;
	Если ДействующиеНастройки.ДетализироватьОтклоненияПоСкладам Или Все Тогда
		МассивДетализации.Добавить(НСтр("ru = 'по складам'"));
	КонецЕсли;
	
	Если ДействующиеНастройки.МетодОценкиСтоимостиТоваров = Перечисления.МетодыОценкиСтоимостиТоваров.Среднескользящая
		И МассивДетализации.Количество() Или Все Тогда
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблон,
				НСтр("ru='Детализация отклонений'"),
				СтрСоединить(МассивДетализации, ", "));
		
	КонецЕсли;
	
	ОписаниеДействующихПараметровЛокализация(СтрокаОписанияНастроек, Организация, ДатаДействия, ДействующиеНастройки, Все);
	
	Возврат СтрокаОписанияНастроек
	
КонецФункции

// Возвращает актуальные значения порядка оценки задолженности по организации на дату.
// 
// Параметры:
// 	Организация - СправочникСсылка.Организации - ссылка на организацию.
// 	Период - Дата - период действия настроек.
// 
// Возвращаемое значение:
//  ТаблицаЗначений, Неопределено - таблица оценки задолженности.
Функция ПорядокОценкиЗадолженности(Организация, Период) Экспорт
	
	ДействующиеНастройки = НастройкиНалоговУчетныхПолитик.ДействующиеПараметрыНалоговУчетныхПолитикНаДату(
		"УчетнаяПолитикаФинансовогоУчета", Организация, Период, Истина);
	
	Если ДействующиеНастройки <> Неопределено
		И ДействующиеНастройки.ПорядокОценкиЗадолженности <> Неопределено Тогда
			ХранилищеПорядокОценкиЗадолженности = ДействующиеНастройки.ПорядокОценкиЗадолженности; //ХранилищеЗначения
		Возврат ХранилищеПорядокОценкиЗадолженности.Получить();
	Иначе
		Возврат Неопределено;
	КонецЕсли;
	
КонецФункции

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// Параметры:
//   Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
//
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)";

КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#Область СлужебныеПроцедурыИФункции

#Область Прочее

// Возвращает параметры выбора статей и аналитик.
// 
// Параметры:
//  ПризнаватьРасходыПоИсследованиям - Булево.
//  УчетДисконтированнойКредиторскойЗадолженностиПоставщикам - Булево.
//  УчетРезервовПредстоящихРасходов - Булево.
//  УчетФинАренды - Булево.
//  
// Возвращаемое значение:
//  Массив из см. ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики
//
Функция ПараметрыВыбораСтатейИАналитик(ПризнаватьРасходыПоИсследованиям, УчетДисконтированнойКредиторскойЗадолженностиПоставщикам,
		УчетРезервовПредстоящихРасходов, УчетФинАренды) Экспорт
	
	МассивПараметров = Новый Массив;
	
	#Область СтатьяРасходовПоИсследованиям
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "Запись";
	ПараметрыВыбора.Статья      = "СтатьяРасходовПоИсследованиям";
	
	ПараметрыВыбора.ДоступностьПоОперации = ПризнаватьРасходыПоИсследованиям = Истина;
	ПараметрыВыбора.СкрыватьСтатьюНедоступнуюПоОперации = Ложь;
	
	ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
	ПараметрыВыбора.АналитикаРасходов = "АналитикаРасходовПоИсследованиям";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяРасходовПоИсследованиям");
	ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаРасходовПоИсследованиям");
	
	МассивПараметров.Добавить(ПараметрыВыбора);
	#КонецОбласти
	
	#Область СтатьяСписанияПроцентныхРасходов
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "Запись";
	ПараметрыВыбора.Статья      = "СтатьяСписанияПроцентныхРасходов";
	
	ПараметрыВыбора.ДоступностьПоОперации = 
		УчетДисконтированнойКредиторскойЗадолженностиПоставщикам 
		И ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов");
	ПараметрыВыбора.СкрыватьСтатьюНедоступнуюПоОперации = Ложь;
	
	ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
	ПараметрыВыбора.АналитикаРасходов = "АналитикаСписанияПроцентныхРасходов";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("СтатьяСписанияПроцентныхРасходов");
	ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("АналитикаСписанияПроцентныхРасходов");
	
	МассивПараметров.Добавить(ПараметрыВыбора);
	#КонецОбласти 
	
	//++ НЕ УТ
	#Область СтатьяСписанияПроцентныхРасходовДисконтированияРезервов
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "Запись";
	ПараметрыВыбора.Статья      = "СтатьяСписанияПроцентныхРасходовДисконтированияРезервов";
	
	ПараметрыВыбора.ДоступностьПоОперации = УчетРезервовПредстоящихРасходов;
	ПараметрыВыбора.СкрыватьСтатьюНедоступнуюПоОперации = Ложь;
	
	ПараметрыВыбора.ВыборСтатьиРасходов = Истина;
	ПараметрыВыбора.АналитикаРасходов = "АналитикаСписанияПроцентныхРасходовДисконтированияРезервов";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ЗаписьСтатьяСписанияПроцентныхРасходовДисконтированияРезервов");
	ПараметрыВыбора.ЭлементыФормы.АналитикаРасходов.Добавить("ЗаписьАналитикаСписанияПроцентныхРасходовДисконтированияРезервов");
	
	МассивПараметров.Добавить(ПараметрыВыбора);
	#КонецОбласти
	
	#Область СтатьяПроцентныхДоходовФинансовойАренды
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "Запись";
	ПараметрыВыбора.Статья      = "СтатьяПроцентныхДоходовФинансовойАренды";
	
	ПараметрыВыбора.ДоступностьПоОперации = УчетФинАренды;
	ПараметрыВыбора.СкрыватьСтатьюНедоступнуюПоОперации = Ложь;
	
	ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
	ПараметрыВыбора.АналитикаДоходов = "АналитикаПроцентныхДоходовФинансовойАренды";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ЗаписьСтатьяПроцентныхДоходовФинансовойАренды");
	ПараметрыВыбора.ЭлементыФормы.АналитикаДоходов.Добавить("ЗаписьАналитикаПроцентныхДоходовФинансовойАренды");
	
	МассивПараметров.Добавить(ПараметрыВыбора);
	#КонецОбласти 
	
	#Область СтатьяДоходовДляУслугФинансовойАренды
	ПараметрыВыбора = ДоходыИРасходыСервер.ПараметрыВыбораСтатьиИАналитики();
	ПараметрыВыбора.ПутьКДанным = "Запись";
	ПараметрыВыбора.Статья      = "СтатьяДоходовДляУслугФинансовойАренды";
	
	ПараметрыВыбора.ДоступностьПоОперации = УчетФинАренды;
	ПараметрыВыбора.СкрыватьСтатьюНедоступнуюПоОперации = Ложь;
	
	ПараметрыВыбора.ВыборСтатьиДоходов = Истина;
	ПараметрыВыбора.АналитикаДоходов = "АналитикаДоходовДляУслугФинансовойАренды";
	
	ПараметрыВыбора.ЭлементыФормы.Статья.Добавить("ЗаписьСтатьяДоходовДляУслугФинансовойАренды");
	ПараметрыВыбора.ЭлементыФормы.АналитикаДоходов.Добавить("ЗаписьАналитикаДоходовДляУслугФинансовойАренды");
	
	МассивПараметров.Добавить(ПараметрыВыбора);
	#КонецОбласти 
	//-- НЕ УТ
	
	Возврат МассивПараметров;
	
КонецФункции

Процедура ОписаниеДействующихПараметровЛокализация(СтрокаОписанияНастроек, Организация, ДатаДействия, ДействующиеНастройки, Все = Ложь)
	
	//++ Локализация
	
	СтрокаШаблон = "%1: %2." + Символы.ПС;
	СтрокаШаблонБулево = "%1." + Символы.ПС;

	//++ НЕ УТ
	
	Если ДействующиеНастройки.УчетАрендыПоФСБУ25_2018 Или Все Тогда
		
		СтрокаОписанияНастроек = СтрокаОписанияНастроек
			+ СтрШаблон(СтрокаШаблонБулево,
				НСтр("ru='Учет аренды ведется по ФСБУ 25/2018'"));
	КонецЕсли;

	//-- НЕ УТ

	//-- Локализация
	
КонецПроцедуры

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

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

#КонецЕсли

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