Изменился адрес магазина на енвд: как рассчитать и кто может перейти — Бухонлайн

Содержание

ИП изменяем адрес ведения бизнеса, нужно ли делать сообщение в налоговую?

Здравствуйте, Георгий!

Нужно уведомить налоговую инспекцию. Сделать это нужно в течение 10 дней со дня внесения изменений посредством представления (направления) в налоговую инспекцию заявления в произвольной форме с приложением копий документов.

Постановление Правительства РФ от 16.07.2009 № 584 «Об уведомительном
порядке начала осуществления отдельных видов предпринимательской деятельности»
П. 10. В соответствии с частью 6 статьи 8 Федерального закона «О защите прав юридических лиц и индивидуальных предпринимателей при осуществлении государственного контроля (надзора) и муниципального контроля» юридическое лицо или индивидуальный предприниматель обязаны сообщить в уполномоченный орган, зарегистрировавший уведомление, сведения о следующих изменениях:

а) изменение места нахождения юридического лица и (или) места фактического осуществления деятельности;

б) изменение места жительства индивидуального предпринимателя и (или) места
фактического осуществления деятельности;

в) реорганизация юридического лица.

П. 11. В соответствии с частью 7 статьи 8 Федерального закона «О защите прав юридических лиц и индивидуальных предпринимателей при осуществлении государственного контроля (надзора) и муниципального контроля» сведения об указанных в пункте 10 настоящих Правил изменениях представляются в уполномоченный орган в течение 10 дней со дня внесения соответствующих изменений посредством представления (направления) в уполномоченный орган заявления в произвольной форме с приложением копий документов, подтверждающих факт внесения соответствующих изменений, или в виде
электронного документа, подписанного электронной цифровой подписью заявителя.

В Правилах не определено, что такую информацию должны представить только те индивидуальные предприниматели, которые ранее подавали уведомление о начале ведения деятельности. Получается, что данные требования распространяются на всех «вмененщиков».

Кроме того, для исчисления «вмененного» налога берется площадь, фактически
используемая для розничной торговли. Поэтому возможно потребуется корректировать торговую площадь для исчисления ЕНВД в Вашем случае.

Как работать на ЕНВД с маркировкой в 2020 году

Как мы уже рассказывали ранее, Государственная Дума РФ 19 сентября 2019 приняла изменения в первую и вторую часть Налогового кодекса РФ, которая породила больше вопросов, чем дала ответов.

Одним ключевых изменений является запрет розничной продажи некоторых видов товаров, которые подлежат обязательной маркировке, предпринимателям, которые используют ЕНВД и ПСН. Мало того, если происходит реализация такой продукции, то предприниматель утрачивает право на данный налоговый режим.

Однако, с момента внесения данных поправок, некоторые моменты все же изменились.
Какие именно, рассмотрим в данной статье.


Одежда, обувь, мех, лекарства или какие маркированные товары нельзя продавать на ЕНВД?

Если говорить об одежде, то, маркировке подлежат, как продукция из натурального меха, так и блузки, кофты и так далее. Существовала различная информация. В некоторые источниках говорится, что в принципе все предметы одежды запрещены к продаже на ЕНВД; другие же, предполагали, что запрет носит выборочный характер.

Ясность здесь вносит письмо Минфина № 03-11-11/85747 от 7 ноября 2019 года в котором сказано следующее:


«предметы одежды, принадлежности к одежде и прочие изделия из натурального меха» относятся только предметы одежды из норки, нутрии, песца или лисицы, кролика или зайца, енота, овчины и иных видов меха».


Из этого следует, что предприниматель находящийся на ЕНВД, может реализовывать товары, подлежащие маркировке в розницу и это, не приведет к утрате права на данный налоговый режим.
Исключением являются изделия из натурального меха, лекарственные препараты и обувь.

Совмещение ЕНВД и УСН при торговле маркированной продукцией

Согласно письму Минфина от 13.11.2019 № 03-11-11/87500, предприниматели могут совмещать ЕНВД и УСН при своей деятельности.

Если рассматривать данный факт с точки зрения реализации маркированной продукции, то значит это следующее:
— если происходит реализация товаров, которые подлежат обязательной маркировки, то в данном случае, можно применять УСН;
— если происходит реализация товаров, которые не подпадают под обязательную маркировку, то можно использовать ЕНВД.

Когда и как изменения о применении ЕНВД вступят в силу

Изначально дата запрета была одинаковой для всех групп товаров – это 1 января 2020 года

.
Но и здесь не обошлось без изменений. Для торговли обувью установлены совсем другие сроки. Запрет на торговлю обувью на ЕНВД вступает в силу 1 марта 2020 года, т.е. до 1 марка торговать обувью на ЕНВД – можно. С чем это связано? Связано это со сроками, которые указаны в законе о маркированной продукции. В нем говорится, что торговать немаркированной обувью можно до 1 марта 2020 года, исходя из этого Минфин установил, что и ЕНВД могут торговать обувью до 1 марта.
Подробнее в письме Минфина № 03-11-09/92662 от 28.11.2019.

Отмена ЕНВД в 2021 году: как подготовиться предпринимателю

О чем вы узнаете:

Предпринимателям на “вмененке” не стали продлевать режим налогообложения в связи с коронавирусом: по последним новостям отмена ЕНВД состоится в 2021 году. Какую систему выбрать для перехода владельцам бизнеса и будет ли для них государственная поддержка, расскажем в этой статье.

Последние новости про отмену ЕНВД в 2021 году

В первый день 2021 года в России отменят ЕНВД. Предпринимателям необходимо до этого времени перейти на другой вид налогообложения, иначе они автоматически станут плательщиками по общей системе, самой невыгодной.

Счетная палата заявляет, что в России ЕНВД используют 1,93 млн предпринимателей и ООО. Причем ИП из этого количества 1,7 млн.

В связи с отменой ЕНВД в 2021 году экономисты раскололись на два лагеря:

  • “против” отмены;
  • “за” замену “вмененки” другими налогами.

Против отмены ЕНВД выступил глава счетной палаты Алексей Кудрин. Он считает, что пострадают предприниматели, которые не смогут без потери денег перейти на УСН или патент. Ведь “упрощенка” требует ведения бухгалтерии, а патент подходит далеко не всем, кто использовал ЕНВД.

Другие экономисты, в частности, профессор кафедры национальной и региональной экономики РЭУ им. Г. В. Плеханова Надежда Седова, считают, что отменить ЕНВД пора, так как это увеличит отчисления в бюджеты.

Поддержка малого бизнеса: госпрограммы 2020 года >>

Что же касается планов по отмене ЕНВД, то на октябрь 2020 года решение остается прежним — налог не будут сохранять. Тем не менее Минэкономразвитие в списке коэффициентов-дефляторов на 2021 год указало и показатель для ЕНВД, который предложили увеличить с 2,005 до 2,065.

Пока непонятно, почему дефлятор появился в документе — является ли это технической ошибкой, или в Правительстве действительно не определились с отменой ЕНВД.

Программа для магазинов Class365 ускорит выписку документов и исключит возможные ошибки при заполнении. Позволит вам автоматизировать налоговую и бухгалтерскую отчетность, а также контролировать денежные потоки в компании. Ознакомьтесь со всеми возможностями программы для автоматизации магазина бесплатно >>

На каком основании и с какого числа отменят ЕНВД

Согласно закону от 02.06.2016 № 178-ФЗ, ЕНВД отменят с 01.01. 2021 года.

Несколько раз в закон вносили изменения, и дату переносили, пока не остановились на 01.01.21.

Скачать 178-ФЗ можно по ссылке >>

Самая глобальная причина отмены ЕНВД заключается во введении онлайн-касс. 

“Вмененка” существует с 90-х годов, когда предприниматели всячески изворачивались, чтобы скрыть свою прибыль. Логика правительства была проста: если прибыль предприниматель может скрыть, то торговую площадь и сотрудников скрыть не так просто. Поэтому пусть выбирает эту систему и платит минимум.

С введением онлайн-касс контролировать предпринимателей стало проще — фискальные документы направляются в ФНС с режиме реального времени.

Календарь бухгалтера на 2021 год >>

Что делать предпринимателям на ЕНВД до 1 января 2021 года

Из-за прекращения действия ЕНВД предпринимателям необходимо будет перейти в другую систему налогообложения.

Компании и ИП, применяющие ЕНВД, обязаны до 1 января определиться с новым типом налогообложения и подать необходимое заявление по форме.

Например, для УСН по форме 26.2-1, на патент — по форме 26.5-1.

Если для ИП подходит режим самозанятости, то писать заявление не нужно, следует просто скачать приложение на смартфон “Мой налог” и зарегистрироваться через него.

Подробнее об особенностях регистрации в качестве самозанятого читайте тут>>

Будет ли продление ЕНВД до 2024 года

Периодически в интернете всплывают слухи, что ЕНВД будет продлен. Подогревает слухи информация о новом коэффициенте-дефляторе на 2021 год. 

Однако фактически в Правительстве неоднократно подчеркивали, что от ЕНВД планируют отказаться, так как другие режимы работают эффективнее.

