Как исправить ошибку программирования реквизитов 1256 и 1243 в 1С:УТ 10.3 при переходе на ФФД 1.2?

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

Переход на формат фискальных данных (ФФД) 1.2 принес немало сложностей пользователям старых конфигураций, таких как 1С:Управление торговлей 10.3. Одной из самых распространенных проблем стала блокировка печати чека с ошибкой «Ошибка программирования реквизита 1256 (или 1243)». Давайте разберем природу этой ошибки и найдем способы её решения, исходя из требований законодательства и особенностей реализации драйверов АТОЛ.

Анализируем причину возникновения ошибки

Для начала выясним, что это за реквизиты и почему ККТ отказывается принимать чек. Согласно приказу ФНС, в формате 1.2 значительно ужесточились требования к идентификации покупателя при определенных видах расчетов. Проанализируем ключевые теги:

  1. Тег 1227 — Наименование покупателя (ФИО для физлица или название организации).
  2. Тег 1228 — ИНН покупателя.
  3. Тег 1243 — Дата рождения покупателя.
  4. Тег 1256 — Статус покупателя.

Основная проблема заключается в логической связке: если в чек передается Наименование покупателя (тег 1227), то драйвер кассы в режиме ФФД 1.2 требует обязательного заполнения либо ИНН (тег 1228), либо расширенного набора данных, включающего Дату рождения (тег 1243) и данные документа, удостоверяющего личность.

В конфигурации УТ 10.3 при пробитии чека из документов «Реализация товаров и услуг» или «Приходный кассовый ордер» программа автоматически подставляет ФИО контрагента. Если это физическое лицо, у которого в базе не заполнен ИНН, возникает конфликт: ФИО передано, а ИНН — нет. Драйвер АТОЛ пытается найти дату рождения, не находит её (или получает пустое значение) и выдает ту самую ошибку программирования реквизита.

Решение №1: Обновление конфигурации и обработки обслуживания

Рассмотрим самый очевидный и правильный с точки зрения поддержки путь. Фирма «1С» выпустила обновления для УТ 10.3, адаптированные под ФФД 1.2. Проанализируем необходимые действия:

  1. Необходимо обновить конфигурацию до релиза 10.3.72.3 или выше.
  2. После обновления конфигурации критически важно обновить внешнюю обработку обслуживания ККТ. Для касс АТОЛ это файл ATOLKKT.epf (или аналогичный из состава дистрибутива).
  3. Убедимся, что драйвер АТОЛ установлен версии не ниже 10.9.x.

Как показывает практика, в новых релизах логика формирования XML-пакета для кассы была пересмотрена. Программа теперь более корректно обрабатывает ситуацию, когда покупатель является физическим лицом.

Решение №2: Корректное заполнение карточки контрагента

Если обновление не помогло или временно невозможно, разберем методику настройки данных в самой базе. Проверим следующие моменты в карточке контрагента:

Установка типа контрагента. Убедимся, что в поле «Юр. / физ. лицо» выбрано значение Физ. лицо. Это напрямую влияет на то, какие теги обработка печати будет пытаться заполнить. Если по ошибке стоит «Юр. лицо», но ИНН не заполнен (или заполнен некорректно, например, 9 цифр для иностранных граждан), касса выдаст ошибку.

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

Заполнение ИНН нулями. Некоторые пользователи практикуют заполнение ИНН строкой «000000000000». Это позволяет «протолкнуть» чек через драйвер, однако стоит помнить, что в ОФД такой чек может уйти с предупреждением о некорректном ИНН, что в дальнейшем может вызвать вопросы у налоговых органов.

Решение №3: Модификация кода обработки обслуживания (для программистов)

Если вы столкнулись с ситуацией, когда даже актуальная обработка ATOLKKT.epf продолжает передавать пустые реквизиты, вызывая ошибку, мы можем прибегнуть к программной корректировке. Рассмотрим логику внесения изменений:

Нам необходимо найти процедуру, отвечающую за формирование XML для драйвера (обычно это функции внутри модуля обработки обслуживания, работающие с объектом МенеджерОборудования). Нам нужно добавить условие: если ИНН покупателя не заполнен, то и ФИО (тег 1227) передавать не следует.

Пример логики на языке 1С (псевдокод):


Если ПустаяСтрока(ДанныеЧека.ИННПокупателя) Тогда
    // Если ИНН нет, удаляем ФИО, чтобы ККТ не требовала дату рождения
    ДанныеЧека.НаименованиеПокупателя = "";
КонецЕсли;

Такой подход позволяет пробивать чеки на физлиц в упрощенном режиме, как это происходит в интерфейсе «Чек ККМ» розничной торговли, где покупатель по умолчанию обезличен.

Устранение сопутствующей ошибки реквизита 1008

Часто после исправления ошибок 1256/1243 пользователи сталкиваются с ошибкой программирования реквизита 1008. Этот реквизит отвечает за электронный адрес или телефон покупателя. Разберем, почему это происходит:

В ФФД 1.2 формат передачи телефона стал очень строгим. Он должен передаваться в международном формате, начинаясь с «+». Например: +79001112233. Если в карточке контрагента телефон записан со скобками, пробелами или через «8», драйвер 10-й версии выдаст ошибку 1008.

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

  1. Проверим корректность заполнения поля Email и Телефон в карточке контрагента.
  2. Если чек должен быть только электронным (без печати бумажного), наличие тега 1008 становится обязательным. Если же чек печатается на бумаге, попробуем очистить эти поля в форме перед пробитием, если формат данных не соответствует требованиям.

Проблемы с маркировкой (отсутствие признака [M])

При переходе на ФФД 1.2 пользователи также замечают, что в чеках пропадает привычный признак [M] для маркированных товаров. Выясним причину. В новом формате вместо единого признака введены статусы [M+] (проверка в ИС МП прошла успешно), [M-] (проверка провалена) или [M] (проверка не проводилась или статус неизвестен).

Если марки в ОФД видны, но в Честном Знаке они не списываются, это означает, что ККТ не выполнила запрос на проверку кода маркировки перед закрытием чека. Это происходит, если:

Для решения этой проблемы мы рекомендуем убедиться, что в настройках оборудования выбран драйвер версии 10, поддерживающий ФФД 1.2, и в параметрах ККТ установлена соответствующая версия ФФД.

Краткий итог действий

Подводя итог нашему разбору, выделим основные этапы борьбы с ошибкой реквизита 1256:

Во-первых, обновляемся. Релизы 10.3.72.x и драйверы 10.9.x содержат большинство исправлений. Во-вторых, проверяем контрагентов. Если не хотите менять код, заполняйте ИНН у всех физических лиц, по которым делаете отгрузки через «Реализацию». В-третьих, если данные покупателя не критичны для передачи в ФНС, исключаем ФИО из чека программным путем, чтобы снять требование ККТ по заполнению даты рождения.

← На главную