Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Получение текущей и будущей цены из регистра сведений          
vasilijgrafeev Подменю пользователя
сообщение 12.07.22, 9:39
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день, есть регистр сведений - "Цены", нужно получить цену на сегодня, и цену если есть на будущее. Цена на сегодня Период=&Дата, цена на будущее Период>&Дата, но если цены на будущее нету то нету и записи, как получить 0 или любое значение -"цена на будущее не установлена" ?


 ! 

Правила: 4
 


Сообщение отредактировал Vofka - 12.07.22, 10:54

sava1 Подменю пользователя
сообщение 12.07.22, 10:07
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2568
Из: Проскуров
Спасибо сказали: 633 раз
Рейтинг: 613.2

а получаете цену как? запросом или через объект?

Спасибо сказали: vasilijgrafeev,

vasilijgrafeev Подменю пользователя
сообщение 12.07.22, 10:09
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 11:07 * ,
Запросом

sava1 Подменю пользователя
сообщение 12.07.22, 10:16
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2568
Из: Проскуров
Спасибо сказали: 633 раз
Рейтинг: 613.2

делаете выборку, если пустая - цена=0
или
в запросе добавляете заведомую "пустышку" с ценой=0 и через юнион олл свой запрос + сгруппировать - в результате цена будет обязательно (или 0 или установленная)

Спасибо сказали: vasilijgrafeev,

vasilijgrafeev Подменю пользователя
сообщение 12.07.22, 10:20
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 11:16 * ,
sava1 @ Сегодня, 11:07 * ,
Запросом, в регистре есть Номенклатура, Период, Цена, текущая цена Период=&ТекущаяДата, будущая цена Период>&ТекущаяДата. Если в регистре есть запись с датой больше текущей все ок, но если записи нету то возникает проблема как заполнить поле. Таблица выгладит следующим образом Номенклатура-ЦенаТекушая-ЦенаНовая. Номенклатуру знаем, цену текущую знаем, а новую цену нужно проверять или заполнен регистр датой больше текущей. Если дата есть то установить цену, если даты нету поставить 0

sava1 Подменю пользователя
сообщение 12.07.22, 10:25
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2568
Из: Проскуров
Спасибо сказали: 633 раз
Рейтинг: 613.2

запрос покажите

Спасибо сказали: vasilijgrafeev,

vasilijgrafeev Подменю пользователя
сообщение 12.07.22, 10:27
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 11:25 * ,
ВЫБРАТЬ
ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныСрезПоследних.Цена КАК ЦенаТекущая,
Цены.Цена КАК ЦенаНовая
ИЗ
РегистрСведений.Цены.СрезПоследних(&Дата, ) КАК ЦеныСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены КАК Цены
ПО ЦеныСрезПоследних.Номенклатура = Цены.Номенклатура
ГДЕ
ЦеныСрезПоследних.Период <= &Дата
И ЦеныСрезПоследних.Номенклатура = &Номенклатура
И Цены.Период > &Дата

sava1 Подменю пользователя
сообщение 12.07.22, 10:37
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2568
Из: Проскуров
Спасибо сказали: 633 раз
Рейтинг: 613.2

1. цены обе надо получать из виртуальной таблицы


ВЫБРАТЬ
Номенклатура,
максимум(IsNULL(ЦенаТекущая,0) ,
максимум(IsNULL(ЦенаНовая,0)
ИЗ (

ВЫБРАТЬ
ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныСрезПоследних.Цена КАК ЦенаТекущая,
0 КАК ЦенаНовая
ИЗ
РегистрСведений.Цены.СрезПоследних(&Дата, ) КАК ЦеныСрезПоследних

ОбЪЕдинить все

ВЫБРАТЬ
ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
0 КАК ЦенаТекущая,
ЦеныСрезПоследних.Цена КАК ЦенаНовая
ИЗ
РегистрСведений.Цены.СрезПоследних(&ДатаНовая, ) КАК ЦеныСрезПоследних

) как твр

СГРУППИРОВАТЬ ПО Номенклатура



типо так - ошибки могут быть из-за ручной печати

Номенклатуру и типЦена - в параметры вирт. таблицы

Сообщение отредактировал sava1 - 12.07.22, 10:36

Спасибо сказали: vasilijgrafeev,

vasilijgrafeev Подменю пользователя
сообщение 13.07.22, 10:14
Сообщение #9

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Вчера, 11:37 * ,
Вариант супер, спасибо, но есть минус. Нужно заполнять &ДатаНовая. Ваш вариант супер. Как поправить чтобы пока не наступит ДатаНовая устанавливался 0 на ЦенаНовая. Буду благодарен, только учусь. 32000000.gif

andr_andrey Подменю пользователя
сообщение 15.07.22, 10:24
Сообщение #10

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 590
Спасибо сказали: 147 раз
Рейтинг: 112.7

Цитата(vasilijgrafeev @ 13.07.22, 11:14) *
Как поправить чтобы пока не наступит ДатаНовая устанавливался 0 на ЦенаНовая.

Що означає "пока не наступит ДатаНовая"?


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 13.08.22, 19:32
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!