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

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

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

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

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	УстановитьУсловноеОформление();

	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

	Объект.Префикс = СформироватьПрефикс(Объект.Организация);
	ОрганизацияПриИзмененииНаСервере();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ЗадолженностьКлиентовКонтрагентПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьКлиентов.ТекущиеДанные;
	ТекущаяСтрокаИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
	ПроверитьОбъектРасчетовСервер(ТекущаяСтрокаИдентификатор);

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

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

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

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

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

	СтрокаТаблицы = Элементы.ЗадолженностьКлиентов.ТекущиеДанные;
	ТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка, СтрокаТаблицы);

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

&НаКлиенте
Процедура ЗадолженностьКлиентовНомерРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьКлиентов.ТекущиеДанные;
	НомерРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

&НаКлиенте
Процедура ЗадолженностьКлиентовДатаРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьКлиентов.ТекущиеДанные;
	ДатаРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

&НаКлиенте
Процедура ЗадолженностьКлиентовСуммаПриИзменении(Элемент)

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

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

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

	ТекущиеДанные = Элементы.ЗадолженностьКлиентов.ТекущиеДанные;
	ВалютаПриИзменении(ТекущиеДанные);

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

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

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

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

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

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамПартнерПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьПоставщикам.ТекущиеДанные;
	ТекущаяСтрокаИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
	ПартнерПриИзменении(ТекущиеДанные.Партнер, ТекущиеДанные.Контрагент, ТекущаяСтрокаИдентификатор);

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамКонтрагентПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьПоставщикам.ТекущиеДанные;
	ТекущаяСтрокаИдентификатор = ТекущиеДанные.ПолучитьИдентификатор();
	ПроверитьОбъектРасчетовСервер(ТекущаяСтрокаИдентификатор);

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

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

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

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

	СтрокаТаблицы = Элементы.ЗадолженностьПоставщикам.ТекущиеДанные;
	ТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка, СтрокаТаблицы);

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамНомерРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьПоставщикам.ТекущиеДанные;
	НомерРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамДатаРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьПоставщикам.ТекущиеДанные;
	ДатаРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамСуммаПриИзменении(Элемент)

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

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

&НаКлиенте
Процедура ЗадолженностьПоставщикамВалютаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.ЗадолженностьПоставщикам.ТекущиеДанные;
	ВалютаПриИзменении(ТекущиеДанные);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	СтрокаТаблицы = Элементы.АвансыКлиентов.ТекущиеДанные;
	ТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка, СтрокаТаблицы);

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

&НаКлиенте
Процедура АвансыКлиентовНомерРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.АвансыКлиентов.ТекущиеДанные;
	НомерРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

&НаКлиенте
Процедура АвансыКлиентовДатаРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.АвансыКлиентов.ТекущиеДанные;
	ДатаРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

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

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

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

&НаКлиенте
Процедура АвансыКлиентовВалютаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.АвансыКлиентов.ТекущиеДанные;
	ВалютаПриИзменении(ТекущиеДанные);

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

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

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

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

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

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

&НаКлиенте
Процедура АвансыПоставщикамПартнерПриИзменении(Элемент)

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

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

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

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

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

&НаКлиенте
Процедура АвансыПоставщикамТипРасчетовОткрытие(Элемент, СтандартнаяОбработка)

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

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

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

	СтрокаТаблицы = Элементы.АвансыПоставщикам.ТекущиеДанные;
	ТипРасчетовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка, СтрокаТаблицы);

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

&НаКлиенте
Процедура АвансыПоставщикамНомерРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.АвансыПоставщикам.ТекущиеДанные;
	НомерРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

&НаКлиенте
Процедура АвансыПоставщикамДатаРасчетногоДокументаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.АвансыПоставщикам.ТекущиеДанные;
	ДатаРасчетногоДокументаПриИзменении(ТекущиеДанные);

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

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

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

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

&НаКлиенте
Процедура АвансыПоставщикамВалютаПриИзменении(Элемент)

	ТекущиеДанные = Элементы.АвансыПоставщикам.ТекущиеДанные;
	ВалютаПриИзменении(ТекущиеДанные);

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

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

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

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

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

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

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


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


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

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

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

