В процессе работы с программой 1С:Розница многие пользователи сталкиваются с тем, что на фискальном чеке печатается рабочее (краткое) наименование товара, в то время как требования законодательства или внутренние стандарты компании требуют вывода полного наименования. Особенно остро этот вопрос встал после ужесточения правил 54-ФЗ, согласно которым товар в чеке должен быть легко идентифицируем покупателем и налоговой службой.
В этой статье мы подробно разберем, почему программа ведет себя именно так, и рассмотрим несколько способов решения этой задачи в зависимости от типа вашей лицензии (Базовая или ПРОФ) и версии конфигурации.
Для начала проанализируем ситуацию с технической стороны. В конфигурации 1С:Розница логика подготовки данных для пробития чека заложена на уровне программного кода в модуле менеджера документа ЧекККМ. Разберем конкретную процедуру, отвечающую за формирование строк чека.
Проблема кроется в процедуре ДополнитьТоварамиПараметрыПриПробитииЧека. Если мы заглянем в код (актуально для версий линейки 2.2 и многих релизов 2.3), то увидим следующую конструкцию:
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");
Давайте разберем, что здесь происходит. Функция Строка(СтрокаТЧ.Номенклатура) обращается к основному представлению объекта метаданных. По умолчанию в 1С для справочника Номенклатура основным представлением является именно поле Наименование (краткое), а не НаименованиеПолное. Таким образом, даже если вы заполнили поле Полное наименование красивым и подробным текстом, программа игнорирует его при формировании данных для кассового аппарата.
Если вы используете версию ПРОФ, вы имеете возможность вносить изменения в конфигурацию. Рассмотрим по шагам, как исправить эту ситуацию программно, чтобы в чеки всегда попадало полное описание товара.
ЧекККМ.ДополнитьТоварамиПараметрыПриПробитииЧека (или аналогичную ей в вашем релизе, отвечающую за заполнение массива товаров для ККТ).НаименованиеПолное.Измененный код должен выглядеть следующим образом:
// Вместо обращения к объекту целиком, обращаемся к конкретному полю
НаименованиеТовара = Строка(СтрокаТЧ.Номенклатура.НаименованиеПолное) + ?(ЗначениеЗаполнено(СтрокаТЧ.Характеристика), " (" + Строка(СтрокаТЧ.Характеристика) + ")", "");
Важный момент: При таком подходе следует учитывать длину строки. Большинство фискальных накопителей и драйверов ККТ имеют ограничение по количеству символов в одной строке (обычно от 64 до 128 символов). Если ваше полное наименование слишком длинное, оно может быть обрезано драйвером или вызвать ошибку печати, если в настройках оборудования не разрешен автоматический перенос строк.
Начиная с платформы 8.3.14, расширения конфигурации стали поддерживаться даже в Базовых версиях. Это «чистый» способ решения проблемы, так как он не требует снятия программы с поддержки.
Проанализируем алгоритм создания расширения:
ЧекККМ и его модуль менеджера.&Вместо для процедуры ДополнитьТоварамиПараметрыПриПробитииЧека.НаименованиеТовара, как было показано в предыдущем пункте.Этот метод предпочтительнее, так как при обновлении программы ваши изменения не пропадут, и вам не придется заново искать нужную строку в коде.
Если у вас старая базовая версия, которая не поддерживает расширения, или вы не хотите привлекать программиста, можно воспользоваться «административным» методом. Выясним, как обмануть систему, не меняя код.
Суть метода заключается в том, чтобы поменять содержимое полей Наименование и НаименованиеПолное местами. Поскольку программа всегда печатает «Наименование», мы запишем туда подробный текст для чека.
Рассмотрим, как сделать это массово с помощью стандартных инструментов:
Номенклатура.Совет: Чтобы не потерять краткие названия, которые удобны для поиска сотрудникам склада, их можно перенести в поле Артикул или создать Дополнительный реквизит «Рабочее название».
В современных редакциях (особенно в Розница 3.0, построенной на базе УНФ) разработчики сделали механизм формирования чека более гибким. Посмотрим на возможности настройки шаблонов:
Номенклатура.Наименование на Номенклатура.НаименованиеПолное.Однако стоит помнить, что в Рознице 2.2/2.3 редактор шаблонов чаще всего отвечает только за «нефискальную» часть (текст в начале или в конце чека), а сама табличная часть товаров формируется жестко по коду, который мы разбирали в начале статьи.
Проанализируем, почему это важно с точки зрения закона. Согласно текущим правилам применения ККТ, наименование товара в чеке должно позволять однозначно определить покупку. Если в базе товар называется «Кртк жн син 44», а в полном наименовании указано «Куртка женская демисезонная, цвет синий, размер 44», то первый вариант при проверке может быть признан нарушением.
Использование полного наименования в чеке — это не просто эстетический вопрос, а способ защиты от штрафов. Поэтому, если ваша программа печатает сокращения, рекомендуем воспользоваться одним из вышеописанных методов как можно скорее.
Выясним, какие препятствия могут возникнуть на стороне оборудования. Даже если мы заставили 1С передавать полное наименование, кассовый аппарат может его «испортить».
Подводя итог, можно сказать: проблема печати краткого наименования в 1С:Розница решаема. Для пользователей ПРОФ-версий это минутная правка кода или установка расширения. Для владельцев Базовых версий — это повод обновить платформу для использования расширений или провести реорганизацию данных в справочнике номенклатуры.