|   |   | 
| 
 | СКД из динсписка | ☑ | ||
|---|---|---|---|---|
| 0
    
        ДенисЧ 29.11.19✎ 11:13 | 
        Что-то я торможу или?
 Есть динамический список (произвольный запрос). Примитивный до мычания: 
В настройках списка все три поля отмечены как "использовать всегда". На форму выведены все три поля. Но у поля Документ видимость снята. Далее делаю НастройкиПользователя = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); СхемаПользователя = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных(); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаПользователя, НастройкиПользователя,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки); И в результате, в таблице Результат вижу только дату и номер. Если видимость документа включаю - вижу всё. И вопрос: как мне программно и в какое место мне влезть в настройки или схему, чтобы увидеть все поля вне зависимости от настройки видимости? | |||
| 1
    
        vicof 29.11.19✎ 11:16 | 
        ПолучитьИсполняемыеНастройкиКомпоновкиДанных() 
 Возвращаемое значение: Тип: НастройкиКомпоновкиДанных. Описание: Возвращает настройки компоновки, соответствующие данным, которые отображаются в динамическом списке, связанном с таблицей. При этом учитывается видимость колонок и установленное значение поиска. | |||
| 2
    
        ДенисЧ 29.11.19✎ 11:21 | 
        (1) В каком конкретно? Я просмотел в отладчике все поля этой настройки, нигде не увидел списка полей, кроме как в доступных     | |||
| 3
    
        vicof 29.11.19✎ 11:23 | 
        (2) не понял вопрос     | |||
| 4
    
        toypaul гуру 29.11.19✎ 11:27 | 
        добавить в НастройкиПользователя.Выбор наверное. если его там нет     | |||
| 5
    
        ДенисЧ 29.11.19✎ 11:29 | 
        (3) Я не нашёл ни одного реквизита настроек, где были бы перечислены поля НомерДокумента, ДатаДокумента.
 (4) Так там вообще пусто, но в результате запроса поля есть. | |||
| 6
    
        D_E_S_131 29.11.19✎ 11:39 | 
        Возможно у ссылки надо отключить не "Видимость", а "Пользовательская видимость".     | |||
| 7
    
        ДенисЧ 29.11.19✎ 11:41 | 
        (6) Не помогло (     | |||
| 8
    
        vicof 29.11.19✎ 11:43 | 
        Значит перед исполнением запроса включить видимость у всех колонок, после вернуть обратно))     | |||
| 9
    
        ДенисЧ 29.11.19✎ 11:45 | 
        (8) Ну хорошо, а где? Лезть в настройки списка? И он мне перерисовываться туда-сюда будет?     | |||
| 10
    
        vicof 29.11.19✎ 11:46 | 
        Элементы.Список.Дата.Видимость = Истина;     | |||
| 11
    
        vicof 29.11.19✎ 11:46 | 
        и так далее     | |||
| 12
    
        ДенисЧ 29.11.19✎ 11:49 | 
        (10) Неа. Не срабатывает. Если что - я всё это делаю на сервере. И сделав так:
 Элементы.Документ.Видимость = Истина; НастройкиПользователя = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); ничего не меняет. | |||
| 13
    
        sqr4 29.11.19✎ 11:57 | 
        ПолучитьИсполняемуюСхемуКомпоновкиДанных() вот тут в схеме какой запрос?     | |||
