#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
УстановитьВидимостьПриСозданииНаСервере();
#Область СтандартныеПроцедуры
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект, Элементы.СписокКоманднаяПанель);
ТорговыеПредложения.ПриСозданииПодсказокФормы(ЭтотОбъект, Элементы.ПодсказкиБизнесСеть);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
#КонецОбласти
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ТорговыеПредложенияКлиент.ОбновитьПодсказкуФормы(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр));
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "ЗакрытиеЗаказов" Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОтборПриоритетПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОтборПериодПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОтборПодразделениеПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура СписокРаспоряженийПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОтборПереработчикПриИзменении(Элемент)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаЖурналПродажиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбщегоНазначенияУТКлиент.ОткрытьЖурнал(ПараметрыЖурнала());
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
&НаКлиенте
Процедура СписокПриИзменении(Элемент)
ИменаДокументов = Новый Массив();
ИменаДокументов.Добавить("Документ.ЗаказПереработчику2_5");
ОбеспечениеВДокументахКлиент.СписокПриИзменении(ЭтотОбъект, СтрСоединить(ИменаДокументов, ","));
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокКОформлению
&НаКлиенте
Процедура СписокКОформлениюВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ОтгрузитьЗаказ(Команда)
ОчиститьСообщения();
ВсеЗаказы = ОбщегоНазначенияУТКлиент.ПроверитьПолучитьВыделенныеВСпискеСсылки(Элементы.Список);
РезультатВыполненияДействий = ВыполнитьДействиеВСпискеЗаказов(ВсеЗаказы, УникальныйИдентификатор);
Если ОбеспечениеВДокументахКлиент.РезультатВыполненияДействийНуженВопрос(РезультатВыполненияДействий) Тогда
КодДействия = "ДЕЙСТВИЕ_ОТГРУЗИТЬ";
ПараметрыПроцедуры = Новый Структура();
ПараметрыПроцедуры.Вставить("Заказы", ВсеЗаказы);
ПараметрыПроцедуры.Вставить("КодДействия", КодДействия);
ПараметрыПроцедуры.Вставить("Форма", ЭтотОбъект);
ПараметрыПроцедуры.Вставить("ПараметрыВстраивания", Неопределено);
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВопросаВСпискеЗаказов", ЭтотОбъект, ПараметрыПроцедуры);
ОбеспечениеВДокументахКлиент.ПоказатьВопросСнятьФлагОтгружатьОднойДатойДляСпискаЗаказов(
ВсеЗаказы,
КодДействия,
РезультатВыполненияДействий,
ЭтотОбъект,
ОписаниеОповещения);
Иначе
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура("Форма,Заказы",
ЭтотОбъект, ВсеЗаказы);
ДлительныеОперацииКлиент.ОжидатьЗавершение(РезультатВыполненияДействий,
Новый ОписаниеОповещения("ПослеВопросаВСпискеЗаказовЗавершение", ОбеспечениеВДокументахКлиент, ДополнительныеПараметры),
ПараметрыОжидания);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РезервироватьЗаказ(Команда)
ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
"ДЕЙСТВИЕ_РЕЗЕРВИРОВАТЬ",
Элементы.Список,
ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КОбеспечениюЗаказ(Команда)
ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
"ДЕЙСТВИЕ_КОБЕСПЕЧЕНИЮ",
Элементы.Список,
ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РезервироватьПоМереПоступленияЗаказ(Команда)
ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
"ДЕЙСТВИЕ_РЕЗЕРВИРОВАТЬПОМЕРЕПОСТУПЛЕНИЯ",
Элементы.Список,
ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НеОбеспечиватьЗаказ(Команда)
ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
"ДЕЙСТВИЕ_НЕОБЕСПЕЧИВАТЬ",
Элементы.Список,
ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПереданРанее(Команда)
ОбеспечениеВДокументахКлиент.ВыполнитьДействиеВСпискеЗаказовРазныхТипов(
"ДЕЙСТВИЕ_ПЕРЕДАНРАНЕЕ",
Элементы.Список,
ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"),
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусНеСогласован(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусКИсполнению(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура УстановитьСтатусЗакрыт(Команда)
Возврат;
КонецПроцедуры
&НаКлиенте
Процедура ОформитьЗаказПереработчику(Команда)
Возврат;
КонецПроцедуры
#Область ПодключаемыеКоманды
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодсказкиБизнесСетьНажатие(Команда)
ТорговыеПредложенияКлиент.ОткрытьФормуПодсказок(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПроверитьВыполнениеЗаданияРаспределенияЗапасовПоЗаказам()
ОбеспечениеВДокументахКлиент.ПроверитьВыполнениеЗаданияРаспределенияЗапасовПоЗаказам(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ВидимостьДоступность
&НаСервере
Процедура УстановитьВидимостьПриСозданииНаСервере()
ЕстьДоступНаИзменение = ПравоДоступа("Изменение", Метаданные.Документы.ЗаказПереработчику2_5);
ПравоДоступаДобавление = ПравоДоступа("Добавление", Метаданные.Документы.ЗаказПереработчику2_5);
ИспользоватьРасширенноеОбеспечениеПотребностей = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенноеОбеспечениеПотребностей");
ЭлементыФормыНевидимые = Новый Массив;
ЭлементыФормыПоПравам = Новый Массив;
ЭлементыФормыПоПравам.Добавить("СписокСкопировать");
ЭлементыФормыПоПравам.Добавить("СписокКонтекстноеМенюСкопировать");
ЭлементыФормыПоПравам.Добавить("СтраницаРаспоряженияНаОформление");
Если ИспользоватьРасширенноеОбеспечениеПотребностей Тогда
ЭлементыФормыПоПравам.Добавить("СписокГруппаСоздатьНовый");
ЭлементыФормыПоПравам.Добавить("ФормированиеЗаказовПереработчикамПоПотребностям");
ЭлементыФормыНевидимые.Добавить("СписокСоздать");
ЭлементыФормыНевидимые.Добавить("СписокКонтекстноеМенюСоздать");
Иначе
ЭлементыФормыПоПравам.Добавить("СписокСоздать");
ЭлементыФормыПоПравам.Добавить("СписокКонтекстноеМенюСоздать");
ЭлементыФормыНевидимые.Добавить("СписокГруппаСоздатьНовый");
ЭлементыФормыНевидимые.Добавить("ФормированиеЗаказовПереработчикамПоПотребностям");
КонецЕсли;
Для Каждого ТекЭлемент Из ЭлементыФормыНевидимые Цикл
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, ТекЭлемент, "Видимость", Ложь);
КонецЦикла;
Для Каждого ТекЭлемент Из ЭлементыФормыПоПравам Цикл
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
ТекЭлемент,
"Видимость",
ПравоДоступаДобавление);
КонецЦикла;
Элементы.Страницы.ОтображениеСтраниц =
?(ПолучитьФункциональнуюОпцию("ИспользоватьПроизводство")
И ПравоДоступаДобавление,
ОтображениеСтраницФормы.ЗакладкиСверху,
ОтображениеСтраницФормы.Нет);
Элементы.СписокОтгрузитьЗаказ.Видимость = ЕстьДоступНаИзменение;
Элементы.СписокРезервироватьЗаказ.Видимость = ЕстьДоступНаИзменение;
Элементы.СписокКОбеспечениюЗаказ.Видимость = ЕстьДоступНаИзменение;
Элементы.СписокРезервироватьПоМереПоступленияЗаказ.Видимость = ЕстьДоступНаИзменение;
Элементы.СписокНеОбеспечиватьЗаказ.Видимость = ЕстьДоступНаИзменение;
Элементы.СписокПереданРанее.Видимость = ЕстьДоступНаИзменение;
КонецПроцедуры
#КонецОбласти
#Область ШтрихкодыИТорговоеОборудование
&НаКлиенте
Функция СсылкаНаЭлементСпискаПоШтрихкоду(Штрихкод)
Менеджеры = Новый Массив();
Менеджеры.Добавить(ПредопределенноеЗначение("Документ.ЗаказПереработчику2_5.ПустаяСсылка"));
Возврат ШтрихкодированиеПечатныхФормКлиент.ПолучитьСсылкуПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры);
КонецФункции
&НаКлиенте
Процедура ОбработатьШтрихкоды(Данные)
МассивСсылок = СсылкаНаЭлементСпискаПоШтрихкоду(Данные.Штрихкод);
Если МассивСсылок.Количество() > 0 Тогда
Ссылка = МассивСсылок[0];
Элементы.Список.ТекущаяСтрока = Ссылка;
ПоказатьЗначение(,МассивСсылок[0]);
Иначе
ШтрихкодированиеПечатныхФормКлиент.ОбъектНеНайден(Данные.Штрихкод);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область УстановкаДействий
&НаКлиенте
Процедура ВыполнитьДействиеВСпискеЗаказовРазныхТиповЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
ИначеЕсли Результат.Статус = "Ошибка" Тогда
ПоказатьПредупреждение(, Результат.КраткоеПредставлениеОшибки);
Иначе
ЗаказыДляПроверкиЗаданияРаспределенияЗапасов.ЗагрузитьЗначения(ДополнительныеПараметры.Заказы);
ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗаданияРаспределенияЗапасовПоЗаказам", 1, Истина);
РезультатВыполненияДействий = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ОбеспечениеВДокументахКлиент.СообщитьОРезультатахВыполненияДействийВСпискеЗаказов(РезультатВыполненияДействий);
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВыполнитьДействиеВСпискеЗаказов(ВсеЗаказы, УникальныйИдентификатор)
ПараметрыВстраивания = Документы.ЗаказПереработчику2_5.ДоступныеОстаткиПараметрыВстраивания();
НуженВопрос = ОбеспечениеВДокументахСервер.НуженВопросОбОтгрузкеОднойДатой(ПараметрыВстраивания, ВсеЗаказы);
ПараметрыЗаполнения = Неопределено;
Результат = Новый Структура();
Результат.Вставить("НуженВопрос", НуженВопрос);
ДатаОтгрузкиНовыхСтрок = НачалоДня(ТекущаяДатаСеанса());
Результат.Вставить("ДатаОтгрузкиНовыхСтрок", ДатаОтгрузкиНовыхСтрок);
Если Не Результат.НуженВопрос Тогда
ПараметрыПроцедуры = Новый Структура();
ПараметрыПроцедуры.Вставить("ПараметрыЗаполнения", ПараметрыЗаполнения);
ПараметрыПроцедуры.Вставить("Заказы", ВсеЗаказы);
ПараметрыПроцедуры.Вставить("КодДействия", "ДЕЙСТВИЕ_ОТГРУЗИТЬ");
ПараметрыПроцедуры.Вставить("ПараметрыВстраивания", Неопределено);
Результат = ВыполнитьДействиеДляЗаказовПослеВопросаФоновымЗаданием(ПараметрыПроцедуры, УникальныйИдентификатор);
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция ВыполнитьДействиеДляЗаказовПослеВопросаФоновымЗаданием(ПараметрыПроцедуры, УникальныйИдентификатор)
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Выполнение действия обеспечения в списке заказов'");
Возврат ДлительныеОперации.ВыполнитьФункцию(
ПараметрыВыполнения,
"Документы.ЗаказПереработчику2_5.ВыполнитьДействиеДляЗаказовПослеВопроса",
ПараметрыПроцедуры);
КонецФункции
&НаКлиенте
Процедура ПослеВопросаВСпискеЗаказов(Ответ, ПараметрыДляКопирования) Экспорт
ПараметрыПроцедуры = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ПараметрыДляКопирования);
Форма = ПараметрыДляКопирования.Форма;
ПараметрыПроцедуры.Удалить("Форма");
ПараметрыЗаполнения = Новый Структура();
ПараметрыЗаполнения.Вставить("СнятьФлагОтгружатьОднойДатой", Ответ = "КодВозвратаДиалога_Да");
ПараметрыЗаполнения.Вставить("ЗаполнитьДатуОтгрузкиОднойДатой", Ответ = "КодВозвратаДиалога_Нет");
ПараметрыПроцедуры.Вставить("ПараметрыЗаполнения", ПараметрыЗаполнения);
РезультатВыполненияДействий = ВыполнитьДействиеДляЗаказовПослеВопросаФоновымЗаданием(
ПараметрыПроцедуры, УникальныйИдентификатор);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура("Форма,Заказы",
Форма, ПараметрыПроцедуры.Заказы);
ДлительныеОперацииКлиент.ОжидатьЗавершение(РезультатВыполненияДействий,
Новый ОписаниеОповещения("ПослеВопросаВСпискеЗаказовЗавершение", ОбеспечениеВДокументахКлиент, ДополнительныеПараметры),
ПараметрыОжидания);
КонецПроцедуры
#КонецОбласти
#Область Прочее
&НаКлиенте
Функция ПараметрыЖурнала()
СтруктураБыстрогоОтбора = Новый Структура;
СтруктураБыстрогоОтбора.Вставить("Подразделение", ОтборПодразделение);
СтруктураБыстрогоОтбора.Вставить("Менеджер", ОтборМенеджер);
ПараметрыЖурнала = Новый Структура;
ПараметрыЖурнала.Вставить("СтруктураБыстрогоОтбора", СтруктураБыстрогоОтбора);
ПараметрыЖурнала.Вставить("ИмяРабочегоМеста", "ЖурналДокументовПередачиВПереработку2_5");
ПараметрыЖурнала.Вставить("КлючНазначенияФормы", "ДокументыПередачиВПереработку");
ПараметрыЖурнала.Вставить("СинонимЖурнала", НСтр("ru = 'Документы передачи в переработку'"));
Возврат ПараметрыЖурнала;
КонецФункции
#КонецОбласти
#КонецОбласти