Имя: Пароль:
1C
 
Вычисляемое поле
0 Hazer79
 
04.09.08
09:56
Здравствуйте ! Подскажите, пожалуйста, возможно ли сделать т.н. вычисляемое поле в запросе, чтобы значения в нём вычислялись с помощью подзапросов или ещё как ?
Т.е., например, идёт перечисление полей выборки из регистра, а потом в качестве ещё одного поля указывается целый запрос, результат которого и должен помещаться в это поле.
Возможно ли такое ?
1 Долорес И
 
04.09.08
09:57
нет
2 Maxus43
 
04.09.08
09:57
дык, вложеный запрс...
3 Долорес И
 
04.09.08
09:58
(2)перечитай вопрос
4 selenat
 
04.09.08
09:58
(1) это почему?
5 Maxus43
 
04.09.08
09:59
(3) перечитал, не возражаю против (0)
6 Hazer79
 
04.09.08
09:59
А вообще для решения подобной задачи как можно выкрутиться ?
7 Maxus43
 
04.09.08
10:00
только чуть по другому чем в (2)...

Добавь новое поле, в окне где выражение тыкай правой кнопкой, внизу - конструктор запроса...

(3) возражения?
8 Defender aka LINN
 
04.09.08
10:01
(4) Потому что нельзя. Единственный вариант - с табличными частями, но это не то.
9 zag2art
 
04.09.08
10:05
(7) У меня чё-то не выходит по твоей инструкции. Говорит синтаксическая ошибка...
10 Hazer79
 
04.09.08
10:06
Дело осложняется ещё и тем, что мне нужно в запрос, вычисляющие значение этого нового поля, передать дату документа, которая вытаскивается в основном запросе... :-(
11 Maxus43
 
04.09.08
10:07
(9) на курсах помню что использовали эту штуку, для определённых случаев она, щас пороюсь в материалах крсов
12 Maxus43
 
04.09.08
10:08
(10) юзай вложеный запрос и соединяй по дате и ещё чемунить...
13 zag2art
 
04.09.08
10:10
(10) Вложенный запрос не поможет, он не видит внешнего - наверное придется соединениями пользоваться.
14 Rabajaba
 
04.09.08
10:11
А как вы собственно представляете результат "почти" SQL запроса 1С с полем типа "Таблица" ?!
15 Hazer79
 
04.09.08
10:16
Вот здесь : Книга знаний: v8: Вложенные запросы
в самом низу написано "Для построения вложенных запросов, связанных с внешним, т.е. вложенный запрос должен выполниться для каждой строки внешнего запроса, нужно сделать левое внешнее соединение и сделать весь этот запрос вложенным."

Сейчас попробуем... :-)
16 Rabajaba
 
04.09.08
10:22
Мой вопрос стоял немного иначе:
Как вы себе представляете это:
Поле 1                 ПолеТаб1
--------------------------------
|              |____|_____|____|
|              |____|_____|____|
|______________|____|_____|____|

Ни одна нормальная система такого не выдаст.
Такая конструкция всегда разворачивается в обычную таблицу с повторение первого поля (в данном примере).
"Для построения вложенных запросов, связанных с внешним, т.е. вложенный запрос должен выполниться для каждой строки внешнего запроса, нужно сделать левое внешнее соединение и сделать весь этот запрос вложенным."
Фразировка насторожила ... Вложенный запрос всеравно выполняется первым! просто левым соединением с внешним будут сопоставлены их строки и не более того. Не следует это читать как "во внешнем запросе я запущу ""Цикл"" по внутреннему запросу."
17 Hazer79
 
04.09.08
10:25
Сопоставлены строки - это как ?
18 Долорес И
 
04.09.08
10:27
(15)да, а так можно. тебе что нужно кконкретно?
19 Rabajaba
 
04.09.08
10:29
Пример "Таблицы" в поле запроса:

Поле 1                 ПолеТаб1
--------------------------------
|              |__а_|_____|____|
|      1       |____|__б__|____|
|______________|____|_____|__в_|
|              |____|__г__|____|
|      2       |_д__|_____|____|
|______________|____|_____|__е_|

всегда будет выборка вида:

1|a| | |
1| |б| |
1| | |в|
2| |г| |
3|д| | |
4| | |е|
20 Hazer79
 
04.09.08
10:32
Конкретную задачу обьяснять долго - она сложна сама по себе. Но в данном случае я хочу выбирать из регистра накопления (УчётВзаиморасчётовОстатки) номенклатуру с датами документов, передавать эти даты во вложенный запрос, где будет вычисляться количество вхождений дат праздников из справочника праздников в период между датой документа и текущей датой (передаётся параметром).
Вот вкратце так...
21 Hazer79
 
04.09.08
10:34
Пардон, не номенклатуру выбирать, а документы... Ошибся. :-)
22 selenat
 
04.09.08
10:38
(16,19) в чем проблема то? Итоги чтоли отменили?
23 Maxus43
 
04.09.08
10:38
короче, нарыл я в каких случаях катит вариант (7):

ВЫБОР
   КОГДА Банки.Ссылка В
           (ВЫБРАТЬ
               Банки.Ссылка
           ИЗ
               Справочник.Банки КАК Банки
           ГДЕ
               (НЕ Банки.ЭтоГруппа))
       ТОГДА Банки.Ссылка
   ИНАЧЕ ""
КОНЕЦ

т.е. например в этом случае чтобы не передавать массив банков которые надо вытянуть, можно запросом его получить... к случаю (0) не совсем подходит... но всё же тож неплохая вещь при надобности)
24 Rabajaba
 
04.09.08
10:40
Итоги это не "Таблица" в поле. Это лишь удобный способ получить только те строки (читай - часть таблицы запроса), которые имеют одинаковое итоговое поле.
25 Mitriy
 
04.09.08
10:47
(24) частный случай <"Таблица" в поле>:

ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка,
   РеализацияТоваровУслуг.Товары.(
       НомерСтроки,
       ЕдиницаИзмерения,
       Количество,
       Номенклатура,
       Цена,
       Сумма,
       СтавкаНДС,
       СуммаНДС,
       ДокументОприходования,
       Себестоимость
   )
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
26 Rabajaba
 
04.09.08
10:52
Хм. Не знал. Прошу прощения.
А я ещё ругался на то, что pivot нету ...
27 Hazer79
 
04.09.08
10:53
Да, Maxus43, неплохая штука, но мне она действительно, вроде не подходит... :-(
28 selenat
 
04.09.08
10:55
(26) чего не знал? Это просто другой синтаксис, который, как и итоги, позволяет сформировать иерархический результат...
29 Maxus43
 
04.09.08
10:57
(27) по постановке в (20) всё таки вложеными запросами можно разрулить, просто при связи вложеного с основным запросом использовать связь по датам, в связи не ставь "=", а => иль <=...
30 Rabajaba
 
04.09.08
11:04
Я вот не пойму, в (25) где указывается связь по "Ссылка=Ссылка"? Или как её указать?
31 Hazer79
 
04.09.08
14:06
Что-то задваиваются записи в результате при левом соединении... :-(
Основная теорема систематики: Новые системы плодят новые проблемы.