&НаКлиенте
Процедура ЗаполнитьПоОстаткам(Команда)
	Возврат;
КонецПроцедуры

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

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

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

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

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

	//

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

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

	//

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

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

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

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

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

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

&НаСервере
Процедура УстановитьВидимость()
	
	ТипРасчетногоДокумента = Неопределено;
	УстановитьТипДокументаРасчетов(ТипРасчетногоДокумента);

	Элементы.ГруппаЗадолженностьКлиентов.Видимость				= Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковЗадолженностиКлиентов;
	Элементы.ГруппаЗадолженностьПередПоставщиками.Видимость		= Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковЗадолженностиПоставщикам;
	Элементы.ГруппаАвансыКлиентов.Видимость						= Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковАвансовКлиентов;
	Элементы.ГруппаАвансыПоставщикам.Видимость					= Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВводОстатковАвансовПоставщикам;

	ВидимостьЗаполненияПоОстаткам = НЕ Объект.ОтражатьВОперативномУчете И (Объект.ОтражатьВБУиНУ ИЛИ  Объект.ОтражатьВУУ);
	Элементы.ЗадолженностьКлиентовЗаполнитьПоОстаткам.Видимость = ВидимостьЗаполненияПоОстаткам;
	Элементы.ЗадолженностьПоставщикамЗаполнитьПоОстаткам.Видимость = ВидимостьЗаполненияПоОстаткам;
	Элементы.АвансыКлиентовЗаполнитьПоОстаткам.Видимость = ВидимостьЗаполненияПоОстаткам;
	Элементы.АвансыПоставщикамЗаполнитьПоОстаткам.Видимость = ВидимостьЗаполненияПоОстаткам;
	
	ВидимостьСуммыУпр = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьВУУ; 
	Элементы.ЗадолженностьКлиентовСуммаУпр.Видимость = ВидимостьСуммыУпр;
	Элементы.ЗадолженностьПоставщикамСуммаУпр.Видимость = ВидимостьСуммыУпр;
	Элементы.АвансыКлиентовСуммаУпр.Видимость = ВидимостьСуммыУпр;
	Элементы.АвансыПоставщикамСуммаУпр.Видимость = ВидимостьСуммыУпр;
	
	ВидимостьСуммыРегл = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьВБУиНУ; 
	Элементы.ЗадолженностьКлиентовСуммаРегл.Видимость = ВидимостьСуммыРегл;
	Элементы.ЗадолженностьПоставщикамСуммаРегл.Видимость = ВидимостьСуммыРегл;
	Элементы.АвансыКлиентовСуммаРегл.Видимость = ВидимостьСуммыРегл;
	Элементы.АвансыПоставщикамСуммаРегл.Видимость = ВидимостьСуммыРегл;
	
	Элементы.АвансыПоставщикамРасчетныйДокумент.Видимость = Не Объект.ВводОстатков22 И Объект.ОтражатьВОперативномУчете;
	Элементы.АвансыКлиентовРасчетныйДокумент.Видимость = Не Объект.ВводОстатков22 И Объект.ОтражатьВОперативномУчете;
	Элементы.ЗадолженностьПоставщикамРасчетныйДокумент.Видимость = Не Объект.ВводОстатков22 И Объект.ОтражатьВОперативномУчете;
	Элементы.ЗадолженностьКлиентовРасчетныйДокумент.Видимость = Не Объект.ВводОстатков22 И Объект.ОтражатьВОперативномУчете;

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

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

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

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

