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