Торговые точки / Модуль менеджера

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

#Область ПрограммныйИнтерфейс

// Возвращает структуру параметров для автозаполнения регламентированной формы уведомления о постановке на учет
// в качестве плательщика торгового сбора (форма ТС-1).
//
// Параметры:
//  ТорговаяТочка - СправочникСсылка.ТорговыеТочки - торговая точка.
//  НаДату        - Дата - дата на которую будут получены параметры.
//
// Возвращаемое значение:
//  Структура - структура параметров для автозаполнения формы ТС-1. Ключи структуры:
//   * Организация - СправочникСсылка.Организации - организация которой принадлежит торговая точка.
//   * Данные      - Структура - информация о регистрации в ИФНС и данные торговой точки. Ключи структуры:
//    ** ИФНС - СправочникСсылка.РегистрацииВНалоговомОргане - информация о регистрации в ИФНС.
//    ** ДанныеТорговойТочки - Структура - Подробнее см. НовыйДанныеТорговойТочки().
//
Функция ПараметрыФормыТС1(ТорговаяТочка, НаДату) Экспорт
	
	ПараметрыТорговойТочки = РегистрыСведений.ПараметрыТорговыхТочек.ПараметрыТорговойТочки(ТорговаяТочка, НаДату);
	ПараметрыФормы = Новый Структура;
	
	Если НаДату < ДатаПримененияНовойФормыТС1() Тогда
		ПараметрыФормы.Вставить("ИмяФормыУведомления", "Отчет.РегламентированноеУведомлениеТС1.Форма.Форма2015_1");
	Иначе
		ПараметрыФормы.Вставить("ИмяФормыУведомления", "Отчет.РегламентированноеУведомлениеТС1.Форма.Форма2020_1");
	КонецЕсли; 
	
	Данные = Новый Структура;
	Если ПараметрыТорговойТочки = Неопределено Тогда
		ПараметрыФормы.Вставить("Организация", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТорговаяТочка, "Организация"));
		ПараметрыФормы.Вставить("Данные"     , Данные);
		Возврат ПараметрыФормы;
	КонецЕсли;
	
	Если ПараметрыТорговойТочки.ПостановкаНаУчетВНалоговомОргане =
		Перечисления.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане Тогда
		
		Данные.Вставить("ИФНС", ПараметрыТорговойТочки.НалоговыйОрган);
		
	КонецЕсли;
	
	Если ПараметрыФормы.ИмяФормыУведомления = "Отчет.РегламентированноеУведомлениеТС1.Форма.Форма2015_1" Тогда
		ДанныеТорговойТочки = ДанныеТорговойТочки_2015(ПараметрыТорговойТочки);
	Иначе
		ДанныеТорговойТочки = ДанныеТорговойТочки_2021(ПараметрыТорговойТочки);
	КонецЕсли; 
		
	ДополнитьДаннымиРанееПоданногоУведомления(ПараметрыТорговойТочки, ДанныеТорговойТочки);
	
	Данные.Вставить("ДанныеТорговойТочки", ДанныеТорговойТочки);
	ПараметрыФормы.Вставить("Организация", ПараметрыТорговойТочки.Организация);
	ПараметрыФормы.Вставить("Данные"     , Данные);

	Возврат ПараметрыФормы;
	
КонецФункции

// Возвращает структуру параметров для автозаполнения регламентированной формы уведомления о снятии с учета
// в качестве плательщика торгового сбора (форма ТС-2).
//
// Параметры:
//  ТорговаяТочка - СправочникСсылка.ТорговыеТочки - торговая точка.
//  НаДату        - Дата - дата на которую будут получены параметры.
//
// Возвращаемое значение:
//  Структура - структура параметров для автозаполнения формы ТС-2. Ключи структуры:
//   * Организация - СправочникСсылка.Организации - организация которой принадлежит торговая точка.
//   * Данные      - Структура - информация о регистрации в ИФНС и данные торговой точки. Ключи структуры:
//    ** ИФНС - СправочникСсылка.РегистрацииВНалоговомОргане - информация о регистрации в ИФНС.
//    ** ДанныеТорговойТочки - Структура - Подробнее см. НовыйДанныеТорговойТочки().
//
Функция ПараметрыФормыТС2(ТорговаяТочка, НаДату) Экспорт
	
	ПараметрыТорговойТочки = РегистрыСведений.ПараметрыТорговыхТочек.ПараметрыТорговойТочки(ТорговаяТочка, НаДату);
	
	ПараметрыФормы = Новый Структура;
	Данные = Новый Структура;
	Если ПараметрыТорговойТочки = Неопределено Тогда
		ПараметрыФормы.Вставить("Организация", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТорговаяТочка, "Организация"));
		ПараметрыФормы.Вставить("Данные"     , Данные);
		Возврат ПараметрыФормы;
	КонецЕсли;
	
	Если ПараметрыТорговойТочки.ПостановкаНаУчетВНалоговомОргане =
		Перечисления.ПостановкаНаУчетВНалоговомОргане.ВДругомНалоговомОргане Тогда
	
		Данные.Вставить("ИФНС", ПараметрыТорговойТочки.НалоговыйОрган);
	
	КонецЕсли;
	
	Если НаДату < ДатаПримененияНовойФормыТС1() Тогда
		ДанныеТорговойТочки = НовыйДанныеТорговойТочки_2015();
	Иначе
		ДанныеТорговойТочки = НовыйДанныеТорговойТочки_2021();
	КонецЕсли; 
	
	ДанныеТорговойТочки.Вставить("ТорговаяТочка", ТорговаяТочка);
	
	Данные.Вставить("ДанныеТорговойТочки", ДанныеТорговойТочки);
	
	ПараметрыФормы.Вставить("Организация", ПараметрыТорговойТочки.Организация);
	ПараметрыФормы.Вставить("Данные"     , Данные);
	
	Возврат ПараметрыФормы;
	
КонецФункции

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт

	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Организация)";

КонецПроцедуры

// Конец СтандартныеПодсистемы.УправлениеДоступом

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

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

#Область СлужебныйПрограммныйИнтерфейс

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

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

#Область АвтозаполнениеУведомлений

Функция НовыйДанныеТорговойТочки_2021()
	
	Результат = Новый Структура;
	
	Результат.Вставить("ТорговаяТочка"); // Ссылка на торговую точку.
	Результат.Вставить("ПрТоргСбор"); // Код вида операции.
	Результат.Вставить("ДатаВозникИсп"); // Дата постановки на учет, изменения параметров или снятия с учета.
	Результат.Вставить("КодВидТорг"); // Код вида торговой деятельности.
	Результат.Вставить("ОКТМО"); // ОКТМО
	Результат.Вставить("ПризИспОб"); // Признак использования в деятельности простого товарищества
	Результат.Вставить("КодВидОб"); // Код объекта осуществления торговли
	Результат.Вставить("НаимТоргОб"); // Наименование торговой точки.
	Результат.Вставить("Аддр"); // Адрес в формате БСП
	Результат.Вставить("ОснПользОб"); // Код основания пользования торговой точкой.
	Результат.Вставить("НомерРазр"); // Номер разрешения на размещение нестационарной торговой точки.
	Результат.Вставить("КадастрНомЗд", ""); // Кадастровый номер здания.
	Результат.Вставить("КадастНомПом", ""); // Кадастровый номер помещения.
	Результат.Вставить("КадастНомЗУ", ""); // Кадастровый номер земельного участка.
	Результат.Вставить("ПлощОбТорг"); // Площадь торгового зала.
	Результат.Вставить("СтавкаОбТорг"); // Ставка сбора за объекты без торгового зала и объекты с торговым залом до 50 кв.м.
	Результат.Вставить("СтавкаКвМ"); // Ставка сбора за объекты с торговым залом свыше 50 кв.м.
	Результат.Вставить("СумЛьгот"); // Сумма налоговой льготы.
	Результат.Вставить("КодЛьгот"); // Код налоговой льготы.
	Результат.Вставить("ИмяФайла"); // Имя файла уведомления поданного в ИФНС через 1С-Отчетность.
	Результат.Вставить("АдресДвДанных"); // Адрес хранилища с двоичными данными уведомления поданного в ИФНС через 1С-Отчетность.
	
	Возврат Результат;
	
КонецФункции
 
