Расчет себестоимости товаров / Модуль объекта

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

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

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

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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

	МассивНепроверяемыхРеквизитов = Новый Массив;

	Если Организации.Количество() = 0 И НЕ ЗначениеЗаполнено(Организация) Тогда

		ТекстОшибки = НСтр("ru = 'Не указана организация для расчета себестоимости'");
		
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
			ТекстОшибки,
			ЭтотОбъект,
			"Организации",
			, // ПутьКДанным 
			Отказ);

		Возврат;

	КонецЕсли;

	Если ПредварительныйРасчет Тогда
		МассивНепроверяемыхРеквизитов.Добавить("МетодОценки");
	КонецЕсли;

	ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(
		ПроверяемыеРеквизиты,
		МассивНепроверяемыхРеквизитов);

	РасчетСебестоимостиТоваровЛокализация.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);

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

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

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

Процедура ПриКопировании(ОбъектКопирования)
	
	ОбщегоНазначенияУТ.ОчиститьИдентификаторыДокумента(ЭтотОбъект);
	
КонецПроцедуры

Процедура ПриЗаписи(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
	
	РасчетСебестоимостиТоваровЛокализация.ПриЗаписи(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
	
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
	
	РасчетСебестоимостиТоваровЛокализация.ОбработкаУдаленияПроведения(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

#КонецЕсли

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