Журнал документов НДС / Список документов / Модуль формы

файл

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

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

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

	//++ НЕ УТ
	ПроверкаДокументовСервер.ДоработатьЗапросДинамическогоСпискаЖурналаДокументов(СвойстваСписка.ТекстЗапроса, "РеестрДокументов");
	//-- НЕ УТ
	
	// Конец ПроверкаДокументовВРеглУчете
	
	ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокДокументыНДС, СвойстваСписка);
	
	//++ НЕ УТ
	
	//++ Устарело_Переработка24
	ИспользуетсяТолькоПередачаВПереработку2_4 = ПолучитьФункциональнуюОпцию("ИспользуетсяТолькоПередачаВПереработку2_4");
	//-- Устарело_Переработка24
	
	//-- НЕ УТ

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтаФорма, "СканерШтрихкода");
	
	ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
	
	// ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
	// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами
	
	// НастройкиДинамическихСписков
	УстановитьПараметрыОбновленияСписковДокументов(Ложь, 0);
	// Конец НастройкиДинамическихСписков
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если Не ЗавершениеРаботы Тогда
		СохранитьНастройки();
	КонецЕсли;
	
	МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура КлючНастроекПриИзменении(Элемент)
	
	НастроитьФормуПоКлючу();	
	ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
		
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	УстановитьОтборПоОрганизации();
	
	Элементы.СписокДокументыНДСОрганизация.Видимость = Не ЗначениеЗаполнено(Организация);
	
	ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
	
КонецПроцедуры

&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	
	КонтрагентПриИзмененииСервер();
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ОтборТаможенныхДекларацийПриИзменении(Элемент)
	
	УстановитьОтборыДинамическихСписков();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура СписокДокументыНДСПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
	
	Отказ = Истина;
	Если Элементы.ГруппаСоздатьГенерируемая.ПодчиненныеЭлементы.Количество() <> 0 Тогда 
		Если Копирование Тогда
			ТекущиеДанные = Элементы.СписокДокументыНДС.ТекущиеДанные;
			Если ТекущиеДанные = Неопределено Тогда
				Возврат;
			КонецЕсли;
			ОбщегоНазначенияУТКлиент.СкопироватьЭлемент(Элемент);
		ИначеЕсли ОтборТипыДокументов.Количество() = 1 И ОтборХозяйственныеОперации.Количество() = 1 Тогда 
			СтруктураКоманды = Новый Структура("Имя", Элементы.ГруппаСоздатьГенерируемая.ПодчиненныеЭлементы[0].Имя);
			Подключаемый_СоздатьДокумент(СтруктураКоманды);
		Иначе
			Подключаемый_СоздатьДокументЧерезФормуВыбора(Неопределено);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

&НаСервереБезКонтекста
Процедура СписокДокументыНДСПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
	
	// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
	УчетОригиналовПервичныхДокументов.ПриПолученииДанныхНаСервере(Строки);
	// Конец СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов

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

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

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

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

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

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

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

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

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

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

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

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

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

// ЭлектронноеВзаимодействие.ОбменСКонтрагентами

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

&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
	
	ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
	
КонецПроцедуры

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

// Конец ЭлектронноеВзаимодействие.ОбменСКонтрагентами

#Область КнопкаСоздать

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

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

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

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

