Возможно ли автоматическое открытие и закрытие кассовой смены в 1С:УПП при пробитии чека?

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При переходе на онлайн-кассы (54-ФЗ) в конфигурациях 1С, таких как 1С:Управление производственным предприятием (УПП) или 1С:Комплексная автоматизация, появился специальный документ КассоваяСмена. У многих пользователей и разработчиков возникают вопросы: обязателен ли этот документ для бухгалтерского учета, почему в типовой конфигурации нельзя просто пробить чек без предварительного открытия смены и как автоматизировать процессы открытия и закрытия смен.

Рассмотрим подробнее архитектуру работы с подключаемым оборудованием в УПП, разберем законодательные ограничения и изучим варианты автоматизации кассовых операций.

Назначение документа «Кассовая смена» в бухгалтерском учете

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

Важно понимать: документ КассоваяСмена не формирует проводок по бухгалтерскому и налоговому учету (по счетам 50, 62, 90 и др.). Весь финансовый учет наличных и безналичных денежных средств в 1С:УПП по-прежнему ведется с помощью документов:

  1. ПриходныйКассовыйОрдер (ПКО) — регистрация поступления оплаты от покупателя.
  2. РасходныйКассовыйОрдер (РКО) — регистрация выплаты денежных средств.
  3. ОтчетОРозничныхПродажах — отражение розничной выручки за день.

Законодательные требования и поведение ККТ (54-ФЗ)

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

  1. Ограничение длительности смены (24 часа): Согласно требованиям 54-ФЗ, кассовая смена на фискальном накопителе не может длиться более 24 часов. По истечении этого времени ККТ блокирует печать новых чеков до проведения процедуры закрытия смены.
  2. Разделение операций: Фискальный регистратор не выполняет закрытие смены "на лету" во время формирования обычного чека. Закрытие смены — это отдельная фискальная команда, при выполнении которой формируется отчет о закрытии смены (Z-отчет) и данные отправляются Оператору фискальных данных (ОФД).

В типовой 1С:УПП при попытке напечатать чек из документа ПриходныйКассовыйОрдер подсистема проверяет наличие открытого документа КассоваяСмена. Если активный документ со статусом Открыта отсутствует, вызов печати блокируется алгоритмами программы.

Где в 1С:УПП хранятся данные пробитого чека?

Часто разработчики и пользователи ищут реквизиты вроде «Номер чека ККМ» прямо на форме документа ПКО. В типовом решении 1С:УПП информация о фискализации чека (номер чека, номер ФД, фискальный признак ФПД) записывается в специальный регистр сведений ФискальныеОперации, связанный ссылкой с документом-основанием.

Способы автоматизации открытия и закрытия смены

Если возникла необходимость свести к минимуму ручные действия кассира и выполнять открытие/закрытие смены автоматически, рассмотрим практические варианты доработки.

1. Автоматическое открытие смены при печати первого чека

Для реализации автоматического открытия смены при пробитии чека из ПКО требуется внести изменения в модуль обработки печати чека или модуль работы с торговым оборудованием:

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

Пример схемы проверки и создания документа на языке 1С:


// Пример логики перед пробитием чека
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |	КассоваяСмена.Ссылка Как Ссылка
    |ИЗ
    |	Документ.КассоваяСмена КАК КассоваяСмена
    |ГДЕ
    |	КассоваяСмена.КассаККМ = &КассаККМ
    |	И КассоваяСмена.Статус = Значение(Перечисление.СтатусыКассовойСмены.Открыта)";

Запрос.УстановитьПараметр("КассаККМ", КассаККМ);
РезультатЗапроса = Запрос.Выполнить();

Если РезультатЗапроса.Пустой() Тогда
    // Создаем и проводим документ "Кассовая смена"
    ДокСмена = Документы.КассоваяСмена.СоздатьДокумент();
    ДокСмена.Дата = ТекущаяДата();
    ДокСмена.КассаККМ = КассаККМ;
    ДокСмена.Статус = Перечисления.СтатусыКассовойСмены.Открыта;
    ДокСмена.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;

2. Автоматическое закрытие смены по расписанию

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

  1. Создается регламентное задание, запускаемое по расписанию (например, в 23:50 каждый рабочий день).
  2. Задание обращается к менеджеру оборудования, передает фискальному регистратору команду закрытия смены и снятия Z-отчета.
  3. После успешного ответа ККТ статус соответствующего документа КассоваяСмена меняется на Закрыта.

Важное техническое ограничение: Регламентные задания исполняются на стороне сервера 1С. Для того чтобы сервер мог отправить команду на ККТ, кассовый аппарат должен быть доступен серверу по сети (IP-подключение) либо в системе должен использоваться специальный агент печати (сервис оборудования). Если онлайн-кашка подключена локально через USB к рабочему месту кассира, выполнить закрытие смены серверным регламентным заданием без активного сеанса пользователя невозможно.

Таким образом, типовой механизм 1С:УПП требует явного создания документа открытия смены, однако с помощью небольших доработок можно полностью автоматизировать процесс открытия и закрытия кассовых смен.

← На главную