Как провести чек в 1С:УТ 10.3 без подключения физической кассы, если он уже пробит на аппарате

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

Рассмотрим распространенную и крайне неприятную техническую ситуацию, с которой сталкиваются многие администраторы и программисты 1С. В результате сбоя системы или некорректных действий администратора база данных «1С:Управление торговлей 10.3» была восстановлена из резервной копии (бэкапа). Однако в промежутке времени между созданием резервной копии и ее восстановлением кассир успел открыть смену на физической кассе и пробить реальный чек покупателю.

В итоге мы имеем классический рассинхрон: на физическом фискальном регистраторе (ФР) смена открыта и чек успешно пробит (деньги ушли в ОФД), а в восстановленной базе 1С этих данных попросту нет — смена числится закрытой, документа продажи не существует, а складские остатки не списаны. Напрямую пробить этот чек из 1С мы не можем, так как кассовый аппарат выдаст ошибку или, что еще хуже, продублирует продажу в ОФД, создав повторный чек.

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

Метод 1. Самый простой и методологически верный способ (без создания индивидуальных Чеков ККМ)

Проанализируем ситуацию с точки зрения учета. Документ ЧекККМ в программе 1С предназначен исключительно для оперативного отражения факта продажи в момент непосредственного взаимодействия с покупателем. В конце рабочего дня при процедуре закрытия кассовой смены все проведенные чеки ККМ за день автоматически архивируются и сворачиваются в один сводный документ — ОтчетОРозничныхПродажах. Именно этот документ делает итоговые движения по списанию товаров со складов, формированию розничной выручки и закрытию взаиморасчетов.

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

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

Этот метод является наиболее безопасным и чистым с точки зрения ведения учета, так как исключает любые ошибки работы с торговым оборудованием.

Метод 2. Программный обход проверок через параметр ОбменДанными.Загрузка

Если специфика вашего учета требует обязательного наличия в базе именно документа ЧекККМ (например, для детализации аналитики по дисконтным картам, интеграции со сторонними CRM-системами или для последующего корректного автоматического закрытия смены), мы можем записать и провести документ программно.

В платформе 1С существует встроенный механизм, позволяющий отключать выполнение стандартных проверок бизнес-логики, включая процедуры обращения к торговому оборудованию и проверку статуса кассовой смены. Для этого используется свойство объекта ОбменДанными.Загрузка со значением Истина.

Для реализации этого метода нам понадобится внешняя обработка «Консоль кода» или создание простейшей одноразовой внешней обработки. Напишем и выполним следующий код:


НовыйЧек = Документы.ЧекККМ.СоздатьДокумент();
НовыйЧек.Дата = ТекущаяДата(); // Укажите реальную дату пробития чека
НовыйЧек.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "7700000000"); // Укажите ИНН вашей организации
НовыйЧек.КассаККМ = Справочники.КассыККМ.НайтиПоНаименованию("Основная касса");

// Заполняем табличную часть товары
НоваяСтрока = НовыйЧек.Товары.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000001");
НоваяСтрока.Количество = 1;
НоваяСтрока.Цена = 100;
НоваяСтрока.Сумма = 100;

// Устанавливаем ключевые статусы для пробитого чека
НовыйЧек.СтатусЧекаККМ = Перечисления.СтатусыЧековККМ.Пробит;
НовыйЧек.НомерЧекаККМ = 123; // Укажите номер чека с физической ленты ФР

// Включаем режим загрузки данных для обхода проверок торгового оборудования
НовыйЧек.ОбменДанными.Загрузка = Истина;

Попытка
    НовыйЧек.Записать(РежимЗаписиДокумента.Проведение);
    Сообщить("Чек успешно проведен в обход кассового оборудования!");
Исключение
    Сообщить("Ошибка проведения: " + ОписаниеОшибки());
КонецПопытки;

