Как добавить печать номера чека на ККТ Атол 5-й платформы из 1С Управление Торговлей 10.3?

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

При работе с контрольно-кассовой техникой Атол на 5-й платформе, особенно в связке с конфигурацией 1С Управление Торговлей 10.3, пользователи часто сталкиваются с проблемой отсутствия номера чека на печатной форме. Несмотря на то, что Атол по умолчанию исключил этот реквизит, номер чека остается важным для многих бизнес-процессов. Давайте рассмотрим, почему так происходит и какие существуют пути решения этой задачи.

Причины отсутствия номера чека на Атол 5-й платформе

Прежде всего, давайте выясним причину, по которой номер чека перестал печататься. Эта ситуация возникла в связи с изменениями в законодательстве Российской Федерации, вступившими в силу после 1 марта 2020 года. Эти изменения исключили номер смены и номер чека в смене из списка обязательных реквизитов фискального чека. В ответ на это, производитель ККТ Атол, начиная с прошивки 5.7.0 для 5-й платформы, по умолчанию прекратил печать этих реквизитов.

Однако, в некоторых случаях, после обновления прошивки или перехода на 5-ю платформу, ККТ может начать снова печатать эти номера, "вспоминая" старые требования. В таких ситуациях, напротив, может потребоваться установка специальных шаблонов, которые отключают печать номера смены и номера чека. Например, для 80 мм ленты это могут быть шаблоны ATEC3012.con (для сжатого шрифта) и ATCP3010.con (для стандартного шрифта).

Решение 1: Редактирование шаблонов через Драйвер ККТ Атол (ДТО)

Наиболее эффективным и рекомендованным способом для управления содержимым печатного чека на ККТ Атол 5-й платформы является использование специализированного программного обеспечения – Драйвера ККТ Атол (ДТО) и входящего в его состав Редактора шаблонов чеков АТОЛ (Template Editor). Это позволяет нам модифицировать внешний вид чека на уровне фискального регистратора.

  1. Запуск редактора шаблонов. Прежде всего, нам необходимо запустить Драйвер ККТ Атол, а затем найти и открыть Редактор шаблонов чеков АТОЛ (Template Editor). Этот инструмент предназначен для визуального и текстового редактирования шаблонов.
  2. Открытие или создание шаблона. В редакторе мы можем открыть существующий шаблон чека или создать новый. Нам предстоит найти место, где должен быть напечатан номер чека.
  3. Внесение изменений в шаблон. Шаблоны Атол используют специфический синтаксис для обозначения областей печати и вставляемых реквизитов. Рассмотрим пример из исходного сообщения, который иллюстрирует, как мы могли бы добавить номер чека в шапку:
    
    123456789012345678901234 #Область ШапкаЧека24
    [ Заголовок ]
    [ Организация ]
    [ ИНН ]
    ========================
    Номер чека:[НомерЧекаККМ]
    ========================
    #КонецОбласти
    

    В приведенном примере [НомерЧекаККМ] является плейсхолдером, который ККТ будет автоматически заменять на фактическое значение, если оно доступно в данных, передаваемых для печати. Если подобного плейсхолдера нет в вашем шаблоне, мы можем попытаться добавить его вручную в соответствующую область (например, #Область ШапкаЧека или #Область ПодвалЧека).

  4. Загрузка шаблона в ККТ. После того как мы внесли необходимые изменения и сохранили шаблон, его необходимо загрузить непосредственно в фискальный регистратор. Для этого мы переходим на вкладку ПО ККТ в Драйвере ККТ, выбираем измененный шаблон и инициируем процесс загрузки.
  5. Активация пользовательских шаблонов. Критически важно: чтобы касса использовала наш модифицированный шаблон, а не шаблон по умолчанию, необходимо убедиться, что в параметрах ККТ на вкладке Основные активирована опция Использовать загружаемые шаблоны, установленная в значение Да. Без этого касса будет продолжать использовать свои встроенные (дефолтные) шаблоны.
  6. Работа со стандартными шаблонами. На 5-й платформе существуют три типа шаблонов по умолчанию: стандартный (ATCP), компактный (ATEC) и сверхкомпактный (ATUC). При редактировании шаблона мы можем использовать один из них в качестве основы.

Также, если нам нужно добавить статичный текст или изображение в верхнюю или нижнюю часть чека (так называемое "клише"), это делается отдельно в драйвере, а не в самом шаблоне. Мы найдем эти настройки через раздел Свойства в драйвере, затем Параметры ККТ, пункт Клише.

Решение 2: Добавление номера чека как нефискальной строки через 1С УТ 10.3

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

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

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

    Для примера, мы можем принять, что переменная Номер уже содержит нужный нам номер чека.

  3. Формирование и добавление нефискальной строки. В коде 1С, перед циклом формирования позиций товаров (или в другом логичном месте, например, в шапке чека), мы будем использовать методы менеджера оборудования для создания и добавления текстовой строки.

    Рассмотрим пример кода, демонстрирующий, как можно добавить нефискальную строку:

    
    // Предполагаем, что "МенеджерОборудованияКлиентСервер" и "ОбщиеПараметры"
    // являются доступными объектами, предоставляющими интерфейс к драйверу ККТ.
    // "Номер" должен быть переменной, содержащей нужный номер чека.
    
    СтрокаТекста = МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧекаФормат("Документ № " + Номер);
    ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаТекста);
    
    // Далее мы продолжаем формирование фискальных позиций чека
    Для Каждого СтрокаТовара Из ЧекККМ.Товары Цикл
        СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека;
        // Здесь заполняем необходимые параметры для каждой позиции товара:
        // СтрокаЧека.Наименование = СтрокаТовара.Номенклатура.НаименованиеПолное;
        // СтрокаЧека.Количество = СтрокаТовара.Количество;
        // СтрокаЧека.Цена = СтрокаТовара.Цена;
        // СтрокаЧека.Сумма = СтрокаТовара.Сумма;
        // СтрокаЧека.СтавкаНДС = СтрокаТовара.СтавкаНДС;
        // и другие реквизиты, необходимые для фискализации...
        ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);
    КонецЦикла;
    

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

  4. Добавление нефискальных строк через скрипты драйвера (для шапки/подвала). Если нам нужно добавить текст непосредственно в шапку или подвал чека, мы можем использовать прямые команды драйвера, которые могут быть вызваны из 1С. Эти команды позволяют управлять печатью нефискальных строк до или после основных фискальных позиций.

    Рассмотрим пример:

    
    // Предполагаем, что "Fptr" - это объект драйвера ККТ,
    // доступный в контексте выполнения кода 1С.
    
    // Добавление текста в шапку чека
    Fptr.setParam(Fptr.LIBFPTR_PARAM_TEXT, "Ваш текст в шапке чека\n");
    Fptr.setHeaderLines();
    
    // ... здесь будет код для формирования основных фискальных позиций чека ...
    
    // Добавление текста в подвал чека
    Fptr.setParam(Fptr.LIBFPTR_PARAM_TEXT, "Ваш текст в подвале чека\n");
    Fptr.setFooterLines();
    

    Обратите внимание, что символ \n используется для принудительного переноса строки в тексте. Метод Fptr.setHeaderLines() отправляет текст для печати в области шапки, а Fptr.setFooterLines() — в области подвала. Эти команды должны быть вызваны в соответствующих местах процесса формирования чека.

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

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

Для чего нужен номер чека?

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

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

Заключение

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

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

← На главную