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

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

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

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

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

Процедура ПриКопировании(ОбъектКопирования)

	ПараметрыЗаполнения = Документы.ПоступлениеУслугПоАренде.ПараметрыЗаполненияНалогообложенияНДСЗакупки(ЭтотОбъект);
	УчетНДСУП.ЗаполнитьНалогообложениеНДСЗакупки(НалогообложениеНДС, ПараметрыЗаполнения);
	
	ПараметрыЗаполнения = Документы.ПоступлениеУслугПоАренде.ПараметрыЗаполненияВидаДеятельностиНДС(ЭтотОбъект);
	УчетНДСУП.ЗаполнитьВидДеятельностиНДС(ЗакупкаПодДеятельность, ПараметрыЗаполнения);
	
	СтруктураДействий = Новый Структура;
	КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
	СтруктураДействий.Вставить("СкорректироватьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(ЭтотОбъект));
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Начисления, СтруктураДействий, КэшированныеЗначения);
	
	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(ЭтотОбъект);
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(
		КэшированныеЗначения.ОбработанныеСтроки,
		СтруктураДействий,
		Начисления,
		КэшированныеЗначения);
	
	ИнициализироватьДокумент();
	
	ДатаВходящегоДокумента  = Дата(1,1,1);
	НомерВходящегоДокумента = "";
	
	ОбщегоНазначенияУТ.ОчиститьИдентификаторыДокумента(ЭтотОбъект, "Начисления");
	
	Автор = Пользователи.ТекущийПользователь();
	Ответственный = Пользователи.ТекущийПользователь();
	
КонецПроцедуры

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	Автор = Пользователи.ТекущийПользователь();
	Ответственный = Пользователи.ТекущийПользователь();
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);

	Если ТипДанныхЗаполнения = Тип("Структура") Тогда
		ЗаполнитьДокументПоОтбору(ДанныеЗаполнения, СтандартнаяОбработка);
	ИначеЕсли ТипДанныхЗаполнения = Тип("СправочникСсылка.ДоговорыАренды") Тогда
		ЗаполнитьНаОснованииДоговораАренды(ДанныеЗаполнения);
	КонецЕсли;

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

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

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

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

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

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

#Область Заполнение

Процедура ЗаполнитьДокументПоОтбору(ДанныеЗаполнения, СтандартнаяОбработка)
	
	Если ДанныеЗаполнения.Свойство("Договор") Тогда
		ЗаполнитьНаОснованииДоговораАренды(ДанныеЗаполнения.Договор);
	КонецЕсли; 
	
КонецПроцедуры

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

	Организация = РеквизитыДоговора.Организация;
	Партнер = РеквизитыДоговора.Партнер;
	Контрагент = РеквизитыДоговора.Контрагент;
	Договор = ДанныеЗаполнения;
	ВалютаВзаиморасчетов = РеквизитыДоговора.ВалютаВзаиморасчетов;
	Валюта = РеквизитыДоговора.ВалютаВзаиморасчетов;
	НалогообложениеНДС = РеквизитыДоговора.НалогообложениеНДС;
	
	ДокументЗаключенияДоговораАренды = Справочники.ДоговорыАренды.ДокументЗаключенияДоговораАренды(ДанныеЗаполнения);
	Если ЗначениеЗаполнено(ДокументЗаключенияДоговораАренды) Тогда 
		ЗакупкаПодДеятельность = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументЗаключенияДоговораАренды, "ЗакупкаПодДеятельность");
	КонецЕсли;
	
КонецПроцедуры

Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
	
	Если ТипЗнч(ДанныеЗаполнения) <> Тип("Структура") Или НЕ ДанныеЗаполнения.Свойство("Организация") Тогда
		Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
	КонецЕсли;

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

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

#Область Прочее

