Приобретение услуг и прочих активов / Форма документа / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ

&НаКлиенте
Перем ПроверкаКонтрагентовПараметрыОбработчикаОжидания Экспорт;

&НаКлиенте
Перем ФормаДлительнойОперации Экспорт;

&НаКлиенте
Перем ПараметрыДляЗаписи Экспорт;

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

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

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

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

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

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

	УчетНДСУП.УстановитьВидимостьКомандыЗаполнитьСтавкуНДС(ЭтотОбъект, "РасходыЗаполнитьСтавкуНДС");

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

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

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

	Возврат; // в WE пустой обработчик
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтаФорма, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

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

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

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

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

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

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

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)

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

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

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

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

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

&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
	
	ПринудительноЗакрытьФорму = Истина;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СоглашениеПриИзмененииФрагмент()
    
    ВалютаДокумента = Объект.Валюта;

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

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

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

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

&НаКлиенте
Процедура ЦенаВключаетНДСПриИзменении(Элемент)
	
	ЦенаВключаетНДСПриИзмененииСервер();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура СтатусЧекаСамозанятогоНажатие(Элемент, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;
	ДенежныеСредстваКлиентЛокализация.ПередЗагрузкойЧекаСамозанятогоВДокумент(ЭтотОбъект);

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура РасходыКоличествоПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Расходы.ТекущиеДанные;
	
	ТекущаяСтрока = Новый Структура;
	ТекущаяСтрока.Вставить("Количество",          ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
	ТекущаяСтрока.Вставить("Цена",                ТекущиеДанные.Цена);
	ТекущаяСтрока.Вставить("Сумма",               ТекущиеДанные.Сумма);
	ТекущаяСтрока.Вставить("СтавкаНДС",           ТекущиеДанные.СтавкаНДС);
	ТекущаяСтрока.Вставить("СуммаНДС",            ТекущиеДанные.СуммаНДС);
	ТекущаяСтрока.Вставить("СуммаСНДС",           ТекущиеДанные.СуммаСНДС);
	ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
	
	СтруктураДействий = Новый Структура;
	ДобавитьВСтруктуруДействияПриИзмененииКоличества(СтруктураДействий, ЭтаФорма);
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	
	ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
	
КонецПроцедуры

&НаКлиенте
Процедура РасходыЦенаПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Расходы.ТекущиеДанные;
	
	ТекущаяСтрока = Новый Структура;
	ТекущаяСтрока.Вставить("Количество",          ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
	ТекущаяСтрока.Вставить("Цена",                ТекущиеДанные.Цена);
	ТекущаяСтрока.Вставить("Сумма",               ТекущиеДанные.Сумма);
	ТекущаяСтрока.Вставить("СтавкаНДС",           ТекущиеДанные.СтавкаНДС);
	ТекущаяСтрока.Вставить("СуммаНДС",            ТекущиеДанные.СуммаНДС);
	ТекущаяСтрока.Вставить("СуммаСНДС",           ТекущиеДанные.СуммаСНДС);
	ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
	
	СтруктураПересчетаСуммы = ПоляПересчетаСуммыНДСВСтрокеТЧ(ЭтаФорма);
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСумму", "Количество");
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	
	ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
	
КонецПроцедуры

&НаКлиенте
Процедура РасходыСуммаПриИзменении(Элемент)
	
	ТекущиеДанные = Элементы.Расходы.ТекущиеДанные;
	
	ТекущаяСтрока = Новый Структура;
	ТекущаяСтрока.Вставить("Количество",          ?(ТекущиеДанные.Количество <> 0, ТекущиеДанные.Количество, 1));
	ТекущаяСтрока.Вставить("Цена",                ТекущиеДанные.Цена);
	ТекущаяСтрока.Вставить("Сумма",               ТекущиеДанные.Сумма);
	ТекущаяСтрока.Вставить("СтавкаНДС",           ТекущиеДанные.СтавкаНДС);
	ТекущаяСтрока.Вставить("СуммаНДС",            ТекущиеДанные.СуммаНДС);
	ТекущаяСтрока.Вставить("СуммаСНДС",           ТекущиеДанные.СуммаСНДС);
	ТекущаяСтрока.Вставить("СуммаВзаиморасчетов", ТекущиеДанные.СуммаВзаиморасчетов);
	
	СтруктураПересчетаСуммы = ПоляПересчетаСуммыНДСВСтрокеТЧ(ЭтаФорма);
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьЦенуСкидкуПоСуммеВЗакупках", Новый Структура("ИмяКоличества", "Количество"));
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	
	ЗаполнитьЗначенияСвойств(ТекущиеДанные, ТекущаяСтрока, , "Количество");
	
КонецПроцедуры

&НаКлиенте
Процедура РасходыСуммаВзаиморасчетовПриИзменении(Элемент)
	ТекущиеДанные = Элементы.Расходы.ТекущиеДанные;
	Если ТекущиеДанные <> Неопределено Тогда
		ТекущиеДанные.СуммаНДСВзаиморасчетов = 0;
	КонецЕсли;
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура РасходыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	Возврат;
	
КонецПроцедуры

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

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

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


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


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

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

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

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

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

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

&НаКлиенте
Процедура РасчетыНажатие(Элемент, СтандартнаяОбработка)
	
	ВзаиморасчетыКлиент.РасчетыНажатие(ЭтаФорма, Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура РаспределитьНаПоступленияЗавершение(РезультатЗакрытия, Параметры) Экспорт
	Если РезультатЗакрытия <> Неопределено Тогда
		ПеренестиРезультатВТабЧасть(РезультатЗакрытия);
		Модифицированность = Истина;
	КонецЕсли;
КонецПроцедуры

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗачетОплаты(Команда)
	
	ПоместитьРасшифровкуПлатежаВоВременноеХранилище();
	ВзаиморасчетыКлиент.ЗачетОплаты(ЭтаФорма, Элементы.ЗачетОплаты);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьСтавкуНДС(Команда)

	Если Объект.Расходы.Количество() = 0 Тогда
		ТекстПредупреждения = НСтр("ru = 'В список ""Расходы"" не введено ни одной строки.'");
		ПоказатьПредупреждение(, ТекстПредупреждения);
		Возврат;
	КонецЕсли;

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

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

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

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

// СтандартныеПодсистемы.Свойства

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

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

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

// Конец СтандартныеПодсистемы.Свойства

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

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

#Область ПриИзмененииРеквизитов

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

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

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

	ИзменитьОтображениеИтоговыхПоказателей(ЭтаФорма);
	ОтветственныеЛицаСервер.ЗаполнитьМенеджера(Объект);
	
КонецПроцедуры

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

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

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

&НаСервере
Процедура ПриИзмененииВалютыСервер(НоваяВалюта)

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

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

	УчетНДСУП.УстановитьВидимостьКомандыЗаполнитьСтавкуНДС(ЭтотОбъект, "РасходыЗаполнитьСтавкуНДС");

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

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

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

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

&НаСервере
Процедура ОперацияССамозанятымПриИзмененииНаСервере()

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция ПоляПересчетаСуммыНДСВСтрокеТЧ(Форма)
	
	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Форма.Объект);
	
	Возврат СтруктураПересчетаСуммы;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

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

&НаСервереБезКонтекста
Функция ТоварПрослеживается(НомерГТД)
	
	Возврат ПриобретениеУслугПрочихАктивовЛокализация.ТоварПрослеживается(НомерГТД);
	
КонецФункции

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ЗакрытьФорму()
	
	Закрыть();
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура РасходыАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка);
КонецПроцедуры

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

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

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

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

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

&НаСервере
Процедура ОбновитьТекстСчетаФактуры()
	
	ПараметрыРегистрации = ПараметрыРегистрацииСчетовФактурПолученных(Объект);
	СчетаФактурыПолученныеНаОсновании = УчетНДСУП.СчетаФактурыПолученныеНаОсновании(ПараметрыРегистрации);
	
	ТекстСчетаФактурыПолученные = СчетаФактурыПолученныеНаОсновании.Представление;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыРегистрацииСчетовФактурПолученных(Объект)
	
	ПараметрыРегистрации = УчетНДСУПКлиентСервер.ПараметрыРегистрацииСчетовФактурПолученных();
	ПараметрыРегистрации.Ссылка = Объект.Ссылка;
	ПараметрыРегистрации.Дата = Объект.Дата;
	ПараметрыРегистрации.Организация = Объект.Организация;
	ПараметрыРегистрации.Контрагент = Объект.Контрагент;
	ПараметрыРегистрации.НалогообложениеНДС = Объект.НалогообложениеНДС;
	ПараметрыРегистрации.ПриобретениеТоваровРаботУслуг = Истина;
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

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

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

&НаСервере
Процедура ПоместитьРасшифровкуПлатежаВоВременноеХранилище()
	ВзаиморасчетыСервер.ПоместитьРасшифровкуПлатежаВоВременноеХранилище(ЭтаФорма);
КонецПроцедуры

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

#Область КонтрольНесогласованныхИзменений

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

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

&НаСервереБезКонтекста
Процедура ПроверитьНаличиеКорректировокИСчетовФактур(Ссылка, ЕстьКорректировки, ЕстьСчетаФактуры)
	
	ЗакупкиСервер.ПроверитьНаличиеКорректировокИСчетовФактур(Ссылка, Ссылка, ЕстьКорректировки, ЕстьСчетаФактуры);
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЕстьПравоДобавленияКорректировок()
	
	Возврат ПравоДоступа("Добавление", Метаданные.Документы.КорректировкаПриобретения);
	
КонецФункции

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

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

&НаКлиенте
Процедура ЗаполнитьСтавкуНДСЗавершение(СтавкаНДС, ДополнительныеПараметры) Экспорт

	Если СтавкаНДС = Неопределено Тогда
		Возврат;
	КонецЕсли;

	ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения);

	ИзменитьОтображениеИтоговыхПоказателей(ЭтотОбъект);

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

&НаСервере
Процедура ЗаполнитьСтавкуНДСНаСервере(СтавкаНДС, КэшированныеЗначения)

	СтруктураПересчетаСуммы = ПоляПересчетаСуммыНДСВСтрокеТЧ(ЭтотОбъект);
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");

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

	ОбновитьТекстСчетаФактуры();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПослеЗагрузкиЧекаСамозанятого(ДанныеЧека, ДополнительныеПараметры) Экспорт

	ПослеЗагрузкиЧекаСамозанятогоНаСервере(ДанныеЧека);
	РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, "Запись_Файл");

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

&НаСервере
Процедура ПослеЗагрузкиЧекаСамозанятогоНаСервере(Чек)

	ДенежныеСредстваСерверЛокализация.УстановитьСтатусЗагрузкиЧеков(ЭтотОбъект);

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

&НаСервере
Процедура УстановитьПараметрыВыбораНомераГТД()
	
	МассивПараметровНомераГТД = Новый Массив;
	
	
	Элементы.РасходыНомерГТД.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровНомераГТД);
	
КонецПроцедуры

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

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