Использование свойства ОбменДанными.Загрузка = Истина гарантирует, что документ запишется в базу со статусом «Проведен» (и «Пробит») без единого обращения к физическому фискальному регистратору. Складские остатки при этом спишутся корректно на дату проведения документа.

Метод 3. Временная подмена кассового оборудования на Эмулятор ККТ

Выясним причину, по которой стандартная замена фискального регистратора на «1С:Эмулятор ККТ» в настройках торгового оборудования часто выдает ошибку: «Отсутствуют доступные фискальные устройства». Дело в том, что в конфигурации «1С:Управление торговлей 10.3» каждый кассовый аппарат в справочнике КассыККМ жестко привязан к конкретному уникальному идентификатору (UID) подключенного оборудования.

Чтобы обойти это ограничение и провести документ через эмулятор, выполним следующие шаги:

  1. Открываем справочник «Кассы ККМ» и создаем временную виртуальную кассу, назвав ее, например, «Эмулятор».
  2. Переходим в меню «Сервис» -> «Торговое оборудование» -> «Подключение и настройка торгового оборудования».
  3. Добавляем новое устройство, выбрав обработку обслуживания драйвера «1С:Фискальный регистратор (эмулятор)» или «1С:Эмулятор ККТ». Привязываем данное виртуальное оборудование к нашей только что созданной кассе ККМ «Эмулятор».
  4. Открываем кассовую смену в 1С для нашей новой виртуальной кассы. Смена успешно откроется, так как эмулятор имитирует работу реального устройства и создаст в системе необходимый документ КассоваяСмена со статусом «Открыта».
  5. Создаем документ ЧекККМ, выбираем в нем кассу «Эмулятор» и нажимаем кнопку «Пробить». Программа симулирует печать чека на виртуальном устройстве. Документ перейдет в статус «Проведен» и «Пробит».
  6. После проведения всех необходимых чеков закрываем смену по виртуальной кассе. В системе автоматически сформируется ОтчетОРозничныхПродажах.
  7. Помечаем созданную виртуальную кассу «Эмулятор» на удаление (или переносим в архив), а в настройках торгового оборудования возвращаем параметры подключения нашей рабочей физической кассы.

Метод 4. Ручное проведение чека с временным отключением оборудования и очисткой кэша

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

При попытке провести документ при отключенном фискальном регистраторе 1С часто выдает критическую ошибку: «Возможны расхождения ИБ и ленты ФР! Ошибка при попытке проведения документа!». Это связано с тем, что конфигурация кэширует параметры подключенного оборудования при запуске сеанса пользователя.

Для корректного проведения выполним следующий алгоритм:

  1. Переходим в форму настройки торгового оборудования и снимаем флаг активности у нашего фискального регистратора (или полностью удаляем его из списка активных устройств).
  2. Обязательно закрываем программу 1С и запускаем ее заново. Перезапуск необходим для полной очистки кэша торгового оборудования в оперативной памяти текущего сеанса.
  3. Открываем нужный нам документ ЧекККМ.
  4. Нажимаем на кнопку «Провести» (синяя пиктограмма со стрелкой на панели инструментов документа), но ни в коем случае не нажимаем кнопку «ОК» или «Пробить чек». Кнопка «Провести» просто запишет движения документа в регистры накопления без обращения к оборудованию, в то время как кнопка «ОК» попытается запустить стандартный бизнес-процесс закрытия формы с проверкой кассы.
  5. После успешного проведения чека возвращаемся в настройки торгового оборудования, снова активируем фискальный регистратор и продолжаем работу в штатном режиме.

Таким образом, мы детально разобрали четыре различных способа восстановления учета при возникновении рассинхронизации данных. Выбор конкретного метода зависит от квалификации специалиста и жесткости требований к ведению детального партионного и оперативного учета в вашей организации. Самым надежным решением для рядового пользователя остается Метод 1 (создание ручного отчета о продажах), а для программистов и администраторов наиболее быстрым и эффективным инструментом будет программная запись документов через Метод 2.

← На главную