8.х [РЕШЕНО] Загрузка настроек в СКД

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем sgirg, 28 июл 2015.

  1. TopicStarter Overlay
    sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток.

    В хранилище значений храню несколько настроек компоновки данных, которые при определенных условиях вызываются в обработке и применяются к динамическому списку.
    вот код по загрузке настроек в компоновщик:

    Код:
    ТаблицаДокументов.КомпоновщикНастроек.ЗагрузитьФиксированныеНастройки(Новый НастройкиКомпоновкиДанных);
    ТаблицаДокументов.КомпоновщикНастроек.ЗагрузитьНастройки(ВосстанавливаемыеНастройкиКомпоновкиДанных);
    ТаблицаДокументов.КомпоновщикНастроек.Восстановить();
    Данный функционал срабатывает верно только в том случае, когда код выполняется отладчиком (т.е. пробежаться точкой останова по данным строкам кода). Подскажите, может я что то упустил?
    Если код выполнять НЕ через отладчик, то остаются стандартные настройки компоновки, которые по умолчанию последние система запомнила.

    P.S.:
    Фиксированные настройки обнуляю специально, иначе выскакивает ошибка:
    "Невозможно применить фиксированные настройки. Пересекаются элементы отбора."
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    А в хранилище каким образом(код) данные попадают?
  3. TopicStarter Overlay
    sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Используется регистр сведений, перекачивавший из конфигурации 2.0 "СохраненныеНастройки".
    Собственно, сама Настройка кладется в хранилище как ресурс регистра сведений.
    Покажу конечный отрывок:
    Код:
      
    СоответствиеЗначений = Новый Соответствие;
    ...
    НастройкиКомпоновкиДанных = ТаблицаДокументов.КомпоновщикНастроек.ПолучитьНастройки();
    СоответствиеЗначений.Вставить("НастройкиКомпоновкиДанных", НастройкиКомпоновкиДанных);
    
    МенеджерЗаписи = РегистрыСведений.УдалитьСохраненныеНастройки.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Пользователь = СтруктураНастроек.Пользователь;
    МенеджерЗаписи.НаименованиеНастройки = СтруктураНастроек.НаименованиеНастройки;
    МенеджерЗаписи.ИмяОбъекта = "ВнешняяОбработкаОбъект.УниверсальныйЖурналДокументов";
    МенеджерЗаписи.Прочитать();
      
    МенеджерЗаписи.ИмяОбъекта = "ВнешняяОбработкаОбъект.УниверсальныйЖурналДокументов";
    ЗаполнитьЗначенияСвойств(МенеджерЗаписи, СтруктураНастроек);
      
    ХранилищеЗначения = Новый ХранилищеЗначения(СоответствиеЗначений, Новый СжатиеДанных(9));
    МенеджерЗаписи.СохраненнаяНастройка = ХранилищеЗначения;
      
    МенеджерЗаписи.Записать();
  4. TopicStarter Overlay
    sgirg
    Offline

    sgirg Опытный в 1С

    Регистрация:
    25 дек 2008
    Сообщения:
    126
    Симпатии:
    0
    Баллы:
    26
    Решено.
    Код:
     ФиктивныйКомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
    ФиктивныйКомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(ВосстанавливаемыеНастройкиКомпоновкиДанных);
    ТаблицаДокументов.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ФиктивныйКомпоновщикНастроекКомпоновкиДанных.ПользовательскиеНастройки);

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