Имя: Пароль:
1C
1С v8
Вкладка компоновка данных в СКД
0 Timon1405
 
10.12.15
09:48
написал условный запрос
ВЫБРАТЬ
    КурсыВалютСрезПоследних.Период,
    КурсыВалютСрезПоследних.Валюта,
    КурсыВалютСрезПоследних.Курс
ПОМЕСТИТЬ ВТ_1
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(, {(Валюта)}) КАК КурсыВалютСрезПоследних
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Период,
    ВТ_1.Валюта,
    ВТ_1.Курс,
    ВТ_2.Период КАК Период1,
    ВТ_2.Валюта КАК Валюта1,
    ВТ_2.Курс КАК Курс1
ИЗ
    ВТ_1 КАК ВТ_1,
    ВТ_2 КАК ВТ_2

Делаю в схеме отбор по валюте
СКД преобразует запрос в

ВЫБРАТЬ
    КурсыВалютСрезПоследних.Период КАК Период,
    КурсыВалютСрезПоследних.Валюта КАК Валюта,
    КурсыВалютСрезПоследних.Курс КАК Курс
ПОМЕСТИТЬ ВТ_1
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(, Валюта = &П) КАК КурсыВалютСрезПоследних
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КурсыВалютСрезПоследних.Период КАК Период,
    КурсыВалютСрезПоследних.Валюта КАК Валюта,
    КурсыВалютСрезПоследних.Курс КАК Курс
ПОМЕСТИТЬ ВТ_2
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсыВалютСрезПоследних
ГДЕ
    КурсыВалютСрезПоследних.Валюта = &П
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_1.Период КАК Период,
    ВТ_1.Валюта КАК Валюта,
    ВТ_1.Курс КАК Курс,
    ВТ_2.Период КАК Период1,
    ВТ_2.Валюта КАК Валюта1,
    ВТ_2.Курс КАК Курс1,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТ_1.Валюта) КАК ВалютаПредставление,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ВТ_2.Валюта) КАК Валюта1Представление
ИЗ
    ВТ_1 КАК ВТ_1,
    ВТ_2 КАК ВТ_2
Как видно, отбор в первой ВТ приехал куда нужно(в параметры виртуальной таблицы), а во второй ВТ в секцию ГДЕ.
Киньте ссылкой где почитать про черную магию вкладки компоновкаданных?
1 Defender aka LINN
 
10.12.15
09:49
С людьми, у которых установлен флаг "Автозаполнение полей" и не такое бывает
2 Timon1405
 
10.12.15
09:51
(1) так все-таки, где почитать про то, как все это писать руками без автозаполнения?
3 Defender aka LINN
 
10.12.15
09:53
(2) Есть книга по СКД, есть документация. Есть, в конце концов, консоль отчетов, где можно пробовать всякое и смотреть, что получится.
Если тезисно - то выбранные поля на этой вкладке включаются в текст запроса, если выбраны в настройках. Аналогично с отборами и параметрами
4 Timon1405
 
10.12.15
10:04
(3) во, про отборы нашел
http://its.1c.ru/db/metod8dev#content:2696:hdoc:_top
именно отдельно про ручную настройку на этой вкладке ничего не вижу((
хочется как-то систематизировать это, а не "пробовать всякое и смотреть, что получится".
5 Defender aka LINN
 
10.12.15
10:44
Флаг "Автозаполнение" - это все равно что добавить ВСЕ поля ВСЕХ запросов во вкладки "Поля" и "Условия"
6 su_mai
 
10.12.15
10:46
7 Timon1405
 
10.12.15
10:47
(6) галопом по европам
8 su_mai
 
10.12.15
11:05
(7) (0) >...черную магию вкладки компоновкаданных?
Нет никакой магии.

Вкладка предназначена для описания доступных полей компоновки данных. Проще говоря, для указания компоновщику макета куда какие условия применять и поля добавлять. Эти настройки должны задаваться для каждого запроса из набора.
Задается не конкретный текст условия или поля, а возможность его использования.

Там три вкладки:
Таблица - позволяет описать доступные параметры виртуальных таблиц;
Поля - описывает доступные поля набора;
Условие - описывает доступные поля отбора;

Общий принцип, если имя поля указывается в соответствующем разделе {ИмяПоля}, то оно доступно без реквизитов; если указывается в виде {ИмяПоля}.* - тогда реквизиты тоже будут доступны.

Вкладку Поля имеет смысл задавать только в конечном запросе, так как именно его поля формируют состав полей набора в СКД.
Добавление полей на вкладку Условие в конкретном запросе позволяет перенести отбор заданный в настройках СКД именно в этот запрос.
Это же относиться и к вкладке Таблица. Если в Таблице в полу УСловие заенсти поле, то "внешний" отбор СКД по этому полю, перенесется именно в параметры виртеальной таблицы.
9 su_mai
 
10.12.15
11:05
(7) Там все есть про это... Сам по ним изучал когда то...
10 Defender aka LINN
 
10.12.15
11:16
(8) "Вкладку Поля имеет смысл задавать только в конечном запросе" Ну не скажи...
11 su_mai
 
10.12.15
11:24
(10) Да это я погорячился!
12 mikecool
 
10.12.15
11:45
(10) как я пару раз накололся, когда одинаковые алиасы давал во вложенных запросах, а потом удивлялся - почему на выходе данные из первой таблицы )))
13 hhhh
 
10.12.15
11:48
(7) там есть разбор именно этого вашего вопроса в каком-то бесплатном уроке на этом сайте.
14 Timon1405
 
10.12.15
11:52
(8) Спасибо за развернутый ответ! остался вопрос, вы сами до этого догадались или все-таки документация существует?)
(13) спасибо, если вы про отборы, то ответ я нашел в (4). и, при всем уважении к авторам, хочется почитать документацию.
15 su_mai
 
10.12.15
12:09
(14) по вопросу (8) см. (7) когда курсы смотрел делал для себя "пометки-тезисы".

>"хочется почитать документацию" Четкого описания программного продукта в одном месте я не встречал.

Есть книжка Профессиональная разработка в системе (http://v8.1c.ru/metod/books/book.jsp?id=401), но это видимо не то что вы хотели увидеть, хотя информация там есть.