О том, как узнать на какой системе налогообложения находится организация, читайте тут >>

Какую систему налогообложения выбрать для перехода

Если ЕНВД отменят с января 2021 года, то плательщикам этого режима надо уже сейчас подобрать другую систему налогообложения. Иначе автоматически предприниматель с ЕНВД перейдет на общую систему, которая подразумевает полное ведение бухгалтерии.

Напомним, что в России предусмотрены такие варианты систем:

  • общая система, при которой надо платить НДС и налог на прибыль для юрлиц или налога на доходы физлиц для ИП;
  • спецрежимы: УСН, ЕСХН, патентная система и налог на профдоход (налог для самозанятых).

Юрлица могут перейти только на УСН и ЕСХН, либо заявление не писать и автоматически стать плательщиками по общей схеме.

Индивидуальным предпринимателям доступен переход на режимы, указанные выше. Плюс, если особенности работы позволяют, можно стать плательщиком налога на профдоход или патентной системы.

Последние два варианта подходят для предпринимателей, однако возможности перехода зависят от рода деятельности. 

Сервис для автоматизации работы магазина Class365 позволит сформировать максимально подробные отчеты для ведения отчетности. Личный календарь для важных событий поможет сдавать всю налоговые и бухгалтерские документы в установленные сроки. Попробуйте полную версию программы для автоматизации магазина бесплатно >>

ПСН

Список разрешенных работ для ПСН составляют местные власти. Обычно в него входят в том числе розничная торговля в магазине площадью до 50 квадратных метров, деятельность общепита и разные бытовые услуги.

Налог на профдоход

Работа в качестве самозанятого разрешена предпринимателям, которые не имеют наемных работников, а также делают что-то своими руками. В том числе на продажу.

Таким образом, если у предпринимателя был оформлен ЕНВД на магазинчик товаров собственного изготовления, можно перейти на налог на профдоход. Другой пример — парикмахерская с одним работником (ИП), которая может также перейти после отмены ЕНВД на самозанятость.

Учитывая, что заявление о переходе платить не надо, можно зарегистрироваться через приложение “Мой налог” даже 31.12.2020.

Производственный календарь на 2021 год >>

УСН

Небольшим компаниям и предпринимателям с магазинами площадью больше 50 квадратных метров после отмены ЕНВД доступно меньше вариантов льготного налогообложения.

Наиболее очевидный вариант — УСН “Доходы” и “Доходы минус расходы”.

УСН “Доходы” предусматривает ставку в 6% на доходы практически во всех регионах России. Однако для Крыма и Севастополя предусмотрены льготные ставки, до 2%. В Чечне ставка УСН варьируется от 1 до 6% (зависит от количества сотрудников).

УСН “Доходы минус расходы” предполагает, что предприниматель ведет бухгалтерию — не только по доходам, но и правильно оформляет все затраты на ведение бизнеса.

В 2021 году в России ставка этого вида УСН составляет 15%, но 78 регионов РФ снизили ее (варианты ставки от 5 до 15% для разного вида бизнеса).

Как с ЕНВД перейти на упрощенку (УСН)

При переходе с ЕНВД на УСН коммерческим фирмам и предпринимателям следует направить в налоговые органы заявление установленной формы — “Уведомление о переходе на упрощенную систему налогообложения”. Форма этого документа установлена приказом ФНС России от 02.11.2012 № ММВ-7-3/829@ (п. 2 ст. 346.13 НК РФ).

Уведомление о переходе на новый налоговый режим можно направить лично в налоговую инспекцию, либо по почте или в цифровом виде (приказ ФНС России от 18.01.2013 № ММВ-7-6/20).

Если налогоплательщик уже применяет упрощенку по остальным видам деятельности, то можно не писать новое заявление. В ФНС утверждают, что снимут предпринимателя с ЕНВД автоматически.

Как с ЕНВД перейти на патент (ПСН)

Патентная система кардинально отличается от других и ближе всего к ЕНВД по типу расчета. Ведь предприниматель считает выручку, основываясь на потенциальном годовом доходе (его рассчитало государство заранее для конкретного региона и сферы деятельности).

Собственно, в ЕНВД так же устроен налог: реальную выручку для формирования налога учитывать не надо.

Для работы по патентной системе необходимо подать заявление на получение патента. Для этого надо заполнить одну из вариантов форм:

  • по приказу ФНС от 11.07.2017 № ММВ-7-3/544;
  • в письме ФНС от 18.02.2020 № СД-4-3/2815.

Как с ЕНВД перейти на ЕСХН

ЕСХН —  льготный для сельхозпроизводителей, поэтому сложно представить случаи, когда предприниматель, имея возможности использования ЕСХН, умышленно использовал “вмененку”.

Однако, если такое случилось, то перейти на ЕСХН необходимо через уведомление, отправленное в УФМС до 31.12.20.

Если срок нарушен, то перейти на ЕСХН будет невозможно. И предприниматель рискует снова оказаться в системе ОСНО и платить самые высокие налоги из возможных, вести бухгалтерию.

Форма уведомления № 26.1-1 о переходе на ЕСХН введена Приказом ФНС от 28.01.2013 № ММВ-7-3/41@.

В форме необходимо указать долю дохода от продажи сельхозпродукции собственного производства (или от услуг производителям товаров из области сельского хозяйства) за 2019 год.

Необходимо будет указать эти сведения за последний отчетный период (для компаний, а также ИП в области рыболовства), либо на 1 октября 2020 года — всем остальным ИП.

Уведомление направляется в ФНС либо, по почте, либо через интернет.

Как с ЕНВД перейти на НПД

Для этого не нужно писать дополнительные заявления — достаточно скачать приложение “Мой налог” и заполнить всю информацию.

Как совмещать спецрежимы

Налоговый кодекс РФ разрешает работать в рамках нескольких спецрежимов, используя для одного вида бизнеса определенный режим, для другого — еще один.

Однако есть нюансы. В таблице ниже показали, какие специальные режимы (из оставшихся после отмены ЕНВД) можно будет совмещать.

ВариантМожно ли совмещатьСтатья НК РФ
УСН + ПСНРазрешеноп. 1 ст. 346. 43
УСН + ЕСХННельзяп. 3 ст. 346. 12
ЕСХН + ПСН Разрешеноп. 1 ст. 346. 43
Режим самозанятости с другими системамиНельзяч. 4, 5 ст. 15 ФЗ № 422-ФЗ

 

Таким образом, нельзя совмещать режим самозанятости (как шутят предприниматели: выбрал этот режим — отрекись от других!). Кроме того, запрещено одновременно использовать ЕСХН и УСН.

В остальных случаях (наиболее распространенный — УСН и патент), допустимо совмещение для сокращения налоговой нагрузки.

Преимущества патентной системы, как и “вмененки”, в отсутствии необходимости сдавать какие-то налоговые декларации. Однако УСН предусматривает сдачу декларации.

Так что предприниматель, решивший применять УСН и ПСН одновременно, должен понимать, что надо вести отчетность и вовремя сдавать декларации при УСН. Даже если доход равен нулю.

Несдача (даже нулевой) декларации карается штрафом по ст. 119 Налогового кодекса.

Что делать с онлайн-кассой при смене системы налогообложения

Когда совершается переход на новую систему, то от предпринимателя требуется не только написать заявление в Федеральную налоговую службу, но и разобраться с перерегистрацией кассовой техники.

Налоговики неоднократно напоминали, что при перерегистрации необходимо выполнить перенастройку с указанием нового режима. Этот реквизит является обязательным в соответствии с пунктом 1 ст. 4.7 54-ФЗ (закона об онлайн-кассах).

При отказе от перерегистрации кассы возможно привлечение предпринимателя к административной ответственности и штрафные санкции.

Как закрыть одну торговую точку на енвд


Компания или индивидуальный предприниматель в ходе своей деятельности стремится получать как можно больше прибыли. Если одна торговая точка не оправдывает ожиданий, ее можно закрыть и открыть новую. Также фирма или ИП может решить закрыть точку и прекратить предпринимательскую деятельность. Нужно ли извещать налоговую о таких переменах?

В этом случае не нужно отдельно извещать ИФНС о закрытии торговой точки. Как закрыть точку на ЕНВД говорится в п. 3 ст. 346.28 НК РФ. В течение 5 дней после прекращения своей деятельности налогоплательщик обязан подать в налоговую заявление о снятии с учета в качестве плательщика ЕНВД. Для этого предусмотрена форма ЕНВД-3 для организаций и ЕНВД-4 для ИП, утвержденные Приказом ФНС России от 11.12.2012 N ММВ-7-6/941@.

У налогоплательщика может быть несколько торговых точек. В какой-то может он может решить закрыть одну из них. Или можно закрыть одну точку и открыть другую. Прежде всего, надо определить, будут ли у налогоплательщика точки на ЕНВД, по которым он должен отчитываться в ту же ИНФС, где находится закрываемая точка.

Если да, то в налоговую не нужно подавать дополнительных заявлений или уведомлений. В очередной декларации по ЕНВД предприниматель должен будет указать актуальные физические показатели в разделе 2.

