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