Почему в документе «Кассовая смена» не заполняется реквизит «Касса ККМ» и как это исправить?

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

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

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

Почему возникает эта проблема? Разбор архитектуры 1С

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

Справочник Кассы ККМ служит связующим звеном. Каждая запись в этом справочнике сопоставляет конкретную кассу организации с определенным Рабочим местом и конкретным экземпляром Подключаемого оборудования. Когда на основном компьютере (где физически подключена ККТ) открывается смена, система легко определяет связку. Но на втором («клиентском») компьютере уникальный идентификатор рабочего места другой, и физического оборудования к нему не подключено.

Проанализируем программное поведение документа Кассовая смена. В типовом коде заложено разделение логики:

  1. Если к рабочему месту подключен фискальный регистратор, программа заполняет реквизит ФискальноеУстройство, но при этом реквизит Касса ККМ может оставаться пустым.
  2. Если в настройках указано, что касса работает в режиме «Без подключения оборудования», система требует обязательного заполнения реквизита Касса ККМ, игнорируя фискальное устройство.

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

Решение 1. Быстрое исправление через перевыбор оборудования в справочнике

Рассмотрим метод, который часто помогает решить проблему без изменения программного кода. Он особенно актуален, если сбой произошел внезапно (например, после обновления платформы, конфигурации или драйверов торгового оборудования), из-за чего сбились внутренние идентификаторы рабочих мест.

Разберем этот процесс по шагам:

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

После этой процедуры очистите кэш программы и перезапустите 1С. Попробуйте закрыть текущую кассовую смену и открыть ее заново. Во многих случаях перевыбор элементов позволяет системе корректно сопоставить новое рабочее место с существующими настройками оборудования.

Решение 2. Использование программного обхода (костыль в коде)

Если административные настройки не помогают, а бизнес-процесс требует немедленного запуска работы, можно прибегнуть к программному заполнению реквизитов. Посмотрим на пример кода, который решает проблему незаполненного поля.

Нам необходимо принудительно устанавливать значение реквизита КассаККМ при создании или записи документов. Для этого мы можем использовать расширение конфигурации или внести изменения непосредственно в модуль объекта документа КассоваяСмена.

Рассмотрим пример кода, который принудительно назначает кассу ККМ из настроек текущего пользователя:


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

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

Решение 3. Организация работы через «ККМ без подключения оборудования»

Если второй компьютер используется исключительно для набивки чеков («компьютер-клиент»), правильным с точки зрения методологии 1С решением будет создание отдельной виртуальной кассы. Проанализируем, как настроить эту схему:

  1. В справочнике Кассы ККМ создадим новую запись для второго компьютера.
  2. В качестве типа кассы укажем ККМ без подключения оборудования.
  3. Привяжем эту кассу к рабочему месту второго компьютера.

При такой схеме менеджер на втором компьютере сможет безпрепятственно открывать смену, подбирать товары, создавать и откладывать чеки, так как система не будет требовать от него физического фискального регистратора. На основном же компьютере кассир в интерфейсе РМК (Рабочее место кассира) сможет выбирать отложенные чеки, созданные на виртуальной кассе, и фискализировать их на реальном принтере чеков.

Решение 4. Использование сетевого фискального регистратора

Современные драйверы оборудования (например, драйвер ККТ АТОЛ 10-й версии или драйверы ШТРИХ-М) поддерживают работу по сети. Это позволяет двум компьютерам одновременно взаимодействовать с одной физической кассой:

  1. На основном компьютере, к которому касса подключена физически по USB, запускается служба Веб-сервер ККТ или настраивается TCP-порт общего доступа в самом драйвере.
  2. На втором компьютере в настройках подключаемого оборудования 1С добавляется тот же фискальный регистратор, но в параметрах подключения указывается удаленный IP-адрес основного компьютера и порт подключения.

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

← На главную