Почему в 1С:УТ 11 не отображаются скидки в документе «Отчет о розничных продажах» и как это исправить?

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

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

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

Разберем причину: архитектурная логика розничного учета в УТ 11

Для начала выясним причину такого поведения системы. В отличие от оптовой торговли, где документ Реализация товаров и услуг фиксирует скидки в явном виде в регистрах, розничный контур в 1С:УТ 11 спроектирован иначе. Рассмотрим основные нюансы:

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

Способ 1: Доработка кода заполнения документа

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

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


// Фрагмент кода для суммирования скидок при обходе чеков
Для Каждого СтрокаЧека Из ТаблицаЧеков Цикл
    НоваяСтрокаООРП = ТаблицаИтоговыхПродаж.Найти(СтрокаЧека.Номенклатура, "Номенклатура");
    Если НоваяСтрокаООРП <> Неопределено Тогда
        // Добавляем к итоговым суммам данные по скидкам
        НоваяСтрокаООРП.СуммаАвтоматическойСкидки = НоваяСтрокаООРП.SуммаАвтоматическойСкидки + СтрокаЧека.СуммаАвтоматическойСкидки;
        НоваяСтрокаООРП.СуммаРучнойСкидки = НоваяСтрокаООРП.СуммаРучнойСкидки + СтрокаЧека.СуммаРучнойСкидки;
    КонецЕсли;
КонецЦикла;

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

Способ 2: Создание нетипового отчета по чекам

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

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

Способ 3: Настройка параметров архивации и специализированные отчеты

Посмотрим на проблему под другим углом. В 1С:УТ 11 существует специализированный отчет «Оценка применения скидок». Он позволяет детально проанализировать, какие скидки сработали, на какие суммы и какова была их эффективность.

Выясним условия его корректной работы:

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

Итоги и рекомендации

Проанализировав ситуацию, мы видим, что отсутствие скидок в Отчете о розничных продажах — это осознанное ограничение разработчиков 1С для упрощения структуры данных в рознице.

Резюмируем наши действия:

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

← На главную