Как сделать частичную выемку наличных денег на онлайн-ККТ в 1С:Комплексная автоматизация 1.1?

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

При работе с онлайн-кассами в оптовой торговле часто возникает задача частичной инкассации (выемки) наличных денежных средств из денежного ящика фискального регистратора без полного обнуления остатка в конце смены. В специализированных конфигурациях (например, 1С:Розница или 1С:Управление торговлей 11) для этого предусмотрен отдельный документ Выемка денежных средств. Однако в 1С:Комплексная автоматизация 1.1 (обычные формы) такой документ отсутствует, из-за чего возникает вопрос: как корректно передать в фискальный регистратор команду на изъятие наличности и отразить операцию в учете?

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

Статус операций внесения и выемки по 54-ФЗ

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

  1. Операции «Внесение» и «Выплата» (выемка/инкассация) на онлайн-ККТ являются нефискальными сервисными операциями.
  2. Данные о перемещении наличных внутри денежного ящика не передаются оператору фискальных данных (ОФД) и в налоговую инспекцию.
  3. Печатаемый кассой чек с надписью «Выплата» является сервисным документом ККТ. Он предназначен исключительно для корректировки внутренних счетчиков наличности в памяти устройства, чтобы фактическая сумма в денежном ящике совпадала с контрольными X- и Z-отчетами.

Учет денежных средств в 1С:Комплексная автоматизация 1.1

В оптовом контуре конфигурации КА 1.1 учет движения наличных средств строится напрямую через кассу предприятия (счет 50.01):

  1. Прием денег от покупателя регистрируется документом Приходный кассовый ордер (ПКО) с одновременной печатью фискального чека на подключенной ККТ.
  2. Передача наличности инкассаторам, сдача в банк или перемещение в сейф отражается документом Расходный кассовый ордер (РКО).
  3. Поскольку бухгалтерский остаток уже скорректирован документом РКО, передача команды в ККТ требуется лишь для синхронизации остатка в самом кассовом аппарате.

Вариант 1. Программная доработка вызова драйвера ККТ

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

В типовых обработках обслуживания торгового оборудования для изменения наличности обычно используется функция управления суммой в кассе. По умолчанию при передаче положительного числа драйвер выполняет операцию «Внесение». Чтобы выполнить операцию «Выплата» (изъятие), применяются два подхода:

1. Передача отрицательной суммы (быстрый способ):

При вызове стандартной функции передачи суммы можно передать значение с минусом. Драйвер ККТ автоматически интерпретирует отрицательное значение как операцию изъятия наличности и распечатает чек «Выплата»:


// Пример передачи отрицательной суммы в обработку обслуживания ККТ
СуммаВыемки = Объект.СуммаДокумента;
СуммаДляДрайвера = -СуммаВыемки;

// Передача значения в функцию изменения наличности
Результат = ПолучитьСерверТО().ВыполнитьКоманду("Сумма", ПараметрыПодключения, СуммаДляДрайвера);

2. Явный вызов метода выплаты с признаком операции:

Более надежный способ, исключающий ошибки валидации аргументов в современных драйверах, — явная доработка экспортной процедуры в обработке обслуживания ККТ. Добавим дополнительный параметр (флаг направления операции: 1 — внесение, 0 — выплата):


// Фрагмент вызова метода драйвера торгового оборудования
Если ЭтоВыплата Тогда
    // Вызов низкоуровневой команды драйвера или метода БПО
    ОбъектДрайвера.Сумма = СуммаВыемки;
    ОбъектДрайвера.Выплата();
Иначе
    ОбъектДрайвера.Сумма = СуммаВнесения;
    ОбъектДрайвера.Внесение();
КонецЕсли;

Вариант 2. Использование типовой обработки «Управление фискальным регистратором»

Если нет необходимости автоматизировать выемку строго в момент проведения РКО, используем штатные возможности конфигурации без изменения программного кода:

  1. Перейдем в главное меню: Сервис → Торговое оборудование → Управление фискальным регистратором (или вызовем сервисные функции ККТ).
  2. В открывшейся форме выберем команду «Выплата наличных» (или «Изъятие»).
  3. Укажем требуемую сумму частичной инкассации и подтвердим операцию. Кассовый аппарат распечатает сервисный документ «Выплата» и уменьшит внутренний регистр наличности.
  4. В учетной системе оформим стандартный документ Расходный кассовый ордер для отражения движения по счету 50.

Вариант 3. Выполнение операции через утилиту производителя ККТ

Поскольку операция выплаты не является фискальной и не формирует фискальный признак документа для ФНС, выполнить выемку можно напрямую через сервисную утилиту:

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

Настройка автоинкассации в свойствах ККТ

Если цель частичной инкассации — оставлять в кассе разменную монету на следующий рабочий день, проверим параметры самого фискального регистратора. В свойствах ККТ (в утилите драйвера) на вкладке настроек закрытия смены можно отключить флаг «Автоматическое обнуление наличности при Z-отчете» (автоинкассация). В таком случае при закрытии смены ККТ не будет принудительно списывать весь остаток в ноль, и остаток разменных денег автоматически перейдет на следующую смену.

← На главную