Как решить проблему недоступности кнопки "Чек ККМ" в 1С УТ 10.3 после отмены ЕНВД?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Налоговый учет Торговля и дистрибуция
← На главную

Многие пользователи 1С:Управление торговлей, ред. 10.3, сталкиваются с ситуацией, когда кнопка "Чек ККМ" в документе становится недоступной. Это весьма актуальная проблема для старых конфигураций, поскольку она напрямую связана с изменениями в законодательстве, а именно с отменой Единого налога на вмененный доход (ЕНВД) с 1 января 2021 года. Давайте разберем эту проблему и рассмотрим возможные пути ее решения, чтобы восстановить функциональность печати чеков.

Анализ причины недоступности кнопки "Чек ККМ"

Прежде всего, давайте выясним, почему эта кнопка оказывается недоступной. Мы проанализируем код документа "Чек ККМ" в 1С УТ 10.3, который отвечает за проверку условий перед тем, как предоставить пользователю возможность пробить чек.

При открытии документа "Чек ККМ" выполняется процедура ПриОткрытии, в которой содержится логика определения доступности кнопки. Обратим внимание на ключевой фрагмент кода:


Если ЗначениеЗаполнено(КассаККМ) И УстановленЕНВДОрганизации И КассаККМ.ФормироватьНефискальныеЧеки И КассаККМ.РучнойРежимФормирования И Не ЧекПробитНаККМ Тогда
    МассивФР = ПолучитьСерверТО.ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, КассаККМ);
    МассивККТ = ПолучитьСерверТО.ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ККТ, КассаККМ);
    ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЧекККМ.Доступность = (МассивФР.Количество > 0) ИЛИ (МассивККТ.Количество > 0);
ИначеЕсли ЧекПробитНаККМ Тогда
    ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЧекККМ.Доступность = Ложь;
КонецЕсли;

Из этого кода становится очевидно, что доступность кнопки "Чек ККМ" зависит от нескольких условий, объединенных логическим "И". Если хотя бы одно из этих условий ложно, кнопка останется недоступной. В нашем случае, наиболее критичными являются следующие проверки:

  1. УстановленЕНВДОрганизации: Эта функция проверяет, применяется ли ЕНВД организацией. Поскольку ЕНВД отменен, эта функция будет возвращать Ложь.
  2. КассаККМ.ФормироватьНефискальныеЧеки: Этот признак может быть установлен только в том случае, если используется ЕНВД, что делает его Ложь.
  3. КассаККМ.РучнойРежимФормирования: Аналогично предыдущему пункту, этот признак также зависит от использования ЕНВД и будет возвращать Ложь.

Разберем подробнее функцию УстановленЕНВДОрганизации. Ее код выглядит следующим образом:


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

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

Варианты решения проблемы

Поскольку 1С:УТ 10.3 является устаревшей конфигурацией (официальная поддержка прекращена с 1 апреля 2024 года) и не будет получать обновления, учитывающие подобные изменения законодательства, решение проблемы потребует либо доработки кода, либо использования альтернативных подходов.

1. Доработка кода конфигурации

Самый прямой, но требующий квалификации путь — это изменение стандартного кода 1С. Мы можем скорректировать условия, при которых кнопка "Чек ККМ" становится доступной.

  1. Модификация процедуры ПриОткрытии документа "Чек ККМ":

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

    Например, вместо исходного условия:

    
    Если ЗначениеЗаполнено(КассаККМ) И УстановленЕНВДОрганизации И КассаККМ.ФормироватьНефискальныеЧеки И КассаККМ.РучнойРежимФормирования И Не ЧекПробитНаККМ Тогда
    

    Мы можем упростить его, если уверены, что другие проверки не критичны для нашей логики, например:

    
    Если ЗначениеЗаполнено(КассаККМ) И Не ЧекПробитНаККМ Тогда
        МассивФР = ПолучитьСерверТО.ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, КассаККМ);
        МассивККТ = ПолучитьСерверТО.ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ККТ, КассаККМ);
        ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЧекККМ.Доступность = (МассивФР.Количество > 0) ИЛИ (МассивККТ.Количество > 0);
    ИначеЕсли ЧекПробитНаККМ Тогда
        ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ЧекККМ.Доступность = Ложь;
    КонецЕсли;
    

    Такая доработка сделает кнопку доступной, если касса ККМ заполнена и чек еще не пробит, а также если найдены подключенные фискальные регистраторы или ККТ. Однако, это только первый шаг.

  2. Корректировка флагов в объекте КассаККМ:

    Возможно, потребуется также изменить логику установки флагов ФормироватьНефискальныеЧеки и РучнойРежимФормирования в модуле объекта КассаККМ, чтобы они не зависели от наличия ЕНВД.

    Важно: При доработке кода необходимо учитывать, что помимо доступности кнопки, существует и логика формирования самого чека. Система налогообложения (СНО), указанная в 1С (например, УСН), должна совпадать с СНО, настроенной в фискальном регистраторе. Если в 1С будет принудительно установлен ЕНВД (как в одной из попыток пользователя, когда он пытался изменить регистр УчетнаяПолитикаНалоговыйУчет в процедуре ПередЗаписью), а в ККТ настроена УСН, кассовый аппарат будет ругаться на несоответствие СНО, и чек не пробьется. Таким образом, нужно убедиться, что в чек будет передаваться корректная СНО (например, УСН доходы-расходы), соответствующая настройкам ККТ.

