Как сделать, чтобы в чеке ККМ печаталось полное наименование товара вместо краткого в 1С:Розница?

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

В процессе работы с программой 1С:Розница многие пользователи сталкиваются с тем, что на фискальном чеке печатается рабочее (краткое) наименование товара, в то время как требования законодательства или внутренние стандарты компании требуют вывода полного наименования. Особенно остро этот вопрос встал после ужесточения правил 54-ФЗ, согласно которым товар в чеке должен быть легко идентифицируем покупателем и налоговой службой.

В этой статье мы подробно разберем, почему программа ведет себя именно так, и рассмотрим несколько способов решения этой задачи в зависимости от типа вашей лицензии (Базовая или ПРОФ) и версии конфигурации.

Анализируем причину: почему печатается краткое наименование?

Для начала проанализируем ситуацию с технической стороны. В конфигурации 1С:Розница логика подготовки данных для пробития чека заложена на уровне программного кода в модуле менеджера документа ЧекККМ. Разберем конкретную процедуру, отвечающую за формирование строк чека.

Проблема кроется в процедуре ДополнитьТоварамиПараметрыПриПробитииЧека. Если мы заглянем в код (актуально для версий линейки 2.2 и многих релизов 2.3), то увидим следующую конструкцию:


НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");

Давайте разберем, что здесь происходит. Функция Строка(СтрокаТЧ.Номенклатура) обращается к основному представлению объекта метаданных. По умолчанию в 1С для справочника Номенклатура основным представлением является именно поле Наименование (краткое), а не НаименованиеПолное. Таким образом, даже если вы заполнили поле Полное наименование красивым и подробным текстом, программа игнорирует его при формировании данных для кассового аппарата.

Решение №1: Изменение программного кода (для версии ПРОФ)

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

  1. Откроем конфигуратор и найдем документ ЧекККМ.
  2. Перейдем в Модуль менеджера документа.
  3. Найдем процедуру ДополнитьТоварамиПараметрыПриПробитииЧека (или аналогичную ей в вашем релизе, отвечающую за заполнение массива товаров для ККТ).
  4. Заменим строку формирования наименования. Нам нужно явно указать обращение к реквизиту НаименованиеПолное.

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


// Вместо обращения к объекту целиком, обращаемся к конкретному полю
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура.НаименованиеПолное) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");

Важный момент: При таком подходе следует учитывать длину строки. Большинство фискальных накопителей и драйверов ККТ имеют ограничение по количеству символов в одной строке (обычно от 64 до 128 символов). Если ваше полное наименование слишком длинное, оно может быть обрезано драйвером или вызвать ошибку печати, если в настройках оборудования не разрешен автоматический перенос строк.

Решение №2: Использование расширений (для современных версий Базовой и ПРОФ)

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

Проанализируем алгоритм создания расширения:

  1. Создадим новое расширение в конфигураторе.
  2. Добавим в расширение документ ЧекККМ и его модуль менеджера.
  3. Используем аннотацию &Вместо для процедуры ДополнитьТоварамиПараметрыПриПробитииЧека.
  4. Скопируем основной код процедуры из типовой конфигурации в расширение и заменим формирование НаименованиеТовара, как было показано в предыдущем пункте.

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

Решение №3: Рокировка данных (универсальный метод для Базовой версии)

Если у вас старая базовая версия, которая не поддерживает расширения, или вы не хотите привлекать программиста, можно воспользоваться «административным» методом. Выясним, как обмануть систему, не меняя код.

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

Рассмотрим, как сделать это массово с помощью стандартных инструментов:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных.
  2. Выберем инструмент Групповое изменение реквизитов.
  3. В поле «Изменять» выберем справочник Номенклатура.
  4. Нажмем кнопку «Дополнительные параметры» и установим галочку «Показывать служебные реквизиты» (это важно для доступа к обоим полям наименований).
  5. Проанализируем ситуацию: мы можем скопировать данные из одного поля в другое. К сожалению, стандартная обработка не всегда позволяет напрямую переносить значения между полями одним кликом. В таком случае можно выгрузить номенклатуру в Excel (используя отчет или обработку «Загрузка данных из табл. документа»), поменять колонки местами и загрузить обратно по коду или артикулу.

Совет: Чтобы не потерять краткие названия, которые удобны для поиска сотрудникам склада, их можно перенести в поле Артикул или создать Дополнительный реквизит «Рабочее название».

Решение №4: Настройка шаблонов чеков в новых релизах (Розница 2.3 и 3.0)

В современных редакциях (особенно в Розница 3.0, построенной на базе УНФ) разработчики сделали механизм формирования чека более гибким. Посмотрим на возможности настройки шаблонов:

  1. Зайдем в раздел Продажи — Шаблоны чеков ККМ.
  2. Проанализируем доступные поля. В некоторых релизах можно редактировать фискальную часть чека.
  3. Если редактор позволяет выбрать поле для строки товара, заменим Номенклатура.Наименование на Номенклатура.НаименованиеПолное.

Однако стоит помнить, что в Рознице 2.2/2.3 редактор шаблонов чаще всего отвечает только за «нефискальную» часть (текст в начале или в конце чека), а сама табличная часть товаров формируется жестко по коду, который мы разбирали в начале статьи.

Юридический аспект и 54-ФЗ

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

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

Технические нюансы драйверов ККТ

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

Подводя итог, можно сказать: проблема печати краткого наименования в 1С:Розница решаема. Для пользователей ПРОФ-версий это минутная правка кода или установка расширения. Для владельцев Базовых версий — это повод обновить платформу для использования расширений или провести реорганизацию данных в справочнике номенклатуры.

← На главную