Имя: Пароль:
1C
 
СКД. Запрос вкладка компоновка данных.
0 john_ddd
 
25.09.17
15:44
Кто знает как сделать чтобы СКД автоматом не ставил отбор ко всем таблицам запроса?
К примеру:
запрос состоит из двух пакетов: Временная таблица и выборка данных из этой временной таблицы.
В предприятии делаем отбор. СКД ставит отбор к временной таблице и в выборки уже этих данных нет. Можно принудительно запретить делать отбор к первой таблице а разрешит ко второй?
1 rabbidX
 
25.09.17
15:46
Сделайте отбор в запросе.
2 john_ddd
 
25.09.17
15:48
(1)скд всеравно свой отбор добавит
3 rabbidX
 
25.09.17
15:53
Куда добавит? Во втором запросе пакета пропишите
ГДЕ Номенклатура В Иерархии(&СписокГрупп) ИЛИ &БезОтбораПоНоменклатуре
Реквизит НоменклатураДляОтбора на форму. В процедура ПриКомпановкеРезультата задать параметры
4 john_ddd
 
25.09.17
16:02
(3)&СписокГрупп я установил группу "Гвозди"
Но во втором запросе в полях прописано если "Гвозди" тогда "Шурупы"
Но если в предприятии ставят отбор Номенклатура <> "Гвозди"
то ничего не выведет. А я хотел бы "Шурупы"
5 DrShad
 
25.09.17
16:08
собралось два знатока *рукалицо*
6 DrShad
 
25.09.17
16:09
галку автозаполнения сними и пропиши сам поле отбора только ко второй своей таблице и будет тебе счастье
7 Ненавижу 1С
 
гуру
25.09.17
16:11
Переименуй во временной таблице отборы в СКД
8 rabbidX
 
25.09.17
16:40
(6) в (3) то же самое, но проще.
(4) Вы накладываете отбор на поле
Выбор Когда Номенклатура = &Гвозди Тогда &Шурупы Иначе Номенклатура Конец Как Номенклатура
Вам нужно условие и исходной Номенклатурой.
9 john_ddd
 
25.09.17
16:42
(6) а где эта галочка? где в СКД где поля прописаны?
(7) а это как?
10 DrShad
 
25.09.17
16:43
запрос свой покажи из набора данных
11 john_ddd
 
25.09.17
16:51
(10)
ВЫБРАТЬ
    Продажи.Контрагент,
    Продажи.Количество
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрНакопления.Продажи КАК Продажи
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА ВТ.Контрагент.ГоловнойКонтрагент = ЗНАЧЕНИЕ(справочник.Контрагенты.пустаяссылка)
            ТОГДА ВТ.Контрагент
        ИНАЧЕ ВТ.Контрагент
    КОНЕЦ КАК Контрагент,
    ВТ.Количество
ИЗ
    ВТ КАК ВТ
12 john_ddd
 
25.09.17
16:52
ВЫБРАТЬ
    Продажи.Контрагент,
    Продажи.Количество
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрНакопления.Продажи КАК Продажи
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА ВТ.Контрагент.ГоловнойКонтрагент = ЗНАЧЕНИЕ(справочник.Контрагенты.пустаяссылка)
            ТОГДА ВТ.Контрагент
        ИНАЧЕ ВТ.Контрагент.ГоловнойКонтрагент
    КОНЕЦ КАК Контрагент,
    ВТ.Количество
ИЗ
    ВТ КАК ВТ
13 DrShad
 
25.09.17
16:54
во-первых где тут СКД-ные отборы, а во вторых у тебя отбор и может быть по номенклатуре только на первой таблице
14 DrShad
 
25.09.17
16:56
и кто вас учил так запросы писать? каков гениальный смысл использования ВТ и обращения к физической таблице РН?
15 rabbidX
 
25.09.17
17:00
(12) Т.е. Вы хотите, чтобы после отбора у в поле Контрагент вывелся Головной контрагент, а в поле количество - продажи по одному из предприятий холдинга. Это же некорректные данные.
16 DrShad
 
25.09.17
17:01
http://SSMaker.ru/9fdf3bc1/

галочка внизу
17 john_ddd
 
