Имя: Пароль:
   
1C
1С v8
Управление отборами СКД в параметрах виртуальных таблиц регистров
0 simol
 
08.05.17
23:47
Есть СКД просто набор данных, в котором пакет запросов.

В пакете используются виртуальные таблицы Обороты регистров.
Часть измерений в этих регистрах совпадает.

Как сделать чтобы при установке интерактивно отборов СКД не вставляла в одну из виртуальных таблиц отборы?

Вариант переименовать все измерений в регистрах, где нужны отборы понятен, но громоздок.
Как то можно указать чтобы СКД конкретную таблицу не обвешивала отборами?
1 Cyberhawk
 
08.05.17
23:50
В конструкторе запроса закладку "Компоновка данных" уже изучил?
2 simol
 
08.05.17
23:59
(1)
Смотри например в пакете запроса используется 3 регистра оборотов.
Надо чтобы отбор в 2-х в параметры виртуальной таблицы добавлялся, а в одной таблице надо чтобы никакие отборы в параметры виртуальной таблицы СКД не делала.

Вариант 1.
В  "Компоновка данных" в таблицах где надо делать отборы переименовать измерения и разрешить пользователю отбирать по переименованным не удобный.

Вот как сказать СКД чтобы она конкретный регистр не вешала отборы более интересно.
Знаешь как?
3 simol
 
09.05.17
00:04
Вариант:
4 simol
 
09.05.17
00:05
В том особом регистре прописать

{(Контрагент).* КАК Заглушка, (Проект).* КАК Заглушка, (Подразделение).* КАК Заглушка}

Тоже не прошел.
Все равно навешивает отбор на Контрагента, например.
5 AlvlSpb
 
09.05.17
00:06
(2) Или не понимаю в чем вопрос или решение на поверхности. Отбор делать не в ГДЕ..., а в параметрах виртуальных таблиц. У двух прописать параметры у третьей нет.
6 simol
 
09.05.17
00:08
(5) Речь про СКД, которая сама вставляет отборы, которые настроил пользователь интерактивно. Например пользователь настроил Контрагент=.... СКД во все виртуальные таблицы, где есть измерение Контрагент добавляет этот отбор.
Надо чтобы в одну особую не добавляла.
7 simol
 
09.05.17
00:09
(5)То что ты пишешь сработает в ПостроителеЗапроса
8 AlvlSpb
 
09.05.17
00:14
(6) да понятно, что пользовательские отборы. Но что мешает параметры вставить в вирт таблицы?
например
ИЗ Регистр.Первый(&ДатаНачала, &ДатаОкончания, Контрагент = &Контрагент И Организация = &Организация)
Левое соединение Регистр.Второй(&ДатаНачала, &ДатаОкончания, Контрагент = &Контрагент И Организация = &Организация)
По.....
Левое соединение Регистр.Третий // без параметров
9 AlvlSpb
 
09.05.17
00:15
В построителе запроса параметр вставляется в секцию ГДЕ..., а я предлагаю в параметры вирт таблиц
10 simol
 
09.05.17
00:17
(8)Вот в третьем мы явно не пишем отборы, а СКД их туда все равно добавляет. Вот и хочу как-то указать СКД чтобы в третий не надо добавлять отборы.
11 simol
 
09.05.17
00:18
(9)При выполнении скд я смотрю получающийся Макет в КомпоновщикМакетаКомпоновкиДанных и там есть добавленные отборы
12 AlvlSpb
 
09.05.17
00:19
(10) С чего он их туда добавляет? Значит прописываешь параметры в ГДЕ, а не в вирт таблице. Если они не прописаны, ничего не добавится
13 simol
 
09.05.17
00:22
(12) Речь про СКД. Она сама по настройкам изменяет запрос, убирает неиспользуемые поля/таблицы и добавляет отборы.
И я ищу не способ добавить отбор, а способ как сказать скд, что именно вот сюда не надо добавлять.
14 AlvlSpb
 
09.05.17
00:27
(13) Запрос в СКД можешь озвучить? Достаточно с секции ИЗ до конца
15 simol
 
09.05.17
00:36
Запрос не реальный, просто набросал на типовых регистрах УПП

ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
    ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
ПОМЕСТИТЬ T1
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты КАК ВзаиморасчетыСКонтрагентамиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    T1.ДоговорКонтрагента,
    T1.СуммаВзаиморасчетовОборот,
    ДвиженияДенежныхСредствОбороты.СуммаОборот
ИЗ
    T1 КАК T1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты КАК ДвиженияДенежныхСредствОбороты
        ПО T1.ДоговорКонтрагента = ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента

И если пользователь сделает отбор по "Сделка" то отбор вставится в оба регистра, а надо чтобы в первый не вставлялось.
16 AlvlSpb
 
09.05.17
00:46
Я так понимаю "Сделка" - это измерение обоих регистров? Тогда

ИЗ
    T1 КАК T1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты (,,Авто, Сделка = &Сделка)  КАК ДвиженияДенежныхСредствОбороты
        ПО T1.ДоговорКонтрагента = ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента

В параметрах СКД Сделка сделать доступным и в настройках вывести его в пользовательские.
В данном случае отбор будет проводиться по параметру &Сделка, который установлен только у регистра ДвиженияДенежныхСредств. А в твоем случае - отбор по измерению Сделка, которое есть у обоих регистров
17 AlvlSpb
 
09.05.17
00:50
Если &Сделка необязательный параметр, то вписать его надо в компановке данных (закладка) Тогда выглядеть будет так

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты (,,Авто, {(&Сделка))}  КАК ДвиженияДенежныхСредствОбороты
        ПО T1.ДоговорКонтрагента = ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента

В этом случае во втором регистре Выбрана Сделка отбор по Сделке, не выбрана, по всем сделкам
18 AlvlSpb
 
09.05.17
00:53
(17) Черт, исправь последовательность скобок{(&Сделка)}
19 HEKPOH
 
09.05.17
08:41
добавляешь во все виртуальные таблицы разноименные параметры в фигурных скобках - это общее и полное решение твоей задачи
20 Defender aka LINN
 
09.05.17
09:55
(9) Чушь
(6) Убери флаг "автозаполнение"
21 milan
 
09.05.17
12:58
Фигурные скобки спасут отца Русской демократии.
22 echo77
 
09.05.17
14:08
Галку "Автозаполнение" в конструкторе СКД отключить и настраивать выбранные поля и поля отбора вручную - самый правильный вариант
23 AlvlSpb
 
09.05.17
15:55
(21) Не спасут фигурные скобки, они устанавливаются на ИЗМЕРЕНИЕ, а это равнозначно ГДЕ...  т.е. будет действовать на ОБА регистра, так что (20) - не чушь, может выразился не так, но по факту... это инструкция ГДЕ, а вот в (19) абсолютно верно. Можно назначить разные имена параметров на один ресурс и будет отбираться так как надо, хотя фактически , не совсем удобно, т.к. в пользовательских полях будут два параметра с одним типом значения. Настаиваю на своем варианте (16) - наиболее оптимальный
24 Defender aka LINN
 
09.05.17
18:48
(23) Иногда лучше жевать, чем говорить ©
В (22) все написано абсолютно верно.
25 AlvlSpb
 
09.05.17
19:04
(24) 0х не люблю такие переходы. но как аукнется.... Оффтоп на оффтоп

"Прямые бездоказательные утверждения
Это самый примитивный вид демагогии. Зачем что-то доказывать, если можно это просто постулировать? Разумеется, если "аргументировать" таким образом финальный тезис, то шансов на успех у демагога немного. Поэтому чаще всего прямое бездоказательное утверждение применяется лишь как отправная точка для цепи дальнейших рассуждений, которые могут быть формально корректными и тем усыпить бдительность оппонента и аудитории."  ©
26 Defender aka LINN
 
09.05.17
20:47
(25) Это ты в зеркало говоришь, видимо?
1. Фигурные скобки, ВНЕЗАПНО, управляют доступными для выбора и отбора (да-да, мой маленький одинэснег, это разные вещи) полями.
2. Флаг "Автозаполнение" в СКД и вызов метода "ЗаполнитьНастройки" в ПостроителеОтчета кладет большой и жирный болт на эти ваши скобки.
3. Ты просто не умеешь использовать 1С, но при этом берешь деньги так, как будто что-то там знаешь и умеешь. Стыдись.
27 Defender aka LINN
 
09.05.17
20:47
+(26) Что там было про "Прямые бездоказательные утверждения", говоришь?
28 AlvlSpb
 
09.05.17
21:28
(26) ))) Вот это уже не демагогия. а какое-то объяснение своей позиции Можно и поспорить или, вернее, сравнить:
1. " Фигурные скобки, ВНЕЗАПНО, управляют доступными для выбора и отбора"
Приведи код, когда фигурные скобки будут управлять ТОЛЬКО выбором по одному регистру, а не двумя сразу (из примера (15) ) КОГДА будет идти отбор, в данном случае, роли не играет.
2. Про неправильность применения отмены автозаполнения мною не было сказано НИ СЛОВА. Даже речи не велось. Мало того, согласен, что отмена автозаполнения  тоже вариант решения задачи автора Весь мой ответ направлен на то, что вы посчитали чушью, что фигурные скобки по сути, аналог ГДЕ..
3. ))) Опять голословное утверждение, НИ ЧЕМ не подкрепленное (не прав? ) . 1С занимаюсь исключительно для себя, для своей фирмы и своей программы. Не чураюсь подсказать кому-то если считаю что знаю ответ

а 4. От меня. Здесь много действительно профи. Возможно и вы из них. Но человек задал вопрос, вы какого-то внятного совета не высказали, зато категорически набросились на мой вариант. При этом НИ СЛОВА почему он неприемлим, просто Чушь. Будьте поближе к людям и народ к вам потянется. Объясните ПОЧЕМУ, вы опытней и возможно правы и спора не было бы, но пока - НЕ доказали.
  Все. Терпеть не могу такие разборы и ссорится не было намерения, но снобизм некоторых все-таки зашкаливает
29 Defender aka LINN
 
09.05.17
22:04
(28) Знаешь, я вот начал готовить для тебя пример, чтобы все это показать. а потому подумал: а зачем?
Так что ты думай что хочешь, я буду уверен, что ты тупой одинэснег, я буду зарабатывать на том, что после таких, как ты исправлять ошибки.
Так что ты везде прав, а я нет
30 AlvlSpb
 
09.05.17
22:10
(29) Когда понимаешь, что не прав, но чрезмерное ЧСД не позволяет признать свою ошибку. "Развалинами Берлина удовлетворен!" ©  С праздником! и... до свидания )))
31 Defender aka LINN
 
10.05.17
08:53
(30) Смешно. Почитай таки документацию.
32 simol
 
10.05.17
22:13
(20)(22) о, старость не в радость. Забыл про ту галку.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан