Имя: Пароль:
1C
1С v8
Достунпые поля отбора в СКД. нет подчиненных элементов.
0 80ksa
 
27.05.16
08:07
ситуация как есть:

1. У упр. формы обработки сделал реквизит рКомпоновщик тип КомпоновщикНастроекКомпоновкиДанных
2. на форму перетащил  подчиненную таблицу из этого реквизита рКомпоновщик.Настройки.Отбор, теперь на форме могу задавать отбор.

3. чтобы все это заработало и отбор при выборе не выдавал пустое окно, я создал схему компоновки данных с простым запросом -выбор из справочника Подразделений. А также написал процедуду

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    обрОбъект = РеквизитФормыВЗначение("Объект");
    СхемаПодразделения = обрОбъект.ПолучитьМакет("Схема");
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаПодразделения);
    
    ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы);
    
        
    гр4_КомпоновщикНастроек.Инициализировать(ИсточникНастроек);
    гр4_КомпоновщикНастроек.ЗагрузитьНастройки(СхемаПодразделения.НастройкиПоУмолчанию);

КонецПроцедуры

4. Все заработало, при интерактивном выборе Отбора открывается Окно Доступные поля и там у меня есть поле Подразделение.
НО у него НЕТ подчиненных элементов!!!

5. В отладчике они есть.
6. Если в конфигураторе задать отбор по умолчанию типа Подразделение.Код равно "", то в интерактивном Отборе появляются таки подчиненные элементы реквизиты, если убираю такой отбор, то в интерактиве могу отбирать только по подразделению без реквизитов.

Как заставить развернуться в отборе полеКомпоновкиДанных?
1 80ksa
 
27.05.16
08:08
гр4_КомпоновщикНастроек = рКомпоновщик ))
2 80ksa
 
27.05.16
08:15
3 80ksa
 
27.05.16
08:18
4 80ksa
 
27.05.16
08:19
я понимаю что СКД умная и решает сама, мол если есть в отборе Подразделение.Код, тога он и остальные реквизиты дает выбрать, а если нет , тогда отбор дает только по свернутому полю
5 80ksa
 
27.05.16
08:20
а мне то нужно просто что бы пользователь сам выбрал что ему нужно имея поле Подразделение с возможностью отбора и по подчиненным реквизитам.
6 hhhh
 
27.05.16
08:23
(5) ну показывай схему СКД, это поле, какие ты там галки понаставил у него.
7 80ksa
 
27.05.16
08:34
(6) если в конфигураторе в отборе схемы задать отбор с хоть с одним реквизитом (хоть включенный хоть нет) то и в режиме пользователя отбор позволит выбирать реквизиты типа Подразделение.Код, Подразделение.ССылка

http://i79.fastpic.ru/big/2016/0527/27/950074acbdee214e36ebd3ce8424f627.png

а если в конфигураторе отбор уберу или поставлю поле целиком - Подразделение, то в режиме пользователя, в отборе подразделение сука не разворачивается. АААА!
8 80ksa
 
27.05.16
08:35
тоже самое буде позволять или не позволять если буду создавать отбор программно.

//Отбор = гр4_КомпоновщикНастроек.Настройки.Отбор;
    //
    //полеПодразделение = Новый ПолеКомпоновкиДанных("Подразделение");
    //
    //элОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    //элОтбора.ЛевоеЗначение = полеПодразделение;
    //элОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
    //элОтбора.ПравоеЗначение=Справочники.Подразделения.ПустаяСсылка();
    //
    //полеПодразделениеКод = Новый ПолеКомпоновкиДанных("Подразделение.Код");
    //элОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    //элОтбора.ЛевоеЗначение = полеПодразделениеКод;
    //элОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
    //элОтбора.ПравоеЗначение="";
9 80ksa
 
27.05.16
08:36
Отбор = гр4_КомпоновщикНастроек.Настройки.Отбор;
    полеПодразделение = Новый ПолеКомпоновкиДанных("Подразделение");
    
    элОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    элОтбора.ЛевоеЗначение = полеПодразделение;
    элОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
    элОтбора.ПравоеЗначение=Справочники.Подразделения.ПустаяСсылка();
    
    полеПодразделениеКод = Новый ПолеКомпоновкиДанных("Подразделение.Код");
    элОтбора = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    элОтбора.ЛевоеЗначение = полеПодразделениеКод;
    элОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
    элОтбора.ПравоеЗначение="";
10 80ksa
 
27.05.16
08:39
я даже уже в СКД в запросе вкладку компоновки заполнил и роли полей ставил, все равно схема сама решает поместитьв Отбор только поле или поле с реквизитами.

А проблема то ясна или не все понятно?
11 80ksa
 
29.05.16
04:57
вот же блин! запускаешь в Толстом клиенте, реквизиты раскрывает, а в тонком клиенте - не раскрывает! О! какие есть мысли? что нужно передать Тонкому клиенту чтобы он понял что нужно выбрать все?
платформа 8.3.7.20.27
12 hhhh
 
29.05.16
05:40
(8) не эту закладку. Закладку Наборы данных
13 80ksa
 
29.05.16
06:05
(12) Да там простой запрос сначала было так

ВЫБРАТЬ
    Подразделения.Ссылка КАК Подразделение
ИЗ
    Справочник.Подразделения КАК Подразделения

а потом было так по совету в одной из статей про СКД

ВЫБРАТЬ
    Подразделения.Ссылка КАК Подразделение
{ВЫБРАТЬ
    Подразделение.*}
ИЗ
    Справочник.Подразделения КАК Подразделения
{ГДЕ
    Подразделения.Ссылка.* КАК Подразделение}
Т.е. На вкладке компоновки данных выбирал поля и условия для того чтобы выбирались все подчиненные элементы.
При этом поля в Наборе данных формировал вручную (Автозаполнение=Ложь)
14 80ksa
 
29.05.16
06:07
пока проблема ясна что это так выбирает Тонкий клиент, пока буду довольствоваться толстым клиентом, который делает как надо.
15 SleepyHead
 
гуру
29.05.16
06:50
Судя по чудовищным именам переменных, автор еще в детстве был отравлен камином.
16 SleepyHead
 
гуру
29.05.16
06:51
Посмотри ограничение поля в наборе данных, может там что есть.
17 Cyberhawk
 
29.05.16
08:40
С автозаполнением такая же фигня? Зачем убирал автозаполнение?
18 hhhh
 
29.05.16
10:37
(14) права проверь тогда. Может не на всё есть права.
19 Fragster
 
гуру
29.05.16
14:22
в 8.3.8 какие-то баги поправлены. например у меня плохо работала расшифровка при использовании нескольких схем компоновки - починили.
20 80ksa
 
29.05.16
15:04
(15) оскорбил, посмеялся и подсказал. Ты из Москвы?
21 80ksa
 
29.05.16
15:07
(17) такая статья про скд была, с автозаполнением та же фигня. в общем буду пробовать релиз. Ибо в Толстом клиенте все ок.