Функция НовыйДанныеТорговойТочки_2015()
	
	Результат = Новый Структура;
	
	Результат.Вставить("ТорговаяТочка"); // Ссылка на торговую точку.
	Результат.Вставить("Т_1"); // Код вида операции.
	Результат.Вставить("П_1_1"); // Дата постановки на учет, изменения параметров или снятия с учета.
	Результат.Вставить("П_1_2"); // Код вида торговой деятельности.
	Результат.Вставить("П_2_1"); // ОКТМО
	Результат.Вставить("П_2_2"); // Код объекта осуществления торговли
	Результат.Вставить("П_2_3"); // Наименование торговой точки.
	Результат.Вставить("П_2_4"); // Адрес в формате БСП
	Результат.Вставить("П_2_5"); // Код основания пользования торговой точкой.
	Результат.Вставить("П_2_6"); // Номер разрешения на размещение нестационарной торговой точки.
	Результат.Вставить("П_2_7", ""); // Кадастровый номер здания.
	Результат.Вставить("П_2_8", ""); // Кадастровый номер помещения.
	Результат.Вставить("П_2_9", ""); // Кадастровый номер земельного участка.
	Результат.Вставить("П_2_10"); // Площадь торгового зала.
	Результат.Вставить("П_3_1"); // Ставка сбора за объекты без торгового зала и объекты с торговым залом до 50 кв.м.
	Результат.Вставить("П_3_2"); // Ставка сбора за объекты с торговым залом свыше 50 кв.м.
	Результат.Вставить("П_3_4"); // Сумма налоговой льготы.
	Результат.Вставить("П_3_5"); // Код налоговой льготы.
	Результат.Вставить("ИмяФайла"); // Имя файла уведомления поданного в ИФНС через 1С-Отчетность.
	Результат.Вставить("АдресДвДанных"); // Адрес хранилища с двоичными данными уведомления поданного в ИФНС через 1С-Отчетность.
	
	Возврат Результат;
	
КонецФункции


Функция ОпределитьПризнакУведомления(ВидОперации)
	
	Если ВидОперации = Перечисления.ВидыОперацийТорговыеТочки.Регистрация Тогда
		Признак = "1";
		
	ИначеЕсли ВидОперации = Перечисления.ВидыОперацийТорговыеТочки.ИзменениеПараметров Тогда
		Признак = "2";
		
	Иначе
		Признак = "3";
		
	КонецЕсли;
	
	Возврат Признак;
	
КонецФункции

Функция ОпределитьКодВидаДеятельности(ВидТорговойДеятельности)
	
	Если ВидТорговойДеятельности = Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.СтационарныеСетиБезТорговыхЗалов Тогда
		
		КодВидаДеятельности = "01";
		
	ИначеЕсли ВидТорговойДеятельности = Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.НестационарныеСети
		ИЛИ ВидТорговойДеятельности = Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.РазвознаяРазноснаяТорговля
		ИЛИ ВидТорговойДеятельности = Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.ТорговыеАвтоматы Тогда
		
		КодВидаДеятельности = "02";
		
	ИначеЕсли ВидТорговойДеятельности = Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.СтационарныеСетиСТорговымиЗалами Тогда
		
		КодВидаДеятельности = "03";
		
	ИначеЕсли ВидТорговойДеятельности = Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.ОтпускСоСклада Тогда
		
		КодВидаДеятельности = "04";
		
	Иначе
		
		КодВидаДеятельности = "05";
		
	КонецЕсли;
	
	Возврат КодВидаДеятельности;
	
КонецФункции

Функция ОпределитьКодОбъектаОсуществленияТорговли(ТипТорговойТочки)
	
	Если ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.Магазин Тогда
		КодОбъекта = "01";
		
	ИначеЕсли ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.Павильон Тогда
		КодОбъекта = "02";
		
	ИначеЕсли ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.РозничныйРынок Тогда
		КодОбъекта = "03";
		
	ИначеЕсли ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.Киоск Тогда
		КодОбъекта = "04";
		
	ИначеЕсли ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.ТорговаяПалатка Тогда
		КодОбъекта = "05";
		
	ИначеЕсли ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.ТорговыйАвтомат Тогда
		КодОбъекта = "06";
		
	ИначеЕсли ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.АвтолавкаАвтоприцеп
		ИЛИ ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.ТорговаяТележка
		ИЛИ ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.ТорговыйЛоток Тогда
		
		КодОбъекта = "07";
		
	Иначе
		КодОбъекта = "08";
		
	КонецЕсли;
	
	Возврат КодОбъекта;
	
КонецФункции