25.09.17
17:02
(15)это упрощенный запрос..у меня огромный
18 DrShad
 
25.09.17
17:03
(17) тем более в топку его, раз уж на упрощенном вы не пользуетесь возможностями СКД
19 john_ddd
 
25.09.17
17:03
(16) мне нужно подменить контрагента на головного
20 DrShad
 
25.09.17
17:03
(19) и в чем проблема сделать это в первом же запросе, без использования никому не нужной ВТ?
21 rabbidX
 
25.09.17
17:09
(19) Самый простой вариант. Выведите в запросе два поля ГоловнойКонтрагент и Контрагент. В группировки суйте головного контрагента, а в отборы обычного.
22 john_ddd
 
25.09.17
17:11
(21) а можно чтобы мой запрос заработал? из (12)
23 DrShad
 
25.09.17
17:14
(22) нет
24 rabbidX
 
25.09.17
17:14
(22) Запрос из (12) Вам не нужен, так ведь?
Давайте свой огромный.
25 john_ddd
 
25.09.17
17:16
(24) в огромном тоже самое...просто куча еще разных соединений с другими таблицами
26 DrShad
 
25.09.17
17:17
ВЫБРАТЬ
    ПродажиОбороты.Контрагент КАК Контрагент,
    ПродажиОбороты.КоличествоОборот КАК КоличествоОборот,
    ПродажиОбороты.Номенклатура
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрНакопления.Продажи.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ.Контрагент КАК Контрагент,
    ВТ.КоличествоОборот КАК КоличествоОборот
{ВЫБРАТЬ
    Контрагент.*,
    КоличествоОборот}
ИЗ
    ВТ КАК ВТ
{ГДЕ
    ВТ.Номенклатура.*}
27 DrShad
 
25.09.17
17:18
вот так будет отбор только по второй таблице
28 john_ddd
 
25.09.17
17:22
(26) нету подмены контрагента на головного
29 DrShad
 
25.09.17
17:22
(28) мля, сам пропиши
30 john_ddd
 
25.09.17
17:40
(29) спасибо. понял куда копать, но с заменой вся то и фигня
31 DrShad
 
25.09.17
22:28
(30) фигня не с заменой, а с такими разработчиками
32 john_ddd
 
26.09.17
11:42
вот так заработало:

ВЫБРАТЬ
    ПродажиОбороты.Контрагент КАК Контрагент,
    ПродажиОбороты.КоличествоОборот
ПОМЕСТИТЬ ВТ
{ВЫБРАТЬ
    Контрагент.* КАК Контрагент2}
ИЗ
    РегистрНакопления.Продажи.Обороты(&КонецПериода, &НачалоПериода, , {(Контрагент) КАК Контрагент2}) КАК ПродажиОбороты
ГДЕ
    НЕ ПродажиОбороты.Контрагент = &ПустКонтрагент
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВЫБОР
        КОГДА ВТ.Контрагент.ГоловнойКонтрагент = ЗНАЧЕНИЕ(справочник.Контрагенты.пустаяссылка)
            ТОГДА ВТ.Контрагент
        ИНАЧЕ ВТ.Контрагент.ГоловнойКонтрагент
    КОНЕЦ КАК Контрагент,
    СУММА(ВТ.КоличествоОборот) КАК КоличествоОборот
ИЗ
    ВТ КАК ВТ
{ГДЕ
    (ВЫБОР
            КОГДА ВТ.Контрагент.ГоловнойКонтрагент = ЗНАЧЕНИЕ(справочник.Контрагенты.пустаяссылка)
                ТОГДА ВТ.Контрагент
            ИНАЧЕ ВТ.Контрагент.ГоловнойКонтрагент
        КОНЕЦ).* КАК Контрагент}

СГРУППИРОВАТЬ ПО
    ВЫБОР
        КОГДА ВТ.Контрагент.ГоловнойКонтрагент = ЗНАЧЕНИЕ(справочник.Контрагенты.пустаяссылка)
            ТОГДА ВТ.Контрагент
        ИНАЧЕ ВТ.Контрагент.ГоловнойКонтрагент
    КОНЕЦ
33 DrShad
 
26.09.17
11:49
и что заработало?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн