Имя: Пароль:
1C
1С v8
Как можно получить предыдущую цену на номенклатуру?
0 DenYuliya
 
17.05.16
18:03
Подскажите, как можно получить предыдущую цену на номенклатуру? Вот этот момент ПРЕДЫДУЩИЙ как определить, МЕЖДУ СрезПервых и СрезПоследних в регистре ЦеныНоменклатуры?

"Текущая цена" - это цена из того док-то Поступление товаров и услуг, по которому в данный момент строят отчет...
1 Cyberhawk
 
17.05.16
18:06
Получай первые 2 из основной таблицы регистра с упорядочиванием по дате убыв
2 zak555
 
17.05.16
18:07
Из среза достаешь последную датуХ, выбираешь из реальной таблицы рс 1 запись с условием строго меньше датыХ
3 Denyk
 
17.05.16
18:17
(0) Один из основных тестов при принятии на работу..??
4 Фрэнки
 
17.05.16
18:30
если это одна позиция и нужно получать запросом, то берем первые 2 с сортировкой по убыванию дата, только выбирать надо из основной таб регистра, а не из агрегатной.
5 Фрэнки
 
17.05.16
18:31
а вот как это сделать для всего множества номенклатуры... это надо подумать
6 tixis
 
17.05.16
18:36
(5) Срез последних с выводом периода, соединяем с реальной таблицей по условию период меньше периода из среза, с группировкой периода по максимуму. Не проверял, но должно работать.
7 Maniac
 
17.05.16
18:36
делает мини запрос по последнему изменению - дату.
потом запрос по ценам где эта дата - минус 1 день или чо там..
8 Фрэнки
 
17.05.16
18:40
(6) точно, что срез отсечет все лишнее, но что будет, когда это единственная установленная цена... надо еще где-то количество считать и в соединении сравнивать и с ним тоже

:) придумали
9 Фрэнки
 
17.05.16
18:42
(6) хорошее решение. Я бы заценил его лучше, чем с условием выборки Первые 2
10 tixis
 
17.05.16
18:44
(8) Ну автору надо предыдущую цену, а ее нет, хз что в таком случае надо вывести, если надо все таки последнюю то соединиться еще раз с регистром и ЕстьNULL(Цена(Предыдущая),Цена(текущая))
11 Фрэнки
 
17.05.16
18:58
(10) даже с одного левого соединения сработает. код только рисовать лень
12 tixis
 
17.05.16
19:33
(11) может сильно тормозить при соединении реального регистра с виртуальным, особенно на посгрях
13 DenYuliya
 
18.05.16
09:57
(10) если предыдущей цены нет, то колонка остается пустой
14 Фрэнки
 
18.05.16
10:48
(13) код запроса тогда уже в студию - за тебя его весь целиком писать лениво, но ошибки поправят, я так думаю
15 DenYuliya
 
18.05.16
12:05
Я вообще не так поняла задачу. Надо вывести цену товара из предыдущего поступления товаров и услуг.
16 Фрэнки
 
18.05.16
12:34
ну вот... а такая интересная была задачка - почти головоломная
17 xxTANATORxx
 
18.05.16
12:39
(16)вот тогда тебе еще
получить запросом пять первых неоплаченных реализаций
18 Cyberhawk
 
18.05.16
13:11
(17) Выбрать Разрешенные Первые 5 РТУ.Ссылка Из Документ.РеализацияТоваровУслуг Как РТУ Где РТУ.Оплачен = Ложь
19 DenYuliya
 
18.05.16
17:30
А при чем тут неоплаченные реализации)))? И почему именно 5
20 aleks_default
 
18.05.16
17:34
(19)Уйди, женщина...
21 aleks_default
 
18.05.16
17:36
(18) это будут не первые
22 xxTANATORxx
 
18.05.16
17:36
(19)человек хотел по разгадывать головоломки
(17)+ уточню, с группировкой по контрагенту
23 aleks_default
 
18.05.16
17:37
(22) а поинтереснее что есть?
24 aleks_default
 
18.05.16
17:38
Это уже баян
25 Фрэнки
 
18.05.16
17:43
(24) а где такие баяны выдают? где-то тут, на мисте, но без объявления начала раздачи? :)
26 Фрэнки
 
18.05.16
17:45
насчет неоплаченных РТУ - наличие реквизита Оплачен разве является обязательным?
27 aleks_default
 
18.05.16
17:46
(25)Да, собеседочники всякие выкладывают здачи свои, а потом все начинают мерятся своими... частями тела.  Интересно бывает иногда.
28 DenYuliya
 
18.05.16
17:55
У меня получилось так (часть запроса):
ВЫБРАТЬ
    Закупки.ИсточникГФУНоменклатуры КАК ИсточникГФУНоменклатуры,
    МАКСИМУМ(Закупки.Период) КАК Период,
    Закупки.Стоимость / Закупки.Количество КАК Поле1
ИЗ
    РегистрНакопления.Закупки КАК Закупки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ПО (ПоступлениеТоваровУслугТовары.Номенклатура = Закупки.ИсточникГФУНоменклатуры)
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка
    И Закупки.Период < ПоступлениеТоваровУслугТовары.Ссылка.Дата

СГРУППИРОВАТЬ ПО
    Закупки.ИсточникГФУНоменклатуры,
    Закупки.Стоимость / Закупки.Количество

УПОРЯДОЧИТЬ ПО
    Период УБЫВ


В рег.св ничего не пишется, только в рег.накоплений.
Проблема в том, что в этом случае берутся ВСЕ изменения цены, а мне надо только последнее (то, которое от 18.05, 15:00). Как бы так половчее отсечь остальные? "Выбрать первые" не подходит, потому что в этом случае и строка с товаром только одна попадает.
29 DenYuliya
 
18.05.16
17:56
Ссылка на то, что получается в части запроса "ИзменениеЦены": https://yadi.sk/i/cDg6nXAurovSv

Не могу понять, как тут картинку вставить...
30 Cyberhawk
 
18.05.16
18:01
(21) А какие?
31 aleks_default
 
18.05.16
18:01
(28) вот к полученному тут максимальному периоду  присоедини еще раз этот же регистр по периоду и получишь что надо
32 Фрэнки
 
18.05.16
18:13
(28) поддержу 31 - тут нужна ведущая как бы таблица, по которой нужно "вести" выборку с помощью условий и данных из вот этой уже построенной
Основная теорема систематики: Новые системы плодят новые проблемы.