Если же деятельность на ЕНВД в районе, к которому относится закрываемая точка, прекращается, налогоплательщик, как и при прекращении деятельности, обязан подать в ИФНС заявление о снятии с учета в качестве плательщика ЕНВД. При этом он может применять ЕНВД в других районах.

1. Налогоплательщик снимается с учета как плательщик ЕНВД в данной ИФНС (т. е. у него больше нет точек на подотчетной территории). Расчет вмененного дохода за неполный месяц происходит пропорционально количеству дней до даты прекращения деятельности, указанной в уведомлении в ИФНС (п. 10 ст. 346.29 НК РФ).

Подробнее про расчет налога за неполный месяц можно прочитать здесь.

2. Компания продолжает деятельность на ЕНВД на территории, подотчетной налоговой, к которой относится закрываемая точка. В этом случае налог рассчитывается за полный месяц, в котором произошло закрытие точки. Этого требует ИФНС в письме № от 27.06.2014. Поэтому, когда компания или ИП задумывается, как закрыть точку на ЕНВД, следует помнить, что выгоднее ее закрыть в конце месяца, чтобы не платить налог за период, когда деятельность не ведется.

При заполнении декларации по ЕНВД особое внимание нужно уделить разделу 2. Данные по закрываемой торговой точке должны быть поданы в последний раз в декларации за квартал, в котором точка прекратила свою деятельность. Если компания прекращает деятельность по ЕНВД в данной налоговой, в неполном месяце нужно указать уменьшенную сумму физического показателя в строках 050-070. Об этом Минфин сообщил в письме 22 мая 2013 г. N ЕД-3-3/1806@.

Компания больше не имеет торговых точек на территории, подотчетной данной налоговой.

Физический показатель за август будет рассчитываться:

20 (метров) * 6 (количество дней работы)/31(количество дней в августе) = 3,87.

Компания имеет торговые точки, относящиеся к данной ИНФС.

В этом случае организация указывает в строке 060 показатель 20, как за полный месяц.

О том, как заполняется декларации по ЕНВД в 2014 году, можно прочитать здесь.

Рассмотрим ситуацию, когда у компании или ИП есть два магазина на ЕНВД, один из которых в какой-то момент закрывается. Самый первый вопрос, который возникает при этом: нужно ли сниматься с учета в качестве плательщика «вмененного» налога? На этот вопрос нет общего ответа, поскольку все зависит от конкретной ситуации.

Сниматься ли с учета вмененщику, если он закрыл магазин

Первая ситуация: магазины, по которым применяется ЕНВД, зарегистрированы в разных налоговых инспекциях.

В этом случае все очень просто: компании (ИП) нужно сняться с учета в качестве плательщика ЕНВД, ведь на территории муниципального образования, подведомственного конкретной налоговой инспекции, она больше не ведет «вмененную» деятельность.

Для снятия с учета необходимо направить в эту инспекцию заявление по форме № ЕНВД-3 (если заявитель – организация) или № ЕНВД-4 (если заявитель – индивидуальный предприниматель). Сделать это нужно в течение 5 рабочих дней после прекращения деятельности магазина (п. 3 ст. 346.28 НК РФ). Датой снятия с учета в этом случае будет являться дата прекращения деятельности, указанная в заявлении.

Если заявление о снятии с учета будет подано с опозданием, то датой снятия с учета будет считаться последний день месяца, в котором заявление было представлено в инспекцию. Соответственно, в этом случае сумма ЕНВД будет больше, чем в случае со своевременной подачей заявления. Поэтому в интересах самого же плательщика подавать документ своевременно.

Вторая ситуация: магазины, по которым применяется ЕНВД, находятся под ведомством одной налоговой инспекции.

Но это не дает понимания, надо ли сообщать о закрытии магазина в налоговую инспекцию. В налоговом законодательстве ничего об этом не сказано, что, кстати, может свидетельствовать об отсутствии такой обязанности.

Однако по закрытому магазину ЕНВД исчисляться не должен. И вот здесь уже порядок расчета налога, по мнению налоговиков, может зависеть от того, сообщил плательщик налоговой инспекции о закрытии магазина или нет.

Внесем ясность в этот вопрос.

Для начала посмотрим, есть ли на этот счет какие-либо разъяснения чиновников.

В письме ФНС России от 18.12.2014 № ГД-4-3/26206 сказано, что о прекращении осуществления отдельного вида предпринимательской деятельности и об адресе места осуществления этой деятельности ИП вправе сообщить налоговой инспекции по месту постановки на учет в качестве налогоплательщика ЕНВД.

Таким образом, несмотря на то, что подается заявление о снятии ИП с учета в качестве плательщика ЕНВД, сниматься с учета он не будет. Налоговая инспекция на основании данного заявления просто примет к сведению, что по конкретному адресу торговля больше не ведется, но сам ИП по-прежнему будет иметь статус плательщика ЕНВД. И при получении декларации по ЕНВД, в которой налог по закрытому объекту будет исчислен в меньшем размере, вопросов у инспекции возникнуть не должно.

Буквальная формулировка содержащегося в письме примера указывает больше на второй вариант. На него же указывает и письмо Минфина РФ от 14.03.2018 № 03-11-06/2/15668.

Поэтому лучше все же подать такое заявление, чтобы избежать возможных претензий со стороны инспекции при проверке. Главное, помните: в заявлении нужно проставить код снятия – 4. При указании иной цифры фирму (ИП) снимут с учета в качестве плательщика ЕНВД, а в итоге с вмененки «слетит» и другой объект, который продолжает работать.

Вместе с тем, если плательщик не подал такое заявление, то в случае возникновения неблагоприятных последствий в виде, например, доначисления ЕНВД по закрытому объекту он может оспорить действия налоговой инспекции в суде.

Как рассчитать ЕНВД, если закрыт один из магазинов

Итак, мы приблизились к другому важному вопросу: как посчитать ЕНВД за квартал, в котором произошло закрытие одного из магазинов?

Первая ситуация: магазины, по которым применяется ЕНВД, зарегистрированы в разных налоговых инспекциях.

При закрытии одного магазина порядок действий четко прописан в налоговом законодательстве (п. 10 ст. 346.29 НК РФ). Там сказано, что размер вмененного дохода за квартал, в течение которого произведено снятие налогоплательщика с учета в связи с прекращением предпринимательской деятельности, облагаемой ЕНВД, рассчитывается до даты снятия с учета в ИФНС, указанной в уведомлении о снятии организации (ИП) с учета в качестве плательщика ЕНВД.

При этом за тот месяц, в котором произошло снятие с учета, вмененный доход рассчитывается исходя из фактического количества дней работы магазина по специальной формуле, указанной в этом же пункте. Таким образом, фактически налог будет рассчитываться только за тот период, когда магазин работал.

Вторая ситуация: магазины, по которым применяется ЕНВД, находятся в ведомстве одной налоговой инспекции.

При закрытии одного магазина налоговое законодательство не содержит нормы, регулирующей порядок расчета ЕНВД в такой ситуации. Однако чиновники разрешают применять тот же порядок, который используется при полном прекращении деятельности на ЕНВД, то есть порядок, установленный п. 10 ст. 346.29 НК РФ (первая ситуация). Об этом говорят, в частности, письма Минфина РФ от 14.03.2018 № 03-11-06/2/15668, от 23.06.2017 № 03-11-11/39527, от 03.12.2015 № 03-11-09/70689 (доведено до налоговых инспекций письмом ФНС России от 19.02.2016 № СД-4-3/2690).

Поэтому, исходя из разъяснений чиновников, ЕНВД по закрытому магазину следует считать за период с 1-го числа квартала по дату, когда торговая точка была закрыта.

Напомним, несколько лет назад эта ситуация была неясной. ФНС поясняла, что за месяц, в котором произошло закрытие магазина, налог следовало исчислять в полном размере, то есть без учета количества дней функционирования объекта (письмо от 18. 12.2014 № ГД-4-3/26206). Минфин же считал, что за этот месяц площадь закрытого магазина не следовало брать во внимание вовсе. По их мнению, в данной ситуации происходило изменение физических показателей, при котором должны применяться положения п. 9 ст. 346.29 НК РФ (письма от 28.11.2014 № 03-11-09/60758, от 30.10.2013 № 03-11-11/46223). Согласия между чиновниками разных ведомств не было. Но теперь это уже не важно.

Представление декларации по ЕНВД: когда и куда

Следующий важный вопрос связан с декларацией по ЕНВД: в какую налоговую инспекцию и в какой срок ее необходимо представить?

А вот как быть в первой ситуации, когда в результате закрытия магазина компания (ИП) снимается с учета в качестве плательщика ЕНВД в конкретной налоговой инспекции?

В итоге на практике часто возникает ситуация, когда ни одна, ни другая инспекция не хотят принимать декларацию по закрытому торговому объекту. Куда же все-таки направлять отчетность?

В инспекцию, в которой раньше компания (ИП) стояла на учете в качестве плательщика ЕНВД. И не важно, что к моменту подачи отчета организация уже снята с учета. Отказывать в приеме декларации данная ИФНС не вправе. Такие разъяснения содержатся в уже упомянутом нами ранее письме ФНС России от 20.03.2015 № ГД-4-3/4431. Из этого письма также следует, что полученные декларации инспекция передаст новой инспекции в специальном порядке, установленном внутренним приказом ФНС России.