Функция ОпределитьКодОснованияПользования(ОснованиеПользования)
	
	Если ОснованиеПользования = Перечисления.ОснованияПользованияТорговойТочкой.Собственность Тогда
		
		КодОснованияПользования = "1";
		
	ИначеЕсли ОснованиеПользования = Перечисления.ОснованияПользованияТорговойТочкой.Аренда Тогда
		
		КодОснованияПользования = "2";
		
	Иначе
		
		КодОснованияПользования = "3";
		
	КонецЕсли; 
	
	Возврат КодОснованияПользования;
	
КонецФункции

Функция ОпределитьНомерРазрешения(НомерРазрешения, ВидимостьСвойствТорговойТочки)
	
	Если ВидимостьСвойствТорговойТочки.НомерРазрешения Тогда
		Возврат НомерРазрешения;
		
	Иначе
		Возврат "000000000000000";
		
	КонецЕсли;
	
КонецФункции

Процедура ЗаполнитьКадастровыйНомер(ПараметрыТорговыхТочек, ДанныеТорговойТочки)
	
	Если ПараметрыТорговыхТочек.ТипТорговойТочки = Перечисления.ТипыТорговыхТочек.РозничныйРынок Тогда
		ДанныеТорговойТочки.П_2_9 = ПараметрыТорговыхТочек.КадастровыйНомер;
		
	ИначеЕсли ПараметрыТорговыхТочек.ВидОбъектаНедвижимости =
		Перечисления.ВидыОбъектовНедвижимостиОблагаемыхТорговымСбором.Здание Тогда
		
		ДанныеТорговойТочки.П_2_7 = ПараметрыТорговыхТочек.КадастровыйНомер;
		
	ИначеЕсли ПараметрыТорговыхТочек.ВидОбъектаНедвижимости =
		Перечисления.ВидыОбъектовНедвижимостиОблагаемыхТорговымСбором.Помещение Тогда
		
		ДанныеТорговойТочки.П_2_8 = ПараметрыТорговыхТочек.КадастровыйНомер;
		
	КонецЕсли;
	
КонецПроцедуры


Функция ОпределитьПлощадьТорговогоЗала(ПлощадьТорговогоЗала, ВидимостьСвойствТорговойТочки)
	
	Если ВидимостьСвойствТорговойТочки.ГруппаПлощадьТорговогоЗала Тогда
		Возврат ПлощадьТорговогоЗала;
		
	Иначе
		Возврат 0;
		
	КонецЕсли;
	
КонецФункции

Функция ОпределитьКодНалоговойЛьготы(КодНалоговойЛьготы)
	
	Если ЗначениеЗаполнено(Число(КодНалоговойЛьготы)) Тогда
		Возврат КодНалоговойЛьготы;
	Иначе
		Возврат "";
	КонецЕсли;
	
КонецФункции

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

Функция СоответствиеПоказателейСтраницыРеквизитамАдреса()
	Соотв = Новый Структура;
	Соотв.Вставить("ИдентификаторАдресногоОбъекта", "Аддр_ИдНом");
	Соотв.Вставить("КодРегиона", "Аддр_Регион");
	Соотв.Вставить("МуниципальныйРайонВид", "Аддр_МуниципРайонВидКод");
	Соотв.Вставить("МуниципальныйРайон", "Аддр_МуниципРайонНаим");
	Соотв.Вставить("ПоселениеВид", "Аддр_ГородСелПоселенВидКод");
	Соотв.Вставить("Поселение", "Аддр_ГородСелПоселенНаим");
	Соотв.Вставить("НаселенныйПунктВид", "Аддр_НаселенПунВид");
	Соотв.Вставить("НаселенныйПункт", "Аддр_НаселенПунктНаим");
	Соотв.Вставить("ТерриторияТип", "Аддр_ЭлПланСтруктурТип");
	Соотв.Вставить("Территория", "Аддр_ЭлПланСтруктурНаим");
	Соотв.Вставить("УлицаТип", "Аддр_ЭлУлДорСетиТип");
	Соотв.Вставить("Улица", "Аддр_ЭлУлДорСетиНаим");
	Соотв.Вставить("ПомещениеВЗданииТип", "Аддр_ПомещЗданияТип");
	Соотв.Вставить("ПомещениеВЗданииНомер", "Аддр_ПомещЗданияНомер");
	Соотв.Вставить("ПомещениеВКвартиреТип", "Аддр_ПомещКвартирыТип");
	Соотв.Вставить("ПомещениеВКвартиреНомер", "Аддр_ПомещКвартирыНомер");
	Возврат Соотв;
