Перечисление НДС в бюджет по отдельным операциям / Список документов / Модуль формы

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

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

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

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

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если Не ЗавершениеРаботы Тогда
		СохранитьНастройки();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СформироватьЗаявкиНаРасходованиеДС(Команда)
	
	СформироватьДокументыНаОсновании("Документ.ЗаявкаНаРасходованиеДенежныхСредств");
	
КонецПроцедуры

&НаКлиенте
Процедура СформироватьСписанияБезналичныхДС(Команда)
	
	СформироватьДокументыНаОсновании("Документ.СписаниеБезналичныхДенежныхСредств");
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьУсловноеОформление()

	СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект,
		"СписокДокументыКОплате.Дата",
		"СписокДокументыКОплатеДата");
	СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект,
		"СписокДокументыКОплате.ДатаВходящегоДокумента",
		"СписокДокументыКОплатеДатаВходящегоДокумента");

	Элемент = УсловноеОформление.Элементы.Добавить();

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
	
	Элемент = УсловноеОформление.Элементы.Добавить();

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

	Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СформироватьДокументыНаОсновании(ИмяДокумента);

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

//++ НЕ УТ
&НаКлиенте
Процедура СохранитьВыгружаемыеДанные(ВыгружаемыеДанные)
	
	Для Каждого ФайлВыгрузки Из ВыгружаемыеДанные Цикл
		
		Попытка
			
			ПолучитьФайл(ФайлВыгрузки.АдресФайлаВыгрузки, ФайлВыгрузки.ИмяФайлаВыгрузки);
			
		Исключение
			
			ЗаписатьОшибкуВЖурнал(
				НСтр("ru = 'Сохранение файла выгрузки заявления о ввозе'"), 
				ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
			
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
					СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
								НСтр("ru = 'Не удалось записать файл %1!
									| Возможно, недостаточно места на диске или диск защищен от записи.'"),
								ФайлВыгрузки.ИмяФайлаВыгрузки));
		КонецПопытки;
		
	КонецЦикла;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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