Но судя по жалобам вмененщиков, которым ИФНС отказывает в приеме деклараций, не все инспекции на местах осведомлены об этих разъяснениях.

Можно посоветовать направить декларацию по ЕНВД в бумажном виде. По крайней мере у организации (ИП) будет подтверждение факта ее подачи. Есть еще один вариант: воспользоваться правом досрочной подачи декларации, которое предусмотрено п. 1 ст. 45 НК РФ. Например, можно заранее оформить декларацию по ЕНВД и отправить ее вместе с заявлением о снятии с учета.

Добрый день, уважаемые читатели! В этой статье мы поговорим о том, как закрыть торговую точку.

Сегодня вы узнаете:

  • Закрытие одной точки – какие могут быть ситуации;
  • Прекращение деятельности и как при этом уволить сотрудников.

Содержание

Закрытие одной точки на ЕНВД

При закрытии одного торгового павильона (магазина или отдела в чужом магазине) могут быть такие ситуации:

  • У вас (ООО) несколько магазинов и все находятся в одном городе (районе), т.е. в одной налоговой инспекции;
  • Ваши магазины разбросаны по разным налоговым инспекциям, и тот магазин, что вы хотите закрыть, единственный в этой налоговой;
  • У вас не только магазины, но и, например, кафе или бар.

В первом случае в данной ИФНС вы, как юридическое лицо и плательщик ЕНВД, без изменений остаетесь на учете, однако, нужно снять с налогового учета обособленное подразделение.

Работа кассы после даты снятия с учета недопустима. При этом, если закрытие магазина временное, закрывать обособленное подразделение не нужно (в противном случае обязательно).

Рассмотрим второй случай. В налоговой инспекции вы полностью снимаетесь с учета. Поэтому, во-первых, необходимо заполнить заявление о снятии с учета (ЕНВД-3), и в графе причина снятия указать 2 (переход на иной режим налогообложения).

Третий случай аналогичен первому. У вас остается другой вид деятельности. Поэтому в налоговой инспекции вы остаетесь налогоплательщиком ЕНВД.

Прекращение деятельности

Это тот случай, когда у ИП (или ООО) единственный магазин. Либо их несколько и все подлежат закрытию. Но сегодня мы этот случай рассматривать не будем.

Посчитаем налоги

Итак, решение закрыть торговую точку бесповоротное. Необходимо рассчитаться с налоговой инспекцией. Вновь вернемся к нашим ситуациям, приведенным выше.

В первом и третьем случае налог оплачивается до конца месяца, в котором закрылась точка, независимо от даты закрытия. Во втором случае вы снимаетесь с налогового учета полностью. И расчет налога будет пропорционален количеству отработанных в этом месяце дней.

Заполняя декларацию за прошедший квартал, нужно внимательно проверить расчет закрытых точек. В противном случае сложно будет доказать что-то налоговой инспекции, в которой вы уже не стоите на учете.

Повторимся: при заполнении декларации в первом и третьем случае налог не изменяется до конца месяца, в котором закрылся магазин. Во втором случае будет уменьшен, в зависимости от проработанного времени. Срок сдачи декларации не меняется – это двадцатое число месяца, следующего за отчетным.

Не нужно забывать, что при закрытии торговой точки необходимо снять с налогового учета кассовое оборудование. Для этого нужно написать заявление, предъявить паспорт и карточку регистрации ККТ.

Увольнение сотрудников

Следующий очень серьезный и болезненный вопрос: что делать с сотрудниками? Хорошо, конечно, если закрывая один магазин, вы открываете другой.

Во-первых, все сотрудники подразделения должны быть оповещены о сокращении за два месяца (приказ под роспись). Им по возможности предлагаются рабочие места на предприятии.

Во-вторых, вы должны подать в Центр занятости населения предварительный список сокращенных сотрудников. По истечении двух месяцев сотрудник увольняется. Ему выплачивается помимо компенсации за неиспользованный отпуск, выходное пособие в размере среднемесячной зарплаты.

Для получения последующих выплат сокращенному работнику необходимо вовремя встать на учет в Центр занятости (у него есть две недели). Если в течение двух месяцев сокращенный не смог трудоустроиться, предприятие ему должно выплатить выходное пособие за второй месяц. Если и далее сокращенный остается безработным – за третий (последний) месяц.

Если ваш сотрудник нашел новое место работы до истечения двух месяцев, ему полагается оплата компенсации со дня увольнения до окончания двухмесячного срока.

Надеемся, подробно рассмотренная тема была вам полезной. И в подобной сложившейся ситуации вы примите правильные решения, используя полученную сегодня информацию.

Управление учетной записью Shopify · Центр поддержки Shopify

Эта страница была напечатана 11 ноября 2020 г. Чтобы просмотреть текущую версию, посетите https://help.shopify.com/en/manual/your-account/manage-account.

На странице Settings вы можете управлять своим платежным циклом, платежной информацией, планом подписки Shopify, типом магазина и статусом магазина.

Чтобы узнать больше о разрешениях сотрудников, которые контролируются владельцами магазинов, см. Разрешения для персонала .Чтобы узнать, как изменить статус вашего магазина, см. Приостановка или закрытие магазина .

Аутентификация учетной записи

Ваша учетная запись идентифицируется с URL-адресом .myshopify.com , который задается при первой настройке учетной записи Shopify.

Служба поддержки Shopify запросит ваш URL, если вы обратитесь к ним за помощью. Вам необходимо указать URL-адрес, чтобы подтвердить, что вы являетесь владельцем магазина. Если вы настроили личный домен для своего магазина, тогда ваш URL .myshopify.com будет отличаться от вашего URL, ориентированного на покупателя.

Даже если вы измените название интернет-магазина, ориентированного на клиентов, или юридическое название вашей компании, ваш URL-адрес .myshopify.com останется прежним.

Чтобы найти URL-адрес .myshopify.com , откройте адресную строку браузера, когда вы вошли в систему с правами администратора своего магазина:

Обновите расчетный период

Расчетный период или расчетный цикл — это промежуток времени между счетами. Вы можете увеличить этот временной интервал, но не можете выбрать, в какой день месяца получать счет.Цикл выставления счетов по умолчанию составляет каждые 30 дней, и цена, связанная с планом подписки Shopify вашего магазина, включается в счет, выставляемый в конце каждого цикла.

Если опция доступна для вашего плана, вы можете получить скидку, согласившись на более длительный платежный цикл.

Примечание

Плата за подписку не возвращается. Для получения дополнительной информации см. Условия обслуживания Shopify.

ступеней:
  1. Войдите как владелец магазина.
  1. В админке Shopify щелкните Settings , а затем щелкните Plan and permissions .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. Щелкните Сравнить планы .

  2. Нажмите Изменить расчетный период (если вы не видите кнопку Изменить расчетный период , значит, вы не можете увеличить цикл выставления счетов для текущего плана).

    Если вы не видите ссылку, найдите свой тарифный план и нажмите Выбрать этот план .

  3. Когда отобразятся варианты выставления счетов, выберите желаемый цикл выставления счетов.

  4. Прочтите описание списаний с кредитной карты, на которые вы соглашаетесь.

    Примечание

    Ваш текущий платежный цикл закончится, и вам будет выслан счет. Для вашего нового плана начинается новый платежный цикл, и вам начисляется сумма за любой неиспользованный период, за который вы уже заплатили.

  5. Щелкните Подтвердить изменения , чтобы принять новое соглашение.

Обновите свою платежную информацию

Ваша платежная информация включает номер вашей кредитной карты и ваш платежный адрес. Если вам нужно обновить свою платежную информацию, вы можете получить к ней доступ из меню Настройки в вашем админке.

Изменить данные кредитной карты

Если номер вашей кредитной карты изменился, убедитесь, что вы обновили его в своей учетной записи Shopify.

ступеней:
  1. Войдите как владелец магазина.

  2. Щелкните Settings , затем Billing .

  3. В разделе Платежная информация щелкните Заменить кредитную карту .

  4. Заполните поля информации о кредитной карте, затем нажмите Подтвердить .

Наконечник

Из-за методов, которые некоторые банки используют для реализации дебетовой карты Visa, некоторые карты могут не работать для выставления счетов Shopify.

Измените свой платежный адрес

Если вы измените адрес, связанный с вашей кредитной картой, обязательно обновите свою платежную информацию.

ступеней:
  1. Войдите как владелец магазина.

  2. Щелкните Settings , затем Billing .

  3. В разделе Платежная информация щелкните Заменить кредитную карту .

  4. Нажмите Обновить платежный адрес .

  5. Введите свой платежный адрес, затем нажмите Подтвердить .

Обновите план

Если вы используете пробную версию и решили подписаться на план, или если вы хотите изменить план, на котором вы находитесь, вы можете сделать это на странице Настройки в вашем администраторе.

