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