Имя: Пароль:
1C
1С v8
Можно ли в параметр виртуальной таблицы передать значение реквизитов др.талбицы?
0 KizerSoze
 
19.03.14
20:09
Здравствуйте,
Попробую сформулировать задачу на примере.
Есть сформированная в запросе временная таблица с колонками "Сотрудник" и "Дата".
Есть периодический регистр сведений с измерением "Сотрудник" и ресурсом "Признак".

Мне нужно получить Таблицу с колонками "Дата", "Сотрудник" и "Признак", где для каждой строки "Признак" - срез последних вышеупомянутого регистра сведений с параметрами "Дата" и "Сотрудник".

Задачу необходимо решить в пределах одного запроса. Механизм запроса в цикле недопустим.
1 Asmody
 
19.03.14
20:13
В СКД можно, в простом запросе придется "эмулировать" срез последних
2 KizerSoze
 
19.03.14
20:21
У меня так и реализовано :),
произвожу соединение с передачей параметров. Технически все правильно, но производительность сдохла. Нужен более эффективный механизм.
3 К_Дач
 
19.03.14
20:53
Обсуждалось уже и неоднократно...

v8: как ускорить срез последних на каждую дату
4 Necessitudo
 
19.03.14
22:02
Есть такая штука - называется коррелированный запрос. Покажу пример

Выбрать ЦеныНоменклатуры.Период, ЦеныНоменклатуры.Валюта, ЦеныНоменклатуры.Сумма
Из РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ГДЕ  ЦеныНоменклатуры.Период В
(Выбрать Максимум(ЦеныНоменклатуры1.Период) Из
РегистрСведений.ЦеныНоменклатуры Как ЦеныНоменклатуры1
Где ЦеныНоменклатуры1.Валюта = ЦеныНоменклатуры.Валюта)

Конструктор запроса такое условие не открывает - но оно работает.
5 Asmody
 
19.03.14
22:17
(4) а профайлер не вешается от такого запроса?
6 К_Дач
 
19.03.14
22:34
(4) прикольно)) и что, реально быстрее? по каждой записи из РС у тебя идет расчет максимума по периоду в этом же РС. Считать максимум для каждой записи - доооо, сусччественно ускорит)))
7 KizerSoze
 
19.03.14
23:21
использовал "Ручной срез последних". Время выполнения отчета приемлемое. Спасибо за рекомендации.