Как исправить ошибку «Тэг Позиции чека не заполнен» в 1С:Розница при использовании двух касс?

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

При работе с конфигурацией 1С:Розница (особенно в версиях 2.2.10.19 и начальных релизах линейки 2.3) пользователи часто сталкиваются с неприятной ситуацией: при попытке пробить чек, который должен распределиться на две разные кассы (например, алкогольная продукция на одну организацию, а сопутствующие товары — на другую), печать на втором устройстве прерывается. Система выдает критическую ошибку: «Тэг Позиции чека не заполнен». Это блокирует работу кассового узла и требует оперативного вмешательства.

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

Выясняем причину возникновения ошибки

Для начала проанализируем ситуацию с технической точки зрения. Ошибка «Тэг Позиции чека не заполнен» (в спецификации ФФД это часто соответствует тегу 1059) означает, что драйвер кассового аппарата получил команду на открытие чека или регистрацию позиции, но массив данных, содержащий информацию о товаре (наименование, цена, количество, сумма), оказался пустым.

В рассматриваемых релизах 1С:Розница проблема кроется в процедуре распределения товаров по кассам в модуле РМК. Когда документ Чек ККМ содержит товары, относящиеся к разным фискальным регистраторам, система инициализирует процесс печати последовательно. Выясним причину: из-за программной ошибки при переходе к формированию XML-пакета для второй кассы коллекция ПозицииЧека не переинициализируется должным образом или очищается раньше времени. В итоге на второе устройство уходит «пустой» запрос, который драйвер (особенно АТОЛ 10-й версии) отклоняет.

Решение 1: Настройка обмена с ЕГАИС «на сервере»

Как показывает практика и подтверждают официальные сообщения техподдержки 1С, одним из самых быстрых и эффективных способов решения (даже для файловых баз данных) является изменение режима выполнения обмена. Рассмотрим, как это сделать по шагам:

  1. Перейдем в раздел Администрирование, далее выберем пункт Настройки номенклатуры.
  2. Раскроем группу Учет алкогольной продукции и перейдем в Параметры подключения к ЕГАИС (или Настройки обмена с ЕГАИС).
  3. Найдем флаг Выполнять обмен на сервере 1С:Предприятия и установим его.

Проанализируем ситуацию: почему это помогает? Установка этого флага меняет контекст выполнения кода при формировании структур данных для печати чека. В некоторых случаях это позволяет избежать конфликта в обращении к временным структурам данных в памяти клиента, которые затираются при последовательном вызове процедур печати для разных касс.

Решение 2: Очистка кэша и временных файлов

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

  1. Полностью закроем программу 1С.
  2. Удалим базу из списка запуска и добавим её заново (это самый простой способ создать новую папку кэша).
  3. Альтернативно — вручную очистим содержимое папок %AppData%\1C\1Cv8\ и %LocalAppData%\1C\1Cv8\.
  4. Обязательно проверим папку временных файлов пользователя %TEMP%, удалив оттуда файлы, связанные с компонентами печати (например, содержащие в названии comcntr или названия драйверов ККТ).

Это действие гарантирует, что при следующем запуске РМК система заново инициализирует все объекты МенеджерОборудования и загрузит актуальные формы.

Решение 3: Изменение порядка печати через доработку кода

Если программные настройки не помогают, а обновление на версию 2.2.11 или выше временно невозможно, мы можем прибегнуть к изменению логики работы формы РМК. Рассмотрим пример внесения изменений в модуль ФормаРМК.

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

Посмотрим на пример кода, который может быть добавлен в процедуру распределения чека:


// В модуле формы РМК находим место формирования таблицы распределения
// Нам нужно убедиться, что массив фискальных устройств обрабатывается корректно
Для Каждого ТекущееУстройство Из СписокКасс Цикл
    // Проверяем заполненность структуры ПараметрыЧека перед отправкой на печать
    Если ПараметрыЧека.ПозицииЧека.Количество() = 0 Тогда
        // Здесь можно вставить лог или принудительное переформирование позиций
        ЗаполнитьПозицииДляУстройства(ПараметрыЧека, ТекущееУстройство);
    КонецЕсли;
КонецЦикла;

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

Решение 4: Обновление драйверов и интеграционных компонент

Разберем ситуацию с оборудованием. Ошибка «Тэг Позиции чека не заполнен» часто провоцируется некорректной работой интеграционной библиотеки (внутренней компоненты 1С), которая выступает «прослойкой» между кодом 1С и драйвером производителя (АТОЛ или Штрих-М).

  1. Зайдем в справочник Подключаемое оборудование.
  2. Откроем карточку вашего драйвера (например, «АТОЛ:ККТ с передачей данных в ОФД (54-ФЗ) 10.x»).
  3. Нажмем кнопку Установить драйвер. Даже если он уже установлен, это перезапишет локальные библиотеки .dll в профиле пользователя.
  4. Убедимся, что версия самого драйвера в ОС (в Диспетчере устройств или Тесте драйвера) совпадает с той, которую ожидает 1С. Рекомендуется использовать стабильные сборки 10.6.x или 10.8.x.

Решение 5: Установка патчей (для версии 2.3.5 и выше)

Если вы столкнулись с этой проблемой в более поздних версиях (например, 2.3.5.x), где алкоголь не используется, но есть разделение по системам налогообложения (СНО), проверим наличие официальных исправлений. Фирма 1С оперативно выпускает патчи (исправления) для типовых конфигураций.

Рассмотрим порядок действий:

  1. Перейдем в раздел Администрирование — Обслуживание — Обновление программы.
  2. Нажмем на ссылку Установленные исправления (патчи).
  3. Проверим, есть ли в списке патчи с описанием «Ошибка при печати чека на нескольких кассах» или «Исправление инициализации тега 1059».
  4. Если автоматическая загрузка включена, убедимся, что патчи применились. Если нет — загрузим их вручную с портала ИТС.

Проанализировав все вышеперечисленные методы, можно сделать вывод: наиболее вероятной причиной является программная недоработка в процедуре передачи структуры ПараметрыЧека между серверным и клиентским контекстом при последовательной печати. Мы рекомендуем начать с самого простого — установки флага обмена ЕГАИС на сервере, так как это решение подтверждено официальной регистрацией ошибки 1С и помогает большинству пользователей без внесения правок в конфигурацию.

← На главную