&НаКлиенте
Процедура УстановитьИнтервалЗавершение(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
	
	Если ВыбранноеЗначение = Неопределено Тогда
		Возврат;
	КонецЕсли;
	Период = ВыбранноеЗначение;
	УстановитьОтборПоПериоду();
	
КонецПроцедуры

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

// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
&НаКлиенте
Процедура Подключаемый_ОбновитьКомандыСостоянияОригинала()
	
	ОбновитьКомандыСостоянияОригинала()
   
КонецПроцедуры

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

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

&НаКлиенте
Процедура СписокДокументовОбновить(Команда)
	
	// НастройкиДинамическихСписков
	ОбновитьДанныеСпискаДокументовСЗамеромВремени("СписокДокументыНДС");
	// Конец НастройкиДинамическихСписков

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

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

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

#Область ШтрихкодыИТорговоеОборудование

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

&НаКлиенте
Процедура ОбработатьШтрихкоды(Данные)
	
	Состояние(НСтр("ru = 'Выполняется поиск документа по штрихкоду...'"));
	ДанныеПоШтрихКоду = ДанныеПоШтрихКодуПечатнойФормы(Данные.Штрихкод, "СписокДокументыНДС");
	ОбщегоНазначенияУТКлиент.ОбработатьШтрихкоды(Данные.Штрихкод, ДанныеПоШтрихКоду, ЭтаФорма, "СписокДокументыНДС");
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция КлючНазначенияФормыПоУмолчанию()
	
	Возврат "ДокументыНДС";
	
КонецФункции

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

&НаСервере
Процедура СохранитьНастройки()
	
	ИменаСохраняемыхРеквизитов =
		"ОтборХозяйственныеОперации,
		|ОтборТипыДокументов,
		|Период,
		|Организация,
		|Контрагент,
		|СписокДокументовРежимАвтообновления";
	
	Настройки = Новый Структура(ИменаСохраняемыхРеквизитов);
	ЗаполнитьЗначенияСвойств(Настройки, ЭтаФорма);
	
	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Обработка.ЖурналДокументовНДС.Форма.СписокДокументов", КлючНазначенияИспользования, Настройки);
	
КонецПроцедуры

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

	#КонецОбласти
	
	#Область СчетФактураВыданный
	
	СтрокаСчетФактураВыданный			= ТЗХозОперацииИТипыДокументов.Добавить();
	Строка								= СтрокаСчетФактураВыданный;
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
	Строка.КлючНазначенияИспользования	= "ДокументыИсходящие";
	Строка.ЗаголовокРабочегоМеста		= НСтр("ru = 'Счета-фактуры выданные'");
	Строка.ТипДокумента					= Тип("ДокументСсылка.СчетФактураВыданный");
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.СчетФактураВыданный.ПолноеИмя();
	Строка.ИспользуютсяСтатусы			= Ложь;
	Строка.ДобавитьКнопкуСоздать		= Истина;
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.СчетФактураВыданный";
	Строка.ИменаЭлементовРабочегоМеста = "УстановитьРуководителя,УстановитьГлавногоБухгалтера,УстановитьПодразделение,УстановитьОтветственного";
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ВозвратТоваровПоставщику;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ВозвратТоваровМеждуОрганизациями;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияТоваровВДругуюОрганизацию;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОтчетКомиссионера;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациями;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОтчетКомитенту;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	//++ НЕ УТ
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	//-- НЕ УТ
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ПрочееНачислениеНДС;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ИсправлениеПрочегоНачисленияНДС;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ВосстановлениеНДС;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Если ИспользоватьОтгрузкуБезПереходаПраваСобственности2_5 Тогда
		
		Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
		ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураВыданный);
		Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
		Строка.ДобавитьКнопкуСоздать		= Ложь;
		
	КонецЕсли;
	
	#КонецОбласти
	
	#Область СводнаяСправка
	
	СтрокаСводнаяСправка				= ТЗХозОперацииИТипыДокументов.Добавить();
	Строка								= СтрокаСводнаяСправка;
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияВРозницу;
	Строка.КлючНазначенияИспользования	= "ДокументыИсходящие";
	Строка.ЗаголовокРабочегоМеста		= НСтр("ru = 'Сводные справки'");
	Строка.ТипДокумента					= Тип("ДокументСсылка.СводнаяСправкаНДС");
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.СводнаяСправкаНДС.ПолноеИмя();
	Строка.ИспользуютсяСтатусы			= Ложь;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	Строка.ИменаЭлементовРабочегоМеста = "УстановитьРуководителя,УстановитьГлавногоБухгалтера";
	
	#КонецОбласти
	
	#Область СчетФактураПолученный
	
	СтрокаСчетФактураПолученный = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка = СтрокаСчетФактураПолученный;
	Строка.КлючНазначенияИспользования 	= "ДокументыВходящие";
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	Строка.ТипДокумента 				= Тип("ДокументСсылка.СчетФактураПолученный");
	Строка.ПолноеИмяДокумента			= "Документ.СчетФактураПолученный";
	Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Счета-фактуры полученные'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.СчетФактураПолученный";
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаЧерезПодотчетноеЛицо;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ВозвратНедопоставленногоТовара;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ВозвратТоваровМеждуОрганизациями;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.НачислениеПоДоговоруАренды;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ОтчетКомиссионера;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ОтчетПоКомиссииМеждуОрганизациями;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	//++ Устарело_Переработка24
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ПроизводствоУПереработчика;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	//-- Устарело_Переработка24
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ПроизводствоУПереработчика2_5;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаУДругойОрганизации;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаТоварыВПути;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаФактуровкаПоставки;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаСчетФактураПолученный);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ВыкупАрендованныхОС;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	#КонецОбласти
	
	#Область СчетФактураПолученныйАванс
	
	СтрокаСчетФактураПолученныйАванс = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка								= СтрокаСчетФактураПолученныйАванс;
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОплатаПоставщику;
	Строка.КлючНазначенияИспользования	= "ДокументыВходящие";
	Строка.ЗаголовокРабочегоМеста		= НСтр("ru = 'Счета-фактуры полученные (аванс)'");
	Строка.ПравоДоступаДобавление		= Ложь;
	Строка.ТипДокумента					= Тип("ДокументСсылка.СчетФактураПолученныйАванс");
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.СчетФактураПолученныйАванс.ПолноеИмя();
	Строка.ИспользуютсяСтатусы			= Ложь;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.СчетФактураПолученныйАванс";
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураПолученныйАванс);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОплатаДенежныхСредствВДругуюОрганизацию;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураПолученныйАванс);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.КорректировкаЗадолженности;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураПолученныйАванс);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОплатаПоставщикуПодотчетнымЛицом;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка								= ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаСчетФактураПолученныйАванс);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОплатаАрендодателю;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	#КонецОбласти
	
	#Область ТаможеннаяДекларацияИмпорт
	
	СтрокаТаможенныеДекларацииИмпорт = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка = СтрокаТаможенныеДекларацииИмпорт;
	Строка.КлючНазначенияИспользования 	= "ДокументыВходящие";
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпорту;
	Строка.ДобавитьКнопкуСоздать		= ПолучитьФункциональнуюОпцию("НеБазоваяВерсия");
	Строка.ТипДокумента 				= Тип("ДокументСсылка.ТаможеннаяДекларацияИмпорт");
	Строка.ПолноеИмяДокумента			= "Документ.ТаможеннаяДекларацияИмпорт";
	Строка.ИспользуютсяСтатусы          = Истина;
	Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Таможенные декларации (импорт)'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ТаможеннаяДекларацияИмпорт";
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаТаможенныеДекларацииИмпорт);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаПоИмпортуТоварыВПути;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	#КонецОбласти
	
	//++ НЕ УТ
	#Область ТаможеннаяДекларацияЭкспорт
	
	СтрокаТаможеннаяДекларацияЭкспорт = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка								= СтрокаТаможеннаяДекларацияЭкспорт;
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ОформлениеТаможеннойДекларацииЭкспорт;
	Строка.КлючНазначенияИспользования	= "ДокументыИсходящие";
	Строка.ЗаголовокРабочегоМеста		= НСтр("ru = 'Таможенные декларации на экспорт'");
	Строка.ПравоДоступаДобавление		= Истина;
	Строка.ТипДокумента					= Тип("ДокументСсылка.ТаможеннаяДекларацияЭкспорт");
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.ТаможеннаяДекларацияЭкспорт.ПолноеИмя();
	Строка.ИспользуютсяСтатусы			= Ложь;
	Строка.ДобавитьКнопкуСоздать		= Истина;
	Строка.ИменаЭлементовРабочегоМеста = "ОтборТаможенныхДеклараций";
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ТаможеннаяДекларацияЭкспорт";
	
	#КонецОбласти
	
	#Область ЗаявлениеОВвозеТоваровПолученное
	
	СтрокаЗаявлениеОВвозеТоваровПолученное = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка = СтрокаЗаявлениеОВвозеТоваровПолученное;
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
	Строка.ДобавитьКнопкуСоздать		= Истина;
	Строка.ТипДокумента					= Тип("ДокументСсылка.ЗаявлениеОВвозеТоваровПолученное");
	Строка.ПолноеИмяДокумента			= "Документ.ЗаявлениеОВвозеТоваровПолученное";
	Строка.КлючНазначенияИспользования	= "ДокументыВходящие";
	Строка.ЗаголовокРабочегоМеста = 
		НСтр("ru = 'Регистрация заявлений о ввозе товаров от покупателей из ЕАЭС для подтверждения ставки 0%'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ЗаявлениеОВвозеТоваровПолученное";
	Строка.ИспользуютсяСтатусы			= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаЗаявлениеОВвозеТоваровПолученное);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, СтрокаЗаявлениеОВвозеТоваровПолученное);
	Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.РеализацияВнеоборотныхАктивов;
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	
	
	#КонецОбласти
	
	//-- НЕ УТ
	#Область ЗаявлениеОВвозеТоваров
	
	СтрокаЗаявлениеОВвозеТоваров = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка = СтрокаЗаявлениеОВвозеТоваров;
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭС;
	Строка.ДобавитьКнопкуСоздать		= ПолучитьФункциональнуюОпцию("НеБазоваяВерсия");
	Строка.ТипДокумента 				= Тип("ДокументСсылка.ЗаявлениеОВвозеТоваров");
	Строка.ПолноеИмяДокумента			= "Документ.ЗаявлениеОВвозеТоваров";
	Строка.КлючНазначенияИспользования 	= "ДокументыИсходящие";
	Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Заявления о ввозе товаров из ЕАЭС'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ЗаявлениеОВвозеТоваров";
	Строка.ИспользуютсяСтатусы			= Ложь;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаЗаявлениеОВвозеТоваров);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСТоварыВПути;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка,СтрокаЗаявлениеОВвозеТоваров);
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ЗакупкаВСтранахЕАЭСФактуровкаПоставки;
	
	#КонецОбласти
	
	Возврат ТЗХозОперацииИТипыДокументов;
	
