Имя: Пароль:
1C
1С v8
Выборка актуальных данных из регистра сведений
0 mnimo
 
27.08.12
20:47
Как выбрать данные из регистра сведений, без использования виртуальных таблиц. По условию "на дату(&Дата)"???
1 Wobland
 
27.08.12
20:47
аллах запрещает?
2 Naumov
 
27.08.12
20:48
(1) +1
3 Wobland
 
27.08.12
20:48
выбрать первые 1 где дата упорядочить по убыв
4 Wobland
 
27.08.12
20:48
(3) не взлетит. на фих такие изощрения
5 _KaA
 
27.08.12
21:11
Возьми таблицу регистра и отбери все записи по условию, где дату возьми на начало дня и сравни со своей, но предварительно дату из таблицы приведи к началу дня (в конструкторе запроса подсмотри)...

Но имхо должен понимать, что ты будешь гонять много данных и по времени ты проигрываешь...
6 _KaA
 
27.08.12
21:14
В догонку. Пример с курсами валют (если я правильно понял условие):

"ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ НАЧАЛОПЕРИОДА(КурсыВалют.Период, ДЕНЬ) = &Период"

Где &Период равен ну например "12.05.2011 00:00:00"... короче тоже начало дня...
7 _KaA
 
27.08.12
21:16
Епт... еще в догонку:

Имхо пример только иллюстрация, потому что не учитывает те курсы которые были установлены раннее 12.05.2011.. ну например 09.05.2011... поэтому там надо понимать, что ты хочешь...
8 mnimo
 
27.08.12
21:19
(7)Мне надо актуальные данные, в таком случае, по всем курсам на &Дату.
9 aleks-id
 
27.08.12
21:22
ВЫБРАТЬ
КурсыВалют.Курс,
МАКСИМУМ(КурсыВалют.Дата)
ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют
10 _KaA
 
27.08.12
21:23
(9) Ошибка...

(8) Нет в таком случае тебе понадобиться извратить и использовать левое соединение, а это очень плохо с точки зрения производительности...
11 milan
 
27.08.12
21:26
Поиск по мисте слабо заюзать?
12 aleks-id
 
27.08.12
21:34
(10) лентяй. в группировку лень самому включить?

ВЫБРАТЬ
   МАКСИМУМ(КурсыВалют.Период) КАК Период,
   КурсыВалют.Валюта,
   КурсыВалют.Курс
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют

СГРУППИРОВАТЬ ПО
   КурсыВалют.Валюта,
   КурсыВалют.Курс
13 milan
 
27.08.12
22:01
(12) тоже не правильно
14 mnimo
 
27.08.12
22:25
Вопрос такой сложный что ли??? не могу допетрить....
15 aleks-id
 
27.08.12
23:08
(13) что неправильно?
16 _KaA
 
29.08.12
18:31
(10)

Ну сказал же: "Простые примеры разработки", Габец. Там прям пример такой... получит курс валюты на дату документа...

точно лентяи...

ВЫБРАТЬ
   КурсыВалютСрезПоследних.Валюта как ВалютаУпр,
   КурсыВалютСрезПоследних.Курс как КурсУпр
ИЗ
   РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента,
               Валюта В (ВЫБРАТЬ
                               УчетнаяПолитикаСрезПоследних.ВалютаУправленческая
                           ИЗ
                               РегистрСведений.УчетнаяПолитика.СрезПоследних(&ДатаДокумента, )
                                    КАК УчетнаяПолитикаСрезПоследних )
                        ) КАК КурсыВалютСрезПоследних
17 _KaA
 
29.08.12
18:33
(16) Ой, гоню... не то что надо...

Общим читайте книгу...
18 mnimo
 
30.08.12
21:53
без виртуальных таблиц кто нить может показать пример?????
19 hhhh
 
30.08.12
23:43
ВЫБРАТЬ
   КурсыВалют.Валюта,
   КурсыВалют.Курс
ИЗ (ВЫБРАТЬ
   МАКСИМУМ(КурсыВалют.Период) КАК Период,
   КурсыВалют.Валюта
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
   КурсыВалют.Период <= &Дата
СГРУППИРОВАТЬ ПО
   КурсыВалют.Валюта
) КАК Периоды
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
ПО Периоды.Валюта = КурсыВалют.Валюта
И Периоды.Период = КурсыВалют.Период
Независимо от того, куда вы едете — это в гору и против ветра!