Ввод начальных остатков / Форма НДС предъявленный / Модуль формы

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

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	// Обработчик механизма "ДатыЗапретаИзменения"
	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
	
КонецПроцедуры

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

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ОтражатьВОперативномУчетеПриИзменении(Элемент)
	 УстановитьВидимость();
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВБУиНУПриИзменении(Элемент)
	 УстановитьВидимость();
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВУУПриИзменении(Элемент)
	 УстановитьВидимость();
КонецПроцедуры

&НаКлиенте
Процедура ВидДеятельностиНДСПриИзменении(Элемент)
	
	УстановитьВидимость();
	
КонецПроцедуры

&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

#Область ОбработчикиТаблицФормы

&НаКлиенте
Процедура НДСПредъявленныйСтавкаНДСПриИзменении(Элемент)
	
	РассчитатьСуммуБезНДС();
	
КонецПроцедуры

&НаКлиенте
Процедура НДСПредъявленныйНДСПриИзменении(Элемент)
	
	ТекущаяСтрока  = Элементы.НДСПредъявленный.ТекущиеДанные;
	
	Если ВалютыУпрИРеглУчетаСовпадают Тогда
		ТекущаяСтрока.НДСУпр = ТекущаяСтрока.НДС;
	КонецЕсли;
	
	РассчитатьСуммуБезНДС();
	
КонецПроцедуры

&НаКлиенте
Процедура НДСПредъявленныйСтавкаНДСОчистка(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
КонецПроцедуры

&НаКлиенте
Процедура НДСПредъявленныйПартнерПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.НДСПредъявленный.ТекущиеДанные;
	ПартнерПриИзмененииСервер(ТекущиеДанные.Партнер, ТекущиеДанные.Контрагент);
	
КонецПроцедуры

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

#Область ОбработчикиКомандФормы

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры


&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
	ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры


&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура РассчитатьСуммуБезНДС()
	
	ТекущаяСтрока = Элементы.НДСПредъявленный.ТекущиеДанные;
	
	ТекПроцентНДС = УчетНДСУПКлиентСервер.ЗначениеСтавкиНДС(ТекущаяСтрока.СтавкаНДС);
	Если ТекПроцентНДС <> 0 Тогда
		ТекущаяСтрока.СуммаБезНДС = ТекущаяСтрока.НДС * 100 / ТекПроцентНДС;
	КонецЕсли;
	
КонецПроцедуры

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

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

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