Ситуация, когда покупатель получает фискальный чек, деньги попадают в кассу ККМ, но в программе 1С документ Чек ККМ остается в статусе "Не проведен", является одной из самых критических для розничной торговли. Это приводит к расхождениям в остатках, неверному формированию Отчета о розничных продажах и проблемам при закрытии смены (Z-отчет не совпадает с данными базы). Рассмотрим подробно, почему это происходит и как исправить ситуацию.
Проанализируем механику работы программы. В нормальном режиме 1С сначала пытается заблокировать объект, затем отправляет команду на фискализацию в драйвер ККТ, получает ответ об успехе и только после этого окончательно проводит документ. Разрыв этой цепочки происходит на этапе ожидания ответа от кассы. Разберем основные факторы:
Если смена еще не закрыта, а чек уже пробит по кассе, но в 1С он висит как "открытый" или "непроведенный", нам необходимо привести его в соответствие с реальностью. Важно: обычное проведение через кнопку "Провести и закрыть" может спровоцировать повторную печать чека или ошибку "Чек уже пробит".
Рассмотрим алгоритм ручного исправления статуса через механизм "Групповое изменение реквизитов" (или аналогичную обработку):
Чек ККМ.СтатусЧека = Перечисление.СтатусыЧековККМ.Пробитый;Проведен = Истина;Проанализируем программный способ решения через код. Если вы опытный пользователь или программист, можно воспользоваться небольшим фрагментом кода для разового исправления объекта:
ОбъектЧека = Документы.ЧекККМ.НайтиПоНомеру("00001", ТекущаяДата()).ПолучитьОбъект();
// Устанавливаем статус без вызова процедур печати
ОбъектЧека.СтатусЧека = Перечисления.СтатусыЧековККМ.Пробитый;
ОбъектЧека.ОбменДанными.Загрузка = Истина;
ОбъектЧека.Записать(РежимЗаписиДокумента.Проведение);
Параметр ОбменДанными.Загрузка = Истина позволяет обойти проверки при записи, что критически важно, чтобы программа не пыталась снова обратиться к кассовому аппарату.
Чтобы проблема не повторялась, необходимо выполнить глубокую настройку связи между 1С и ККТ. Посмотрим на наиболее эффективные шаги:
Иногда корень зла кроется не в 1С, а в настройках операционной системы. Рассмотрим, что нужно проверить в первую очередь:
Электропитание USB. Выясним, не засыпает ли порт. Перейдите в "Панель управления" -> "Электропитание" -> "Настройка схемы электропитания" -> "Изменить дополнительные параметры питания". В разделе "Параметры USB" установите значение "Запрещено" для временного отключения портов.
Кэш 1С. Нестабильное поведение интерфейса часто лечится очисткой локального кэша базы данных. Попробуем удалить базу из списка и добавить её заново или очистить папку %AppData%\1C\1Cv8.
Полнотекстовый поиск. В файловых базах РегламентныеЗадания по обновлению индекса полнотекстового поиска могут вызывать микро-зависания. Попробуем отключить полнотекстовый поиск, если он не используется кассирами для работы.
Ситуация осложняется, если в чеке присутствует алкоголь или маркированный товар. Если чек пробит в ККТ и данные ушли в УТМ (ЕГАИС), но в 1С документ не провелся, повторно "пробивать" его нельзя — система выдаст ошибку о том, что марка уже продана. В этом случае единственный путь — это ручное проведение документа без повторной фискализации (как описано в способе 1). Обязательно убедитесь, что в УТМ продажа зафиксирована, чтобы избежать проблем с проверками.
Подведем итоги нашего анализа. Проблема "пробит, но не проведен" чаще всего является следствием технического несовершенства связки оборудования и софта на медленных каналах связи или слабых ПК. Для минимизации рисков рекомендуем:
Журнал регистрации в 1С на наличие ошибок с текстом "Устройство не ответило" или "Блокировка таблицы".Если проблема приобретает массовый характер, стоит рассмотреть возможность доработки кода (через расширение), которая будет записывать данные о фискализации в отдельный лог до момента проведения документа, чтобы администратор мог восстановить цепочку событий в автоматическом режиме.