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