Предыдущая цена на ценнике
Задачи пользователя - Этикетки, ценники
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Для добавления второй цены на ценнике отредактируем шаблон СКД


Вставьте после формирования запроса ЦеныНоменклатурыСУчетомМинимальных.
Ищем предыдущий период в регистре цен
1) Период предыдущей цены
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Тек.Номенклатура КАК Номенклатура,
Тек.Характеристика КАК Характеристика,
Тек.Упаковка КАК Упаковка,
Тек.ВидЦен КАК ВидЦен,
МАКСИМУМ(Цены.Период) КАК ПериодПредыдущейЦены
ПОМЕСТИТЬ ПериодыПредыдущихЦен
ИЗ
ЦеныНоменклатурыСУчетомМинимальных КАК Тек
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены
ПО Цены.Номенклатура = Тек.Номенклатура
И Цены.Характеристика = Тек.Характеристика
И Цены.ВидЦены = Тек.ВидЦен
// Если в вашем регистре "Упаковка" участвует в идентификации цены — добавьте строку:
// И Цены.Упаковка = Тек.Упаковка
ГДЕ
Цены.Период < Тек.ПериодЦены
СГРУППИРОВАТЬ ПО
Тек.Номенклатура,
Тек.Характеристика,
Тек.Упаковка,
Тек.ВидЦен
;
или перед окончательным запросом.
Далее добавляем запрос получения предыдущей цены по найденному периоду
2) Значение предыдущей цены
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
П.Номенклатура,
П.Характеристика,
П.Упаковка,
П.ВидЦен,
ЕСТЬNULL(ЦеныПред.Цена, 0) КАК ЦенаПредыдущая,
ЕСТЬNULL(ЦеныПред.Период, ДАТАВРЕМЯ(1,1,1)) КАК ПериодПредыдущейЦены,
ЕСТЬNULL(ЦеныПред.Упаковка.Коэффициент, 1) КАК КоэффициентУпаковкиЦеныПред
ПОМЕСТИТЬ ПредыдущиеЦены
ИЗ
ПериодыПредыдущихЦен КАК П
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныПред
ПО ЦеныПред.Номенклатура = П.Номенклатура
И ЦеныПред.Характеристика = П.Характеристика
И ЦеныПред.ВидЦены = П.ВидЦен
И ЦеныПред.Период = П.ПериодПредыдущейЦены
// Если добавляли упаковку выше — добавьте и тут:
// И ЦеныПред.Упаковка = П.Упаковка
;
В вашем финальном запросе добавляем соединение:
3) Присоедините в финальном SELECT и выведите поля
{ЛЕВОЕ СОЕДИНЕНИЕ ПредыдущиеЦены КАК ПредЦена
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ПредЦена.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = ПредЦена.Характеристика
И ИсходныеДанныеПоследнийЗапрос.Упаковка = ПредЦена.Упаковка
И &ВидЦены = ПредЦена.ВидЦен}
И соответственно поле для вывода:
МАКСИМУМ(ПредЦена.ЦенаПредыдущая) КАК ЦенаПредыдущая,
Добавляем в шаблон вторую цену

И получаем такой ценник

Вступайте в нашу телеграмм-группу Инфостарт