СКД. Программная установка параметров в управляемой форме отчета. Как? #526686


#0 by fisher
Собссно, сабж.
#1 by also
А как в неуправляемой не получается?
#2 by fisher
У меня - нет :) Вот ищу, кто бы руки вправил...
#3 by also
может поподробнее? Что не получается? Как пробовал?
#4 by also
Да все также:
#5 by fisher
Кажись, сообразил/вспомнил. Просто когда-то уже долбался с этой хренью, а сейчас опять встала задача, но уже подзабыл в чем проблема была... Тогда таки получалось менять настройки, заменив стандартную кнопку "Сформировать" на свою (командную панель тоже пришлось нестандартную ставить). И по этой кнопке перед компоновкой отчета устанавливал нужные параметры через компоновщик. Но тогда при смене варианта эта сволочь писала ""Вариант отчета был изменен. Сохранить измененный вариант?" и я не мог от этого избавиться. А сейчас разул глаза - вижу есть свойство "ВариантМодифицирован". По идее, его можно сбросить...
#6 by fisher
Кстати, уже добавили гламурный метод УстановитьЗначениеПараметра(<Параметр>, <Значение>) Параметры: Тип: Строка; ПараметрКомпоновкиДанных. Имя параметра или параметр компоновки данных, значение которого нужно установить. Значение, которое нужно установить.
#7 by fisher
Описание: Устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
#8 by Beans
а вот пользвоательской настройке мне не удалось установить тип "Граница". {Отчет.МойОтчет2.МодульОбъекта}: Ошибка при установке значения атрибута контекста (Дата)    ПараметрПользовательскойНастройки.Значение.Дата  = Граница; по причине:
#9 by fisher
Гм... А мне удалось...
#10 by Beans
мене тоже удалось , только перед созаданием пользовательской настройки надо параметру то же присвоить тип граница
#11 by fisher
Границу можно и проще инициализировать: ИМХО, границу в пользовательских настройках некрасиво использовать. Мне кажется, лучше в пользовательских настройках оставлять дату, а оттуда уже транслировать как границу в окончательные настройки при компоновке. Спасибо за пример, кстати. Помог разобраться. Почему-то был уверен, что ПриКомпоновкеРезультата отрабатывает уже после компоновки. Параметр ДокументРезультат ввёл в заблуждение. Очевидно, он нужен только при нестандартной компоновке.
#12 by fisher
Кстати. Программные изменения пользовательских настроек отчета не отражаются в интерактивном окне доступа к пользовательским настройкам. ОбновитьОтображениеДанных не помогает. Есть идеи?
#13 by fisher
Тьфу. Не ОбновитьОтображениеДанных, а ОтобразитьИзменениеДанных
#14 by fisher
Блин. Таки первое. Конец дня сказывается :)
#16 by Beans
если че то в пользовательском режиме изменил, размеры формы, настройки отчета .... - хрен потом програмно изменишь.
#17 by fisher
Параметры в пользовательских настройках нормально меняются параллельно - интерактивно и программно. И так и эдак применяется. Если последний раз менялось программно и взвести флаг изменения пользовательских настроек - при закрытии отчета они нормально сохраняются и при последующем открытии считываются. Так что всё ОК, кроме того, что я уже сказал - при программном изменении не могу сообразить как обновить измененные параметры в окне пользовательских настроек. Они там остаются старые (отчет формируется нормально - уже по новым).
#18 by fisher
Не-не-не. Этот костыль не нужен. Достаточно просто ПользовательскиеНастройкиМодифицированы = Истина; Они будут сохранены штатно в рамках текущего варианта отчета.
#19 by fisher
Вообще СКД достаёт своим избыточным многообразием объектной модели. Многие служебные объекты явно можно было унифицировать. А так - куча похожих коллекций и каждая, *ука, со своими мелкими отличиями...
#20 by fisher
И прямо везде сквозит забота о разработчике. Это очень показательный пример:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С