Правила распределения расходов / Модуль объекта

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

#Область ОбработчикиСобытий

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);

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

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

	// Настройка счетов учета.
	НастройкаСчетовУчетаСервер.ПередЗаписью(ЭтотОбъект,
		Справочники.ПравилаРаспределенияРасходов.ПараметрыНастройкиСчетовУчета());
	//-- НЕ УТ
	
КонецПроцедуры

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

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

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

#КонецЕсли

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