КонецФункции

Функция ДанныеТорговойТочки_2015(ПараметрыТорговойТочки)

	ВидимостьСвойствТорговойТочки =
		ТорговыйСборКлиентСервер.ПараметрыВидимостиРеквизитовПоТипуТорговойТочки(ПараметрыТорговойТочки.ТипТорговойТочки);
	
	ДанныеТорговойТочки = НовыйДанныеТорговойТочки_2015();
	
	ДанныеТорговойТочки.ТорговаяТочка = ПараметрыТорговойТочки.ТорговаяТочка;
	
	АдресТорговойТочки = Новый Структура("Значение", ПараметрыТорговойТочки.ТорговаяТочка.КонтактнаяИнформация[0].ЗначенияПолей);
	
	ДанныеТорговойТочки.Т_1 = ОпределитьПризнакУведомления(ПараметрыТорговойТочки.ВидОперации);
	ДанныеТорговойТочки.П_1_1 = ПараметрыТорговойТочки.Период;
	ДанныеТорговойТочки.П_1_2 = ОпределитьКодВидаДеятельности(ПараметрыТорговойТочки.ВидТорговойДеятельности);
	
	ДанныеТорговойТочки.П_2_1 = ПараметрыТорговойТочки.КодПоОКТМО;
	ДанныеТорговойТочки.П_2_2 = ОпределитьКодОбъектаОсуществленияТорговли(ПараметрыТорговойТочки.ТипТорговойТочки);
	ДанныеТорговойТочки.П_2_3 = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыТорговойТочки.ТорговаяТочка, "Наименование");
	ДанныеТорговойТочки.П_2_4 = АдресТорговойТочки.Значение;
	ДанныеТорговойТочки.П_2_5 = ОпределитьКодОснованияПользования(ПараметрыТорговойТочки.ОснованиеПользования);
	ДанныеТорговойТочки.П_2_6 = ОпределитьНомерРазрешения(ПараметрыТорговойТочки.НомерРазрешения, ВидимостьСвойствТорговойТочки);
	
	ЗаполнитьКадастровыйНомер(ПараметрыТорговойТочки, ДанныеТорговойТочки);
	
	ДанныеТорговойТочки.П_2_10 = ОпределитьПлощадьТорговогоЗала(
		ПараметрыТорговойТочки.ПлощадьТорговогоЗала,
		ВидимостьСвойствТорговойТочки);
	
	Если ПараметрыТорговойТочки.ВидТорговойДеятельности =
		Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.СтационарныеСетиСТорговымиЗалами
		И ПараметрыТорговойТочки.ПлощадьТорговогоЗала > 50 Тогда
		
		ДанныеТорговойТочки.П_3_2 = Окр(ПараметрыТорговойТочки.Ставка / ПараметрыТорговойТочки.ПлощадьТорговогоЗала, 2);
		
	Иначе
		ДанныеТорговойТочки.П_3_1 = ПараметрыТорговойТочки.Ставка;
		
	КонецЕсли;
	
	ДанныеТорговойТочки.П_3_4 = ПараметрыТорговойТочки.СуммаЛьготы;
	ДанныеТорговойТочки.П_3_5 = ОпределитьКодНалоговойЛьготы(ПараметрыТорговойТочки.КодНалоговойЛьготы);
	
	Возврат ДанныеТорговойТочки;

КонецФункции 

