Гость
Форумы / [игнор отключен] [закрыт для гостей] / Срез последних на дату из табличной части / 10 сообщений из 10, страница 1 из 1
16.03.2016, 21:51
    #39193854
paps
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
Господа- интересная задачка.
Есть табчасть с реквизитом дата открытия и наименование магаза

надо например на выбранную дату получить последние открытые магазы.
...
Рейтинг: 0 / 0
16.03.2016, 22:57
    #39193889
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
paps,
надо например на выбранную дату получить последние открытые магазы.
в упор не понимаю смысл. если магазины открываются один раз, то все у которых дата <= выбранной являются
"последними открытыми"
...
Рейтинг: 0 / 0
17.03.2016, 10:27
    #39194115
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
papsнадо например на выбранную дату получить последние открытые магазы.

что значит последние? один магаз открывается несколько раз?

ну сгруппируй по магазу и максимуму по дате до нужной даты

>интересная задачка

мдя...
...
Рейтинг: 0 / 0
17.03.2016, 11:19
    #39194160
paps
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
правильно, магаз это образно.может быть киоск. а он в зависимости от сезона то открывается то закрывается
...
Рейтинг: 0 / 0
17.03.2016, 12:00
    #39194211
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
paps, и вообще, зачем эти велосипеды. нужен срез последних - заведите регистр и получайте на здоровье.
...
Рейтинг: 0 / 0
17.03.2016, 23:18
    #39194941
Mad_Head
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
javapeckerpaps, и вообще, зачем эти велосипеды. нужен срез последних - заведите регистр и получайте на здоровье.

я бы не говорил так ожнозначно.
1. Такую задачу вполне можно перевразировать получить курс на каждый документ (если курс не заполнен на каждую дату), получить цену на кажду дату документа.
2. Это на собесах через раз спрашивают

В общем делается прсто. Возмем цену товара на даты к пимеру есть данные
таблица 1 (Item)
Товар Дата
молоток 01.02.2016
Отвертка 02.03.2015

Таблица 2 (price)
Дата Товар Цена (не на каждую дату)

так вот из второй таблицы нужно выбрать данные где товар = товару и дата меньше или равно даты из таблицы 1. сгрупировать по товару и получить максимальную дату. Потом по этой дате вытянуть реальую цену.
...
Рейтинг: 0 / 0
18.03.2016, 09:46
    #39195089
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
Mad_Head,1. Такую задачу вполне можно перевразировать получить курс на каждый документ (если курс не заполнен на каждую дату), получить цену на кажду дату документа.
В том и дело что нельзя, во первых потому что задача - получать сведения на одну, выбранную дату - а с этим регистр справится. Во вторых потому что табличные части не для этого. Получение срезов на каждую дату в принципе нечастая ситуация, и любую его реализацию быстрой не назовешь, по возможности лучше обходиться без этого.
...
Рейтинг: 0 / 0
19.03.2016, 17:47
    #39196105
Mad_Head
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
javapeckerMad_Head,1. Такую задачу вполне можно перевразировать получить курс на каждый документ (если курс не заполнен на каждую дату), получить цену на кажду дату документа.
В том и дело что нельзя, во первых потому что задача - получать сведения на одну, выбранную дату - а с этим регистр справится. Во вторых потому что табличные части не для этого. Получение срезов на каждую дату в принципе нечастая ситуация, и любую его реализацию быстрой не назовешь, по возможности лучше обходиться без этого.

Так вот срез последних на каждую дату по времени выполнения будет эквивалентен тому же срезу на 1 дату через виртуальную таблицу срез последних. Так что лучше не пытайтесь залезть в тему производительности если не опнимаете структуру таблиц и в какой запрос преобразовыввается обращение к виртуальной тоаблице срех последних. Я когда занимался 1с не однократно сталкивался с такой задачей. элементарно еще 1 пример. Нужно сравнить цену в документе с ценой в регистре цен (документов несколько и естественно для вас их в 1 дату не записал), а если разносить диски ИТС то естественно такой отребности не будет.
...
Рейтинг: 0 / 0
19.03.2016, 18:52
    #39196129
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
Mad_Head,Так вот срез последних на каждую дату по времени выполнения будет эквивалентен тому же срезу на 1 дату через виртуальную таблицу срез последних.Судя по этой фразе, вам следует последовать вашему же совету:Так что лучше не пытайтесь залезть в тему производительности если не опнимаете структуру таблиц и в какой запрос преобразовыввается обращение к виртуальной тоаблице срех последних И перестаньте пожалуйста приплетать к этой теме срез последних на каждую дату, он тут ни к чему.
...
Рейтинг: 0 / 0
20.03.2016, 23:29
    #39196654
Mad_Head
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срез последних на дату из табличной части
javapeckerMad_Head,Так вот срез последних на каждую дату по времени выполнения будет эквивалентен тому же срезу на 1 дату через виртуальную таблицу срез последних.Судя по этой фразе, вам следует последовать вашему же совету:Так что лучше не пытайтесь залезть в тему производительности если не опнимаете структуру таблиц и в какой запрос преобразовыввается обращение к виртуальной тоаблице срех последних И перестаньте пожалуйста приплетать к этой теме срез последних на каждую дату, он тут ни к чему.

Примерно так будут выглядить запрос сгенерированный регистром сведений при обращении к виртуальной таблице срез последних.
select
price.item,
price.price
from price join
(select max(period) period, item
from price
where price < '...' and item in (...)
group by item) as tmp
on price.period = tmp.period and price.item = tmp.item ;

и вот так если есть таблица с периодами по которым нужно вытянуть значение на актуальную дату (к примеру регистр продаж).
select
price.item,
price.price
from price join
(select max(period) period, item
from price join sale on price.item = sale.item and price.period <= sale.period
group by item) as tmp
on price.period = tmp.period and price.item = tmp.item

от чего 2й запрос должен тормозить?

Если человеку нужены эти данные для очтета(а судя по теме они и нужны для отчета), то легче вытянуть их как есть из табличной части и не вводить доп регистр сведений.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Срез последних на дату из табличной части / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]