Номенклатура, продаваемая совместно / Форма записи / Модуль формы

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

&НаКлиенте
Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ

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

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Запись, ЭтотОбъект);

	Если Запись.ИсходныйКлючЗаписи.Пустой() Тогда
		Запись.ДобавленоАвтоматически = Ложь;
	КонецЕсли;
	
	Если Запись.ДобавленоАвтоматически Тогда
		ТолькоПросмотр = Истина;
	Иначе
		ПриЧтенииСозданииНаСервере();
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	Если Не Запись.ДобавленоАвтоматически Тогда
		ПриЧтенииСозданииНаСервере();
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура НоменклатураПредпосылкаПриИзменении(Элемент)
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", Запись.ХарактеристикаПредпосылка);

	СтруктураСтроки = Новый Структура;
	СтруктураСтроки.Вставить("Номенклатура", Запись.НоменклатураПредпосылка);
	СтруктураСтроки.Вставить("Характеристика", Запись.ХарактеристикаПредпосылка);
	СтруктураСтроки.Вставить("ХарактеристикиИспользуются", ПредпосылкаХарактеристикиИспользуются);
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(СтруктураСтроки, СтруктураДействий, КэшированныеЗначения);

	Запись.НоменклатураПредпосылка                 = СтруктураСтроки.Номенклатура;
	Запись.ХарактеристикаПредпосылка               = СтруктураСтроки.Характеристика;
	ПредпосылкаХарактеристикиИспользуются          = СтруктураСтроки.ХарактеристикиИспользуются;
	Элементы.ХарактеристикаПредпосылка.Доступность = ПредпосылкаХарактеристикиИспользуются;
	
КонецПроцедуры

&НаКлиенте
Процедура НоменклатураСледствиеПриИзменении(Элемент)
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", Запись.ХарактеристикаСледствие);

	СтруктураСтроки = Новый Структура;
	СтруктураСтроки.Вставить("Номенклатура", Запись.НоменклатураСледствие);
	СтруктураСтроки.Вставить("Характеристика", Запись.ХарактеристикаСледствие);
	СтруктураСтроки.Вставить("ХарактеристикиИспользуются", СледствиеХарактеристикиИспользуются);
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(СтруктураСтроки, СтруктураДействий, КэшированныеЗначения);

	Запись.НоменклатураСледствие        = СтруктураСтроки.Номенклатура;
	Запись.ХарактеристикаСледствие      = СтруктураСтроки.Характеристика;
	СледствиеХарактеристикиИспользуются = СтруктураСтроки.ХарактеристикиИспользуются;
	Элементы.ХарактеристикаСледствие.Доступность = СледствиеХарактеристикиИспользуются;
	
КонецПроцедуры

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

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

#Область Прочее

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	ПредпосылкаХарактеристикиИспользуются = Справочники.Номенклатура.ХарактеристикиИспользуются(Запись.НоменклатураПредпосылка);
	Элементы.ХарактеристикаПредпосылка.Доступность = ПредпосылкаХарактеристикиИспользуются;
	
	СледствиеХарактеристикиИспользуются = Справочники.Номенклатура.ХарактеристикиИспользуются(Запись.НоменклатураСледствие);
	Элементы.ХарактеристикаСледствие.Доступность = СледствиеХарактеристикиИспользуются;
	
КонецПроцедуры

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

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

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