Функция ДанныеТорговойТочки_2021(ПараметрыТорговойТочки)

	ДанныеТорговойТочки = НовыйДанныеТорговойТочки_2021();
	
	ВидимостьСвойствТорговойТочки =
		ТорговыйСборКлиентСервер.ПараметрыВидимостиРеквизитовПоТипуТорговойТочки(ПараметрыТорговойТочки.ТипТорговойТочки);
	
	ДанныеТорговойТочки.ТорговаяТочка = ПараметрыТорговойТочки.ТорговаяТочка;
	
	АдресТорговойТочки = Новый Структура("Значение", ПараметрыТорговойТочки.ТорговаяТочка.КонтактнаяИнформация[0].Значение);
	
	ДанныеТорговойТочки.ПрТоргСбор = ОпределитьПризнакУведомления(ПараметрыТорговойТочки.ВидОперации);
	ДанныеТорговойТочки.ДатаВозникИсп = ПараметрыТорговойТочки.Период;
	ДанныеТорговойТочки.КодВидТорг = ОпределитьКодВидаДеятельности(ПараметрыТорговойТочки.ВидТорговойДеятельности);
	
	ПоказателиАдреса = СоответствиеПоказателейСтраницыРеквизитамАдреса();
	АдресВФорматеФИАС = УведомлениеОСпецрежимахНалогообложения.АдресВФорматеФИАС(АдресТорговойТочки.Значение);
	Для Каждого КЗ Из АдресВФорматеФИАС Цикл
		Если ТипЗнч(КЗ.Значение) = Тип("Массив") Тогда
			Если КЗ.Ключ = "Здания" Тогда 
				Для Инд = 1 По 3 Цикл
					ДанныеТорговойТочки.Вставить("Аддр_ЗданиеТип" + Инд, "");
				КонецЦикла;
				Для Инд = 1 По Мин(3, КЗ.Значение.Количество()) Цикл 
					ДанныеТорговойТочки.Вставить("Аддр_ЗданиеТип" + Инд, КЗ.Значение[Инд-1].ЗданиеТип);
					ДанныеТорговойТочки.Вставить("Аддр_ЗданиеНомер" + Инд, КЗ.Значение[Инд-1].ЗданиеНомер);
				КонецЦикла;
			КонецЕсли;
		Иначе
			Если ПоказателиАдреса.Свойство(КЗ.Ключ) Тогда 
				ДанныеТорговойТочки.Вставить(ПоказателиАдреса[КЗ.Ключ], КЗ.Значение);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	ДанныеТорговойТочки.ПризИспОб = "0";
	ДанныеТорговойТочки.ОКТМО = ПараметрыТорговойТочки.КодПоОКТМО;
	ДанныеТорговойТочки.КодВидОб = ОпределитьКодОбъектаОсуществленияТорговли(ПараметрыТорговойТочки.ТипТорговойТочки);
	ДанныеТорговойТочки.НаимТоргОб = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПараметрыТорговойТочки.ТорговаяТочка, "Наименование");
	ДанныеТорговойТочки.Аддр = АдресТорговойТочки.Значение;
	ДанныеТорговойТочки.ОснПользОб = ОпределитьКодОснованияПользования(ПараметрыТорговойТочки.ОснованиеПользования);
	ДанныеТорговойТочки.НомерРазр = ОпределитьНомерРазрешения(ПараметрыТорговойТочки.НомерРазрешения, ВидимостьСвойствТорговойТочки);
	
	ЗаполнитьКадастровыйНомер_2020(ПараметрыТорговойТочки, ДанныеТорговойТочки);
	
	ДанныеТорговойТочки.ПлощОбТорг = ОпределитьПлощадьТорговогоЗала(
		ПараметрыТорговойТочки.ПлощадьТорговогоЗала,
		ВидимостьСвойствТорговойТочки);
	
	Если ПараметрыТорговойТочки.ВидТорговойДеятельности =
		Перечисления.ВидыТорговойДеятельностиОблагаемыеСбором.СтационарныеСетиСТорговымиЗалами
		И ПараметрыТорговойТочки.ПлощадьТорговогоЗала > 50 Тогда
		
		ДанныеТорговойТочки.СтавкаКвМ = Окр(ПараметрыТорговойТочки.Ставка / ПараметрыТорговойТочки.ПлощадьТорговогоЗала, 2);
		
	Иначе
		ДанныеТорговойТочки.СтавкаОбТорг = ПараметрыТорговойТочки.Ставка;
		
	КонецЕсли;
	
	ДанныеТорговойТочки.СумЛьгот = ПараметрыТорговойТочки.СуммаЛьготы;
	ДанныеТорговойТочки.КодЛьгот = ОпределитьКодНалоговойЛьготы(ПараметрыТорговойТочки.КодНалоговойЛьготы);
	
	Возврат ДанныеТорговойТочки;

КонецФункции 


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

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

Функция ДатаПримененияНовойФормыТС1()

	Возврат Дата(2021, 06, 21);

КонецФункции 

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

#КонецЕсли

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