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

файл

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

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

//используется для передачи текущей строки в обработчик ожидания
&НаКлиенте
Перем ТекущиеДанныеИдентификатор;

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

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

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

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

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

	СтрокаЗаголовка = "%1 (%2)";
	ЗаголовокЦена   = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаЗаголовка, НСтр("ru = 'Цена'"), ВалютаСтр);
	ЗаголовокСумма  = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаЗаголовка, НСтр("ru = 'Сумма'"), ВалютаСтр);
	ЗаголовокНДС    = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаЗаголовка, НСтр("ru = 'НДС'"), ВалютаСтр);

	Элементы.СобственныеТоварыЦена.Заголовок     = ЗаголовокЦена;
	Элементы.СобственныеТоварыСумма.Заголовок    = ЗаголовокСумма;
	Элементы.СобственныеТоварыСуммаНДС.Заголовок = ЗаголовокНДС;

	Элементы.ПринятаяТараЦена.Заголовок  = ЗаголовокЦена;
	Элементы.ПринятаяТараСумма.Заголовок = ЗаголовокСумма;

	Элементы.ПереданнаяТараЦена.Заголовок  = ЗаголовокЦена;
	Элементы.ПереданнаяТараСумма.Заголовок = ЗаголовокСумма;

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//++ Устарело_Переработка24

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

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

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

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

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

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

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

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

	ОрганизацияПриИзмененииСервер();

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

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

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

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

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

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

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

	СкладПриИзмененииСервер();

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

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

	ПомещениеПриИзмененииСервер();

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

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

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

	НоменклатураПриИзменении();

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

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

	КоличествоПриИзменении();

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

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

	УпаковкаПриИзменении();

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

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

	ЦенаПриИзменении();

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

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

	СуммаПриИзменении();

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

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

	СтавкаНДСПриИзменении();

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

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

	НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);

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

&НаКлиенте
Процедура СобственныеТоварыПослеУдаления(Элемент)

	ТаблЧастьПослеУдаления(Элемент);
	
КонецПроцедуры

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

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

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

	ТаблЧастьПриОкончанииРедактирования(Элемент);

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

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

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

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

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

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

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

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

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

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

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

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

	ПартнерПриИзмененииСервер(Объект.Партнер, Объект.Контрагент);

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

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

	СкладПриИзмененииСервер();

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

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

	ПомещениеПриИзмененииСервер();

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

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

	ВозвратнаяТараНоменклатураПриИзменении(Элементы.ПринятаяТара);

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

&НаКлиенте
Процедура ПринятаяТараКоличествоУпаковокПриИзменении(Элемент)

	ВозвратнаяТараКоличествоПриИзменении(Элементы.ПринятаяТара);

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

&НаКлиенте
Процедура ПринятаяТараУпаковкаПриИзменении(Элемент)

	ВозвратнаяТараУпаковкаПриИзменении(Элементы.ПринятаяТара);

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

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

	ВозвратнаяТараЦенаПриИзменении(Элементы.ПринятаяТара);

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

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

	ВозвратнаяТараСуммаПриИзменении(Элементы.ПринятаяТара);

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

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

