Добрый день, есть регистр сведений - "Цены", нужно получить цену на сегодня, и цену если есть на будущее. Цена на сегодня Период=&Дата, цена на будущее Период>&Дата, но если цены на будущее нету то нету и записи, как получить 0 или любое значение -"цена на будущее не установлена" ?
Живет на форуме
Группа: Местный
Сообщений: 2642
Из: Проскуров
Спасибо сказали: 662 раз
Рейтинг: 640.4
делаете выборку, если пустая - цена=0 или в запросе добавляете заведомую "пустышку" с ценой=0 и через юнион олл свой запрос + сгруппировать - в результате цена будет обязательно (или 0 или установленная)
sava1 @ Сегодня, 11:16
, sava1 @ Сегодня, 11:07
, Запросом, в регистре есть Номенклатура, Период, Цена, текущая цена Период=&ТекущаяДата, будущая цена Период>&ТекущаяДата. Если в регистре есть запись с датой больше текущей все ок, но если записи нету то возникает проблема как заполнить поле. Таблица выгладит следующим образом Номенклатура-ЦенаТекушая-ЦенаНовая. Номенклатуру знаем, цену текущую знаем, а новую цену нужно проверять или заполнен регистр датой больше текущей. Если дата есть то установить цену, если даты нету поставить 0
sava1 @ Сегодня, 11:25
, ВЫБРАТЬ ЦеныСрезПоследних.Номенклатура КАК Номенклатура, ЦеныСрезПоследних.Цена КАК ЦенаТекущая, Цены.Цена КАК ЦенаНовая ИЗ РегистрСведений.Цены.СрезПоследних(&Дата, ) КАК ЦеныСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены ПО ЦеныСрезПоследних.Номенклатура = Цены.Номенклатура ГДЕ ЦеныСрезПоследних.Период <= &Дата И ЦеныСрезПоследних.Номенклатура = &Номенклатура И Цены.Период > &Дата
Живет на форуме
Группа: Местный
Сообщений: 2642
Из: Проскуров
Спасибо сказали: 662 раз
Рейтинг: 640.4
1. цены обе надо получать из виртуальной таблицы
ВЫБРАТЬ Номенклатура, максимум(IsNULL(ЦенаТекущая,0) , максимум(IsNULL(ЦенаНовая,0) ИЗ (
ВЫБРАТЬ ЦеныСрезПоследних.Номенклатура КАК Номенклатура, ЦеныСрезПоследних.Цена КАК ЦенаТекущая, 0 КАК ЦенаНовая ИЗ РегистрСведений.Цены.СрезПоследних(&Дата, ) КАК ЦеныСрезПоследних
ОбЪЕдинить все
ВЫБРАТЬ ЦеныСрезПоследних.Номенклатура КАК Номенклатура, 0 КАК ЦенаТекущая, ЦеныСрезПоследних.Цена КАК ЦенаНовая ИЗ РегистрСведений.Цены.СрезПоследних(&ДатаНовая, ) КАК ЦеныСрезПоследних
) как твр
СГРУППИРОВАТЬ ПО Номенклатура
типо так - ошибки могут быть из-за ручной печати
Номенклатуру и типЦена - в параметры вирт. таблицы
sava1 @ Вчера, 11:37
, Вариант супер, спасибо, но есть минус. Нужно заполнять &ДатаНовая. Ваш вариант супер. Как поправить чтобы пока не наступит ДатаНовая устанавливался 0 на ЦенаНовая. Буду благодарен, только учусь.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!