&НаСервере
Процедура ЗаполнитьТипОбъектаРасчетов(ИдентификаторСтроки = Неопределено)

	Если НЕ ПравоДоступа("Чтение",Метаданные.Справочники.ДоговорыКонтрагентов) Тогда
		Возврат;
	КонецЕсли;

	Запрос = Новый Запрос("
	|ВЫБРАТЬ
	|	ТаблицаРасчетов.НомерСтроки,
	|	ТаблицаРасчетов.ОбъектРасчетов
	|ПОМЕСТИТЬ ВТСтроки
	|ИЗ
	|	&ТаблицаРасчетов КАК ТаблицаРасчетов
	|ГДЕ
	|	ТаблицаРасчетов.ОбъектРасчетов ССЫЛКА Справочник.ДоговорыКонтрагентов
	|	ИЛИ ТаблицаРасчетов.ОбъектРасчетов ССЫЛКА Документ.ПервичныйДокумент
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТСтроки.НомерСтроки,
	|	ДоговорыКонтрагентов.ТипДоговора
	|ИЗ
	|	ВТСтроки КАК ВТСтроки
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
	|		ПО ВТСтроки.ОбъектРасчетов = ДоговорыКонтрагентов.Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТСтроки.НомерСтроки,
	|	ПРЕДСТАВЛЕНИЕ(ПервичныйДокумент.ТипПервичногоДокумента) КАК ТипПервичногоДокумента
	|ИЗ
	|	ВТСтроки КАК ВТСтроки
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПервичныйДокумент КАК ПервичныйДокумент
	|		ПО ВТСтроки.ОбъектРасчетов = ПервичныйДокумент.Ссылка
	|");

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

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

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

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

	Если Не Объект.ДополнятьНомера
		Или Не ЗначениеЗаполнено(Номер) Тогда
		Возврат;
	КонецЕсли;
	Результат = СокрЛП(Номер);
	Разделитель = ?(ПустаяСтрока(Объект.Префикс), "", "-");
	Начало = СокрЛП(Объект.Префикс) + Разделитель;
	Пока СтрДлина(Результат) < 11 - СтрДлина(Начало) Цикл
		Результат = "0" + Результат;
	КонецЦикла;
	Если СтрДлина(Результат) <= 11 - СтрДлина(Начало) Тогда
		Результат = Начало + Результат;
	КонецЕсли;
	Номер = Результат;

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

&НаСервере
Процедура ПодобратьДокументРасчетовСервер(ТекущаяСтрокаИдентификатор)

	ИмяТЧ = Документы.ВводОстатков.ИмяТабличнойЧастиРасчетовПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);
	ТекущиеДанные = Объект[ИмяТЧ].НайтиПоИдентификатору(ТекущаяСтрокаИдентификатор);
	Документы.ВводОстатков.ПодобратьДокументРасчетов(Объект, ТекущиеДанные);

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

&НаСервере
Процедура ПартнерПриИзменении(Партнер, Контрагент, ИдентификаторСтроки)
	
	ПартнерПриИзмененииСервер(Партнер, Контрагент);
	ПроверитьОбъектРасчетовСервер(ИдентификаторСтроки);
	
КонецПроцедуры

&НаСервере
Процедура ПроверитьОбъектРасчетовСервер(ТекущаяСтрокаИдентификатор)

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

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

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

&НаСервере
Процедура УстановитьТипДокументаРасчетов(ОбъектРасчетов)

	Если ЗначениеЗаполнено(ОбъектРасчетов) Тогда
		Возврат;
	КонецЕсли;
	ОбъектРасчетов = Документы.ВводОстатков.ТипДокументаРасчетовПоХозяйственнойОперации(Объект.ХозяйственнаяОперация);

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

&НаКлиенте
Процедура НомерРасчетногоДокументаПриИзменении(ТекущиеДанные)

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

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

&НаКлиенте
Процедура ДатаРасчетногоДокументаПриИзменении(ТекущиеДанные)

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

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

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

&НаКлиенте
Процедура ВалютаПриИзменении(ТекущиеДанные)

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура УстановитьПараметрыВыбораПартнера()

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

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

&НаСервереБезКонтекста
Функция СформироватьПрефикс(Организация)

	Возврат Документы.ВводОстатков.УстановитьПрефикс(Организация);

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

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

	Если НЕ ЗначениеЗаполнено(Строка.ВалютаВзаиморасчетов) И Не ИспользоватьНесколькоВалют Тогда
		Строка.ВалютаВзаиморасчетов = ВалютаРегламентированногоУчета;
	КонецЕсли;

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

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

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

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

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

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

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


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

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