Процедура ПроверитьЗаполнениеТЧНачисления(Отказ)
	
	// Вспомогательные реквизиты для проверки учета НДС
	ПоФактИспользованию = (ЗакупкаПодДеятельность = Перечисления.ТипыНалогообложенияНДС.ПоФактическомуИспользованию);
	ИзДокумента = Перечисления.ВариантыРаздельногоУчетаНДС.ИзДокумента;
	НаНаправленияДеятельности = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности;
	НаПроизводственныеЗатраты = Перечисления.ВариантыРаспределенияРасходов.НаПроизводственныеЗатраты;
	ПартионныйУчетВключен = РасчетСебестоимостиПовтИсп.ПартионныйУчетВключен(НачалоМесяца(Дата));
	
	ДоступныеТипыНачислений = Справочники.ДоговорыАренды.ТипыПлатежейПоДоговору(Договор);
	
	Для ТекИндекс = 0 По Начисления.Количество()-1 Цикл
		
		ДанныеСтроки = Начисления[ТекИндекс];
		
		// Статья расходов не должна ссылаться на налогообложение в документе закупки,
		// если у организации включено налогообложение по факт. использованию.
		Если ПартионныйУчетВключен
			И ПоФактИспользованию
			И ЗначениеЗаполнено(ДанныеСтроки.СтатьяРасходов) Тогда
			
			Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
							ДанныеСтроки.СтатьяРасходов,
							"ВариантРаздельногоУчетаНДС, ВариантРаспределенияРасходовРегл");
			
			Если (Реквизиты.ВариантРаспределенияРасходовРегл = НаНаправленияДеятельности
					ИЛИ Реквизиты.ВариантРаспределенияРасходовРегл = НаПроизводственныеЗатраты)
				 И Реквизиты.ВариантРаздельногоУчетаНДС = ИзДокумента Тогда
				
				ТекстОшибки = НСтр("ru='При использовании учета НДС по фактическому использованию, у статьи расходов должен быть выбран раздельный учет НДС по расходам: ""НДС распределяется по видам налогообложения пропорционально выручке"" в строке %1 списка ""Начисления""'");
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
					СтрШаблон(ТекстОшибки, ДанныеСтроки.НомерСтроки),
					ЭтотОбъект,
					ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Начисления", ДанныеСтроки.НомерСтроки, "СтатьяРасходов"),,
					Отказ);
				
			КонецЕсли;
			
		КонецЕсли;
		
		Если ДоступныеТипыНачислений.Найти(ДанныеСтроки.ТипНачисления) = Неопределено Тогда
			
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru='Тип начисления ""%1"" не предусмотрен в рамках данного договора'"),
				ДанныеСтроки.ТипНачисления);
				
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				ТекстОшибки,
				ЭтотОбъект,
				ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Начисления", ДанныеСтроки.НомерСтроки, "ТипНачисления"),,
				Отказ);
				
		КонецЕсли;
		
		Если ДанныеСтроки.ТипНачисления = Перечисления.ТипыПлатежейПоАренде.ОбеспечительныйПлатеж 
			И НЕ ЗначениеЗаполнено(ДанныеСтроки.РасчетныйДокумент) Тогда
			
			ТекстОшибки = НСтр("ru='Не заполнено поле ""Расчетный документ"" в строке %1 списка ""Начисления""'");
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				СтрШаблон(ТекстОшибки, ДанныеСтроки.НомерСтроки),
				ЭтотОбъект,
				ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Начисления", ДанныеСтроки.НомерСтроки, "РасчетныйДокумент"),,
				Отказ);
			
		КонецЕсли;
	КонецЦикла;

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

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

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

	ВспомогательныеРеквизиты = ВспомогательныеРеквизиты();

	СуммаДокумента = ЦенообразованиеКлиентСервер.ПолучитьСуммуДокумента(Начисления, ЦенаВключаетНДС);

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

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

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

Функция ВспомогательныеРеквизиты()

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

	Возврат ВспомогательныеРеквизиты;
	
КонецФункции
 
#КонецОбласти

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

#КонецЕсли

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