Как в 1С:Розница добавить вторую цену с наценкой в макет этикетки?

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

Рассмотрим задачу, с которой часто сталкиваются пользователи 1С:Розница 2.3: необходимость отобразить на ценнике или этикетке не одну, а две цены. Например, основную розничную цену и вторую, рассчитанную с фиксированной наценкой (например, цена * 1,25). Такая потребность может возникнуть для акций, сравнения цен или для отображения цены для разных категорий покупателей.

Простое добавление формулы вида [РозничнаяЦена*1,25] непосредственно в текстовое поле макета, к сожалению, не работает, так как редактор не выполняет такие вычисления на лету. Разберем два надежных способа решения этой задачи: быстрый, через редактирование схемы компоновки данных (СКД), и более правильный с точки зрения методологии 1С — через создание нового вида цен.

Способ 1: Редактирование запроса в схеме компоновки данных (СКД)

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

Важный момент: для доступа к редактору СКД программу 1С необходимо запустить в режиме "Толстый клиент". В стандартном "Тонком клиенте" эта функция недоступна.

Проанализируем пошаговый процесс:

  1. Перейдите в раздел "Администрирование" → "Печатные формы, отчеты и обработки" → "Шаблоны этикеток, ценников и чеков ККМ".
  2. Создайте новый шаблон или, что удобнее, скопируйте уже существующий, который вы используете, чтобы не начинать с нуля.
  3. Сохраните шаблон, после чего станет активной кнопка "Редактировать макет". Нажмите ее.
  4. В открывшемся редакторе макета найдите и нажмите кнопку "Редактировать СКД". Она обычно находится на верхней панели инструментов.
  5. Откроется окно схемы компоновки данных. Здесь можно напрямую редактировать текст запроса, но мы рекомендуем использовать более наглядный инструмент — "Конструктор запроса".
  6. В конструкторе запроса перейдите на вкладку "Вычисляемые поля". Здесь можно добавить новое поле, которое будет рассчитываться на основе существующих. Однако более надежный способ — изменить основной запрос.
  7. Перейдите на вкладку с основным текстом запроса. Найдите финальную секцию ВЫБРАТЬ. В ней вы увидите строки, которые определяют, какие данные попадают в макет. Например, строка для основной цены может выглядеть так: МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
  8. Рядом с этой строкой, через запятую, добавьте свою собственную вычисляемую колонку. Для наценки в 25% (умножение на 1.25) строка будет выглядеть так: МАКСИМУМ(ЦеныНоменклатуры.Цена * 1.25) КАК ЦенаПлюс

    Здесь МАКСИМУМ(...) используется для того, чтобы гарантированно получить одно значение цены для товара. Цена * 1.25 — это наша формула расчета. КАК ЦенаПлюс — это псевдоним, то есть новое имя для нашего поля, под которым оно будет доступно в макете.

  9. Нажмите "ОК" и сохраните изменения в СКД, а затем и в самом макете.
  10. Теперь, вернувшись в редактор макета, в списке доступных полей (обычно слева) вы увидите новое поле с именем "ЦенаПлюс". Просто перетащите его мышкой в нужное место на макете этикетки.

Этот метод эффективно решает задачу, что и подтверждается в обсуждении на форуме. Он дает полный контроль над данными, но требует внимательности при редактировании запроса.

Способ 2: Создание нового вида цен (рекомендуемый)

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

Разберем процесс настройки по шагам:

  1. Откройте раздел "Маркетинг" → "Виды цен".
  2. Создайте новый элемент справочника. Дайте ему понятное название, например, "Розничная +25%".
  3. В настройках нового вида цены выберите способ задания цены. У вас есть несколько вариантов:
    • "Наценка на другой вид цен": самый простой вариант. Выберите базовый вид цены (например, "Розничная") и укажите процент наценки — 25%.
    • "Произвольная формула": более гибкий вариант, где можно задать сложную формулу расчета, используя другие виды цен как переменные.
  4. После создания и настройки вида цены необходимо выполнить ключевое действие — рассчитать цены. Система не делает это автоматически. Для этого создайте документ "Установка цен номенклатуры" (находится в разделе "Маркетинг").
  5. В документе на вкладке "Товары" заполните список номенклатуры, для которой нужно рассчитать новую цену. Затем нажмите кнопку "Рассчитать вычисляемые виды цен" или "Изменить цены" -> "Рассчитать по видам цен". Система автоматически подставит значения для вашего нового вида цен "Розничная +25%".
  6. Проведите документ "Установка цен номенклатуры". Только после этого новые цены будут записаны в систему и станут доступны для использования.
  7. Теперь вернитесь в редактор макета этикетки ("Администрирование" → "Шаблоны этикеток...").
  8. Вам не нужно редактировать СКД. Новый вид цен должен появиться в списке доступных полей. Часто в стандартных макетах уже есть предопределенные поля для нескольких видов цен (например, "Цена 1", "Цена 2"). Вы сможете выбрать ваш новый вид цен для отображения в одном из этих полей.

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

← На главную