&НаКлиенте
Процедура ПринятаяТараНомерГТДСоздание(Элемент, СтандартнаяОбработка)
	
	НомерГТДСоздание(Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

	ПартнерПриИзмененииСервер(Объект.Партнер, Объект.Контрагент);

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

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

	ВозвратнаяТараНоменклатураПриИзменении(Элементы.ПереданнаяТара);

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

&НаКлиенте
Процедура ПереданнаяТараКоличествоУпаковокПриИзменении(Элемент)

	КоличествоПриИзменении();

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

&НаКлиенте
Процедура ПереданнаяТараУпаковкаПриИзменении(Элемент)

	ВозвратнаяТараУпаковкаПриИзменении(Элементы.ПереданнаяТара);

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

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

	ВозвратнаяТараЦенаПриИзменении(Элементы.ПереданнаяТара);

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

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

	ВозвратнаяТараСуммаПриИзменении(Элементы.ПереданнаяТара);

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

&НаКлиенте
Процедура ПереданнаяТараНомерГТДСоздание(Элемент, СтандартнаяОбработка)
	
	НомерГТДСоздание(Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

	ПартнерПриИзмененииСервер(Объект.Партнер, Объект.Контрагент);

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

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

	СкладПриИзмененииСервер();

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

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

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

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

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

	ПомещениеПриИзмененииСервер();

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

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

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

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

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

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

	НоменклатураПриИзменении();

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

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

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

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

&НаКлиенте
Процедура ПолученныеНаКомиссиюПередУдалением(Элемент, Отказ)

	НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
				Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);

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

&НаКлиенте
Процедура ПолученныеНаКомиссиюПослеУдаления(Элемент)
	
	ТаблЧастьПослеУдаления(Элемент);

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

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

	НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
				Элемент,КэшированныеЗначения,ПараметрыУказанияСерий,Копирование);

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

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

	ТаблЧастьПриОкончанииРедактирования(Элемент);

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПолученныеНаКомиссиюНомерГТДСоздание(Элемент, СтандартнаяОбработка)
	
	НомерГТДСоздание(Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

	ПартнерПриИзмененииСервер(Объект.Партнер, Объект.Контрагент);

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

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

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

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

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

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

	НоменклатураПриИзменении();

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

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

	КоличествоПриИзменении();

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

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

	УпаковкаПриИзменении();

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

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

	ЦенаПриИзменении();

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

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

	СуммаПриИзменении();

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

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

	СтавкаНДСПриИзменении();

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

&НаКлиенте
Процедура ПереданныеНаКомиссиюНомерГТДСоздание(Элемент, СтандартнаяОбработка)
	
	НомерГТДСоздание(Элемент, СтандартнаяОбработка);
	
КонецПроцедуры

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

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

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

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

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

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

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

	СкладПриИзмененииСервер();

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

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

	ПомещениеПриИзмененииСервер();

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

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

	НоменклатураПриИзменении();

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

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

	КоличествоПриИзменении();

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

&НаКлиенте
Процедура ПереходНаАдресноеХранениеТоварыПередУдалением(Элемент, Отказ)

	НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
				Элемент,КэшированныеЗначения,ПараметрыУказанияСерий);

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

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

	НоменклатураКлиент.ОбновитьКешированныеЗначенияДляУчетаСерий(
				Элемент,КэшированныеЗначения,ПараметрыУказанияСерий,Копирование);

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

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

	ТаблЧастьПриОкончанииРедактирования(Элемент);

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

&НаКлиенте
Процедура ПереходНаАдресноеХранениеТоварыПослеУдаления(Элемент)

	ТаблЧастьПослеУдаления(Элемент);
	
КонецПроцедуры

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

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

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

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

//++ Устарело_Переработка24

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

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

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

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

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

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

	ПартнерПриИзмененииСервер(Объект.Партнер, Объект.Контрагент);

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПереданныеПереработчикамТоварыКоличествоУпаковокПриИзменении(Элемент)

	КоличествоПриИзменении();

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

&НаКлиенте
Процедура ПереданныеПереработчикамТоварыУпаковкаПриИзменении(Элемент)

	УпаковкаПриИзменении();

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

&НаКлиенте
Процедура ПереданныеПереработчикамТоварыЦенаПриИзменении(Элемент)

	ЦенаПриИзменении();

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

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

	СуммаПриИзменении();

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

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

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

	НоменклатураПриИзменении();

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

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

#КонецОбласти
//-- Устарело_Переработка24

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	КоличествоПриИзменении();

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

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

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

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

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

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

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

&НаКлиенте
Процедура УказатьСерии(Команда)

	ОткрытьПодборСерий();

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

&НаКлиенте
Процедура УказатьСерииПолученныхНаКомиссию(Команда)
	
	ОткрытьПодборСерий();
	
КонецПроцедуры

&НаКлиенте
Процедура УказатьСерииПереходНаАдресноеХранение(Команда)
	
	ОткрытьПодборСерий();
	
КонецПроцедуры

&НаКлиенте
Процедура РазбитьСтроку(Команда)

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

