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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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