Панель администрирования КА / Производство / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем ОбновитьИнтерфейс;

#КонецОбласти

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	// Значения реквизитов формы
	СоставНабораКонстантФормы    = ОбщегоНазначенияУТ.ПолучитьСтруктуруНабораКонстант(НаборКонстант);
	ВнешниеРодительскиеКонстанты = НастройкиСистемыПовтИсп.ПолучитьСтруктуруРодительскихКонстант(СоставНабораКонстантФормы);
	
	ВнешниеРодительскиеКонстанты.Вставить("ИспользоватьОбособленноеОбеспечениеЗаказов");
	ВнешниеРодительскиеКонстанты.Вставить("НоваяАрхитектураВзаиморасчетов");
	ВнешниеРодительскиеКонстанты.Вставить("ФормироватьФинансовыйРезультат");
	
	РежимРаботы = Новый Структура;
	
	РежимРаботы.Вставить("СоставНабораКонстантФормы",    Новый ФиксированнаяСтруктура(СоставНабораКонстантФормы));
	РежимРаботы.Вставить("ВнешниеРодительскиеКонстанты", Новый ФиксированнаяСтруктура(ВнешниеРодительскиеКонстанты));
	
	РежимРаботы = Новый ФиксированнаяСтруктура(РежимРаботы);
	
	РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
		
	Элементы.ОперацияКакРаспоряжениеВыработки.Видимость = Ложь;
	
	
	УстановитьВидимостьЭлементовФормы();
	НастроитьЗависимыеЭлементыФормы();
	НастройкиСистемыЛокализация.ПриСозданииНаСервере_Производство(ЭтаФорма);
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	ОбновитьИнтерфейсПрограммы();
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия <> "Запись_НаборКонстант" Тогда
		Возврат; // такие событие не обрабатываются
	КонецЕсли;
	
	// Если это изменена константа, расположенная в другой форме и влияющая на значения констант этой формы,
	// то прочитаем значения констант и обновим элементы этой формы.
	Если РежимРаботы.ВнешниеРодительскиеКонстанты.Свойство(Источник)
		
		ИЛИ (ТипЗнч(Параметр) = Тип("Структура")
			И ОбщегоНазначенияУТКлиентСервер.ПолучитьОбщиеКлючиСтруктур(
				Параметр, РежимРаботы.ВнешниеРодительскиеКонстанты).Количество() > 0)
				
		ИЛИ (ТипЗнч(Источник) = Тип("Строка")
			И Найти(Источник, "ИспользоватьУправлениеПроизводством") > 0)
		
		ИЛИ (ТипЗнч(Источник) = Тип("Строка")
			И Найти(Источник, "ИспользоватьПартионныйУчет") > 0)
		
		ИЛИ (ТипЗнч(Источник) = Тип("Строка")
			И Найти(Источник, "ПартионныйУчетВерсии22") > 0)
			
		ИЛИ (ТипЗнч(Источник) = Тип("Строка")
			И Найти(Источник, "ИспользоватьНесколькоВидовЦен") > 0)
		
			
		ИЛИ (ТипЗнч(Источник) = Тип("Строка")
			И Найти(Источник, "ИспользоватьДополнительныеРеквизитыИСведения") > 0) Тогда
		
		ЭтаФорма.Прочитать();
		НастроитьЗависимыеЭлементыФормы();
		
	КонецЕсли;
	
	Если Источник = ЭтаФорма Тогда
		Если Параметр.Свойство("Элемент") Тогда
			Подключаемый_ПриИзмененииРеквизита(Параметр.Элемент, Истина, Истина);
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ЗначенияПоУмолчанию = Новый Структура(
		"МетодикаУправленияПроизводством,ВариантОбособленияМатериаловВПроизводстве,ДинамическаяСтруктураЗаказовНаПроизводство");
	НастройкиСистемыЛокализация.ПриЧтенииНаСервере_Производство(ЭтаФорма);
	
	ОбщегоНазначенияУТКлиентСервер.СохранитьЗначенияДоИзменения(ЭтаФорма);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура МетодикаУправленияПроизводствомПриИзменении(Элемент)
	
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура НеЗакрыватьЗаказыНаПроизводствоБезПолнойОтработкиПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьИнтервалПланированияЧасПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПараметрыНазначенияСпецификацийПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьАналогиМатериаловПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьСтатусыАктовВыполненныхВнутреннихРаботПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьСтатусыДвиженийПродукцииИМатериаловПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура РасчетГрафикаПроизводстваИспользованиеПриИзменении(Элемент)
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантОбособленияПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент, Истина);
КонецПроцедуры

