Как вывести примененные скидки в отчете по продажам в 1С:Управление торговлей 11.4?

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

При разработке внешних отчетов в 1С:Управление торговлей 11.4 часто возникает задача вывести информацию о скидках, примененных к конкретной номенклатуре в документе. Пользователи сталкиваются с трудностями при попытке связать данные табличной части Товары с таблицей скидок, получая дублирование записей или неверные суммы. Рассмотрим, как правильно решить эту задачу.

Анализ структуры данных

Прежде чем приступать к написанию запроса, важно понять архитектуру хранения данных в 1С. В типовых конфигурациях на базе БСП (Библиотека стандартных подсистем), таких как Управление торговлей 11, скидки не всегда являются частью основного объекта документа. Они часто выносятся в отдельные табличные части или дополнительные структуры данных, чтобы обеспечить гибкость механизма автоматических скидок.

Основная причина проблем при запросе заключается в том, что скидка может применяться как к отдельной строке товара, так и ко всему документу целиком. Если вы просто пытаетесь соединить таблицу Товары и таблицу скидок по ссылке на документ, система создает декартово произведение, из-за чего количество строк в выборке возрастает многократно.

Шаг 1: Правильная связь таблиц по ключу строки

Для корректной идентификации того, какая скидка относится к какому товару, используйте КлючСтроки. Это технический идентификатор, который присутствует как в табличной части Товары, так и в табличных частях, хранящих информацию о скидках.

Рассмотрим структуру запроса для связи. При обновлении программы и переходе с редакции 10.3 на современную платформу пригодится перенос данных УТ 10.3 — УТ 11:


ВЫБРАТЬ
    Товары.Номенклатура,
    Товары.Цена,
    Товары.Сумма,
    Скидки.СкидкаНаценка КАК ВидСкидки,
    Скидки.СуммаСкидкиНаценки
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК Товары
ЛЕВОЕ СОЕДИНЕНИЕ 
    Документ.РеализацияТоваровУслуг.СкидкиНаценки КАК Скидки
ПО 
    Товары.Ссылка = Скидки.Ссылка 
    И Товары.КлючСтроки = Скидки.КлючСтроки

Использование связки Товары.Ссылка = Скидки.Ссылка И Товары.КлючСтроки = Скидки.КлючСтроки позволяет однозначно сопоставить строку товара и примененную к ней скидку, исключая дублирование.

Шаг 2: Фильтрация неактуальных данных

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

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

  1. Проверьте наличие поля Исключена или признака, указывающего на отмену скидки.
  2. Добавьте условие в секцию ГДЕ вашего запроса, чтобы исключить отмененные записи.
  3. Убедитесь, что СуммаСкидкиНаценки не равна нулю, если вас интересуют только реально примененные скидки, повлиявшие на цену.

Шаг 3: Альтернативный подход через регистры накопления

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

Однако помните о важном нюансе: в регистрах данные о скидках часто хранятся в свернутом виде — сумма скидки уже вычтена из итоговой суммы продажи. Если вам необходимо вывести именно наименование скидки (например, «Сезонная скидка 10%»), обращение к табличным частям документа остается единственно верным и надежным способом, так как аналитика видов скидок в регистрах накопления по умолчанию не хранится.

Практические рекомендации

Для успешной реализации отчета следуйте этим рекомендациям:

Соблюдая эти шаги, вы сможете создать надежный и быстрый отчет, который будет корректно отображать все скидки, предоставленные покупателю в процессе реализации. Чтобы в систему автоматически попадали сведения о продажах и скидках с внешних площадок, можно использовать интеграцию 1С:УТ 11 с маркетплейсами.

← На главную