При совмещении розничными продавцами различных налоговых режимов (ранее это было совмещение УСН и ЕНВД, сегодня — УСН и Патентной системы налогообложения (ПСН)) возникает серьезное законодательное требование. Согласно правилам применения контрольно-кассовой техники (54-ФЗ), в одном фискальном чеке может быть указана только одна система налогообложения (СНО). Если покупатель одновременно приобретает товары, относящиеся к разным СНО (например, маркированную обувь по УСН и сопутствующие аксессуары по патенту), кассир обязан выдать ему два разных фискальных чека.
В конфигурации 1С:Розница этот механизм давно автоматизирован и работает "из коробки". Однако пользователи программы 1С:Управление торговлей 11 (УТ 11) часто сталкиваются с тем, что встроенное рабочее место кассира (РМК) жестко привязано к одному складу и одной СНО, что делает невозможным быстрое и удобное разделение чеков при продаже. В рамках этой статьи мы подробно разберем, почему возникает эта проблема, проанализируем доступные варианты ее решения и рассмотрим алгоритмы доработки системы.
Разработчики фирмы 1С позиционируют 1С:Управление торговлей в первую очередь как бэк-офисную систему оптового учета. В связи с этим глубокая автоматизация розничных процессов в ней продвигается медленнее, чем в специализированных решениях. Архитектурная проблема разделения продаж в УТ 11 кроется в следующем:
Чек ККМ в УТ 11 жестко привязан к одной организации, одной кассе ККМ и, соответственно, к одному складу.Чек ККМ отправить на фискальный накопитель разные СНО для разных строк.Для решения этой задачи у нас есть три основных пути: использование обходного штатного метода (двух складов), интеграция с внешним кассовым модулем от 1С или доработка конфигурации (написание собственного кода разделения чеков).
Рассмотрим, как можно попытаться решить задачу стандартными средствами без программирования. Для этого в системе настраивается схема с разделением мест хранения:
Реализация товаров и услуг система автоматически разделит товары по разным складам и позволит выставить правильные СНО.Минус метода: Данная схема крайне неудобна для оперативной розничной торговли. Кассир в РМК не может быстро переключаться между складами, сканируя товары в один список. Ему придется создавать две разные продажи, что замедляет обслуживание покупателей и приводит к очередям.
Если вы используете современную версию 1С:Управление торговлей 11.5, фирма 1С предлагает современное и полностью поддерживаемое решение — интеграцию с конфигурацией 1С:РМК (отдельное приложение для кассового узла).
Схема работы в этом случае выглядит так:
1С:РМК на кассовом компьютере.1С:РМК, сканируя все товары в один чек. При нажатии кнопки оплаты 1С:РМК самостоятельно анализирует состав корзины, разделяет товары по СНО и пробивает на одной физической ККТ два отдельных фискальных чека.Если внедрение дополнительной базы данных нежелательно, а кассиры должны работать непосредственно в интерфейсе РМК конфигурации УТ 11, единственным выходом остается кастомизация логики проведения и печати чеков. Разберем по шагам, как реализовать этот алгоритм с помощью механизма расширений.
Для автоматического разбиения нам потребуется:
Рассмотрим концептуальный пример кода, который перехватывает процедуру оплаты в РМК и разбивает исходную таблицу товаров на две части перед отправкой на фискализацию:
// Функция производит деление корзины товаров на две коллекции по признаку СНО
Процедура РазбитьТоварыПоСистемамНалогообложения(ТаблицаТоваров, ТаблицаУСН, ТаблицаПатент) Экспорт
ТаблицаУСН = ТаблицаТоваров.СкопироватьКолонки();
ТаблицаПатент = ТаблицаТоваров.СкопироватьКолонки();
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
// Проверяем признак СНО у номенклатуры
Если СтрокаТовара.Номенклатура.ДополнительныйРеквизитСНО = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложения.Упрощенная") Тогда
ЗаполнитьЗначенияСвойств(ТаблицаУСН.Добавить(), СтрокаТовара);
Иначе
// Все сопутствующие товары и аксессуары относим к патенту (или ЕНВД)
ЗаполнитьЗначенияСвойств(ТаблицаПатент.Добавить(), СтрокаТовара);
EndIf;
КонецЦикла;
КонецПроцедуры
После разделения коллекции товаров в момент совершения транзакции оплаты система должна сформировать не один документ Чек ККМ, а два отдельных документа в транзакции:
// Пример логики создания двух чеков ККМ вместо одного
Процедура ПробитьРаздельныеЧеки(ТаблицаТоваров, ПараметрыОплаты, КассаККМ)
ТаблицаУСН = Новый ТаблицаЗначений;
ТаблицаПатент = Новый ТаблицаЗначений;
РазбитьТоварыПоСистемамНалогообложения(ТаблицаТоваров, ТаблицаУСН, ТаблицаПатент);
// Пробиваем первый чек по УСН, если есть товары
Если ТаблицаУСН.Количество() > 0 Тогда
ЧекУСН = Документы.ЧекККМ.СоздатьДокумент();
ЧекУСН.Дата = ТекущаяДата();
ЧекУСН.КассаККМ = КассаККМ;
ЧекУСН.Организация = КассаККМ.Владелец;
ЧекУСН.Налогообложение = Перечисления.ТипыСистемНалогообложения.Упрощенная;
ЧекУСН.Товары.Загрузить(ТаблицаУСН);
// Заполняем параметры оплаты пропорционально или относим на этот чек
ЧекУСН.Записать(РежимЗаписиДокумента.Проведение);
// Вызов штатного механизма печати на фискальном регистраторе
МенеджерОборудованияКлиент.ПробитьЧекНаККТ(ЧекУСН);
КонецЕсли;
// Пробиваем второй чек по Патенту
Если ТаблицаПатент.Количество() > 0 Тогда
ЧекПатент = Документы.ЧекККМ.СоздатьДокумент();
ЧекПатент.Дата = ТекущаяДата();
ЧекПатент.КассаККМ = КассаККМ;
ЧекПатент.Организация = КассаККМ.Владелец;
ЧекПатент.Налогообложение = Перечисления.ТипыСистемНалогообложения.Патент;
ЧекПатент.Товары.Загрузить(ТаблицаПатент);
ЧекПатент.Записать(РежимЗаписиДокумента.Проведение);
// Вызов штатного механизма печати на фискальном регистраторе
МенеджерОборудованияКлиент.ПробитьЧекНаККТ(ЧекПатент);
КонецЕсли;
КонецПроцедуры
При использовании этого подхода крайне важно правильно распределить сумму полученной оплаты (особенно если это безналичный расчет по эквайрингу или смешанная оплата) между двумя получившимися документами. Сумма оплат по обоим чекам должна строго равняться сумме, фактически списанной с карты покупателя или полученной наличными.
При закрытии кассовой смены в УТ 11 штатная обработка собирает все проведенные документы Чек ККМ за текущий день и формирует сводный документ Отчет о розничных продажах (ОРП).
Если вы реализовали доработку по созданию раздельных чеков, то при закрытии смены система автоматически создаст два документа Отчет о розничных продажах: один с установленным флагом ЕНВД/Патент, другой — по стандартной УСН. Это позволит в дальнейшем без ошибок выгрузить данные в 1С:Бухгалтерия предприятием (БП 3.0) для корректного ведения книги учета доходов и расходов (КУДиР) и распределения затрат.
Для облегчения процесса разработки вы также можете воспользоваться готовыми решениями, публикуемыми разработчиками на специализированных порталах (например, использовать наработки расширения из публикации Инфостарт № 1259956, адаптировав его под релиз вашей конфигурации УТ 11).