&НаКлиенте
Процедура ВариантОбособленияОчистка(Элемент, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

&НаКлиенте
Процедура ВалютаРасценокВидовРаботПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ВидЦеныПлановойСтоимостиЗатратПриИзменении(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьВидыТехнологическихОперацийПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьКонтрольВыполненияОперацийПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура КонтролироватьЗавершениеОперацийПриЗакрытииЭтаповПроизводстваПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ОперацияКакРаспоряжениеВыработкиПриИзменении(Элемент)
	
	Возврат;
	
КонецПроцедуры

&НаКлиенте
Процедура УчетТрудозатратВРазрезеСотрудниковПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ДатаНачалаВеденияУчетаТрудозатратПоСотрудникамПриИзменении(Элемент)
	
	НаборКонстант.ДатаНачалаВеденияУчетаТрудозатратПоСотрудникам = НачалоМесяца(НаборКонстант.ДатаНачалаВеденияУчетаТрудозатратПоСотрудникам);
	
	Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантХраненияОперацийОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	
КонецПроцедуры

&НаКлиенте
Процедура АналитическийУчетПоГруппамПродукцииПриИзменении(Элемент)
	
	Подключаемый_ПриИзмененииРеквизита(Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриИзмененииРеквизита(Элемент)
	Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьНаборыВПроизводствеПриИзменении(Элемент)
	
	НаборКонстант.ИсточникСоставаНаборовВПроизводстве = ?(ИспользоватьНаборыВПроизводстве,
		Элементы.ИсточникСоставаНаборовВПроизводстве.СписокВыбора[0].Значение,
		ПредопределенноеЗначение("Перечисление.ИсточникиСоставаНаборовВПроизводстве.НеИспользовать"));
	
	Подключаемый_ПриИзмененииРеквизита(Элементы.ИсточникСоставаНаборовВПроизводстве);
	
КонецПроцедуры

&НаКлиенте
Процедура ИсточникСоставаНаборовВПроизводствеПриИзменении(Элемент)
	
	
	Возврат; // пустой обработчик
	
КонецПроцедуры

&НаКлиенте
Процедура ИсточникСоставаНаборовВПроизводствеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	
	Возврат; // пустой обработчик
	
КонецПроцедуры

&НаКлиенте
Процедура ДинамическаяСтруктураЗаказовНаПроизводствоПриИзменении(Элемент)
	

	Возврат; // пустой обработчик
	
КонецПроцедуры 

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура РасчетГрафикаПроизводстваРасписание(Команда)
	
	Возврат;
	
КонецПроцедуры


&НаКлиенте
Процедура ИспользоватьПараметрыНазначенияСпецификацийНастройка(Команда)
	
	
	Возврат; // в УТ и КА обработчик пустой
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиРасчетаСтруктурыЗаказаНаПроизводство(Команда)
	
	
	Возврат; // в УТ и КА обработчик пустой

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

#Область Клиент

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизита(Элемент, ОбновлятьИнтерфейс = Истина, ВнешнееИзменение = Ложь)
	
	Если НЕ ВнешнееИзменение Тогда
		НастройкиСистемыКлиентЛокализация.ПриИзмененииРеквизита_Производство(
			Элемент,
			ЭтаФорма);
	КонецЕсли;
	ИмяЭлемента = Элемент.Имя;
	Если ЗначениеЗаполнено(ИмяЭлемента) Тогда
		КонстантаИмя = ПриИзмененииРеквизитаСервер(ИмяЭлемента);
		
		Если ОбновлятьИнтерфейс Тогда
			ОбновитьИнтерфейс = Истина;
			ПодключитьОбработчикОжидания("ОбновитьИнтерфейсПрограммы", 2, Истина);
		КонецЕсли;
		
		Если КонстантаИмя <> "" Тогда
			Оповестить("Запись_НаборКонстант", Новый Структура, КонстантаИмя);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьИнтерфейсПрограммы()
	
	Если ОбновитьИнтерфейс = Истина Тогда
		ОбновитьИнтерфейс = Ложь;
		ОбщегоНазначенияКлиент.ОбновитьИнтерфейсПрограммы();
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ВызовСервера

&НаСервере
Функция ПриИзмененииРеквизитаСервер(ИмяЭлемента)
	
	РеквизитПутьКДанным = Элементы[ИмяЭлемента].ПутьКДанным;
	
	КонстантаИмя = СохранитьЗначениеРеквизита(РеквизитПутьКДанным);
	
	НастроитьЗависимыеЭлементыФормы(РеквизитПутьКДанным);
	
	ОбновитьПовторноИспользуемыеЗначения();
	
	Возврат КонстантаИмя;
	
КонецФункции

#КонецОбласти

#Область Сервер

&НаСервере
Функция СохранитьЗначениеРеквизита(РеквизитПутьКДанным)
	
	// Сохранение значений реквизитов, не связанных с константами напрямую (в отношении один-к-одному).
	Если РеквизитПутьКДанным = "" Тогда
		Возврат "";
	КонецЕсли;
	
	// Определение имени константы.
	КонстантаИмя = "";
	Если СтрНачинаетсяС(НРег(РеквизитПутьКДанным), НРег("НаборКонстант.")) Тогда
		// Если путь к данным реквизита указан через "НаборКонстант".
		ЧастиИмени = СтрРазделить(РеквизитПутьКДанным, ".");
		КонстантаИмя = ЧастиИмени[1];		
	КонецЕсли;
		
	Если РеквизитПутьКДанным = "УчетТрудозатратВРазрезеСотрудников" Тогда
		КонстантаИмя = "ДатаНачалаВеденияУчетаТрудозатратПоСотрудникам";
	КонецЕсли;
	
		
	// Сохранения значения константы.
	Если КонстантаИмя <> "" Тогда
		КонстантаМенеджер = Константы[КонстантаИмя];
		КонстантаЗначение = НаборКонстант[КонстантаИмя];
		
		Если КонстантаМенеджер.Получить() <> КонстантаЗначение Тогда
			КонстантаМенеджер.Установить(КонстантаЗначение);
		КонецЕсли;
		
		Если НастройкиСистемыПовтИсп.ЕстьПодчиненныеКонстанты(КонстантаИмя, КонстантаЗначение)
			ИЛИ СтрНайти(КонстантаИмя, "ИспользоватьПроизводство") > 0
			ИЛИ СтрНайти(КонстантаИмя, "ИспользоватьУправлениеПроизводством") > 0
			ИЛИ КонстантаИмя = "ИспользоватьЗаказыПереработчикам2_5" Тогда
			ЭтаФорма.Прочитать();
		КонецЕсли;
		
	КонецЕсли;
	
	НастройкиСистемыЛокализация.СохранитьЗначениеРеквизита_Производство(КонстантаИмя, КонстантаЗначение, ЭтаФорма);
	
	Возврат КонстантаИмя
	
КонецФункции

#КонецОбласти

#Область Константы

&НаСервере
Функция ИспользуетсяПроизводство()
	
	Возврат НаборКонстант.ИспользоватьПроизводство;
	
КонецФункции

&НаСервере
Функция ИспользуетсяПроизводство22()
	
	Возврат НаборКонстант.ИспользоватьУправлениеПроизводством2_2;
	
КонецФункции


#КонецОбласти

#Область НастройкаЭлементов

&НаСервере
Процедура УстановитьВидимостьЭлементовФормы()
	
	УправлениеПредприятием = ПолучитьФункциональнуюОпцию("УправлениеПредприятием");
	
	Элементы.ГруппаЗаказыНаПроизводство.Видимость = УправлениеПредприятием;
	Элементы.ОбособлениеМатериаловВПроизводствеКА.Видимость = НЕ УправлениеПредприятием;
	Элементы.ОбособлениеМатериаловВПроизводствеУП.Видимость = УправлениеПредприятием;
	Элементы.ГруппаИспользоватьПараметрыНазначенияСпецификаций.Видимость = УправлениеПредприятием;
	Элементы.ГруппаИспользоватьНаборыВПроизводстве.Видимость = УправлениеПредприятием;
	Элементы.ГруппаИспользоватьАналогиМатериалов.Видимость = УправлениеПредприятием;
	Элементы.ГруппаОперации.Видимость = УправлениеПредприятием;
	Элементы.ГруппаИспользоватьАналогиМатериалов.Видимость = УправлениеПредприятием;
	Элементы.ГруппаИспользоватьПараметрыНазначенияСпецификаций.Видимость = УправлениеПредприятием;
	Элементы.ГруппаИспользоватьНаборыВПроизводстве.Видимость = УправлениеПредприятием И ПолучитьФункциональнуюОпцию("ИспользоватьНаборы");
	Элементы.ГруппаВариантХраненияТехнологическихОпераций.Видимость = Ложь;
	
КонецПроцедуры

&НаСервере
Процедура НастроитьЗависимыеЭлементыФормы(РеквизитПутьКДанным = "")
	
	// ИспользоватьПроизводство, ИспользоватьУправлениеПроизводством
	Если РеквизитПутьКДанным = "" 
		ИЛИ СтрНайти(РеквизитПутьКДанным, "ИспользоватьПроизводство") > 0
		ИЛИ СтрНайти(РеквизитПутьКДанным, "ИспользоватьУправлениеПроизводством") > 0 Тогда
		
		ИспользоватьОбособленноеОбеспечениеЗаказов = Константы.ИспользоватьОбособленноеОбеспечениеЗаказов.Получить();
		Элементы.ВариантОбособленияМатериаловВПроизводствеКА.Видимость = ИспользоватьОбособленноеОбеспечениеЗаказов;
		//++ Устарело_Переработка24
		Элементы.ГруппаВариантОбособленияМатериаловВПереработке.Видимость = ИспользоватьОбособленноеОбеспечениеЗаказов;
		//-- Устарело_Переработка24
		Элементы.ГруппаОбособлениеМатериаловУПереработчика2_5.Видимость = ИспользоватьОбособленноеОбеспечениеЗаказов;
		
		Элементы.ГруппаУчетЗатрат.Доступность = ИспользуетсяПроизводство();
		
		Элементы.ВариантОбособленияМатериаловВПроизводствеКА.Доступность = НаборКонстант.ИспользоватьПроизводство;
		
		ПартионныйУчетВерсии22 = РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22();
		Элементы.ИспользоватьПроизводство22.Доступность = ПартионныйУчетВерсии22;
		
		Элементы.ГруппаПредупреждениеИспользованиеПроизводства22.Видимость =
			НЕ ИспользуетсяПроизводство22() И НЕ ПартионныйУчетВерсии22;
			
		Элементы.ИспользоватьПараметрыНазначенияСпецификаций.Доступность = Ложь;
		
		Элементы.ИспользоватьСтатусыАктовВыполненныхВнутреннихРабот.Видимость = ИспользуетсяПроизводство22();
		Элементы.ИспользоватьСтатусыДвиженийПродукцииИМатериалов.Видимость = ИспользуетсяПроизводство22();
		
	КонецЕсли;
	


	
	// Обновление вариантов обособления
	Если РеквизитПутьКДанным = ""
		ИЛИ РеквизитПутьКДанным = "НаборКонстант.ДинамическаяСтруктураЗаказовНаПроизводство" Тогда
			
		НаправленияДеятельностиИспользуются = Константы.ФормироватьФинансовыйРезультат.Получить();
		
		
		//++ Устарело_Переработка24
		
		// Переработка на стороне 2.4
		ЭлементСпискаВыбора = Элементы.ВариантОбособленияМатериаловВПереработке.СписокВыбора.НайтиПоЗначению(
			ПредопределенноеЗначение("Перечисление.ВариантыОбособленияПриПередачеВПереработку.НаправлениеДеятельности"));
		
		Если НаправленияДеятельностиИспользуются И ЭлементСпискаВыбора = Неопределено Тогда
			Элементы.ВариантОбособленияМатериаловВПереработке.СписокВыбора.Вставить(0,
				ПредопределенноеЗначение("Перечисление.ВариантыОбособленияПриПередачеВПереработку.НаправлениеДеятельности"));
		ИначеЕсли Не НаправленияДеятельностиИспользуются И ЭлементСпискаВыбора <> Неопределено Тогда
			Элементы.ВариантОбособленияМатериаловВПереработке.СписокВыбора.Удалить(ЭлементСпискаВыбора);
		КонецЕсли;
		//-- Устарело_Переработка24
		
		// Переработка на стороне
		ЭлементСпискаВыбора = Элементы.ВариантОбособленияВПередачеПереработчику2_5.СписокВыбора.НайтиПоЗначению(
			ПредопределенноеЗначение("Перечисление.ВариантыОбособленияПриПередачеВПереработку.НаправлениеДеятельности"));
		
		Если НаправленияДеятельностиИспользуются И ЭлементСпискаВыбора = Неопределено Тогда
			Элементы.ВариантОбособленияВПередачеПереработчику2_5.СписокВыбора.Вставить(0,
				ПредопределенноеЗначение("Перечисление.ВариантыОбособленияПриПередачеВПереработку.НаправлениеДеятельности"));
		ИначеЕсли Не НаправленияДеятельностиИспользуются И ЭлементСпискаВыбора <> Неопределено Тогда
			Элементы.ВариантОбособленияВПередачеПереработчику2_5.СписокВыбора.Удалить(ЭлементСпискаВыбора);
		КонецЕсли;
		
	КонецЕсли;
	
	
	//ВалютаРасценокВидовРабот
	Если РеквизитПутьКДанным = "НаборКонстант.ВалютаРасценокВидовРабот" ИЛИ РеквизитПутьКДанным = "" Тогда
		ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
			Элементы.ВалютаРасценокВидовРабот, ЗначениеЗаполнено(НаборКонстант.ВалютаРасценокВидовРабот));
	КонецЕсли;
	
	// плановые виды цен
	Если СтрНайти(РеквизитПутьКДанным, "ИспользоватьНесколькоВидовЦен") > 0
		ИЛИ РеквизитПутьКДанным = "" Тогда
		
		Элементы.ГруппаПояснениеПлановогоВидаЦены.Видимость = Не НаборКонстант.ИспользоватьНесколькоВидовЦен;
		Элементы.ПлановыеЦеныМатериаловРабот.Доступность = НаборКонстант.ИспользоватьНесколькоВидовЦен;
		
	КонецЕсли;
	
	Если РеквизитПутьКДанным = "" 
		Или СтрНайти(РеквизитПутьКДанным, "ИспользоватьПроизводство") > 0
		Или СтрНайти(РеквизитПутьКДанным, "ИспользоватьНесколькоВидовЦен") > 0 Тогда
		Элементы.ГруппаВалютаПлановойСтоимости.Видимость = 
			НаборКонстант.ИспользоватьПроизводство И НаборКонстант.ИспользоватьНесколькоВидовЦен;
	КонецЕсли;
	
	//ВалютаПлановойСебестоимостиПродукции
	Если РеквизитПутьКДанным = "НаборКонстант.ВалютаПлановойСебестоимостиПродукции" ИЛИ РеквизитПутьКДанным = "" Тогда
		ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
			Элементы.ВалютаПлановойСебестоимостиВыпуска, ЗначениеЗаполнено(НаборКонстант.ВалютаПлановойСебестоимостиПродукции));
	КонецЕсли;
	
	// АналитическийУчетПоГруппамПродукции
	Если РеквизитПутьКДанным = "НаборКонстант.АналитическийУчетПоГруппамПродукции"
		ИЛИ СтрНайти(РеквизитПутьКДанным, "ИспользоватьПроизводство") > 0
		ИЛИ СтрНайти(РеквизитПутьКДанным, "ИспользоватьУправлениеПроизводством") > 0
		ИЛИ РеквизитПутьКДанным = "" Тогда
		
		ЗначениеКонстанты = НаборКонстант.АналитическийУчетПоГруппамПродукции;
		ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(Элементы.АналитическийУчетПоГруппамПродукции, ЗначениеКонстанты);
		
		Элементы.ГруппаАналитическийУчетПоГруппамПродукции.Доступность = ИспользуетсяПроизводство();
		Элементы.ГруппаКомментарийВидыПродукции.Видимость = НЕ ИспользуетсяПроизводство();
		
	КонецЕсли;
	
	#Область ПроизводствоНаСтороне
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5"
		Или РеквизитПутьКДанным = "НаборКонстант.НоваяАрхитектураВзаиморасчетов"
		Или РеквизитПутьКДанным = "" Тогда
			
		ПартионныйУчетВерсии22 = РасчетСебестоимостиПовтИсп.ПартионныйУчетВерсии22();
		Элементы.ИспользоватьПроизводствоНаСтороне2_5.Доступность =
			ПартионныйУчетВерсии22
			И НаборКонстант.НоваяАрхитектураВзаиморасчетов;
		
		Элементы.ГруппаКомментарийИспользоватьПроизводствоНаСтороне2_5.Видимость =
			Не ПартионныйУчетВерсии22
			Или Не НаборКонстант.НоваяАрхитектураВзаиморасчетов;
		
		Если Не ПартионныйУчетВерсии22
			Или Не НаборКонстант.НоваяАрхитектураВзаиморасчетов Тогда
			
			ШаблонЗаголовка = НСтр("ru = 'Для использования производства на стороне необходимо включить опции:
									|%1'");
			
			Опции = Новый Массив;
			Если Не ПартионныйУчетВерсии22 Тогда
				Опции.Добавить(НСтр("ru = '- ""Партионный учет версии 2.2"" в разделе ""НСИ и администрирование"" - ""Финансовый результат и контроллинг"".'"));
			КонецЕсли;
			
			Если Не НаборКонстант.НоваяАрхитектураВзаиморасчетов Тогда
				Опции.Добавить(НСтр("ru = '- ""Взаиморасчеты: Онлайн"" в разделе ""НСИ и администрирование"" - ""Казначейство и взаиморасчеты"".'"));
			КонецЕсли;
			
			Элементы.КомментарийИспользоватьПроизводствоНаСтороне2_5.Заголовок =
					СтрШаблон(ШаблонЗаголовка, СтрСоединить(Опции, Символы.ПС));
			
		КонецЕсли;
		
		Элементы.ГруппаПредупреждениеИспользованиеПроизводства22.Видимость =
			Не НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5
			И Не ПартионныйУчетВерсии22;
		
		Элементы.ИспользоватьЗаказыПереработчикам2_5.Доступность =
			НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5;
		
		Элементы.ИспользоватьАктыРасхожденийПослеОтгрузкиПоПередачамПереработчику2_5.Доступность =
			НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5;
		
		Элементы.ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямОтПереработчика2_5.Доступность =
			НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5;
		
		Элементы.ВариантОбособленияУПереработчика2_5.Доступность =
			НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5;
		
		ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
			Элементы.ИспользоватьПроизводствоНаСтороне2_5,
			НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5);
		
	КонецЕсли;
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5"
		Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьЗаказыПереработчикам2_5"
		Или РеквизитПутьКДанным = "НаборКонстант.НоваяАрхитектураВзаиморасчетов"
		Или РеквизитПутьКДанным = "" Тогда
		
		Элементы.ИспользоватьЗаказыПереработчикам2_5.Доступность =
			НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5;
		
		Элементы.ИспользоватьСтатусыЗаказовПереработчикам2_5.Доступность =
			НаборКонстант.ИспользоватьЗаказыПереработчикам2_5;
		
		Элементы.ГруппаКомментарийИспользоватьСтатусыЗаказовПереработчикам2_5.Видимость =
			Ложь;
		
		Элементы.ВариантОбособленияВПередачеПереработчику2_5.Доступность =
			НаборКонстант.ИспользоватьЗаказыПереработчикам2_5;
		
		Элементы.ВариантОбособленияУПереработчика2_5.Доступность =
			НаборКонстант.ИспользоватьЗаказыПереработчикам2_5;
		
	КонецЕсли;
	
	Если РеквизитПутьКДанным = "НаборКонстант.ИспользоватьПроизводствоНаСтороне2_5"
		Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьЗаказыПереработчикам2_5"
		Или РеквизитПутьКДанным = "НаборКонстант.ИспользоватьСтатусыЗаказовПереработчикам2_5"
		Или РеквизитПутьКДанным = "НаборКонстант.НоваяАрхитектураВзаиморасчетов"
		Или РеквизитПутьКДанным = "" Тогда
		
		Элементы.НеЗакрыватьЗаказыПереработчикамБезПолнойОтработки2_5.Доступность =
			НаборКонстант.ИспользоватьСтатусыЗаказовПереработчикам2_5;
		
		Элементы.НеЗакрыватьЗаказыПереработчикамБезПолнойОплаты2_5.Доступность =
			НаборКонстант.ИспользоватьСтатусыЗаказовПереработчикам2_5;
		
		Элементы.ГруппаКомментарийКонтролироватьЗакрытиеЗаказовПереработчикам2_5.Видимость =
			НЕ НаборКонстант.ИспользоватьСтатусыЗаказовПереработчикам2_5;
		
	КонецЕсли;
	
	#КонецОбласти
	
	НастройкиСистемыЛокализация.УстановитьДоступность_Производство(РеквизитПутьКДанным, ЭтаФорма);
	
	ОтображениеПредупрежденияПриРедактировании(РеквизитПутьКДанным);
	
КонецПроцедуры

&НаСервере
Процедура ОтображениеПредупрежденияПриРедактировании(РеквизитПутьКДанным)
	
	СтруктураКонстант = Новый Структура(
		"
		|ИспользоватьЗаказыПереработчикам2_5,
		|ИспользоватьСтатусыАктовВыполненныхВнутреннихРабот,
		|ИспользоватьСтатусыДвиженийПродукцииИМатериалов,
		|ИспользоватьСтатусыЗаказовПереработчикам2_5,
		|АналитическийУчетПоГруппамПродукции");
		
	НастройкиСистемыЛокализация.ОтображениеПредупрежденияПриРедактировании_Производство(СтруктураКонстант);
	
	Для Каждого КлючИЗначение Из СтруктураКонстант Цикл
		ОбщегоНазначенияУТКлиентСервер.ОтображениеПредупрежденияПриРедактировании(
			Элементы[КлючИЗначение.Ключ],
			НаборКонстант[КлючИЗначение.Ключ]);
	КонецЦикла;
	
КонецПроцедуры

#КонецОбласти




#КонецОбласти

Связанные материалы