При закрытии смены в конфигурации 1С:Розница 2.2 многие пользователи сталкиваются с тем, что после выполнения выемки деньги «зависают» в регистре неоприходованных денежных средств. Программа не создает документ Приходный кассовый ордер (ПКО) автоматически. Разберем, почему реализован именно такой механизм, и подробно рассмотрим технические способы автоматизации формирования ПКО.
Методология типовой конфигурации четко разделяет два контура учета наличности:
При закрытии смены, если в параметрах торгового оборудования настроена автоматическая инкассация, создается документ ВыемкаДенежныхСредствИзКассыККМ. Данный документ списывает наличность из регистра накопления ДенежныеСредстваККМ и переводит её в статус «денег в пути» (регистр Денежные средства к поступлению наличные). Предполагается, что старший кассир или бухгалтер физически пересчитывает купюры и вручную вводит ПКО с видом операции ПоступлениеДенежныхСредствИзКассыККМ на основании выемки. Однако при большом потоке касс такой ручной ввод часто требуется автоматизировать.
Рассмотрим вариант реализации с помощью фонового регламентного задания. Обработка по расписанию анализирует данные за текущую дату, находит суммы закрытых смен и сформированных выемок, после чего создает недостающие ПКО.
Посмотрим на пример запроса, который группирует информацию по кассам ККМ и организациям, сопоставляя выручку из отчетов и фактические выемки:
ВЫБРАТЬ
НаличныеИВыемка.КассаККМ КАК КассаККМ,
НаличныеИВыемка.Организация КАК Организация,
СУММА(НаличныеИВыемка.СуммаНаличные) КАК СуммаНаличные,
СУММА(НаличныеИВыемка.СуммаВыемки) КАК СуммаВыемки
ИЗ
(ВЫБРАТЬ
ОтчетОРозничныхПродажах.КассаККМ КАК КассаККМ,
ОтчетОРозничныхПродажах.Организация КАК Организация,
ЕСТЬNULL(ДенежныеСредстваККМ.Сумма, 0) КАК СуммаНаличные,
0 КАК СуммаВыемки
ИЗ
Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДенежныеСредстваККМ КАК ДенежныеСредстваККМ
ПО ОтчетОРозничныхПродажах.Ссылка = ДенежныеСредстваККМ.Регистратор
ГДЕ
ДенежныеСредстваККМ.Сумма > 0
И НАЧАЛОПЕРИОДА(ОтчетОРозничныхПродажах.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВыемкаДенежныхСредствИзКассыККМ.КассаККМ,
ВыемкаДенежныхСредствИзКассыККМ.Организация,
0,
ВыемкаДенежныхСредствИзКассыККМ.СуммаДокумента
ИЗ
Документ.ВыемкаДенежныхСредствИзКассыККМ КАК ВыемкаДенежныхСредствИзКассыККМ
ГДЕ
НАЧАЛОПЕРИОДА(ВыемкаДенежныхСредствИзКассыККМ.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)) КАК НаличныеИВыемка
СГРУППИРОВАТЬ ПО
НаличныеИВыемка.КассаККМ,
НаличныеИВыемка.Организация
Полученные данные обходим в цикле выборки. Для каждой выемки, по которой ещё нет зарегистрированного прихода в кассу, программно формируем документ ПриходныйКассовыйОрдер, заполняем реквизит ДокументОснование ссылкой на выемку и проводим его.
Альтернативный и более оперативный вариант — перехват момента создания выемки без изменения основной конфигурации. Разберем по шагам алгоритм реализации через расширение:
ВыемкаДенежныхСредствИзКассыККМ.ОбработкаПроведения (или перехватываем процедуру закрытия смены в интерфейсе РМК).ПриходныйКассовыйОрдер с видом операции ПоступлениеДенежныхСредствИзКассыККМ, связываем его с выемкой и проводим.При внедрении автосоздания ПКО обязательно обратите внимание на следующие моменты:
УстановитьПривилегированныйРежим(Истина). В противном случае кассир получит отказ в доступе.ВыемкаДенежныхСредствИзКассыККМ указаны реквизиты КассаККМ и Организация, но отсутствует реквизит Касса (касса предприятия). В коде создания ПКО необходимо реализовать сопоставление — например, выбирать основную кассу, привязанную к магазину текущей ККМ.ОтчетОРозничныхПродажах, и созданные ПКО, на 50-м счете может возникнуть задвоение выручки. В таком случае в правилах обмена отключают выгрузку розничных ПКО либо на стороне бухгалтерии корректируют учет выручки из отчета.