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