Если вы обновите свой план, сразу же будет выставлен счет, отражающий только абонентскую плату для вашего нового плана. Цена вашего предыдущего плана пропорционально рассчитывается и применяется к стоимости вашей новой подписки за месяц, когда вы меняете свой план.Счет, который вы получите за изменение плана, не включает другие незавершенные платежи по вашей учетной записи. Эти платежи будут выставлены, когда непогашенные платежи по вашей учетной записи достигнут порога кредита или в конце платежного цикла.

Осторожно

Если ваш магазин находится на базовом плане Shopify или плане Shopify, и вы меняете период выставления счетов за подписку с ежемесячного на годовой, тогда информация о вашей транспортной компании сбрасывается, потому что вы заключаете новый контракт с Shopify.В этом случае вам необходимо повторно ввести данные учетной записи для каждого оператора.

Проверить текущий план

  1. В админке Shopify щелкните Settings , а затем щелкните Plan and permissions .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .

Вы можете увидеть, какой у вас тарифный план, в разделе «Детали плана » .

Вы также увидите краткое описание преимуществ перехода на более высокий план. Если вы хотите обновить свой план, нажмите Обновить план .

Обновите свой тариф

Если вы знаете, что хотите обновить свой план, вы можете сделать это в разделе Подробная информация о плане .

Если вы перейдете на активный план во время бесплатного пробного периода, вы не потеряете ничего, что было выполнено во время пробного периода. Вы получите электронное письмо от Shopify с сообщением об изменении даты выставления счета.

Shopify перестанет взимать плату за ваш предыдущий план и начнет взимать плату за новый в дату, когда вы обновитесь. Если вы используете бесплатную пробную версию, то это никак не повлияет на ее продолжительность.

ступеней:
  1. Войдите как владелец магазина.
  1. В админке Shopify щелкните Settings , а затем щелкните Plan and permissions .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. Щелкните План обновления .

  2. Щелкните Upgrade plan еще раз, чтобы продолжить.

  3. Выберите платежный цикл и прочтите описание платежей по кредитной карте, на которые вы соглашаетесь.

    Примечание

    Если вы измените цикл выставления счетов при изменении плана, то счет вашего текущего плана будет отправлен вам для оплаты сразу, и для вашего нового плана начнется новый цикл выставления счетов. В противном случае вы продолжите тот же платежный цикл, и ваши платежи будут скорректированы.

  4. Щелкните Подтвердить изменения , чтобы принять новое соглашение, или щелкните Отмена .

Измените тарифный план

Если вы хотите изменить свой тарифный план, вы можете выбрать один из доступных вариантов.

ступеней:
  1. В админке Shopify щелкните Settings , а затем щелкните Plan and permissions .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В разделе Настройки магазина коснитесь План и разрешения .
  1. В разделе Сведения о плане щелкните Сравнить планы .

  2. Щелкните Выберите этот план , чтобы выбрать один из доступных планов.

  3. Щелкните цикл выставления счетов и прочтите описание платежей по кредитной карте, на которые вы соглашаетесь.

    Примечание

    Если вы измените свой тарифный план без изменения платежного цикла, вы останетесь с тем же счетом, а ваши платежи будут скорректированы. Если вы измените свой платежный цикл, счет вашего текущего плана будет закрыт и отправлен вам. В то же время для вашего нового плана начнется новый платежный цикл, и вам будет начислено любое неиспользованное время, за которое вы уже заплатили.

  4. Щелкните Подтвердить изменения , чтобы принять новое соглашение, или щелкните Отмена .

Измените тип магазина

Если вы владелец магазина, вы можете изменить его тип в любое время.

ступеней:
  1. Войдите как владелец магазина.
  1. На странице настроек Каналы продаж вы можете добавить или удалить интернет-магазин, розничный магазин Shopify POS или другой доступный тип магазина.

Изменить адрес электронной почты аккаунта

Адрес электронной почты вашей учетной записи — это адрес электронной почты, который вы использовали для регистрации в Shopify. Shopify использует этот адрес электронной почты, чтобы связаться с вами по поводу вашей учетной записи.

Внутренний адрес электронной почты вашего магазина — это не адрес электронной почты, который вы используете для входа в систему администратора Shopify. Если вы владелец магазина, то адрес электронной почты, который вы используете для входа в систему администратора, привязан к персоналу владельца магазина. Счета Shopify также отправляются на адрес электронной почты, связанный с персоналом владельца магазина. Чтобы изменить адрес электронной почты, который вы используете для входа в систему администратора Shopify или для получения счетов, вам необходимо обновить данные о сотрудниках владельца магазина.

ступеней:
  1. От администратора Shopify перейдите в Настройки .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В Store settings коснитесь General .
  1. В приложении Shopify перейдите в Store > Settings .
  2. В Store settings коснитесь General .
  1. На Общие

Устранение неполадок · Справочный центр Shopify

Эта страница была напечатана 11 ноября 2020 г.Текущую версию см. На странице https://help.shopify.com/en/manual/online-store/os/domains/managing-domains/troubleshooting.

Если вам нужна помощь с вашим доменом, проверьте, есть ли ответ на ваш вопрос в FAQ ниже. Если на этой странице нет ответа на ваш вопрос, и если вы купили домен через Shopify, вы можете обратиться в службу поддержки Shopify для получения помощи с вашим доменом.

Примечание

Служба поддержки Shopify не может помочь вам с доменом, который вы приобрели у стороннего поставщика, такого как GoDaddy.Для поддержки подключения стороннего домена к Shopify свяжитесь с поставщиком домена и предоставьте ему эту информацию.

Часто задаваемые вопросы

Какой IP-адрес у Shopify?

IP-адрес

Shopify: 23.227.38.65 . Если вы настраиваете существующий домен, вам необходимо установить свою запись A на IP-адрес Shopify.

Как перенести свой домен из Shopify?

Если вы приобрели домен через Shopify и покидаете Shopify, вам придется перенести свой домен из администратора Shopify, прежде чем вы сможете использовать этот домен с другим хостом.

Могу ли я изменить свой домен myshopify.com?

Нет, ваш домен .myshopify.com — это URL-адрес, который действует как уникальный идентификатор для вашего магазина и не может быть изменен или удален. Клиенты получают доступ к вашему интернет-магазину по этому URL-адресу, если у вас нет собственного доменного имени. Если вам нужен собственный URL-адрес для вашего магазина Shopify, например www.example.com , вы можете добавить его в свой интернет-магазин, купив собственный домен.

Почему нет инструкций для моего провайдера?

Мы написали инструкции для наиболее распространенных сторонних поставщиков.Если вашего поставщика нет в списке, следуйте общему руководству по настройке или обратитесь за поддержкой напрямую к стороннему поставщику домена.

Могу ли я использовать для своего магазина более двух доменных имен?

Да, вы можете использовать до 10 доменов в своем магазине Shopify.

Почему мой сайт еще не перенаправлен на мой личный домен?

Для начала работы домена может потребоваться до 48 часов. Если прошло более 72 часов, обратитесь в службу поддержки Shopify.

Предоставляет ли Shopify адреса электронной почты для моего личного домена?

Нет, Shopify не предоставляет хостинг электронной почты.Однако, если вы покупаете доменное имя в Shopify, вы можете бесплатно настроить неограниченное количество адресов электронной почты для пересылки (например, [email protected]).

Могу ли я изменить имя подкаталога, например / products ?

Подкаталог — это раздел вашего основного веб-сайта. Он определяется как / в конце имени домена, например, www.example.com/pricing , где / pricing — это подкаталог. Примеры подкаталогов в вашем интернет-магазине: / collections, / products и / pages.

Вы не можете редактировать имена подкаталогов . Независимо от того, какой домен вы используете, имена подкаталогов останутся прежними.

Мне нужно изменить номер TTL в настройках DNS?

Когда вы подключаете домен к Shopify, вы можете увидеть номер TTL в настройках DNS. Вам не нужно менять этот номер. Используйте настройку по умолчанию.

Получите помощь по стороннему домену

Служба поддержки

Shopify не может помочь вам с доменом, который вы приобрели у стороннего поставщика, такого как GoDaddy.Для поддержки подключения стороннего домена к Shopify обратитесь к поставщику домена и сообщите ему, что:

  • вы хотите, чтобы ваш корневой домен (ваша запись A) указывал на IP-адрес Shopify, то есть 23.227.38.65
  • , вы хотите, чтобы ваши субдомены (ваши записи CNAME) указывали на ваш домен, размещенный на Shopify, то есть shop.myshopify.com .

Если вы хотите настроить пересылку электронной почты, вы также можете сообщить своему стороннему провайдеру, что хотите использовать его почтовый клиент (если он у него есть) и вам нужно настроить записи MX .

Измените страну или регион Apple ID

Если вы переезжаете в новую страну или регион, вы можете обновить страну или регион, связанный с вашим Apple ID. Перед обновлением информации вам необходимо потратить кредит магазина, отменить подписку и получить способ оплаты для новой страны или региона.

Когда вы выполните следующие действия, ваша страна или регион Apple ID обновится для всех ваших служб Apple на всех ваших продуктах Apple.