КонецФункции

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

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


&НаКлиенте
Процедура ОчиститьДокументПриобретения(Команда)

	ОчиститьСообщения();
	
	ВыделенныеСтроки = ОбщегоНазначенияУТКлиент.ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.СписокДокументыНДС);
	Если ВыделенныеСтроки.Количество() = 0 Тогда
		Возврат;
	ИначеЕсли ВыделенныеСтроки.Количество() > 1 Тогда
		ТекстПредупреждения = НСтр("ru = 'Команда не может быть выполнена одновременно для нескольких строк.'");
		ПоказатьПредупреждение(Неопределено, ТекстПредупреждения);
		Возврат;
	КонецЕсли;

	ТекущиеДанные = Элементы.СписокДокументыНДС.ТекущиеДанные;
	УчетНДСРФВызовСервера.ОчиститьДокументПриобретенияВСчетеФактуреПолученномНалоговогоАгента(ТекущиеДанные.Ссылка);

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


&НаСервере
Процедура РассчитатьНеобходимостьОтображенияКолонок()
	
	НакладныеСоСтатусами = ХозяйственныеОперацииИДокументы.НайтиСтроки(Новый Структура("Отбор, ИспользуютсяСтатусы", Истина, Истина));
	
	ЕстьДокументыИспользующиеСтатус = НакладныеСоСтатусами.Количество() <> 0;
	
