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