Если вы являетесь участником группы семейного доступа, возможно, вы не сможете изменить свою страну или регион. Узнайте, как покинуть группу семейного доступа.

Что делать перед сменой страны или региона

  • Израсходуйте остаток кредита магазина на свой Apple ID. Узнайте, что делать, если остаток на счете в магазине меньше стоимости одного товара.
  • Отмените все подписки, включая Apple Music, и дождитесь окончания периода подписки.
  • Дождитесь завершения всех подписок, предварительных заказов, проката фильмов или сезонных абонементов и дождитесь обработки всех ожидающих возмещения средств магазина.
  • Убедитесь, что у вас есть способ оплаты для новой страны или региона.
  • Повторно загрузите свои приложения, музыку, фильмы, телешоу и книги на любые устройства, которые вы можете использовать для воспроизведения или чтения в будущем. Это связано с тем, что некоторые типы контента могут быть недоступны в вашей новой стране или регионе. (Узнайте, какие типы контента и услуг доступны в вашей новой стране или регионе.)

Измените страну или регион

На вашем iPhone, iPad или iPod touch

  1. Откройте приложение «Настройки».
  2. Коснитесь своего имени, затем коснитесь iTunes и App Store.
  3. Коснитесь своего Apple ID, затем коснитесь «Просмотреть Apple ID». Вас могут попросить войти в систему.
  4. Нажмите Страна / регион.
  5. Нажмите «Изменить страну или регион».«Если вы не видите« Изменить страну или регион », обратитесь в службу поддержки Apple.
  6. Нажмите новую страну или регион, а затем ознакомьтесь с Условиями использования.
  7. Нажмите «Согласен» в правом верхнем углу, затем снова нажмите «Согласен» для подтверждения.
  8. Выберите способ оплаты и введите новую платежную информацию и адрес для выставления счетов, затем нажмите «Далее». Вы должны ввести действительный способ оплаты для вашей новой страны или региона. 1 Узнайте больше о том, как изменить или удалить платежную информацию Apple ID.

На вашем компьютере

  1. Откройте приложение «Музыка» или iTunes.
  2. В строке меню в верхней части экрана или в верхней части окна iTunes нажмите «Учетная запись», затем нажмите «Просмотреть мою учетную запись».
  3. Войдите в систему, используя свой Apple ID, затем нажмите «Просмотреть учетную запись».
  4. На странице «Информация об учетной записи» нажмите «Изменить страну или регион».»
  5. В меню «Выберите страну или регион» выберите новую страну или регион. Если вы не видите «Выберите страну или регион», обратитесь в службу поддержки Apple.
  6. Просмотрите Условия и положения, затем нажмите Принимаю. Еще раз нажмите «Согласен» для подтверждения.
  7. Введите новую платежную информацию и адрес для выставления счетов, затем нажмите «Продолжить».

Со страницы учетной записи Apple ID

  1. Войдите на страницу своей учетной записи Apple ID.
  2. Прокрутите до раздела «Учетная запись» и нажмите «Изменить».
  3. В меню «Страна / регион» выберите новую страну или регион.
  4. Когда вас спросят, хотите ли вы изменить страну или регион, нажмите «Продолжить обновление».
  5. Введите новую платежную информацию и адрес для выставления счетов, затем нажмите «Сохранить». Вы должны ввести действительный способ оплаты для вашей новой страны или региона. 1

Обратиться в службу поддержки Apple

Если вы не можете выполнить ни один из шагов, не можете изменить свою страну или регион, или у вас меньше кредита магазина, чем стоимость одного элемента, обратитесь в службу поддержки Apple.

Узнать больше

1. Если вы не хотите указывать способ оплаты, подождите, пока вы физически окажетесь в новой стране или регионе, а затем создайте новый Apple ID.

Информация о продуктах, произведенных не Apple, или о независимых веб-сайтах, не контролируемых и не проверенных Apple, предоставляется без рекомендаций или одобрения.Apple не несет ответственности за выбор, работу или использование сторонних веб-сайтов или продуктов. Apple не делает никаких заявлений относительно точности или надежности сторонних веб-сайтов. Свяжитесь с продавцом для получения дополнительной информации.

Дата публикации:

Измените свой адрес | NatWest

У нас уже есть аккаунт?

  1. Управляйте своим банковским счетом
  2. Подать заявку на овердрафт
  3. MyRewards
  4. Способы оплаты
  5. Мобильный банк
  6. Войдите в службу поддержки участников Natwest

Core Data и SwiftUI 2.0 — Сохранение, получение, обновление и удаление постоянных данных

Обновлено для Xcode 12.0 и SwiftUI 2.0 ✅

Здравствуйте и добро пожаловать в новый учебник! Сегодня мы узнаем, как использовать платформу Core Data с SwiftUI для хранения постоянных данных и управления ими. Интеграция Core Data в проекты SwiftUI на удивление проста. Создавая полезное приложение для небольшой пиццерии, мы рассмотрим все основные операции CRUD (создание, чтение, обновление и удаление данных), используемые в Core Data.

В этом руководстве мы рассмотрим:

  • Как Core Data и SwiftUI работают вместе
  • Создание и обновление объектов Core Data
  • Как обновлять представления при обновлении сохраненных данных
  • Использование оболочек свойств SwiftUI для выборки Core Data объекты

Мы создадим простое приложение для пиццерии, которое официанты смогут использовать для приема заказов и управления ими.

Готовое приложение будет выглядеть следующим образом:

Настройка основных данных с помощью SwiftUI и Xcode 12

Для начала откройте Xcode 12 и создайте новое «приложение» в разделе «Мультиплатформенность» или «iOS».Вы можете назвать свой проект как хотите, например, «PizzaRestaurant». Но обязательно используйте SwiftUI в качестве режима «Интерфейс» и приложение SwiftUI в качестве режима «Жизненного цикла». Также убедитесь, что вы установили флажок «Использовать основные данные». Это автоматически настроит начальную реализацию Core Data для нашего приложения!

Убедитесь, что вы «сбросили» ContentView, удалив из него сгенерированный код, поскольку он нам не понадобится для нашего приложения.

  импорт SwiftUI
импортировать CoreData

struct ContentView: View {
    var body: some View {
        Текст («Привет, мир!»)
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView ()
    }
}  

В навигаторе проекта вы можете найти значок «.xcdatamodeld », созданный для нас Xcode. В этом файле мы настраиваем сущности нашей модели данных Core Data и управляем ими для нашего приложения SwiftUI. Если вы не знакомы с концепцией сущностей: вы можете рассматривать сущность как класс, а атрибут как свойство этого класса. Единственная сущность, которая нам нужна для нашего приложения, — это выполнение различных заказов. Удалите сущность «Элемент» по умолчанию и создайте новую, щелкнув большую кнопку с плюсом внизу, а затем дважды щелкните созданную сущность, чтобы переименовать ее в «Порядок».

Нам необходимо знать следующую информацию о каждом заказе: тип пиццы, которую заказал клиент, сколько ломтиков он хочет съесть и номер стола, за которым сидит клиент. Каждый заказ также должен иметь уникальный «идентификатор» и атрибут «статус» для отслеживания того, выполнен ли заказ уже. Для id мы используем тип UUID (это автоматически создает для нас уникальный идентификатор). Для numberOfSclices мы выбираем Integer16, а для остальных String.

Как основные данные работают в SwiftUI и Xcode 12

Вот и все! Мы только что завершили настройку базовой модели Core Data для хранения заказов для нашего приложения для пиццерий. Разве это не было просто? Давайте посмотрим, как CoreData был реализован в нашем проекте SwiftUI, установив ранее флажок «Использовать CoreData».

Чтобы заглянуть за кулисы, откройте файл PizzaRestaurantApp.swift . Вы уже знаете, что структура App в первую очередь обрабатывает загрузку начального представления, которым по умолчанию является ContentView .Поскольку мы отметили «Использовать CoreData» при создании нашего проекта ранее, Xcode создал свойство с именем persistenceController и применил важный модификатор к запущенному ContentView .

Давайте сначала взглянем на свойство persistenceController .

  let persistenceController = PersistenceController.shared  

Это свойство назначается PersistenceController . Мы можем найти этот PersistenceController в Persistence.swift файл. Структура PersistenceController , содержащаяся в этом файле, включает в себя различные свойства.

Вкратце остановимся на самых важных. Свойство preview позволяет нам использовать функциональность CoreData внутри имитаторов предварительного просмотра.

Примечание : Поскольку мы удалили сущность «Элемент» по умолчанию и создали новую сущность с именем «Заказ», мы должны сделать здесь быструю настройку. Удалите существующий цикл for-in и вставьте вместо него следующие.

  статический предварительный просмотр переменных: PersistenceController = {
        // ...
        для _ в 0 .. <10 {
            let newItem = Order (контекст: viewContext)
            newItem.status = "ожидает рассмотрения"
            newItem.id = UUID ()
            newItem.tableNumber = "12"
            newItem.pizzaType = "Маргарита"
            newItem.numberOfSlices = 4
        }
        // ...
    } ()  

