Почему сумма в ПКО на основании Отчета о розничных продажах не совпадает с суммой документа?

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

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

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

Анализируем программный код: роль функции Мин()

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

Рассмотрим фрагмент кода, который управляет заполнением суммы продаж:


ИначеЕсли (Выборка.ВидРозничнойВыручки = Перечисления.ВидыРозничнойВыручки.Продажа) Тогда
    СуммаПоОснованиюПродажи = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(ОбщиеСуммыПродажВозвратов[Выборка.ВидРозничнойВыручки], мВалютаРегламентированногоУчета, ВалютаДокумента, 1, КурсДокумента, 1, КратностьДокумента);
    СуммаПродаж = Мин(МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(Выборка.СуммаКонечныйОстаток,
                        мВалютаРегламентированногоУчета, ВалютаДокумента,
                        1, КурсДокумента, 1, КратностьДокумента),
                    СуммаПродажПоОснованию);

Что мы видим в этом алгоритме? Ключевым моментом является использование функции Мин(). Программа выбирает минимальное значение между двумя показателями:

  1. СуммаПродажПоОснованию — это та сумма наличных, которая фигурирует в документе-основании (Отчете о розничных продажах).
  2. Выборка.СуммаКонечныйОстаток — это фактический остаток денежных средств в конкретной торговой точке по данным регистра накопления РозничнаяВыручка.

Вывод: Если в регистре РозничнаяВыручка числится меньше денег, чем указано в отчете о продажах, система подставит именно остаток из регистра. Программа считает, что вы не можете забрать из торговой точки больше денег, чем там есть по данным учета.

Почему данные в регистре «Розничная выручка» могут быть неверными?

Разберем подробнее, как работает регистр РозничнаяВыручка. Это своего рода «виртуальный денежный ящик» кассы ККМ. Когда мы проводим Отчет о розничных продажах, он делает движение «Приход» в этот регистр. Когда мы делаем ПКО с операцией «Прием розничной выручки», он делает движение «Расход», переводя деньги из розничной точки в основную кассу предприятия.

Выясним основные причины расхождений:

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

2. Оформление возвратов товаров.
Если в течение смены были оформлены возвраты товаров (особенно если они оформлялись отдельным документом Возврат товаров от покупателя, а не внутри чека ККМ), эти суммы могут уменьшать остаток выручки в регистре. В итоге «чистых» денег к выдаче остается меньше, чем общая сумма продаж по отчету.

3. Частичная инкассация (выемка) в течение дня.
В розничной торговле часто практикуется промежуточная выемка денег. Если в системе уже был зафиксирован какой-либо документ, сделавший «Расход» по регистру РозничнаяВыручка до формирования итогового ПКО за день, то остаток уменьшится. Отчет о розничных продажах сам по себе не знает о промежуточных выемках, а регистр — знает.

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

Как проверить и исправить ситуацию

Проанализируем ситуацию по шагам, чтобы найти «потерянную» сумму:

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

Итог: логика «предохранителя»

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

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

← На главную