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