Структура предприятия / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	ВариантОбособленногоУчетаТоваров = Перечисления.ВариантыОбособленногоУчетаТоваров.НеВедется;

	Если ЭтоНовый() Тогда
		Статус = Перечисления.СтатусыОрганизацийПодразделений.Действует;
	КонецЕсли;
	
КонецПроцедуры

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда 
		Возврат;
	КонецЕсли;
	
	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	
	Если ЭтоНовый() Тогда
		
		ТекущаяСсылка = Справочники.СтруктураПредприятия.ПолучитьСсылку();
		УстановитьСсылкуНового(ТекущаяСсылка);
		
		
	Иначе
		
		
		ТекущаяСсылка = Ссылка;
		
	КонецЕсли;
	
	ДополнительныеСвойства.Вставить("Ссылка", ТекущаяСсылка);
	
	// Установка реквизита РеквизитДопУпорядочивания
	Если НЕ Отказ И РеквизитДопУпорядочивания = 0 Тогда
		
		УстановитьПривилегированныйРежим(Истина);
		
		Запрос = Новый Запрос(
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	Таблица.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания
		|ИЗ
		|	Справочник.СтруктураПредприятия КАК Таблица
		|
		|УПОРЯДОЧИТЬ ПО
		|	РеквизитДопУпорядочивания УБЫВ");
		
		Выборка = Запрос.Выполнить().Выбрать();
		Выборка.Следующий();
		
		РеквизитДопУпорядочивания = ?(Не ЗначениеЗаполнено(Выборка.РеквизитДопУпорядочивания), 1, Выборка.РеквизитДопУпорядочивания + 1);
		
	КонецЕсли;
	
	Если Статус = Перечисления.СтатусыОрганизацийПодразделений.НеДействует И Не ЭтоНовый() Тогда
		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("Ссылка", ТекущаяСсылка);
		Запрос.Текст =
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	СтруктураПредприятия.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
		|ГДЕ
		|	СтруктураПредприятия.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыОрганизацийПодразделений.Действует)
		|	И СтруктураПредприятия.Родитель = &Ссылка";
		
		Если Не Запрос.Выполнить().Пустой() Тогда 
			ОбщегоНазначения.СообщитьПользователю(
				НСтр("ru = 'Существуют подчиненные действующие подразделения. Статус ""не действует"" не может быть установлен.'"),
				,
				"Статус",
				,
				Отказ);
		КонецЕсли;     
	КонецЕсли;
	Если ЗначениеЗаполнено(Родитель) 
		И Статус = Перечисления.СтатусыОрганизацийПодразделений.Действует
		И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Родитель, "Статус") = Перечисления.СтатусыОрганизацийПодразделений.НеДействует Тогда

		ОбщегоНазначения.СообщитьПользователю(
			НСтр("ru = 'У родительского подразделения установлен статус ""не действует"". Статус ""действует"" не может быть установлен.'"),
			,
			"Статус",
			,
			Отказ);
	КонецЕсли;
	
	ОбщегоНазначенияУТ.ПодготовитьДанныеДляСинхронизацииКлючей(ЭтотОбъект, ПараметрыСинхронизацииКлючей());	
	
КонецПроцедуры

Процедура ПриЗаписи(Отказ)
	
	Если ОбменДанными.Загрузка Тогда 
		Возврат;
	КонецЕсли;
	
	
	
	ОбщегоНазначенияУТ.СинхронизироватьКлючи(ЭтотОбъект);	
	
КонецПроцедуры


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

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

Функция ПараметрыСинхронизацииКлючей()
	
	Результат = Новый Соответствие;
	
	Результат.Вставить("Справочник.ВидыЗапасов", "ПометкаУдаления");
	Результат.Вставить("Справочник.КлючиАналитикиУчетаНоменклатуры", "ПометкаУдаления");
	Результат.Вставить("Справочник.КлючиРеестраДокументов", "ПометкаУдаления,Наименование");
	
	Возврат Результат;
	
КонецФункции


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

//++ Устарело_Производство21


//-- Устарело_Производство21

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

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

#КонецЕсли

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