КонецПроцедуры

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

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

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

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

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

&НаСервере
Функция ПоместитьВоВременноеХранилищеХозяйственныеОперацииИДокументы()
	Возврат ПоместитьВоВременноеХранилище(ХозяйственныеОперацииИДокументы.Выгрузить(), УникальныйИдентификатор);
КонецФункции

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

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

#Область Отборы

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

&НаСервере
Процедура УстановитьОтборПоОрганизации()

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

&НаСервере
Процедура УстановитьОтборПоПериоду()
	
	СписокДокументыНДС.Параметры.УстановитьЗначениеПараметра("НачалоПериода",
		Период.ДатаНачала);
	СписокДокументыНДС.Параметры.УстановитьЗначениеПараметра("КонецПериода", 
		?(ЗначениеЗаполнено(Период.ДатаОкончания), Период.ДатаОкончания, КонецДня(Дата(3999, 12, 31))));
	
	// НастройкиДинамическихСписков
	РаботаСЖурналамиДокументов.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "СписокДокументыНДС");
	// Конец НастройкиДинамическихСписков
	
КонецПроцедуры

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

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

#Область ГиперссылкаКОформлению

&НаСервере
Функция ОбновитьГиперссылкуКОформлению()
	
	ТекстИдетОбновлениеДанных = НСтр("ru = 'К оформлению: <идет обновление данных>'");
	Элементы.КОформлению.Заголовок = Новый ФорматированнаяСтрока(ТекстИдетОбновлениеДанных);
	
	ПараметрыФормирования = Новый Структура;
	ПараметрыФормирования.Вставить("Контрагент", Контрагент);
	ПараметрыФормирования.Вставить("Организация", Организация);
	ПараметрыФормирования.Вставить("ЭтоРасчетГиперссылки", Истина);
	ПараметрыФормирования.Вставить("ТолькоОформлениеДокументов", Истина);
	ТекущаяДата = ТекущаяДатаСеанса();
	ПараметрыФормирования.Вставить("НачалоПериода", ?(ЗначениеЗаполнено(Период.ДатаНачала), Период.ДатаНачала, НачалоКвартала(ТекущаяДата)));
	ПараметрыФормирования.Вставить("КонецПериода", ?(ЗначениеЗаполнено(Период.ДатаОкончания), Период.ДатаОкончания, КонецКвартала(ТекущаяДата)));
	ПараметрыФормирования.Вставить("КраткоеПредставление", Истина);
	
	ПараметрыЗадания = Новый Массив;
	ПараметрыЗадания.Добавить(ХозяйственныеОперацииИДокументы.Выгрузить());
	ПараметрыЗадания.Добавить(ПараметрыФормирования);

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

