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