&НаКлиенте
Процедура ПоискПоШтрихкоду(Команда)

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

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

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

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

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

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

	ОткрытьФорму("Обработка.ПодборТоваровВДокументПродажи.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);

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

&НаКлиенте
Процедура ВставитьСтроки(Команда)
	
	КоличествоТоваровДоВставки = Объект.Товары.Количество();
	
	ПолучитьСтрокиИзБуфераОбмена();
	
	КоличествоВставленных = Объект.Товары.Количество()-КоличествоТоваровДоВставки;
	РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОВставкеСтрок(КоличествоВставленных);
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	//

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

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.СобственныеТоварыУпаковка.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПолученныеНаКомиссиюУпаковка.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПринятаяТараУпаковка.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПереходНаАдресноеХранениеТоварыУпаковка.Имя);

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

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

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

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

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

	ПараметрыУсловногоОформления = НоменклатураСервер.НовыеПараметрыУсловногоОформленияЕдиницИзмерения(Истина, Истина);
	ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмерения = "ПереходНаАдресноеХранениеТоварыНоменклатураЕдиницаИзмерения";
	НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтотОбъект, ПараметрыУсловногоОформления);

	//++ Устарело_Переработка24
	ПараметрыУсловногоОформления = НоменклатураСервер.НовыеПараметрыУсловногоОформленияЕдиницИзмерения(Истина, Истина);
	ПараметрыУсловногоОформления.ИмяПоляЕдиницаИзмерения = "ПереданныеПереработчикамТоварыНоменклатураЕдиницаИзмерения";
	НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтотОбъект, ПараметрыУсловногоОформления);
	//-- Устарело_Переработка24

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.СобственныеТоварыПартнер.Имя);

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

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

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

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

	НоменклатураСервер.УстановитьУсловноеОформлениеСтатусовУказанияСерий(ЭтаФорма, Ложь, "СобственныеТоварыСтатусУказанияСерий");
	НоменклатураСервер.УстановитьУсловноеОформлениеСтатусовУказанияСерий(ЭтаФорма, Ложь, "ПолученныеНаКомиссиюСтатусУказанияСерий");
	НоменклатураСервер.УстановитьУсловноеОформлениеСтатусовУказанияСерий(ЭтаФорма, Ложь, "ПереходНаАдресноеХранениеТоварыСтатусУказанияСерий");
	НоменклатураСервер.УстановитьУсловноеОформлениеСтатусовУказанияСерий(ЭтаФорма, Ложь, "ПереданныеВПроизводствоТоварыСтатусУказанияСерий");
	
	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПринятаяТараЦена.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПринятаяТараСумма.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПринятаяТараСуммаРегл.Имя);

	КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(Элемент.Отбор, "Объект.Товары.ПредусмотренЗалогЗаТару", Ложь);

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПринятаяТараЦена.Имя);

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

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПолученныеНаКомиссиюЦена.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПолученныеНаКомиссиюСумма.Имя);
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.ПолученныеНаКомиссиюСуммаРегл.Имя);

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

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

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

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

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

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

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

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

#Область ОбщиеОбработчикиСобытийТабличныхЧастей

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

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

	ТекущаяСтрока = Элементы[ИмяТекущейТаблицыФормы].ТекущиеДанные;

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

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

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

&НаКлиенте
Процедура УпаковкаПриИзменении(ИдентификаторТекущейСтроки = Неопределено)

	Если ИдентификаторТекущейСтроки <> Неопределено Тогда
		ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ИдентификаторТекущейСтроки);
	Иначе
		ТекущаяСтрока = Элементы[ИмяТекущейТаблицыФормы].ТекущиеДанные;
	КонецЕсли;

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

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

	Если ТекущаяСтрока.Количество > 0 Тогда
		СтруктураДействий.Вставить("ПересчитатьЦенуЗаУпаковку", ТекущаяСтрока.Количество);
	КонецЕсли;

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

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

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

	ТекущаяСтрока = Элементы[ИмяТекущейТаблицыФормы].ТекущиеДанные;

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

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

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

	ТекущаяСтрока = Элементы[ИмяТекущейТаблицыФормы].ТекущиеДанные;

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

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

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

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

	ТекущаяСтрока = Элементы[ИмяТекущейТаблицыФормы].ТекущиеДанные;

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

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

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

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

	ТекущиеДанные = Элемент.ТекущиеДанные;

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

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

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

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

#Область ОбщиеОбработчикиСобытийТабличныхЧастейВозвратнойТары

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

&НаКлиенте
Процедура ВозвратнаяТараКоличествоПриИзменении(ТаблЧасть)

	ТекущаяСтрока = ТаблЧасть.ТекущиеДанные;

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

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

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

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

&НаКлиенте
Процедура ВозвратнаяТараЦенаПриИзменении(ТаблЧасть)

	ЦенаПриИзменении();

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

&НаКлиенте
Процедура ВозвратнаяТараСуммаПриИзменении(ТаблЧасть)

	ТекущаяСтрока = ТаблЧасть.ТекущиеДанные;

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура СкладПриИзмененииСервер()

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

//++ НЕ УТ

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

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

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

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

//++ НЕ УТ

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

//-- НЕ УТ

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

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

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

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

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

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

&НаКлиенте
Процедура ОбработатьШтрихкоды(ДанныеШтрихкодов)
	
	Если Не ШтрихкодированиеНоменклатурыКлиент.ШтрихкодыВалидны(ДанныеШтрихкодов) Тогда
		Возврат;
	КонецЕсли;

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

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

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

&НаСервере
Процедура ОбработатьШтрихкодыСервер(СтруктураПараметровДействия,КэшированныеЗначения)

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

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

&НаКлиенте
Процедура ДобавитьПроверкуВозможностиДобавленияНоменклатуры(СтруктураДействий)

	Если ЭтоОстаткиСобственныхТоваров ИЛИ ЭтоОстаткиПереданныхНаКомиссиюТоваров
		ИЛИ ЭтоОстаткиПринятыхНаКомиссиюТоваров Тогда
		СтруктураДействий.ТолькоТовары = Истина;
	КонецЕсли;
	Если ЭтоОстаткиПринятойТары ИЛИ ЭтоОстаткиПереданнойТары Тогда
		СтруктураДействий.ТолькоТара = Истина;
	КонецЕсли;

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

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

#Область Серии

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

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

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

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

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

&НаСервере
Функция ПараметрыФормыУказанияСерий(ТекущиеДанныеИдентификатор)

	Возврат НоменклатураСервер.ПараметрыФормыУказанияСерий(Объект, ПараметрыУказанияСерий, ТекущиеДанныеИдентификатор, ЭтаФорма);

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

&НаСервере
Процедура ОбработатьУказаниеСерийСервер(ПараметрыФормыУказанияСерий)

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

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

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

#Область НомераГТД

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

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

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

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

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

#Область Счетфактура

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

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

#Область РаботаСБуферомОбмена

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Элементы.СобственныеТоварыСклад.ПараметрыВыбора             = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПолученныеНаКомиссиюСклад.ПараметрыВыбора          = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.СобственныеТоварыПомещение.ПараметрыВыбора         = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПолученныеНаКомиссиюПомещение.ПараметрыВыбора      = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПринятаяТараСклад.ПараметрыВыбора                  = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПринятаяТараПомещение.ПараметрыВыбора              = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПереходНаАдресноеХранениеСклад.ПараметрыВыбора     = Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПереходНаАдресноеХранениеПомещение.ПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметров);

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

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

	МассивПараметров = Новый Массив;
	МассивПараметров.Добавить(Новый СвязьПараметраВыбора("Отбор.Организация", "Объект.Организация"));
	МассивПараметров.Добавить(Новый СвязьПараметраВыбора("Отбор.ХозяйственнаяОперация", "Объект.ХозяйственнаяОперация"));

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

	Элементы.СобственныеТоварыВидЗапасов.СвязиПараметровВыбора		= Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПолученныеНаКомиссиюВидЗапасов.СвязиПараметровВыбора	= Новый ФиксированныйМассив(МассивПараметров);
	Элементы.ПереданныеНаКомиссиюВидЗапасов.СвязиПараметровВыбора	= Новый ФиксированныйМассив(МассивПараметров);

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

//++ Устарело_Переработка24

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

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

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

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

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

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

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

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

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

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

//++ НЕ УТ

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

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

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

//-- НЕ УТ

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыПересчетаКоличестваЕдиниц(ХозяйственнаяОперация)

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

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

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

//++ НЕ УТ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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