Как исправить ошибку «Товары предыдущей выгрузки еще не были получены ККМ-offline» в 1С:Розница 2?

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

При работе с подключаемым оборудованием в режиме Offline (особенно с кассами линейки Viki Mini, Viki Tower или Viki Print) пользователи часто сталкиваются с ситуацией, когда обмен данными внезапно прекращается. Система 1С выдает сообщение: «При выгрузке данных в оборудование произошла ошибка. Нельзя сделать выгрузку. Товары предыдущей выгрузки еще не были получены ККМ-offline». Это сигнализирует о том, что механизм «рукопожатия» между программой и кассой нарушен. Разберем подробно, почему это происходит и как восстановить работоспособность системы.

Понимание механизма обмена через файлы

Для начала проанализируем, как технически происходит выгрузка. 1С не передает данные напрямую в память кассы. Вместо этого она записывает файл с товарами (обычно goods.txt) в общую сетевую папку и создает рядом пустой файл-маркер, так называемый «файл флага» (например, goods_flag.txt или flag.txt). Касса, постоянно сканируя эту папку, видит файл флага, понимает, что появились новые данные, считывает основной файл и — это критически важно — удаляет файл флага после успешного завершения операции. Чтобы обойти ограничения локальных сетевых ресурсов при работе с кассами Frontol, можно использовать обработку для организации обмена через FTP-протокол.

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

Решение 1: Ручной сброс состояния обмена

Если проблема возникла разово, проанализируем содержимое каталога обмена. Найдем в сетевой папке файл флага (он имеет размер 0 Кб) и удалим его вручную. После этого попробуем повторить выгрузку из 1С. Если выгрузка прошла успешно, значит, произошел единичный сбой в работе службы обмена на стороне кассы. Однако, если ошибка повторяется регулярно, нужно искать системную причину.

Решение 2: Проверка прав доступа и протоколов SMB

Поскольку кассы Viki Mini работают под управлением операционной системы на базе Linux, они подключаются к ресурсам Windows через протокол SMB. Рассмотрим основные проблемы этого уровня:

  1. Права на удаление: Это самая частая причина. Пользователю, под которым касса авторизуется в Windows-папке, недостаточно иметь права «Запись». Ему необходимы права на «Удаление». Проверим настройки безопасности папки: во вкладке «Безопасность» предоставим группе «Все» или конкретному пользователю «Полный доступ». Если касса не сможет удалить файл флага, 1С будет вечно считать, что обмен не завершен.
  2. Версия SMB: Современные версии Windows (10, 11, Server 2019+) по умолчанию отключают протокол SMB 1.0 из соображений безопасности. Если ПО вашей кассы старое, оно может некорректно работать с SMB 2.0/3.0. Выясним это, временно включив поддержку SMB 1.0/CIFS в компонентах Windows.

Решение 3: Анализ корректности данных (Спецсимволы)

Иногда полная выгрузка прайс-листа проходит успешно, а частичная (только измененные товары) — нет. Это указывает на проблему в конкретной карточке товара. Проанализируем последние изменения в справочнике Номенклатура. Кассы Viki чувствительны к определенным символам в наименовании:

Если касса «спотыкается» на строке с таким товаром, она прекращает обработку файла и не удаляет флаг. Рекомендуем очистить наименования от лишних символов и повторить попытку.

Решение 4: Настройка параметров в 1С и на кассе

Сравним настройки в 1С (раздел «Подключаемое оборудование» — «Параметры офлайн оборудования») и в интерфейсе кассы. Обратим внимание на следующие параметры:

  1. Имена файлов: В 1С в настройках драйвера указаны имена файлов загрузки и выгрузки. Они должны быть идентичны тем, что настроены в службе Compositor или Set Start на кассе. Если 1С создает goods.txt, а касса ищет shm_goods.txt, обмена не будет.
  2. Кодировка текста: Убедимся, что 1С выгружает данные в кодировке Windows-1251. Если после обновления платформы настройки сбились на UTF-8, Linux-система кассы может не распознать структуру файла.

Решение 5: Очистка базы данных на стороне кассы

В некоторых случаях внутренняя база данных кассы (SQLite) переполняется или повреждается. Проанализируем возможность полной очистки. На кассе Viki зайдем в «Настройки» -> «Очистить базу товаров». После этой процедуры необходимо выполнить «Полную выгрузку» из 1С. Это обнулит счетчики транзакций и позволит начать обмен с «чистого листа».

Технический аудит через лог-файлы

Если вышеописанные методы не помогли, выясним причину через журналы регистрации кассы. Нам понадобятся файлы exchange.log или transport.log, которые находятся во внутренней памяти кассы (их можно выгрузить на флеш-накопитель через сервисное меню). В этих логах будет четко зафиксирована причина, по которой файл флага не был удален. Примеры сообщений в логах:

Error: Permission denied — проблема прав доступа в Windows.

Error: Invalid character at line 45 — проблема в данных (спецсимволы в 45-й строке файла выгрузки).

Разберем ситуацию, когда файл флага имеет имя, отличное от стандартного. В некоторых конфигурациях драйвера 1С используется суффикс _flag. Если в папке обмена вы видите goods.txt, но не видите файла с расширением .flg или _flag, проверьте, не скрыты ли системные файлы в Windows, так как 1С может просто не видеть момент удаления файла кассой из-за задержек кэширования сетевой файловой системы.

Подведем итог: Ошибка «Товары не были получены» — это почти всегда проблема «зависшего» файла флага. Основной алгоритм действий: удалить флаг вручную -> проверить права доступа к папке -> проверить номенклатуру на спецсимволы -> выполнить полную перегрузку базы товаров. Если на торговой точке установлены кассы Frontol, для автоматизации процесса и минимизации сбоев можно использовать решение для автоматической выгрузки товаров и загрузки отчетов.

← На главную