Свойство контейнера является сердцем PersistenceController , который выполняет за нас множество различных операций в фоновом режиме, когда мы сохраняем и вызываем данные.Что наиболее важно, контейнер позволяет нам получить доступ к так называемому viewContext , который служит в оперативной памяти в оперативной памяти, где объекты создаются, выбираются, обновляются, удаляются и сохраняются обратно в постоянное хранилище устройства, где приложение работает.

Контейнер инициализируется в рамках функции PersistenceController init . В этом случае свойство контейнера назначается экземпляру NSPersistentContainer.Нам нужно использовать имя нашего файла «.xcdatamodeld», который является «Shared» (или * YourAppName *, если вы создали простой проект приложения iOS), в качестве аргумента «name».

  init (inMemory: Bool = false) {
        container = NSPersistentContainer (название: "PizzaRestaurant")
        // ...
    }  

Теперь давайте взглянем на модификатор .environment , примененный к ContentView в нашей структуре PizzaRestaurantApp .

  ContentView ()
    .environment (\. managedObjectContext, persistenceController.container.viewContext)  

Что делает этот модификатор .environment ? Прежде чем наш ContentView будет запущен в качестве корневого представления, он передает ключ managedObjectContext среды с помощью viewContext , о котором мы только что говорили.

«Среда» - это место, где сохраняются общесистемные настройки, например, Calendar, Locale, ColorScheme, а теперь также viewContext , содержащийся в свойстве контейнера persistenceController .У каждой из этих настроек есть свой ключ; в нашем случае это ключ .managedObjectContext .

Теперь каждое представление в нашем приложении может использовать viewContext как «блокнот» для извлечения, обновления и хранения объектов. Нам просто нужно использовать ключ среды managedObjectContext для доступа к нему, как вы увидите позже.

Не беспокойтесь, если вы не знакомы с этим. Единственное, что вам нужно запомнить, это то, что мы можем использовать managedObjectContext для получения и сохранения наших заказов.Вы увидите, как это просто.

Но сначала мы сделаем небольшую корректировку нашей модели данных CoreData.

Настройка нашей модели данных 🛠

Давайте подождем секунду и еще раз рассмотрим выбор String в качестве типа атрибута status . Статус каждого ордера должен быть только «Ожидание», «Подготовка» и «Завершено». Не лучше ли использовать перечисление для этого? К сожалению, мы не можем создать и использовать перечисление внутри самого файла .xcdatamodeld.Но, как уже говорилось, создав и спроектировав сущность Order , Core Data создала соответствующий класс под капотом. Мы можем получить доступ к этому классу и изменить его, нажав на сущность Order , перейдя на панель инструментов Xcode и выбрав Editor- «Create NSObjectManagedSubclass».

После создания подкласса Xcode сгенерировал для нас два файла. Файл Order + CoreDataClass.swift содержит сам класс, а файл Order + CoreDataProperties.swift содержит его свойства внутри расширения.

После того, как мы создали подкласс нашей модели данных, нам нужно сообщить Xcode, что модель данных больше не определяется визуальным построителем только в нашем файле «.xcdatamodeld», а определяется вручную соответствующим подклассом, который мы только что создали. Для этого откройте файл «.xcdatamodeld», щелкните объект Order и откройте инспектор модели данных. Затем выберите «Вручную / Нет» в качестве режима Codegen.

На этом этапе мы можем удалить вопросительные знаки из свойств типа String, поскольку мы не хотим, чтобы они были необязательными.Xcode также должен создать другое расширение, использующее протокол Identifiable (это упростит нам использование экземпляров Order внутри списка ContentView позже). Поскольку мы объявили свойство id , мы уже соответствуем этому протоколу.

  расширение Порядок: идентифицируемый {

    @nonobjc public class func fetchRequest () -> NSFetchRequest  {
        return NSFetchRequest  (entityName: "Order")
    }

    @NSManaged public var pizzaType: String
    @NSManaged public var numberOfSlices: Int16
    @NSManaged public var id: UUID?
    @NSManaged public var tableNumber: String
    @NSManaged public var status: String

}

extension Order: Identifiable {

}  

Под расширением Order мы можем объявить наше перечисление Status с тремя различными случаями.

  enum Status: String {
    case pending = "Ожидание"
    case prepare = "Подготовка"
    case completed = "Завершено"
}  

Если теперь мы попробуем использовать перечисление Status в качестве типа данных status ', мы получим ошибку.

Вы видите, что свойства @NSManagedObject нельзя напрямую использовать с перечислениями. Но как еще мы можем сохранить статус заказа в Core Data? Вот обходной путь: мы продолжаем использовать свойство NSManaged status , но не свойство Status .Вместо этого это снова должна быть строка. Затем мы добавляем еще одну обычную переменную с именем «orderStatus». Поскольку это не свойство NSManaged, оно может иметь тип Status . Мы назначаем сеттер и получатель нашему orderStatus . Когда это свойство установлено, оно также устанавливает свойство NSManaged соответственно. Используя геттер, мы пытаемся преобразовать строку status в регистр Status при ее получении.

  заказ расширения {

    // ...
    @NSManaged public var status: String
    
    var orderStatus: Status {
        задавать {
            status = newValue.rawValue
        }
        получить {
            Статус (rawValue: status) ?? . ожидая
        }
    }

}  

Отлично, мы доработали модель Core Data для нашего приложения SwiftUI!

Составление нашего пользовательского интерфейса 🎨

Важно : Прежде чем перейти к созданию нашего ContentView , мы должны убедиться, что его предварительный просмотр также может получить доступ к View Context . В противном случае предварительный просмотр SwiftUI завершится неудачно, если зачем пытаться реализовать в нем функциональность CoreData.Для этого мы используем viewContext нашего PersistenceController и назначаем его ключу managedObjectContext среды, как мы это делали в структуре App .

  struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView (). Environment (\. ManagedObjectContext, PersistenceController.preview.container.viewContext)
    }
}
  

Теперь наша предварительная версия ContentView может управлять запросами CoreData!

ContentView нашего приложения для пиццерий должен содержать список всех уже принятых заказов, которыми может управлять соответствующий официант.Поскольку мы пока не можем хранить какие-либо данные, мы пока используем только тестовый список.

  struct ContentView: View {
    var body: some View {
        List {
            Текст («Образец заказа»)
        }
    }
}  

Мы также хотим добавить в наше приложение панель навигации. Для этого мы помещаем наш List в NavigationView и используем модификатор .navigationBarTitle .

  NavigationView {
    List {
        Текст («Образец заказа»)
    }
        .navigationTitle («Мои заказы»)
}  

На панели навигации должна быть кнопка, которую официант может использовать для добавления нового заказа.

  Список {
    Текст («Образец заказа»)
}
    .navigationTitle («Мои заказы»)
    .navigationBarItems (завершающий: Кнопка (действие: {
        print («Открыть лист заказа»)
    }, этикетка: {
        Изображение (systemName: "plus.circle")
            .imageScale (.large)
    }))  

Предварительный просмотр должен выглядеть так:

Когда мы нажимаем на кнопку, мы хотим открыть второе представление. Для этого мы создаем новый файл SwiftUI и называем его «OrderSheet. Мы хотим отобразить OrderSheet как модальное представление.Для этого мы добавляем State в наш ContentView , чтобы контролировать, когда должен отображаться OrderSheet .

  struct ContentView: View {
@State var showOrderSheet = ложь
    var body: some View {
       // ...
    }
}  

Чтобы отобразить OrderSheet как модальное представление, мы используем модификатор .sheet .

  Список {
    Текст («Образец заказа»)
}
    // ...
    .sheet (isPresent: $ showOrderSheet) {
        Лист заказа()
    }  

Каждый раз, когда состояние showOrderSheet истинно, OrderSheet накладывается на ContentView .Теперь мы можем переключать состояние showOrderSheet State с помощью кнопки на панели навигации.

  .navigationBarItems (завершающий: Button (action: {
    showOrderSheet = true
}, этикетка: {
    Изображение (systemName: "plus.circle")
        .imageScale (.large)
}))  

Для тела нашего представления OrderSheet мы будем использовать представление формы, чтобы встроить пользовательские элементы управления, например, в средство выбора с различными доступными вариантами пиццы. Чтобы представить количество ломтиков, которые клиент хочет заказать, мы используем степпер.Наконец, мы используем TextField, где пользователь может выбрать номер таблицы для заказа.

Наконец, мы хотим сохранить данные после того, как пользователь нажмет кнопку «Добавить заказ».

Для пользовательского интерфейса OrderSheet вы можете скопировать и вставить следующий код:

  struct OrderSheet: View {
       
    let pizzaTypes = ["Пицца Маргарита", "Греческая пицца", "Пицца Суприм", "Пицца Калифорния", "Пицца Нью-Йорка"]
    
    @State var selectedPizzaIndex = 1
    @State var numberOfSlices = 1
    @State var tableNumber = ""
    
    var body: some View {
        NavigationView {
            Form {
                Раздел (заголовок: Текст ("Подробная информация о пицце")) {
                    Средство выбора (выбор: $ selectedPizzaIndex, метка: Текст ("Тип пиццы")) {
                        ForEach (0..  

Предварительный просмотр OrderSheet теперь должен выглядеть следующим образом:

Сохранение данных с использованием Core Data и SwiftUI 🆕

Отлично, мы закончили создание интерфейса нашего приложения PizzaRestaurant, но пока ничего не сохраняется и не сохраняется. Чтобы изменить это, нам нужно сначала получить доступ к viewContext , чтобы постоянно сохранять созданный заказ. Поскольку, как мы видели в начале, контекст управляемого объекта внедряется в нашу среду, мы можем просто получить к нему доступ, используя оболочку свойств @Environment внутри нашего OrderSheet над его состояниями.

  @Environment (\. ManagedObjectContext) private var viewContext  

Теперь, когда наш OrderSheet имеет доступ к «блокнотам» устройства, мы готовы создать экземпляр Order при нажатии кнопки «Добавить заказ» . Но сначала мы хотим убедиться, что строка tableNumber не пуста, используя оператор защиты.

  Кнопка (действие: {
    охранять self.tableNumber! = "" else {return}
    let newOrder = Order (контекст: viewContext)
    новый порядок.pizzaType = self.pizzaTypes [self.selectedPizzaIndex]
    newOrder.orderStatus =. ожидает
    newOrder.tableNumber = self.tableNumber
    newOrder.numberOfSlices = Int16 (self.numberOfSlices)
    newOrder.id = UUID ()
}) {
    Текст («Добавить заказ»)
}  

Затем мы пытаемся сохранить созданный заказ. Если это не удается, мы печатаем соответствующую ошибку.

  Кнопка (действие: {
    // ...
    newOrder.id = UUID ()
    делать {
        попробуйте viewContext.save ()
        print ("Заказ сохранен.")
    } ловить {
        печать (error.localizedDescription)
    }
}) {
    Текст («Добавить заказ»)
}
  

После сохранения нового заказа мы хотим закрыть модальное представление OrderSheet . Мы можем сделать это, добавив следующее свойство @Environment в наш OrderSheet .

  @Environment (\ .presentationMode) var presentationMode  

Ссылаясь на это свойство, мы можем вручную закрыть модальное представление:

  do {
    попробуйте viewContext.спасти()
    print ("Заказ сохранен.")
    PresentationMode.wrappedValue.dismiss ()
} ловить {
    печать (error.localizedDescription)
}
  

Хорошо, давайте запустим наше приложение и посмотрим, работает ли оно. Обратите внимание, что холст предварительного просмотра не может имитировать функциональность CoreData. Следовательно, нам нужно запустить приложение в обычном симуляторе. Нажмите кнопку на панели навигации и заполните форму OrderSheet . Затем нажмите «Добавить заказ». Мы сохранили созданный заказ и отклонили OrderSheet .Тем не менее, наш список ContentView по-прежнему отображает свою пробную строку.

Получение и отображение сохраненных заказов 📖

Чтобы изменить это, наш ContentView должен считывать сохраненные заказы. Достичь этой функциональности довольно просто, используя свойство @FetchRequest. Но сначала нашему ContentView требуется доступ к viewContext. Мы делаем это, снова используя свойство @Environment. Под свойства @Environment в ContentView вставьте следующие свойства:

  @Environment (\.managedObjectContext) частный var viewContext

@FetchRequest (entity: Order.entity (), sortDescriptors: [], предикат: NSPredicate (формат: «status! =% @», Status.completed.rawValue))

var orders: FetchedResults   

@FetchRequest постоянно считывает постоянное хранилище для получения из него сохраненных заказов. С аргументом «предикат» мы отфильтровываем все уже выполненные заказы, так как не хотим, чтобы они отображались в нашем списке ContentView . Затем @FetchRequest передает полученные заказы в свойство orders .Каждый раз, когда мы сохраняем новый заказ, @FetchRequest заметит его и добавит его в набор данных orders . Подобно функциональности состояния, это заставляет ContentView обновить свое тело .

Теперь мы готовы отобразить полученные данные в нашем списке, например:

  List {
    ForEach (заказы) {заказ в
        HStack {
            VStack (alignment: .leading) {
                Текст ("\ (order.pizzaType) - \ (order.numberOfSlices) срезы")
                    .шрифт (.headline)
                Текст ("Таблица \ (order.tableNumber)")
                    .font (.subheadline)
            }
            Прокладка ()
            Button (действие: {print ("Порядок обновления")}) {
                Текст (order.orderStatus == .pending? "Prepare": "Complete")
                    .foregroundColor (. синий)
            }
        }
        .frame (высота: 50)
    }
}
    .listStyle (PlainListStyle ()).
    // ...  

Подсказка : Причина, по которой мы используем цикл ForEach внутри списка вместо того, чтобы вставлять набор данных заказов в сам список, станет ясна при удалении заказов.

Когда мы снова запускаем наше приложение, мы видим, что наш @FetchRequest успешно извлекает только что сохраненный заказ из постоянного хранилища.

Подсказка : Кроме того, наш предварительный просмотр ContentView показывает нам разные порядки. Однако это не те, которые находятся в постоянном хранилище устройства, например в симуляторе. Скорее, они генерируются для целей тестирования свойством preview нашего PersistenceController . Вы помните, когда мы адаптировали соответствующий код в самом начале? Получившиеся экземпляры образца Order теперь используются имитатором предварительного просмотра, который сам по себе не имеет постоянного хранилища.

Обновление записей основных данных 🔄

Кнопку с правой стороны каждой строки можно использовать для обновления статуса конкретного заказа . Когда мы добавляем новый Order , его статус будет . В ожидании . Поэтому на кнопке написано «Подготовить». Когда пользователь нажимает на кнопку, мы хотим обновить статус с до . Подготовка , и на кнопке должно быть написано «Завершено». Когда пользователь нажимает снова, мы хотим, чтобы статус заказа был .завершено , в результате чего @FetchRequest отфильтровывает Order .

Чтобы реализовать эту функциональность, мы добавляем следующую функцию под телом нашего ContentView .

  func updateOrder (order: Order) {
        пусть newStatus = order.orderStatus == .pending? Статус. Подготовка:. Завершено
        viewContext.performAndWait {
            order.orderStatus = newStatus
            пытаться? viewContext.save ()
        }
    }  

Мы можем вызвать функцию updateOrder из кнопки нашей строки, передав конкретный экземпляр заказа:

  Button (action: {
    updateOrder (порядок: заказ)
}) {
    Текст (заказ.orderStatus ==. ожидает? «Подготовить»: «Завершить»)
        .foregroundColor (. синий)
}  

Теперь мы можем запустить приложение и нажать кнопку «Подготовить», чтобы пометить текущий отложенный ордер как подготовленный. Если мы нажмем «Завершить», заказ будет отфильтрован и в конечном итоге удален из нашего списка.

Удаление заказов из постоянного хранилища 🗑

Удаление сохраненных данных почти так же просто, как их обновление. Все, что нам нужно сделать, это удалить конкретный Order из viewContext .Затем, поскольку @FetchRequest автоматически обнаружит, что Order был удален, он соответствующим образом обновит наш ContentView и удалит строку из таблицы с красивой анимацией по умолчанию.

Чтобы пользователь мог удалять строки, мы добавляем модификатор .onDelete в цикл ForEach. Мы не можем применить этот модификатор к спискам. Вот почему мы вставили цикл ForEach в список.

  Список {
    ForEach (заказы) {заказ в
        // ...
    }
        .onDelete {indexSet in
            для индекса в indexSet {
                viewContext.delete (заказы [индекс])
            }
            делать {
                попробуйте viewContext.save ()
            } ловить {
                печать (error.localizedDescription)
            }
        }
}
  

Модификатор .onDelete определяет строки, которые пользователь хочет удалить, проводя пальцем по экрану, и использует их индекс / индексы для удаления соответствующих записей Order из viewContext .

Если мы запустим приложение сейчас, то увидим, что можем легко удалить заказ, проведя пальцем по строке.

Заключение №

Вот и все. Мы закончили работу над нашим маленьким приложением для пиццерии! Вы узнали, как использовать Core Data в SwiftUI для постоянного хранения данных. Мы обсудили все основные операции CRUD: создание, чтение, обновление и удаление данных. Мы также поняли, что такое managedObjectContext и как мы можем получить сохраненные данные с помощью @FetchRequest SwiftUI.

Мы загрузили весь исходный код этого приложения на GitHub.


Если вам понравился этот учебник, не стесняйтесь проверить нашу электронную книгу «Освоение SwiftUI». В этой книге мы также создали приложение To-do, используя упомянутые функции Core Data!

Надеюсь, вам понравился этот урок! Если вы хотите узнать больше о SwiftUI, ознакомьтесь с другими нашими руководствами! Кроме того, не забудьте подписаться на нас в Instagram и подписаться на нашу информационную рассылку , чтобы не пропустить никаких обновлений, руководств и советов по SwiftUI и многому другому!

Запрос на изменение доставки: UPS - United States

из

  • ИБП открыта для бизнеса: влияние на обслуживание, связанное с Коронавирусом...Более
  • Зоны поражения от лесных пожаров в Калифорнии ... Еще