2. Использование внешних обработок обслуживания торгового оборудования

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

  1. Актуальные обработки обслуживания:

    Производители ККТ (например, АТОЛ) регулярно выпускают обновленные драйверы и обработки обслуживания торгового оборудования. Часто эти обработки поддерживают работу с современными онлайн-кассами и актуальными форматами фискальных данных (ФФД) даже в старых версиях 1С.

    Внешняя обработка может обходить встроенную в 1С логику проверки ЕНВД и напрямую взаимодействовать с драйвером ККТ, передавая в фискальный регистратор нужную систему налогообложения (УСН, ОСН и т.д.) и корректные данные чека. Мы рекомендуем поискать и установить самую свежую обработку обслуживания для вашего фискального регистратора, совместимую с УТ 10.3.

  2. Универсальные обработки:

    Некоторые разработчики предлагают универсальные обработки, которые могут работать с разными моделями ККТ и позволяют настроить параметры фискализации, включая СНО, независимо от внутренней логики конфигурации 1С. Это может быть хорошим решением, если стандартные обработки не справляются.

3. Настройка ККТ через утилиты драйвера

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

  1. Использование "Теста драйвера":

    Большинство производителей ККТ предоставляют утилиты для настройки своих устройств (например, "Тест драйвера АТОЛ"). С их помощью мы можем подключиться к фискальному регистратору напрямую (минуя 1С) и проверить/изменить следующие параметры:

    • Система налогообложения (СНО): Установим в ККТ ту СНО, которую применяет организация (например, УСН Доходы-Расходы). Это критически важно, чтобы избежать конфликта, описанного пользователем.
    • Налоговые ставки: Проверим, что все необходимые налоговые ставки (например, НДС 20%, 10%, без НДС) корректно настроены.

    Правильная предварительная настройка ККТ поможет избежать ошибок при формировании чеков из 1С.

4. Обновление до более новой версии 1С

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

  1. Ограничения УТ 10.3:

    Как мы уже упоминали, УТ 10.3 больше не поддерживается. Это означает, что конфигурация не будет получать обновлений, необходимых для соответствия актуальным требованиям законодательства (маркировка, новые форматы ФФД, изменения в НДС и т.д.), а также не будет корректно обмениваться данными с современными версиями 1С:Бухгалтерии.

  2. Переход на актуальные решения:

    Наиболее надежным и долгосрочным решением является переход на современные конфигурации 1С, такие как 1С:Управление торговлей 11 (УТ 11), 1С:Управление нашей фирмой (УНФ) или 1С:Розница. Эти конфигурации изначально разработаны с учетом актуальных требований к работе с онлайн-кассами и поддерживают все современные механизмы фискализации.

    Мы должны понимать, что переход с УТ 10.3 на УТ 11 — это не просто обновление, а фактически миграция данных, так как структуры конфигураций значительно отличаются. Это трудоемкий процесс, который потребует планирования и привлечения специалистов, но в долгосрочной перспективе он избавит от подобных проблем.

Общие рекомендации при работе с ККТ в 1С УТ 10.3

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

  1. Актуальность драйверов ККТ: Всегда используем самые свежие версии драйверов для вашего фискального регистратора. Производители регулярно выпускают обновления, улучшающие совместимость и исправляющие ошибки.
  2. Корректные параметры подключения: Убедимся, что в настройках 1С и драйвера ККТ указаны правильные параметры подключения (COM-порт, скорость, модель ККТ).
  3. Согласование СНО: Убедимся, что система налогообложения, указанная в документах 1С (либо передаваемая внешней обработкой), полностью совпадает с СНО, настроенной в самом фискальном регистраторе.

Работа с устаревшими конфигурациями 1С всегда связана с подобными вызовами. Мы видим, что проблема недоступности кнопки "Чек ККМ" в УТ 10.3 является ярким примером того, как изменения в законодательстве могут влиять на работоспособность программного обеспечения, не получающего своевременных обновлений. Хотя доработка кода или использование внешних обработок могут временно решить проблему, наиболее эффективным и надежным решением в долгосрочной перспективе является переход на современные версии 1С, которые полностью соответствуют актуальным требованиям.

← На главную