КонецФункции

&НаСервереБезКонтекста
Функция ОбновитьГиперссылкуКОформлениюЗавершение(АдресХранилища)
	
	КОформлению = ПолучитьИзВременногоХранилища(АдресХранилища);
	
	Если Не ЗначениеЗаполнено(КОформлению) Тогда
		ТекстИдетОбновлениеДанных = НСтр("ru = 'К оформлению: нет'");
		КОформлению = Новый ФорматированнаяСтрока(ТекстИдетОбновлениеДанных);
	КонецЕсли;
	
	Возврат КОформлению;
	
КонецФункции

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

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

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

#Область НастройкиДинамическихСписков

&НаСервере
Процедура ИнициироватьНастройкиДинамическихСписков()
	
	ПараметрыСписковДокументов = Новый Массив;
	
	СтруктураПараметровСписка = РаботаСЖурналамиДокументов.СтруктураФормированияНаФормеГруппыПользовательскихНастроекДинамическогоСписка();
	СтруктураПараметровСписка.ИмяСписка = "СписокДокументыНДС";
	СтруктураПараметровСписка.ГруппаРазмещенияНастройки = Элементы.ГруппаНастройкиСпискаДокументов;
	СтруктураПараметровСписка.ИмяРеквизитаРежимАвтообновления = "СписокДокументовРежимАвтообновления";
	СтруктураПараметровСписка.ИмяКомандыОбновленияСписка = Команды.СписокДокументовОбновить.Имя;
	ПараметрыСписковДокументов.Добавить(СтруктураПараметровСписка);
	
	РаботаСЖурналамиДокументов.ИнициироватьНастройкиДинамическихСписков(ЭтотОбъект, ПараметрыСписковДокументов);

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

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

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

