Установка параметра отчета при в управляемой форме
Здравствуйте, пробовал перенести в управляемую форму отчета такой код, который работал на обычных формах.
Вроде бы код отрабатывает, но параметр отчета все равно не меняется. И еще при закрытии отчета сообщение чтобы был изменен его вариант.
Вообщем нужно, чтобы параметр отчета при открытии его формы устанавливался в текущую дату и вариант отчета не менялся. Подскажите пожалуйста как это можно сделать и почему этот код не работает как надо?
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Парам = ЭтотОбъект.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОтчета");
Парам.Использование = Истина;
Парам.Значение = ТекущаяДата();
КонецПроцедуры
ПоказатьВроде бы код отрабатывает, но параметр отчета все равно не меняется. И еще при закрытии отчета сообщение чтобы был изменен его вариант.
Вообщем нужно, чтобы параметр отчета при открытии его формы устанавливался в текущую дату и вариант отчета не менялся. Подскажите пожалуйста как это можно сделать и почему этот код не работает как надо?
По теме из базы знаний
- Нестандартная расшифровка СКД или расшифровка одного отчета СКД при помощи другого отчета СКД установкой пользовательских настроек (в управляемых формах, методика + пример для УТ11)
- СКД программно для обработки (не отчета) + программное восстановление значений полей из настроек для управляемых форм
- Универсальный конструктор отчетов СКД (управляемые формы, тонкий клиент)
- Infostart Toolkit — Инструменты разработчика 1С 8.3 для управляемых форм
- Отчеты с общей формой отчета. Типовые сценарии
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
При создании на сервере также не отработало. Видимо что-то еще нужно для управляемых форм. У меня такое ощущение, что тот параметр, который на форме не связан с тем, что получаю через
Т.е. это один и тот же параметр, но его экземпляр на форме не есть та же сущность.
Прикрепляю это маленький отчет, нужно сделать так, чтобы при открытии его формы дата устанавливалась бы в конец месяца. Попробуйте плиз.
Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОтчета")
Т.е. это один и тот же параметр, но его экземпляр на форме не есть та же сущность.
Прикрепляю это маленький отчет, нужно сделать так, чтобы при открытии его формы дата устанавливалась бы в конец месяца. Попробуйте плиз.
Прикрепленные файлы:
ОтчетПоДолгам.erf
(5) robix,
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьДатуОтчета();
КонецПроцедуры
&НаСервере
Процедура УстановитьДатуОтчета()
ПараметрНастройки = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОтчета");
ПараметрДатаОтчета = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрНастройки.ИдентификаторПользовательскойНастройки);
ДатаОтчета = Новый СтандартнаяДатаНачала;
ДатаОтчета.Вариант = ВариантСтандартнойДатыНачала.ПроизвольнаяДата;
ДатаОтчета.Дата = КонецМесяца(ТекущаяДата());
ПараметрДатаОтчета.Значение = ДатаОтчета;
ПараметрДатаОтчета.Использование = Истина;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Настройки)
УстановитьДатуОтчета();
КонецПроцедуры
Показать
Вообщем, работает, но проблема в другом. На самой форме не важно как установить параметр "ДатаОтчета", он все равно установится так как в процедуре ПриОткрытии() или в выражении на закладке "Параметры"
Мне же нужно чтобы на самой форме параметр установился в конец дня текущей даты и при его изменении на форме соответственно он и в отчет попадал. На управляемых формах видимо не так как на обычных. По другому надо действовать.
Мне же нужно чтобы на самой форме параметр установился в конец дня текущей даты и при его изменении на форме соответственно он и в отчет попадал. На управляемых формах видимо не так как на обычных. По другому надо действовать.
Рабочий вариант в ERP
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьДатуОтчета();
КонецПроцедуры
&НаСервере
Процедура УстановитьДатуОтчета()
ДатаНачала = НачалоМесяца(ДобавитьМесяц(Текущаядата(), -4));
ПараметрНастройки = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
ПараметрДатаОтчета = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрНастройки.ИдентификаторПользовательскойНастройки);
ДатаОтчета = Новый СтандартныйПериод;
ДатаОтчета.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод;
ДатаОтчета.ДатаНачала = ДатаНачала;
ДатаОтчета.ДатаОкончания = КонецМесяца(ТекущаяДата());
ПараметрДатаОтчета.Значение = ДатаОтчета;
ПараметрДатаОтчета.Использование = Истина;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Настройки, ИспользуютсяСтандартныеНастройки)
УстановитьДатуОтчета();
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеВариантаНаСервере(Настройки)
УстановитьДатуОтчета();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьДатуОтчета();
КонецПроцедуры
&НаСервере
Процедура УстановитьДатуОтчета()
ДатаНачала = НачалоМесяца(ДобавитьМесяц(Текущаядата(), -4));
ПараметрНастройки = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
ПараметрДатаОтчета = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ПараметрНастройки.ИдентификаторПользовательскойНастройки);
ДатаОтчета = Новый СтандартныйПериод;
ДатаОтчета.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод;
ДатаОтчета.ДатаНачала = ДатаНачала;
ДатаОтчета.ДатаОкончания = КонецМесяца(ТекущаяДата());
ПараметрДатаОтчета.Значение = ДатаОтчета;
ПараметрДатаОтчета.Использование = Истина;
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Настройки, ИспользуютсяСтандартныеНастройки)
УстановитьДатуОтчета();
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеВариантаНаСервере(Настройки)
УстановитьДатуОтчета();
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот