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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура СписокОтменаПроведенияСервер()
	ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
	ОбновитьГиперссылкуКОформлению();
КонецПроцедуры

&НаСервере
Процедура СписокПровестиСервер()
	ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
	ОбновитьГиперссылкуКОформлению();
КонецПроцедуры

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

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

&НаСервере
Функция ОписаниеОперацийИТиповДокументов()
	
	ТЗХозОперацииИТипыДокументов = ХозяйственныеОперацииИДокументы.Выгрузить();
	ТЗХозОперацииИТипыДокументов.Очистить();
	
	ДанныеСтроки = Новый Структура;
	Для Каждого Колонка Из ТЗХозОперацииИТипыДокументов.Колонки Цикл
		ДанныеСтроки.Вставить(Колонка.Имя);
	КонецЦикла;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 				 = Перечисления.ХозяйственныеОперации.ПередачаПереработчику2_5;
	Строка.ТипДокумента 						 = Тип("ДокументСсылка.ПередачаТоваровХранителю");
	Строка.ПолноеИмяДокумента					 = Метаданные.Документы.ПередачаТоваровХранителю.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать				 = Истина;
	Строка.КлючНазначенияИспользования			 = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста				 = НСтр("ru = 'Документы передачи в переработку (передачи переработчику)'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "ПередачаПереработчику";
	Строка.ДокументПредставление				 = НСтр("ru = 'Передача переработчику'");
	Строка.Порядок								 = 1;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация				 = Перечисления.ХозяйственныеОперации.ПроизводствоУПереработчика2_5;
	Строка.ТипДокумента							 = Тип("ДокументСсылка.ОтчетПереработчика2_5");
	Строка.ПолноеИмяДокумента					 = Метаданные.Документы.ОтчетПереработчика2_5.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать				 = Истина;
	Строка.КлючНазначенияИспользования			 = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста				 = НСтр("ru = 'Документы передачи в переработку (отчеты переработчика)'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ОтчетПереработчика2_5";
	Строка.Порядок								 = 2;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация				 = Перечисления.ХозяйственныеОперации.ПроизводствоУПереработчикаВСтранахЕАЭС2_5;
	Строка.ТипДокумента							 = Тип("ДокументСсылка.ОтчетПереработчика2_5");
	Строка.ПолноеИмяДокумента					 = Метаданные.Документы.ОтчетПереработчика2_5.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать				 = Истина;
	Строка.КлючНазначенияИспользования			 = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста				 = НСтр("ru = 'Документы передачи в переработку (отчеты переработчика)'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ОтчетПереработчика2_5";
	Строка.Порядок								 = 3;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 		         = Перечисления.ХозяйственныеОперации.ПоступлениеОтПереработчика2_5;
	Строка.ТипДокумента 				         = Тип("ДокументСсылка.ПоступлениеТоваровОтХранителя");
	Строка.ПолноеИмяДокумента			         = Метаданные.Документы.ПоступлениеТоваровОтХранителя.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать		         = Истина;
	Строка.КлючНазначенияИспользования	         = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста		         = НСтр("ru = 'Документы передачи в переработку (поступления от переработчика)'");
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "ПоступлениеОтПереработчика";
	Строка.ДокументПредставление				 = НСтр("ru = 'Поступление от переработчика'");
	Строка.Порядок								 = 4;
	
	ЗаполнитьЗначенияСвойств(ДанныеСтроки, Строка);
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	ЗаполнитьЗначенияСвойств(Строка, ДанныеСтроки);
	Строка.ХозяйственнаяОперация                 = Перечисления.ХозяйственныеОперации.ВозвратОтПереработчика2_5;
	Строка.МенеджерРасчетаГиперссылкиКОформлению = "ВозвратОтПереработчика";
	Строка.Порядок								 = 5;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 		         = Перечисления.ХозяйственныеОперации.СписаниеТоваровУПереработчика;
	Строка.ТипДокумента 				         = Тип("ДокументСсылка.СписаниеОтгруженныхТоваров");
	Строка.ПолноеИмяДокумента			         = Метаданные.Документы.СписаниеОтгруженныхТоваров.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать		         = Истина;
	Строка.КлючНазначенияИспользования	         = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста		         = НСтр("ru = 'Документы передачи в переработку (списания у переработчика)'");
	Строка.ДокументПредставление				 = НСтр("ru = 'Отчет о списании товаров у переработчика'");
	Строка.Порядок								 = 7;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 		         = Перечисления.ХозяйственныеОперации.ВыкупТоваровПереработчиком;
	Строка.ТипДокумента 				         = Тип("ДокументСсылка.ВыкупТоваровХранителем");
	Строка.ПолноеИмяДокумента			         = Метаданные.Документы.ВыкупТоваровХранителем.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать		         = Истина;
	Строка.КлючНазначенияИспользования	         = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста		         = НСтр("ru = 'Документы передачи в переработку (выкупы переработчиком)'");
	Строка.ДокументПредставление				 = НСтр("ru = 'Выкуп товаров переработчиком'");
	Строка.Порядок								 = 8;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 		         = Перечисления.ХозяйственныеОперации.ПорчаТоваровУПереработчика;
	Строка.ТипДокумента 				         = Тип("ДокументСсылка.ПорчаТоваровУХранителя");
	Строка.ПолноеИмяДокумента			         = Метаданные.Документы.ПорчаТоваровУХранителя.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать		         = Истина;
	Строка.КлючНазначенияИспользования	         = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста		         = НСтр("ru = 'Документы передачи в переработку (порчи у переработчика)'");
	Строка.ДокументПредставление				 = НСтр("ru = 'Порча товаров у переработчика'");
	Строка.Порядок								 = 9;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 		         = Перечисления.ХозяйственныеОперации.ПересортицаТоваровУПереработчика;
	Строка.ТипДокумента 				         = Тип("ДокументСсылка.ПересортицаТоваровУХранителя");
	Строка.ПолноеИмяДокумента			         = Метаданные.Документы.ПересортицаТоваровУХранителя.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать		         = Истина;
	Строка.КлючНазначенияИспользования	         = "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста		         = НСтр("ru = 'Документы передачи в переработку (пересортицы у переработчика)'");
	Строка.ДокументПредставление				 = НСтр("ru = 'Пересортица товаров у переработчика'");
	Строка.Порядок								 = 10;
	
	Строка = ТЗХозОперацииИТипыДокументов.Добавить();
	Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.КорректировкаОтчетаПереработчика;
	Строка.ТипДокумента 				= Тип("ДокументСсылка.КорректировкаПриобретения");
	Строка.ПолноеИмяДокумента			= Метаданные.Документы.КорректировкаПриобретения.ПолноеИмя();
	Строка.ДобавитьКнопкуСоздать		= Ложь;
	Строка.КлючНазначенияИспользования	= "ДокументыПередачиВПереработку";
	Строка.ЗаголовокРабочегоМеста		= НСтр("ru = 'Документы передачи в переработку (корректировки)'");
	Строка.ДокументПредставление		= НСтр("ru = 'Корректировка отчета переработчика'");
	Строка.Порядок						= 11;
	
	Если ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеОтгрузкиПоПередачамПереработчику2_5") Тогда
	
		Строка = ТЗХозОперацииИТипыДокументов.Добавить();
		Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ПередачаПереработчику2_5;
		Строка.ТипДокумента 				= Тип("ДокументСсылка.АктОРасхожденияхПослеОтгрузки");
		Строка.ПолноеИмяДокумента			= Метаданные.Документы.АктОРасхожденияхПослеОтгрузки.ПолноеИмя();
		Строка.ДобавитьКнопкуСоздать		= Истина;
		Строка.ИспользуютсяСтатусы			= Истина;
		Строка.КлючНазначенияИспользования	= "ДокументыПередачиВПереработку";
		Строка.ЗаголовокРабочегоМеста		= НСтр("ru = 'Документы передачи в переработку (расхождения)'");
		Строка.ДокументПредставление		= НСтр("ru = 'Акт о расхождениях после передачи переработчику'");
		Строка.Порядок						= 12;
	
	КонецЕсли;
	
	Если ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямОтПереработчика2_5") Тогда
		
		Строка = ТЗХозОперацииИТипыДокументов.Добавить();
		Строка.ХозяйственнаяОперация 		= Перечисления.ХозяйственныеОперации.ПоступлениеОтПереработчика2_5;
		Строка.ТипДокумента 				= Тип("ДокументСсылка.АктОРасхожденияхПослеПриемки");
		Строка.ПолноеИмяДокумента			= Метаданные.Документы.АктОРасхожденияхПослеПриемки.ПолноеИмя();
		Строка.ДобавитьКнопкуСоздать		= Истина;
		Строка.ИспользуютсяСтатусы			= Истина;
		Строка.КлючНазначенияИспользования	= "ДокументыПередачиВПереработку";
		Строка.ЗаголовокРабочегоМеста       = НСтр("ru = 'Документы передачи в переработку (расхождения)'");
		Строка.ДокументПредставление		= НСтр("ru = 'Акт о расхождениях после приемки от переработчика'");
		Строка.Порядок						= 13;
	
		ЗаполнитьЗначенияСвойств(ДанныеСтроки, Строка);
		
		Строка = ТЗХозОперацииИТипыДокументов.Добавить();
		ЗаполнитьЗначенияСвойств(Строка, ДанныеСтроки);
		Строка.ХозяйственнаяОперация		= Перечисления.ХозяйственныеОперации.ВозвратОтПереработчика2_5;
		Строка.ДокументПредставление		= НСтр("ru = 'Акт о расхождениях после приемки от переработчика'");
		Строка.Порядок						= 14;
		
	КонецЕсли;
	
	УчетНДСУП.ОписаниеОперацийИТиповДокументовДляЖурналаДокументовПередачиВПереработку2_5(ТЗХозОперацииИТипыДокументов);
	
	Возврат ТЗХозОперацииИТипыДокументов;
	
КонецФункции

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

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

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

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

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

#Область Локализация

&НаСервере
Процедура ДополнитьМассивМенеджеровРасчетаСмТакжеВРаботеЛокализация(МассивМенеджеровРасчетаСмТакжеВРаботе, ПараметрыФормирования)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Иначе

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

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

	КонецЕсли;

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

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

	КонецЕсли;

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

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

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

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

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

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

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

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