Имя: Пароль:
1C
1С v8
как получить минимальную дату из запроса
,
0 Azgerd
 
03.04.13
14:39
Есть простенький запрос:
Запрос.Текст = "ВЫБРАТЬ
            |ИнформацияОПрограммномОбеспеченииЮзеры.Ссылка,
        |ИнформацияОПрограммномОбеспеченииЮзеры.НомерСтроки,
        |ИнформацияОПрограммномОбеспеченииЮзеры.ДатаРегистрации,
        |ИнформацияОПрограммномОбеспеченииЮзеры.КолЮзер,
        |ИнформацияОПрограммномОбеспеченииЮзеры.Примечание
        |ИЗ
        |Справочник.ИнформацияОПрограммномОбеспечении.Юзеры КАК
            |ИнформацияОПрограммномОбеспеченииЮзеры    
        |ГДЕ
        |ИнформацияОПрограммномОбеспеченииЮзеры.Ссылка =
            |&Ссылка";
Как из этого запроса получить строку с минимальной "ДатаРегистрации" и значения полей этой строки?
1 olegves
 
03.04.13
14:40
Выбрать первые 1
...
Порядок ДатаРегистрации убыв
2 olegves
 
03.04.13
14:41
+ (1) убыв не надо, поскольку минимальная нужна
3 Wobland
 
03.04.13
14:43
РС на справочнике?
4 BiBijke
 
03.04.13
14:46
(0) Помещаешь это во временную таблицу, далее делаешь 2-ую временную таблицу там только поле ДатаРегистрации с группировкой Минимум, в 3-ей временной таблице соединяешь внутренним соединением 1-ую и 2-ую по полю ДатаРегистрации


ето как вариант решения, можно еще что-нить придумать
5 salvator
 
03.04.13
14:48
(4) Мы не ищем легких путей?
6 BiBijke
 
03.04.13
14:48
(5) Ты знаешь путь проще сделать это в запросе ?)
7 Maxus43
 
03.04.13
14:51
(6) вариант (1), а (2) не читать, там правильно в (1)
8 Azgerd
 
03.04.13
14:51
Извиняюсь, в 1с-программировании я новичёк.
РезультатЗапроса = Запрос.Выполнить();
ТаблицаРезультатов = РезультатЗапроса.Выгрузить();

"ТаблицаРезультатов" - это и есть временная таблица из запроса?
Из этой временной таблицы можно сделать ещё один запрос?
9 Maxus43
 
03.04.13
14:52
(7) т.е. в (2) даже правильно, УПОРЯДОЧИТЬ по возрастанию надо, так что убыв не пишем
10 Wobland
 
03.04.13
14:53
(8) не обращай внимания на БиБижка
11 Maxus43
 
03.04.13
14:53
(8) зайди в конструктор запроса на закладку упорядочить, там дату выбери. и на закладке Дополнительно тыкни ПЕРВЫЕ 1
12 salvator
 
03.04.13
14:53
(8) Не нужна тебе тут ВТ. Делай как в (1) сказали, только "убыв" не надо
13 BiBijke
 
03.04.13
14:53
(7) (1) катит только для условия равенства, если он захочет условие В поставить (1) уже прокатит. (4) более универсальный, но мб чуть медленнее, чем (1).
14 rs_trade
 
03.04.13
14:53
(6) интересно как выглядят твои сложные запросы.
15 Wobland
 
03.04.13
14:54
(13) чо?
16 salvator
 
03.04.13
14:55
(13) Если будет "В", то достаточно этот запрос запихнуть во вложенный и из него так же выбрать первые с упорядочиванием.
17 rs_trade
 
03.04.13
14:55
(13) а можно поподробнее? очень интересно.
18 BiBijke
 
03.04.13
14:56
(15), (17) Ну например нужно получить список ссылок с минимальными датами регистрации (более общая задача)

ГДЕ ИнформацияОПрограммномОбеспеченииЮзеры.Ссылка В (&СписокСсылок)
19 Maxus43
 
03.04.13
14:57
(18) а если чисто гипотетически ему понадобится потом посчитать себестоимость и сдать отчетность - тоже всё запихнёшь в запрос, не имеющий к этому отношения?
20 salvator
 
03.04.13
14:57
(18) "список ссылок с минимальными датами регистрации" - ЧО?
21 BiBijke
 
03.04.13
14:58
(16) Да ладно? Херас два у тебя так получится )
22 Maxus43
 
03.04.13
14:59
(21) 2-мя таблицами можно обойтись, это классическая задача "Срез последних запросом, без использования вирт таблицы"
23 Azgerd
 
03.04.13
15:03
РезультатЗапроса = Запрос.Выполнить();
ТаблицаРезультатов = РезультатЗапроса.Выгрузить();
Могу ли я использовать "ТаблицыРезультатов" для ещё одного запроса ?
Вроде того: Запрос.Текст = "ВЫБРАТЬ
                    |ТаблицаРезультатов.ИмяПоля
и так далее?
24 palpetrovich
 
03.04.13
15:03
(18) если нужен список, то ВТ тоже как-то без надобности, нечто типа нижеизложенного должно помочь

ВЫБРАТЬ
   ИнформацияОПрограммномОбеспеченииЮзеры.Ссылка,
   ИнформацияОПрограммномОбеспеченииЮзеры.НомерСтроки,
   ИнформацияОПрограммномОбеспеченииЮзеры.ДатаРегистрации,
   ИнформацияОПрограммномОбеспеченииЮзеры.КолЮзер,
   ИнформацияОПрограммномОбеспеченииЮзеры.Примечание
   ИЗ
   Справочник.ИнформацияОПрограммномОбеспечении.Юзеры КАК  ИнформацияОПрограммномОбеспеченииЮзеры
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           СамыеРанние.Ссылка
           МИНИМУМ(СамыеРанние.ДатаРегистрации.Дата) КАК МинимальнаяДата
           ИЗ Справочник.ИнформацияОПрограммномОбеспечении.Юзеры КАК СамыеРанние
           СГРУППИРОВАТЬ ПО СамыеРанние.Ссылка) КАК СамыеРанние
       ПО ИнформацияОПрограммномОбеспеченииЮзеры.Ссылка = СамыеРанние.Ссылка
ГДЕ
ИнформацияОПрограммномОбеспеченииЮзеры.Ссылка В ИЕРАХИИ (&КучаСсылок)

...если не напутал нигде :)
25 Reset
 
03.04.13
15:06
(23) Используя менеджер временных таблиц, например
26 Azgerd
 
03.04.13
15:13
Спасибо!