Загрузка данных



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