8.х Как загрузить ПользовательскиеНастройкиКомпоновкиДанных в НастройкиКомпоновкиДанных.

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Максим, 26 фев 2014.

  1. TopicStarter Overlay
    Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Здравствуйте.
    1С:Предприятие 8.2 (8.2.19.76)
    Написал отче на СКД. Создал парочку отборов, включил их в пользовательские настройки.
    Результат формирую программно:
    Код:
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
        СтандартнаяОбработка = Ложь;
    
        ДокументРезультат.Очистить();
     
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
     
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
     
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
        ПроцессорВывода.Вывести(ПроцессорКомпоновки);
        КонецПроцедуры
    
    При этом пользователь отборы устанавливает, НО СКД их не использует. Я так понимаю это из-за того, что КомпоновщикМакета.Выполнить(..., КомпоновщикНастроек.Настройки,...
    Как загрузить ПользовательскиеНастройкиКомпоновкиДанных в НастройкиКомпоновкиДанных?
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Если память не изменяет, то у настроек есть метод загрузить()...
    Максим нравится это.
  3. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    В какой конфигурации используется отчет ?
    Максим нравится это.
  4. TopicStarter Overlay
    Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    УТ 11.1.2
  5. TopicStarter Overlay
    Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Видимо изменяет. У НастройкиКомпоновкиДанных нет такого метода. Вот такое есть
    КомпоновщикНастроек.ЗагрузитьНастройки(...
    Но не подойдет, т.к.в параметр передаются не ПользовательскиеНастройкиКомпоновкиДанных, а НастройкиКомпоновкиДанных.
    Последнее редактирование: 26 фев 2014
  6. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Если ситуация в УТ11 такая же как и в БП3.0 то заход с получением пользовательских настроек через методы объектов не сработает (методы то работают, но при подключении отчета как внешнего, нужного результата не будет), нужно посмотреть как в УТ типовые отчеты получают настройки пользователей, скорее всего решение не будет легким :(
    Максим нравится это.
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Да нее, почему же? Наоборот все просто :)
    Так:
    Код:
    КомпоновщикНастроек.Настройки
    мы получаем только настройки компоновки (как вы уже убедились).
    Чтобы получить настройки компоновки вместе с пользовательскими настройками, надо использовать метод компоновщика настроек "ПолучитьНастройки()".
    Код:
    Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
    В Синтакс-помощнике прямо так в примечании и сказано:
    Последнее редактирование: 26 фев 2014
    Максим нравится это.
  8. TopicStarter Overlay
    Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Спасибо. Однако появилась другая строна медали. Теперь, когда я меняю не пользовательские отборы, а вариант отчета, то программа все равно берет пользовательские настройки :(
  9. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Верно.
    Пользовательские настройки имеют более высокий приоритет.
    Максим нравится это.
  10. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    ОК Проверьте возможность сохранения и загрузки пользовательских настроек при их изменении.
  11. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Ребят, всем привет. Че то подзатупил мальца. У меня есть отчет на СКД. В нем задаются различные параметры. Смысл задачи в том, что при установке различных комбинаций периодов, нужно сформировать определенный вариант отчета. Но затупил не знаю как загрузить уже выбранные настройки в новый вариант отчета. Прошу помощи?
    upload_2015-11-19_16-16-7.png
  12. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    Однако реально затупил. У КомпоновщикНастроек есть метод такой. ЗагрузитьПользовательскиеНастройки(). Но мне он не совсем подошел т.к. этот метод грузит вообще все пользовательские настройки, а меня интересуют только параметры, который установил пользователь. Поэтому пришлось вот так изголяться. :)
    Код:
        Для i=0 По 3 Цикл
            ТекущаяНастройка = ПользовательскиеНастройки[i];
            НоваяНастройка   = ЭтотОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[i];
            ЗаполнитьЗначенияСвойств(НоваяНастройка, ТекущаяНастройка);
        КонецЦикла;
    

Поделиться этой страницей