При работе с подключаемым оборудованием в режиме Offline (особенно с кассами линейки Viki Mini, Viki Tower или Viki Print) пользователи часто сталкиваются с ситуацией, когда обмен данными внезапно прекращается. Система 1С выдает сообщение: «При выгрузке данных в оборудование произошла ошибка. Нельзя сделать выгрузку. Товары предыдущей выгрузки еще не были получены ККМ-offline». Это сигнализирует о том, что механизм «рукопожатия» между программой и кассой нарушен. Разберем подробно, почему это происходит и как восстановить работоспособность системы.
Для начала проанализируем, как технически происходит выгрузка. 1С не передает данные напрямую в память кассы. Вместо этого она записывает файл с товарами (обычно goods.txt) в общую сетевую папку и создает рядом пустой файл-маркер, так называемый «файл флага» (например, goods_flag.txt или flag.txt). Касса, постоянно сканируя эту папку, видит файл флага, понимает, что появились новые данные, считывает основной файл и — это критически важно — удаляет файл флага после успешного завершения операции. Чтобы обойти ограничения локальных сетевых ресурсов при работе с кассами Frontol, можно использовать обработку для организации обмена через FTP-протокол.
Если 1С при следующей попытке выгрузки снова видит файл флага в папке, она делает логичный вывод: касса еще не обработала предыдущую порцию данных. Чтобы не возникло путаницы и дублирования, 1С блокирует новую выгрузку. Рассмотрим по шагам, что нужно проверить для решения этой проблемы.
Если проблема возникла разово, проанализируем содержимое каталога обмена. Найдем в сетевой папке файл флага (он имеет размер 0 Кб) и удалим его вручную. После этого попробуем повторить выгрузку из 1С. Если выгрузка прошла успешно, значит, произошел единичный сбой в работе службы обмена на стороне кассы. Однако, если ошибка повторяется регулярно, нужно искать системную причину.
Поскольку кассы Viki Mini работают под управлением операционной системы на базе Linux, они подключаются к ресурсам Windows через протокол SMB. Рассмотрим основные проблемы этого уровня:
SMB 1.0 из соображений безопасности. Если ПО вашей кассы старое, оно может некорректно работать с SMB 2.0/3.0. Выясним это, временно включив поддержку SMB 1.0/CIFS в компонентах Windows.Иногда полная выгрузка прайс-листа проходит успешно, а частичная (только измененные товары) — нет. Это указывает на проблему в конкретной карточке товара. Проанализируем последние изменения в справочнике Номенклатура. Кассы Viki чувствительны к определенным символам в наименовании:
Если касса «спотыкается» на строке с таким товаром, она прекращает обработку файла и не удаляет флаг. Рекомендуем очистить наименования от лишних символов и повторить попытку.
Сравним настройки в 1С (раздел «Подключаемое оборудование» — «Параметры офлайн оборудования») и в интерфейсе кассы. Обратим внимание на следующие параметры:
Compositor или Set Start на кассе. Если 1С создает goods.txt, а касса ищет shm_goods.txt, обмена не будет.Windows-1251. Если после обновления платформы настройки сбились на UTF-8, Linux-система кассы может не распознать структуру файла.В некоторых случаях внутренняя база данных кассы (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, для автоматизации процесса и минимизации сбоев можно использовать решение для автоматической выгрузки товаров и загрузки отчетов.