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