#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(Объект, ЭтотОбъект);
Если Параметры.Свойство("КрупнейшийНалогоплательщик") Тогда
КрупнейшийНалогоплательщик = Параметры.КрупнейшийНалогоплательщик;
КонецЕсли;
УстановитьСвойстваРеквизитовОрганизации();
УстановитьСвойстваУказанияРегиона();
ПредставлениеПодписанта = ПредставлениеПодписанта();
УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
УправлениеКонтактнойИнформацией.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
Для Каждого СтрокаТаблицы Из Объект.Подписанты Цикл
Если Не ЗначениеЗаполнено(СтрокаТаблицы.Пользователь) Тогда
ТекстСообщения = СтрШаблон(
НСтр("ru = 'Заполните поле Пользователь у подписанта %1'"),
СтрокаТаблицы.ПредставлениеПодписанта);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Подписанты", , Отказ);
КонецЕсли;
КонецЦикла;
УправлениеКонтактнойИнформацией.ОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, Объект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ПроверятьУникальность = Истина;
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиентСерверПереопределяемый.ПроверятьУникальностьРегистрацииВНалоговомОргане(ПроверятьУникальность);
Если ПроверятьУникальность Тогда
СуществующаяЗапись = РегистрацияВИФНС();
Если ЗначениеЗаполнено(СуществующаяЗапись) И СуществующаяЗапись <> Объект.Ссылка Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Для данной организации уже существует запись с указанными кодом налогового органа'")
+ ?(СтрДлина(Объект.КПП) < 9, ".", НСтр("ru = ' и КПП.'")));
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПараметрыЗаписи.Вставить("НовыйЭлемент", ТекущийОбъект.Ссылка.Пустая());
Если Не ЗначениеЗаполнено(ТекущийОбъект.Представитель) Тогда
ТекущийОбъект.УполномоченноеЛицоПредставителя = "";
ТекущийОбъект.ДокументПредставителя = "";
ТекущийОбъект.Доверенность = "";
КонецЕсли;
УправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
ПредставлениеПодписанта = ПредставлениеПодписанта();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ПараметрОповещения = Новый Структура("Ссылка, Владелец", Объект.Ссылка, Объект.Владелец);
Оповестить("ИзмененаРегистрацияВНалоговомОргане", ПараметрОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ЗначениеЗаполнено(ВыбранноеЗначение) И ЭтоАдресВременногоХранилища(ВыбранноеЗначение) Тогда
ОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецЕсли;
ПредставлениеПодписанта = ПредставлениеПодписанта();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура КодПриИзменении(Элемент)
КодРегионаРегистрации = КодРегионаПоКодуНалоговогоОргана(Объект.Код);
Объект.КодРегиона = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(КодРегионаРегистрации);
КонецПроцедуры
&НаКлиенте
Процедура КодРегионаПриИзменении(Элемент)
Объект.КодРегиона = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(КодРегионаРегистрации);
КонецПроцедуры
&НаКлиенте
Процедура КодРегионаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗаполнитьСписокРегионов(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Если ПустаяСтрока(Объект.НаименованиеИФНС) Тогда
НаименованиеИФНС = Объект.Наименование;
НаименованиеИФНС = СтрЗаменить(НаименованиеИФНС, НСтр("ru='МИФНС'"), НСтр("ru='Межрайонная инспекция федеральной налоговой службы'"));
НаименованиеИФНС = СтрЗаменить(НаименованиеИФНС, НСтр("ru='ИФНС'"), НСтр("ru='Инспекция федеральной налоговой службы'"));
НаименованиеИФНС = СтрЗаменить(НаименованиеИФНС, НСтр("ru='ФНС'"), НСтр("ru='Федеральная налоговая служба'"));
Объект.НаименованиеИФНС = НаименованиеИФНС;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КПППриИзменении(Элемент)
Объект.Код = Лев(СокрЛП(Объект.КПП), 4);
КонецПроцедуры
&НаКлиенте
Процедура КодПоОКАТОПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.КодПоОКАТО) Тогда
ДлинаЗначения = СтрДлина(СокрЛП(Объект.КодПоОКАТО));
Для Инд = ДлинаЗначения + 1 По 11 Цикл
Объект.КодПоОКАТО = СокрЛП(Объект.КодПоОКАТО) + "0";
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПредставлениеПодписантаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура("АдресВременногоХранилищаПредставителей", СведенияОПодписантах());
ОткрытьФорму("Справочник.РегистрацииВНалоговомОргане.Форма.ФормаВыбораПредставителей", ПараметрыФормы, ЭтотОбъект, КлючУникальности);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьРеквизитыНалоговогоОрганаПоКоду(Команда)
Если НЕ ЗначениеЗаполнено(Объект.Код) Тогда
ПоказатьПредупреждение(, НСтр("ru='Поле ""Код"" не заполнено'"));
ТекущийЭлемент = Элементы.Код;
Возврат;
КонецЕсли;
ВыполнитьЗаполнениеСведенийОНалоговойИнспекции();
КонецПроцедуры
#Область ПроцедурыПодсистемыКонтактнаяИнформация
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
УправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
УправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
УправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
УправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
УправлениеКонтактнойИнформациейКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
УправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
УправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
УправлениеКонтактнойИнформациейКлиент.НачатьОбработкуНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьОбновлениеКонтактнойИнформации(Результат, ДополнительныеПараметры) Экспорт
ОбновитьКонтактнуюИнформацию(Результат);
КонецПроцедуры
&НаСервере
Процедура ОбновитьКонтактнуюИнформацию(Результат)
УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция СведенияОПодписантах()
Сведения = Новый Структура;
Сведения.Вставить("Владелец", Объект.Владелец);
Сведения.Вставить("Представитель", Объект.Представитель);
Сведения.Вставить("УполномоченноеЛицоПредставителя", Объект.УполномоченноеЛицоПредставителя);
Сведения.Вставить("ДокументПредставителя", Объект.ДокументПредставителя);
Сведения.Вставить("Доверенность", Объект.Доверенность);
Сведения.Вставить("Подписанты", Объект.Подписанты.Выгрузить());
Сведения.Вставить("Код", Объект.Код);
Возврат ПоместитьВоВременноеХранилище(Сведения, УникальныйИдентификатор);
КонецФункции
&НаКлиенте
Процедура ЗаполнитьСписокРегионов(Элемент)
Если Элемент.СписокВыбора.Количество() > 1 Тогда
Возврат;
КонецЕсли;
СписокРегионов = Новый СписокЗначений;
ЗаполнитьСписокРегионовСервер(СписокРегионов);
Элемент.СписокВыбора.Очистить();
Для каждого Регион Из СписокРегионов Цикл
Элемент.СписокВыбора.Добавить(Регион.Значение, Регион.Представление);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗаполнитьСписокРегионовСервер(СписокРегионов)
Справочники.РегистрацииВНалоговомОргане.ЗаполнитьСписокВыбораРегиона(СписокРегионов);
КонецПроцедуры
&НаСервереБезКонтекста
Функция КодРегионаПоКодуНалоговогоОргана(Знач Код)
Возврат Справочники.РегистрацииВНалоговомОргане.КодРегионаПоКодуНалоговогоОргана(Код);
КонецФункции
&НаСервере
Процедура УстановитьСвойстваРеквизитовОрганизации()
Если НЕ ЗначениеЗаполнено(Объект.Владелец) Тогда
Возврат;
КонецЕсли;
РеквизитыОрганизации = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Объект.Владелец,
"ЮридическоеФизическоеЛицо,ОбособленноеПодразделение");
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КПП",
"Доступность",
ПартнерыИКонтрагенты.ЭтоЮрЛицо(РеквизитыОрганизации.ЮридическоеФизическоеЛицо));
ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЦифровойИндексОбособленногоПодразделения",
"Доступность",
Не РеквизитыОрганизации.ОбособленноеПодразделение);
КонецПроцедуры
&НаСервере
Функция ПредставлениеПодписанта()
Если ЗначениеЗаполнено(Объект.Подписанты) Тогда
Представление = СтрШаблон(НСтр("ru = 'Несколько подписантов (%1)'"), Объект.Подписанты.Количество());
ИначеЕсли Не ЗначениеЗаполнено(Объект.Представитель) Тогда
Представление = НСтр("ru = 'Руководитель'");
ИначеЕсли ТипЗнч(Объект.Представитель) = Тип("СправочникСсылка.Контрагенты")
И ЗначениеЗаполнено(Объект.УполномоченноеЛицоПредставителя) Тогда
Представление = СтрШаблон(НСтр("ru = 'Представитель: %1 (%2)'"), Объект.УполномоченноеЛицо, Объект.Представитель);
Иначе
Представление = СтрШаблон(НСтр("ru = 'Представитель: %1'"), Объект.Представитель);
КонецЕсли;
Возврат Представление;
КонецФункции
&НаСервере
Процедура УстановитьСвойстваУказанияРегиона()
КодРегионаРегистрации = Формат(Объект.КодРегиона, "ЧЦ=2; ЧН=; ЧВН=");
Справочники.РегистрацииВНалоговомОргане.ЗаполнитьСписокВыбораРегиона(
Элементы.КодРегионаРегистрации.СписокВыбора,
Ложь,
КодРегионаРегистрации);
КонецПроцедуры
&НаСервере
Процедура ОбработкаВыбораНаСервере(Адрес)
СведенияОПодписантах = ПолучитьИзВременногоХранилища(Адрес);
ЗаполнитьЗначенияСвойств(Объект, СведенияОПодписантах,, "Подписанты");
Объект.Подписанты.Загрузить(СведенияОПодписантах.Подписанты);
ПредставлениеПодписанта = ПредставлениеПодписанта();
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Функция РегистрацияВИФНС()
Возврат РегламентированнаяОтчетность.ПолучитьПоКодамРегистрациюВИФНС(Объект.Владелец, Объект.Код, Объект.КПП);
КонецФункции
&НаКлиенте
Функция ВыполнитьЗаполнениеСведенийОНалоговойИнспекции()
ОписаниеОшибки = "";
ЗаполнитьСведенияОНалоговойИнспекцииПоКоду(ОписаниеОшибки);
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
Если ОписаниеОшибки = "НеУказаныПараметрыАутентификации" Тогда
ТекстВопроса = НСтр("ru='Для автоматического заполнения реквизитов контрагентов
|необходимо подключиться к Интернет-поддержке пользователей.
|Подключиться сейчас?'");
ОписаниеОповещения = Новый ОписаниеОповещения("ПодключитьИнтернетПоддержку", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
ИначеЕсли ОписаниеОшибки = "Сервис1СКонтрагентНеПодключен" Тогда
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ИдентификаторМестаВызова", "registraciya_v_no");
ОткрытьФорму("ОбщаяФорма.Сервис1СКонтрагентНеПодключен", ПараметрыФормы, ЭтотОбъект);
Иначе
ПоказатьПредупреждение(, ОписаниеОшибки);
КонецЕсли;
КонецЕсли;
КонецФункции
&НаСервере
Процедура ЗаполнитьСведенияОНалоговойИнспекцииПоКоду(ОписаниеОшибки = "")
Если НЕ ЗначениеЗаполнено(Объект.Код) Тогда
Возврат;
КонецЕсли;
КодРегионаРегистрации = ДанныеГосударственныхОрганов.КодРегионаПоКодуНалоговогоОргана(Объект.Код);
Объект.КодРегиона = КодРегионаРегистрации;
РеквизитыНалоговогоОргана = РеквизитыНалоговогоОрганаПоКоду(Объект.Код);
Если ЗначениеЗаполнено(РеквизитыНалоговогоОргана.ОписаниеОшибки) Тогда
ОписаниеОшибки = РеквизитыНалоговогоОргана.ОписаниеОшибки;
Возврат;
КонецЕсли;
Модифицированность = Истина;
Объект.Наименование = РеквизитыНалоговогоОргана.Наименование;
Объект.НаименованиеИФНС = РеквизитыНалоговогоОргана.ПолноеНаименование;
КонецПроцедуры
Функция РеквизитыНалоговогоОрганаПоКоду(Знач КодНалоговогоОргана) Экспорт
РеквизитыНалоговогоОргана = РаботаСКонтрагентами.РеквизитыНалоговогоОрганаПоКоду(КодНалоговогоОргана);
Возврат РеквизитыНалоговогоОргана;
КонецФункции
&НаКлиенте
Процедура ПодключитьИнтернетПоддержку(Ответ, ДопПараметры) Экспорт
Если Ответ = КодВозвратаДиалога.Да Тогда
ИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей();
КонецЕсли;
КонецПроцедуры
#КонецОбласти