Заказ переработчику / Заказы переработчикам / Модуль формы

файл

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

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

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

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

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

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

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	
	Возврат; // пустой обработчик
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
	
	
	Возврат; // пустой обработчик
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура КОбеспечениюЗаказ(Команда)
	
	ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
		"ДЕЙСТВИЕ_КОБЕСПЕЧЕНИЮ",
		Элементы.Список,
		ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
		ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура РезервироватьПоМереПоступленияЗаказ(Команда)
	
	ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
		"ДЕЙСТВИЕ_РЕЗЕРВИРОВАТЬПОМЕРЕПОСТУПЛЕНИЯ",
		Элементы.Список,
		ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
		ЭтотОбъект);
	
КонецПроцедуры

&НаКлиенте
Процедура НеОбеспечиватьЗаказ(Команда)
	
	ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
		"ДЕЙСТВИЕ_НЕОБЕСПЕЧИВАТЬ",
		Элементы.Список,
		ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
		ЭтотОбъект);
	
КонецПроцедуры

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


&НаКлиенте
Процедура УстановитьСтатусНеСогласован(Команда)
	
	
	Возврат; // пустой обработчик
	
КонецПроцедуры

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

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

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

#Область ПодключаемыеКоманды

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

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

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

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

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

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

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

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

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

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

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

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

#Область ВидимостьДоступность

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

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

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

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

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

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

#Область УстановкаДействий

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

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

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

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

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

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


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

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

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

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