&НаСервере
Функция ПолучитьИсполняемыеНастройкиКомпоновкиДанных(ИмяСписка)
	
	ИмяЭлемента = РаботаСЖурналамиДокументов.ЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
		"ИмяЭлементаСписка");
	ЭлементФормыСписок = Элементы[ИмяЭлемента];
	НастройкиКомпоновкиДанных = ЭлементФормыСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

	СтруктураВозврата = Новый Структура;
	СтруктураВозврата.Вставить("НастройкиКомпоновкиДанных", НастройкиКомпоновкиДанных);

	СписокПолейСоставногоТипа = РаботаСЖурналамиДокументов.ЗначениеНастройкиСпискаДокументов(ЭтотОбъект,
		ИмяСписка, "СписокПолейСоставногоТипа");

	СтруктураПользовательскихНастроек = РаботаСЖурналамиДокументов.ПроверитьПользовательскиеНастройкиДинамическогоСписка(
		НастройкиКомпоновкиДанных, СписокПолейСоставногоТипа);

	СтруктураВозврата.Вставить("СтруктураПользовательскихНастроек", СтруктураПользовательскихНастроек);
	
	Возврат СтруктураВозврата;
	
КонецФункции

&НаКлиенте
Процедура УстановитьПараметрыОбновленияСписковДокументов(ДанныеУстарели, ДлительностьОбновления = Неопределено)
	
	ИмяНастройки = "СписокДокументовКэшНастроек";
	ИмяСписка = "";
	Для Каждого НастройкаСписокДокументов Из ЭтотОбъект[ИмяНастройки] Цикл
		ИмяСписка = НастройкаСписокДокументов.Ключ;
		РаботаСЖурналамиДокументовКлиент.УстановитьПараметрыОбновленияСпискаДокументов(ЭтотОбъект, ИмяСписка, ДанныеУстарели,
			ДлительностьОбновления);
		ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка);
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьДанныеСпискаДокументовСЗамеромВремени(ИмяСписка, УчитыватьПараметрАвтообновления = Ложь)

	Если Не УчитыватьПараметрАвтообновления Тогда

		ТребуетсяОбновлениеСписка = Истина;

	Иначе

		ТребуетсяОбновлениеСписка = РаботаСЖурналамиДокументовКлиент.ЗначениеНастройкиАвтообновленияСпискаДокументов(
			ЭтотОбъект, ИмяСписка);

		Если Не ТребуетсяОбновлениеСписка Тогда
			РаботаСЖурналамиДокументовКлиент.УстановитьПризнакОтображенияНеактуальныхДанныхВСписке(ЭтотОбъект, ИмяСписка);
		КонецЕсли;

	КонецЕсли;

	Если ТребуетсяОбновлениеСписка Тогда

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

	КонецЕсли;

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

&НаКлиенте
Процедура ОбновитьСписокДокументовСобытиеОбработкаОповещения(ИмяСписка, Параметр = Неопределено)
	
	РаботаСЖурналамиДокументовКлиент.ОбновитьСписокДокументовСобытиеОбработкаОповещения(ЭтотОбъект, ИмяСписка, Параметр);
	ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка);

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

// Обработка события элемента формы.
// 
// Параметры:
//  Элемент - ПолеФормы
//@skip-check module-unused-method
&НаКлиенте
Процедура СписокДокументовОбработкаСобытияЭлементаФормы(Элемент)

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

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

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

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