Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

СКД. Значение по умолчанию в быстрых пользовательских настройках

СКД. Значение по умолчанию в быстрых пользовательских настройках
Я
   IPcorp
 
01.08.20 - 01:10
Видать где-то чего-то упускаю. Есть выражение в параметре СКД: http://www.screencapture.ru/file/d728711D

В параметрах отчета флаг использовать параметр по умолчанию: http://www.screencapture.ru/file/282727b4

В пользовательском режиме дата по умолчанию не прописывается: http://www.screencapture.ru/file/3908591E

При этом отчет формируется верно. Собсно вопрос: как заставить отображаться сформированный параметр по умолчанию?
   Franchiser
 
1 - 01.08.20 - 01:26
Этот параметр по умолчанию подставиться только при компоновке. А так в настройках скд параметр пустое значение, если пользователь поменяет, то пользовательская настройка перебьет.
Можно попробовать при создании объекта отчёта подменять схему так, чтобы подменялось правое значение параметра в схеме скд.
   IPcorp
 
2 - 01.08.20 - 02:12
хм, только заметил...платформа 8.3.16.10.63.

Если в параметре скд установлено поле Значение, по умолчанию оно подставляется и отображается в пользовательской настройке. При его изменении пользователем отчет затем формируется с учетом нового пользовательского значения.

Если же в параметре скд прописано выражение, оно не отображается по умолчанию, и, что интересно, какое бы затем новое значение пользователь не установил, отчет постоянно формируется на основании первоначального значения, вычисленного выражением.

(1) спс, но из-за довольно небольшого пока скилла в 1С, можно чутка подробней? В общем цель при открытии формы отчета, что бы пользователь там видел по умолчанию дату равную текущей минус 1 месяц.
   hhhh
 
3 - 01.08.20 - 02:47
(2) наверно, программно придется присваивать
   IPcorp
 
4 - 01.08.20 - 13:40
(3) Да, пришлось. Не хотелось больше кода плодить, хотя всего плюс одна строка в событии ПриОткрытии: Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение = НачалоДня(ДобавитьМесяц(ТекущаяДата(), -1));

Что бы не зависеть от индекса, был как вариант:

    Для каждого _Элемент Из Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
        
        Если _Элемент.Параметр = Новый ПараметрКомпоновкиДанных("ДатаНачалоВыборки") Тогда
            
            _Элемент.Значение = '20200407010101';
            
        КонецЕсли;
        
        
    КонецЦикла;  

Где возник вопрос, каким образом проверить на нужный элемент без такого костылища как _Элемент.Параметр = Новый ПараметрКомпоновкиДанных("ДатаНачалоВыборки").
   hhhh
 
5 - 01.08.20 - 15:09
(4) там еще смотри бывает засада, в пользовательских настройках еще что-то есть, кроме параметров. Поэтому вообще ошибку может выдавать, не найдено свойство "Параметр"

Список тем форума
Рекламное место пустует  Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.