Прочие расходы незавершенного производства / Модуль набора записей

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

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

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

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

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

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

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

#Область НеоперативнаяОчередьЗаданий

Процедура ПодготовитьДанныеДляРегистрацииЗаданийНеоперативнойОчереди()
	
	Если РасчетСебестоимостиПрикладныеАлгоритмы.ДвиженияЗаписываютсяРасчетомПартийИСебестоимости(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;
	
	Если Не НеоперативнаяОчередьЗаданий.ДоступноСозданиеЗаданийНеоперативнойОчереди(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;
	
	Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") 
		И ПолучитьФункциональнуюОпцию("ФормироватьУправленческийБаланс") Тогда
		
		Запрос = Новый Запрос;
		Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
		Запрос.Текст = "
		|ВЫБРАТЬ
		|	НачальныеЗаписи.Регистратор КАК Регистратор,
		|	НачальныеЗаписи.Период КАК Период,
		|	НачальныеЗаписи.Активность КАК Активность,
		|	НачальныеЗаписи.ВидДвижения КАК ВидДвижения,
		|	НачальныеЗаписи.Организация КАК Организация,
		|	НачальныеЗаписи.Подразделение КАК Подразделение,
		|	НачальныеЗаписи.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
		|	НачальныеЗаписи.ПартияПроизводства КАК ПартияПроизводства,
		|	НачальныеЗаписи.РасчетСебестоимости КАК РасчетСебестоимости,
		|	НачальныеЗаписи.РасчетПартий КАК РасчетПартий,
		|	НачальныеЗаписи.Сторно КАК Сторно,
		|	НачальныеЗаписи.Стоимость КАК Стоимость
		|ПОМЕСТИТЬ ВТ_ОчередьЗаданийНачальныеЗаписи
		|ИЗ
		|	РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства КАК НачальныеЗаписи
		|ГДЕ
		|	НачальныеЗаписи.Регистратор = &Регистратор";
		Запрос.УстановитьПараметр("Регистратор", Отбор.Регистратор.Значение);
		Запрос.Выполнить();
		
		ДополнительныеСвойства.Вставить("МенеджерВременныхТаблицОчередьЗаданий", Запрос.МенеджерВременныхТаблиц);
		
	КонецЕсли;
	
КонецПроцедуры

Процедура СоздатьЗаданияНеоперативнойОчередиПриЗаписи()
	
	Если РасчетСебестоимостиПрикладныеАлгоритмы.ДвиженияЗаписываютсяРасчетомПартийИСебестоимости(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;
	
	Если Не НеоперативнаяОчередьЗаданий.ДоступноСозданиеЗаданийНеоперативнойОчереди(ЭтотОбъект) Тогда
		Возврат;
	КонецЕсли;
	
	Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") 
		И ПолучитьФункциональнуюОпцию("ФормироватьУправленческийБаланс") Тогда
		
		Запрос = Новый Запрос;
		Запрос.МенеджерВременныхТаблиц = ДополнительныеСвойства.МенеджерВременныхТаблицОчередьЗаданий;
		Запрос.УстановитьПараметр("Регистратор", Отбор.Регистратор.Значение);
		Запрос.Текст = "
		|ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	Таблица.Регистратор КАК Документ,
		|	Таблица.Период КАК ПериодЗадания,
		|	Таблица.Организация КАК Организация,
		|	ЗНАЧЕНИЕ(Справочник.ВидыНеоперативныхЗаданий.ОтражениеДвиженийПоУправленческомуБалансу) КАК ВидЗадания
		|ИЗ
		|	(ВЫБРАТЬ
		|		НачальныеЗаписи.Регистратор КАК Регистратор,
		|		НачальныеЗаписи.Период КАК Период,
		|		НачальныеЗаписи.Активность КАК Активность,
		|		НачальныеЗаписи.ВидДвижения КАК ВидДвижения,
		|		НачальныеЗаписи.Организация КАК Организация,
		|		НачальныеЗаписи.Подразделение КАК Подразделение,
		|		НачальныеЗаписи.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
		|		НачальныеЗаписи.ПартияПроизводства КАК ПартияПроизводства,
		|		НачальныеЗаписи.РасчетСебестоимости КАК РасчетСебестоимости,
		|		НачальныеЗаписи.РасчетПартий КАК РасчетПартий,
		|		НачальныеЗаписи.Сторно КАК Сторно,
		|		НачальныеЗаписи.Стоимость КАК Стоимость
		|	ИЗ
		|		ВТ_ОчередьЗаданийНачальныеЗаписи КАК НачальныеЗаписи
		|
		|	ОБЪЕДИНИТЬ ВСЕ
		|
		|	ВЫБРАТЬ
		|		Записи.Регистратор КАК Регистратор,
		|		Записи.Период КАК Период,
		|		Записи.Активность КАК Активность,
		|		Записи.ВидДвижения КАК ВидДвижения,
		|		Записи.Организация КАК Организация,
		|		Записи.Подразделение КАК Подразделение,
		|		Записи.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
		|		Записи.ПартияПроизводства КАК ПартияПроизводства,
		|		Записи.РасчетСебестоимости КАК РасчетСебестоимости,
		|		Записи.РасчетПартий КАК РасчетПартий,
		|		Записи.Сторно КАК Сторно,
		|		-Записи.Стоимость КАК Стоимость
		|	ИЗ
		|		РегистрНакопления.ПрочиеРасходыНезавершенногоПроизводства КАК Записи
		|	ГДЕ
		|		Записи.Регистратор = &Регистратор) КАК Таблица
		|СГРУППИРОВАТЬ ПО
		|	Таблица.Регистратор,
		|	Таблица.Период,
		|	Таблица.Активность,
		|	Таблица.ВидДвижения,
		|	Таблица.Организация,
		|	Таблица.Подразделение,
		|	Таблица.ЗаказНаПроизводство,
		|	Таблица.ПартияПроизводства,
		|	Таблица.РасчетСебестоимости,
		|	Таблица.РасчетПартий,
		|	Таблица.Сторно
		|ИМЕЮЩИЕ
		|	СУММА(Таблица.Стоимость) <> 0
		|;
		|УНИЧТОЖИТЬ ВТ_ОчередьЗаданийНачальныеЗаписи";

		ДанныеКРегистрацииЗаданий = Запрос.Выполнить().Выгрузить();

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

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

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

#КонецЕсли

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