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