При работе с торговым оборудованием, особенно в периоды изменения законодательства (например, смена ставок НДС или переход на новые форматы фискальных данных), пользователи часто сталкиваются с аппаратными ошибками драйвера. Одной из самых распространенных и «немых» ошибок является сообщение: «поле "items" отсутствует». На первый взгляд кажется, что проблема в номенклатуре, но корень ситуации обычно лежит глубже — в программном обеспечении кассы или настройках протокола обмена.
Рассмотрим подробно, почему возникает эта ошибка в 1С:Управление торговлей 11 (релизы 11.5.25.x и выше) при работе с драйверами АТОЛ 10.x, и как ее побороть по шагам.
Прежде чем менять настройки в 1С, нам необходимо понять, что именно отправляет программа в сторону кассового аппарата. Ошибка «поле "items" отсутствует» означает, что в JSON-пакете, который 1С передает драйверу, отсутствует массив с товарными позициями.
Проанализируем файл логов, который находится по пути: C:\Users\[ИмяПользователя]\AppData\Roaming\ATOL\drivers10\logs\fptr1C.log. Найдем в нем блок, отвечающий за последний неудачный чек. Если мы увидим структуру, где есть секция оплат, но отсутствует секция items (товары/услуги), значит, 1С сформировала некорректный XML-пакет. Для более глубокого понимания того, какие именно операции не прошли, можно выполнить анализ документов оплаты по чекам, сопоставив данные ПКО, РКО и фискальных операций.
Чаще всего это происходит при попытке пробить чек коррекции или чек на основании Приходного кассового ордера (ПКО). В новых релизах 1С логика формирования чеков пересмотрена: система ожидает, что даже в коррекции будет перечислен весь состав товаров, тогда как старые версии прошивок касс или ФФД 1.05 позволяли делать коррекцию «одной суммой».
Выясним причину конфликта форматов. В современных конфигурациях 1С (УТ 11, ERP, КА) механизмы работы с ККТ активно переводятся на рельсы ФФД 1.2. В этом формате наличие массива items является обязательным требованием протокола для большинства операций.
Проанализируем ситуацию:
items там, где касса этого не ждет.Разберем технические требования к оборудованию АТОЛ. Для стабильной работы с актуальными релизами 1С в 2025-2026 годах, когда вступают в силу новые ставки НДС 22%, 5% и 7%, версия прошивки должна быть не ниже 5.17.x.
Посмотрим на пример из практики: касса с прошивкой 5.15.102 часто выдает ошибку items, так как ее внутренние таблицы налогов и логика обработки чеков коррекции не соответствуют обновленным требованиям драйвера 10.10.x. Чтобы подготовить систему к изменениям, изучите мануал по обновлению УТ 11.5 на ставку 22%, что позволит избежать ошибок при переходе на новые налоговые режимы — для этой задачи есть готовое решение для фискализации на АТОЛ по 54-ФЗ. После обновления прошивки до версии 5.17 касса начинает корректно распознавать структуру чека, даже если 1С передает расширенный набор реквизитов.
Важно: При обновлении прошивки обязательно убедитесь, что в драйвере 10.10.8.0 в параметрах ККТ корректно сопоставлены налоги. Индексы ставок могут сдвинуться (например, ставка 22% может занять место старой ставки).
Если ошибка возникает именно при попытке исправить ранее пробитый чек (например, с неправильной ставкой НДС), проанализируем способ создания документа. Чтобы упростить процесс и избежать ошибок ручного заполнения, можно использовать расширение для создания документов «Чек коррекции» на основании заказа.
Вместо пробития чека напрямую из документа ПКО или РКО, попробуем использовать специализированный документ «Чек ККМ коррекции». Рассмотрим алгоритм действий:
Такой подход гарантирует, что 1С сформирует объект items в XML-пакете, и драйвер не вернет ошибку об отсутствии поля.
Хотя пользователь в обсуждении подтвердил заполнение полей, мы рекомендуем проверить программный код или через «Консоль запросов» наличие данных в поле НаименованиеПолное. В некоторых случаях может потребоваться изменение фискальных операций напрямую в регистре, если стандартные механизмы 1С не позволяют корректно дозагрузить фискальные признаки.
Для разработчиков: можно проверить процедуру формирования XML для фискального регистратора. Типовой вызов функции выглядит примерно так:
// Пример формирования структуры товаров
ПараметрыЧека = Новый Структура;
Товары = Новый Массив;
СтрокаТовара = Новый Структура("Наименование, Количество, Цена, Сумма, СтавкаНДС");
// Если массив Товары останется пустым, драйвер выдаст ошибку "поле items отсутствует"
Товары.Добавить(СтрокаТовара);
ПараметрыЧека.Вставить("ПозицииЧека", Товары);
Если вы видите, что массив ПозицииЧека (который преобразуется в items) пуст в момент передачи в функцию МенеджерОборудованияВызовСервера.СформироватьXMLПакетДляЧека(), значит, проблема в логике заполнения документа-основания в 1С.
Подводя итог, для устранения проблемы выполним следующие действия:
items.ПКО, убедимся, что в настройках договора или документа указано содержание операции, позволяющее идентифицировать товар или услугу как объект расчетов.