| 14
    
        ДенисЧ 29.11.19✎ 11:58 | 
        Сделал вот так
 Для Каждого поле Из НастройкиПользователя.Выбор.ДоступныеПоляВыбора.Элементы Цикл поле1 = НастройкиПользователя.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ЗаполнитьЗначенияСвойств(поле1, поле); КонецЦикла; Всё равно нету (( Хотя в НастройкиПользователя.Выбор.Элементы есть всё, что нужно. А видимость перещёлкивать - по возвращении с сервера список пересчитывается ( | |||
| 15
    
        ДенисЧ 29.11.19✎ 11:59 | 
        (13) Строго по тем колонкам, которые видны на форме... То есть нужного мне нет. Вот и вопрос - как его переформировать     | |||
| 16
    
        Андроны едут 29.11.19✎ 11:59 | 
        (15) попробуй так КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное);     | |||
| 17
    
        ДенисЧ 29.11.19✎ 12:05 | 
        (16) И что мне это даст? Сбросит все настройки моего списка? Тем более видимость поля задана в конфигураторе, а не пользователем, поэтому сброс настроек её видимость не восстановит     | |||
| 18
    
        sqr4 29.11.19✎ 12:08 | 
        (15) ну т.е ты сначала делаешь видимость в истину, затем получаешь схему верно?
 Попробуй делать это на клиенте, я про видимость и после этого обновить динамический список и только после этого получать схему и настройки | |||
| 19
    
        Андроны едут 29.11.19✎ 12:09 | 
        (17) мне иногда помогает в сложных случаях работы с компоновщиком. А почему сам не знаю. СКД для нас всех черный ящик.     | |||
| 20
    
        ДенисЧ 29.11.19✎ 12:16 | 
        (18) Мне так нельзя. Пользователь себе настроил список, как ему надо, а я его настройки буду сбрасывать? Не вариант вообще.     | |||
| 21
    
        sqr4 29.11.19✎ 12:19 | 
        (20) ну после отработки получения схемы все вернуть обратно     | |||
| 22
    
        ДенисЧ 29.11.19✎ 12:23 | 
        (21) Ага. И подмигивать списком пользователю. Меня неправильно поймут (тут в основном женщины, причём замужние...)     | |||
| 23
    
        sqr4 29.11.19✎ 12:52 | 
        (22) ну тогда только дополнять скд нужными полями, как я понимаю     | |||
| 24
    
        ДенисЧ 29.11.19✎ 12:55 | 
        (23) Тут посмотрел...
 И в настройках и в схеме все поля есть... А всё равно не выводится. Не пойму, где видимость изменить... | |||
| 25
    
        toypaul гуру 29.11.19✎ 12:57 | 
        (14) чортова магия. ну посмотри еще в Структура что ли     | |||
| 26
    
        ДенисЧ 29.11.19✎ 12:59 | 
        (25) там только идентификатор, представление и режим отображения. куда смотреть? ))     | |||
| 27
    
        toypaul гуру 29.11.19✎ 12:59 | 
        конечно есть еще вероятность, что этого поля вообще в схеме нет. тогда сначала его надо в схему добавить.     | |||
| 28
    
        ДенисЧ 29.11.19✎ 13:00 | 
        о! Точно, это же коллекция )))
 Сейчас буду покопать... | |||
| 29
    
        toypaul гуру 29.11.19✎ 13:01 | 
        (25) в структуре должен быть один элемент, у которого вероятно заполнен Выбор. еще надо проверить ДоступныеПоляВыбора. если твоего поля там нет, то хоть завыводить - оно в отчете не появится. этот список заполняется из схемы.     | |||
| 30
    
        ДенисЧ 29.11.19✎ 13:40 | 
        Во, нашёл вариант, кривой правда, но пока сработал.
 выбор = НастройкиПользователя.Структура[0].Выбор; Для Каждого поле из выбор.ДоступныеПоляВыбора.Элементы Цикл Если поле.Заголовок = "Системные поля" ИЛИ поле.Заголовок = "Параметры" Тогда Продолжить; КонецЕсли; поле1 = Неопределено; фл = Ложь; Для Каждого поле1 из выбор.Элементы Цикл Если поле1.поле = поле.поле Тогда фл = Истина; Прервать; КонецЕсли; КонецЦикла; Если Не фл Тогда поле1 = выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ЗаполнитьЗначенияСвойств(поле1, поле); поле1.Заголовок = ""; КонецЕсли; КонецЦикла; | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |