При оформлении предварительных оплат или расчетов по заказам покупателей в программе 1С:Розница часто возникает ситуация: менеджер создает документ Приходный кассовый ордер (ПКО) с признаком пробития чека на фискальном регистраторе (ККМ), чек успешно печатается, однако в физическом денежном ящике кассы ККМ и по управленческим отчетам возникает путаница с остатками. Проанализируем, почему типовая конфигурация делает двойные записи по регистрам, чем опасно вмешательство в программный код проведения документов и как корректно организовать учет наличных денежных средств.
Разберем фундаментальное различие между двумя сущностями учета наличных денег в типовых конфигурациях 1С:
ДенежныеСредстваНаличные с помощью документов Приходный кассовый ордер и Расходный кассовый ордер.ДенежныеСредстваККМ документами Чек ККМ, Внесение денежных средств в кассу ККМ и Выемка денежных средств из кассы ККМ.Когда мы проводим документ Приходный кассовый ордер с установленным флагом пробития фискального чека, система выполняет следующие действия:
ДенежныеСредстваНаличные, так как с точки зрения регламентированного учета деньги поступили непосредственно в кассу организации.ДенежныеСредстваККМ.Такое техническое решение разработчиков 1С обусловлено тем, что операция фискализации через ПКО отражает транзит денег: сумма была зарегистрирована фискальным накопителем, но по учету она не должна оставаться в оперативном ящике кассира, так как уже оприходована в общую кассу организации.
Посмотрим на последствия, которые возникнут, если программист попытается скорректировать модуль проведения документа Приходный кассовый ордер и отключит формирование расходного движения по регистру ДенежныеСредстваККМ:
Отчет о розничных продажах) типовой функционал выполняет полную или частичную выемку наличных из кассы ККМ. Несписанная сумма ПКО попадет в документ Выемка денежных средств из кассы ККМ. При последующем приеме выручки в кассу предприятия (через оформление ПКО с видом операции «Поступление из кассы ККМ») эта же сумма вторично встанет на приход в регистр ДенежныеСредстваНаличные. В итоге управленческий и фактический остаток денег по магазину окажется искусственно завышен.50.Рассмотрим штатные и альтернативные способы организации работы, позволяющие избежать ручного перемещения денег и дублирования операций.
Начиная с редакции 1С:Розница 2.2 и выше, реализован полноценный механизм работы с заказами покупателей и авансами прямо на рабочем месте кассира:
Чек ККМ с признаком способа расчета Предоплата или Аванс.ДенежныеСредстваККМ, физически находятся в денежном ящике и участвуют в общем вечернем цикле закрытия смены и выемки.Если в силу регламента компании менеджеры обязаны принимать оплату исключительно через документы Приходный кассовый ордер, не следует ломать логику типовых регистров. Оптимально автоматизировать создание служебных документов с помощью подписки на событие в расширении конфигурации.
Разберем логику работы алгоритма:
Приходный кассовый ордер программно создается документ Расходный кассовый ордер с операцией Выдача ДС в кассу ККМ на сумму принятого платежа.Внесение денежных средств в кассу ККМ.Посмотрим на пример обработчика в модуле расширения:
Процедура Расш_ПриПроведенииПКО(Источник, Отказ, РежимПроведения) Экспорт
Если Отказ Или Источник.ПометкаУдаления Тогда
Возврат;
КонецЕсли;
// Проверяем, пробит ли фискальный чек на ККМ из ПКО
Если Не Источник.ПробиватьЧекиПоКассеККМ Тогда
Возврат;
КонецЕсли;
// Создаем цепочку перемещения: списание из кассы организации и внесение в ККМ
ДокументРКО = Документы.РасходныйКассовыйОрдер.СоздатьДокумент();
ДокументРКО.Заполнить(Неопределено);
ДокументРКО.Дата = Источник.Дата;
ДокументРКО.Организация = Источник.Организация;
ДокументРКО.Касса = Источник.Касса;
ДокументРКО.КассаККМ = Источник.КассаККМ;
ДокументРКО.СуммаДокумента = Источник.СуммаДокумента;
ДокументРКО.ВидОперации = Перечисления.ВидыОперацийРКО.ВыдачаВКассуККМ;
ДокументРКО.ДокументОснование = Источник.Ссылка;
ДокументРКО.Записать(РежимЗаписиДокумента.Проведение);
ДокументВнесения = Документы.ВнесениеДенежныхСредствВКассуККМ.СоздатьДокумент();
ДокументВнесения.Дата = Источник.Дата;
ДокументВнесения.Организация = Источник.Организация;
ДокументВнесения.КассаККМ = Источник.КассаККМ;
ДокументВнесения.СуммаДокумента = Источник.СуммаДокумента;
ДокументВнесения.ДокументОснование = ДокументРКО.Ссылка;
ДокументВнесения.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
Такой подход сохраняет полную прозрачность учета: типовой баланс регистров не нарушается, инкассация в конце смены сходится, а пользователи освобождаются от рутинных ручных операций.
Если в магазине физически нет отдельного сейфа и все наличные постоянно хранятся в одном денежном ящике кассы ККМ, можно скорректировать регламент выемки:
Касса ККМ настраиваем режим закрытия смены без автоматической полной выемки наличности.Расходный кассовый ордер из операционной кассы магазина.