Как настроить автоматическое создание ПКО после закрытия кассовой смены в 1С:Розница 2.2?

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

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

Выясним причину поведения системы

Методология типовой конфигурации четко разделяет два контура учета наличности:

  1. Касса ККМ — денежный ящик конкретного фискального регистратора.
  2. Касса предприятия (операционная касса магазина) — место хранения основной денежной массы организации.

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

Способ 1. Автоматизация через регламентное задание и внешний запрос

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

Посмотрим на пример запроса, который группирует информацию по кассам ККМ и организациям, сопоставляя выручку из отчетов и фактические выемки:


ВЫБРАТЬ
    НаличныеИВыемка.КассаККМ КАК КассаККМ,
    НаличныеИВыемка.Организация КАК Организация,
    СУММА(НаличныеИВыемка.СуммаНаличные) КАК СуммаНаличные,
    СУММА(НаличныеИВыемка.СуммаВыемки) КАК СуммаВыемки
ИЗ
    (ВЫБРАТЬ
        ОтчетОРозничныхПродажах.КассаККМ КАК КассаККМ,
        ОтчетОРозничныхПродажах.Организация КАК Организация,
        ЕСТЬNULL(ДенежныеСредстваККМ.Сумма, 0) КАК СуммаНаличные,
        0 КАК СуммаВыемки
    ИЗ
        Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДенежныеСредстваККМ КАК ДенежныеСредстваККМ
            ПО ОтчетОРозничныхПродажах.Ссылка = ДенежныеСредстваККМ.Регистратор
    ГДЕ
        ДенежныеСредстваККМ.Сумма > 0
        И НАЧАЛОПЕРИОДА(ОтчетОРозничныхПродажах.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ВыемкаДенежныхСредствИзКассыККМ.КассаККМ,
        ВыемкаДенежныхСредствИзКассыККМ.Организация,
        0,
        ВыемкаДенежныхСредствИзКассыККМ.СуммаДокумента
    ИЗ
        Документ.ВыемкаДенежныхСредствИзКассыККМ КАК ВыемкаДенежныхСредствИзКассыККМ
    ГДЕ
        НАЧАЛОПЕРИОДА(ВыемкаДенежныхСредствИзКассыККМ.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)) КАК НаличныеИВыемка
СГРУППИРОВАТЬ ПО
    НаличныеИВыемка.КассаККМ,
    НаличныеИВыемка.Организация

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

Способ 2. Создание ПКО при проведении выемки через расширение

Альтернативный и более оперативный вариант — перехват момента создания выемки без изменения основной конфигурации. Разберем по шагам алгоритм реализации через расширение:

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

Технические нюансы и важные ограничения

При внедрении автосоздания ПКО обязательно обратите внимание на следующие моменты:

  1. Недостаток прав у кассира. Пользователи с профилем «Кассир ККМ» не имеют прав на создание и проведение документов операционной кассы предприятия. Если формирование ПКО происходит интерактивно сразу после закрытия смены на рабочем месте кассира, код генерации документа должен выполняться на сервере с вызовом метода УстановитьПривилегированныйРежим(Истина). В противном случае кассир получит отказ в доступе.
  2. Определение операционной кассы-получателя. В документе ВыемкаДенежныхСредствИзКассыККМ указаны реквизиты КассаККМ и Организация, но отсутствует реквизит Касса (касса предприятия). В коде создания ПКО необходимо реализовать сопоставление — например, выбирать основную кассу, привязанную к магазину текущей ККМ.
  3. Синхронизация с «1С:Бухгалтерия предприятия». Если розничная база синхронизируется с БП, проверьте правила конвертации данных. Если в бухгалтерию одновременно передаются и документы ОтчетОРозничныхПродажах, и созданные ПКО, на 50-м счете может возникнуть задвоение выручки. В таком случае в правилах обмена отключают выгрузку розничных ПКО либо на стороне бухгалтерии корректируют учет выручки из отчета.
← На главную