1. sergqwert15 2 29.06.20 22:05 Сейчас в теме

Как указать субконто 2 по счету 425 в документе "Принятие к учету ОС"

Как указать субконто 2 по счету 425 в документе "Принятие к учету ОС" с видом операции Безвозмездно полученные(при формировании проводок). Конфигурация УПП.

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

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

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

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

				Если Проводка.СчетКт.НалоговыйУчет Тогда 
					Проводка.НалоговоеНазначениеКт   = НалоговоеНазначение;
					Проводка.СуммаНУКт   = НалоговыйУчет.ОпределитьСтоимостьНУ(Проводка.НалоговоеНазначениеКт, ТекСтоимостьНУ);
				КонецЕсли;
				
			КонецЦикла;
			Операция.Записать();
			// Начало +++
			Если НКС_ПризнакДополнительнойПроводки Тогда
				Проводка = Операция.Добавить();
				Проводка.Период       = Дата;
				Проводка.Организация  = СтруктураШапкиДокумента.Организация;
				Проводка.НомерЖурнала = "ОС";
				Проводка.Содержание   = "Принятие к учету ОС дополнительная проводка";
				Проводка.Сумма        = СтруктураШапкиДокумента.НКС_СтоимостьОтнесенная;
				
				Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ДругойДополнительныйКапитал;
				Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ДоходыБудущихПериодов;
				
				НКС_УчетнаяПолитикаОрганизаций= РегистрыСведений.НКС_УчетнаяПолитикаОрганизаций.ПолучитьПоследнее(ДатаДока, Новый Структура("Организация", СтруктураШапкиДокумента.Организация));
				Если ЗначениеЗаполнено(НКС_УчетнаяПолитикаОрганизаций.ПринятиеКУчетуОС_ДопПроводка_СчетДт) Тогда 
					Проводка.СчетДт = НКС_УчетнаяПолитикаОрганизаций.ПринятиеКУчетуОС_ДопПроводка_СчетДт;
				КонецЕсли;
				Если ЗначениеЗаполнено(НКС_УчетнаяПолитикаОрганизаций.ПринятиеКУчетуОС_ДопПроводка_СчетКт) Тогда 
					Проводка.СчетДт = НКС_УчетнаяПолитикаОрганизаций.ПринятиеКУчетуОС_ДопПроводка_СчетКт;
				КонецЕсли;
				
				БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"ОсновныеСредства", ТекОС);			
				
			КонецЕсли;

			// Конец ----
			
			СтоимостьОС                 = Движения.СтоимостьОСБухгалтерскийУчет;
			ТаблицаДвиженийСтоимость    = СтоимостьОС.Выгрузить();
			Для Каждого Строка Из ОсновныеСредства Цикл
				ТекОС = Строка.ОсновноеСредство;
				// Движения по регистру СтоимостьОС
				Движение = ТаблицаДвиженийСтоимость.Добавить();
				Движение.Организация      = ТекОрганизация;
				Движение.ОсновноеСредство = ТекОС;
				Движение.Амортизация      = 0;
				Движение.Стоимость        = Строка.СтоимостьБУ;
				Движение.СтоимостьНУ      = Строка.СтоимостьБУ;
				Движение.ВидОперации      = Перечисления.ВидыСобытийОС.ПринятиеКУчету;
			КонецЦикла;
			СтоимостьОС.мПериод = ДатаДока;
			СтоимостьОС.мТаблицаДвижений = ТаблицаДвиженийСтоимость;
			Движения.СтоимостьОСБухгалтерскийУчет.ВыполнитьПриход();
		КонецЕсли;
КонецПроцедуры.
Показать
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант-аналитик 1С
Санкт-Петербург
зарплата от 70 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Разработчик 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день