Есть программная реализация ВосстановленияНастроек:
Если в форме выбрать необходимую настройку, то всё восстанавливает безупречно. Форма обычная.
Но! Там стоит галочка "При открытии" восстанавливать настройки. То есть при открытии обработки настройки не подтягиваются. Почему ?
Процедура ДействияФормыВосстановитьНастройки(Кнопка)
СтруктураНастройки = Новый Структура;
СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь"));
СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект));
СтруктураНастройки.Вставить("НаименованиеНастройки", ?(мТекущаяНастройка = Неопределено, Неопределено, мТекущаяНастройка.НаименованиеНастройки));
ВозвращаемаяСтруктура = УниверсальныеМеханизмы.ВосстановлениеНастроек(СтруктураНастройки);
Если ВозвращаемаяСтруктура <> Неопределено Тогда
мТекущаяНастройка = ВозвращаемаяСтруктура;
//КомпоновщикНастроек.ЗагрузитьНастройки(мТекущаяНастройка.СохраненнаяНастройка.Получить());
Попытка
СохраненнаяНастройка = ВозвращаемаяСтруктура.СохраненнаяНастройка;
Если ТипЗнч(СохраненнаяНастройка) = Тип("Структура") Тогда
Если СохраненнаяНастройка.Свойство("НастройкаПериода") Тогда
мНастройкаПериода = СохраненнаяНастройка.НастройкаПериода;
НачалоПериода = мНастройкаПериода.ПолучитьДатуНачала();
КонецПериода = мНастройкаПериода.ПолучитьДатуОкончания()
КонецЕсли;
Если СохраненнаяНастройка.Свойство("НастройкаПостроителя") Тогда
мНастройкаПостроителя = СохраненнаяНастройка.НастройкаПостроителя;
Если ТипЗнч(мНастройкаПостроителя) = Тип("НастройкиПостроителяОтчета") Тогда
ПостроительОтчета.УстановитьНастройки(мНастройкаПостроителя, Истина, Ложь, Ложь, Ложь, Ложь);
КонецЕсли;
КонецЕсли;
Если СохраненнаяНастройка.Свойство("ТаблицаДанных") Тогда
ТаблицаДанных = СохраненнаяНастройка.ТаблицаДанных.Скопировать();
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецЕсли;
КонецПроцедуры
ПоказатьЕсли в форме выбрать необходимую настройку, то всё восстанавливает безупречно. Форма обычная.
Но! Там стоит галочка "При открытии" восстанавливать настройки. То есть при открытии обработки настройки не подтягиваются. Почему ?
По теме из базы знаний
Найденные решения
(8) Тоггда все тоже самое но перед закрытием и перед открытием
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ХранилищеНастроекДанныхФорм.Сохранить("ПоискРазрывовСЗВ_Стаж", "ГодВыб", ЭтотОбъект.ГодВыб);
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ЭтотОбъект.ГодВыб=ХранилищеНастроекДанныхФорм.Загрузить("ПоискРазрывовСЗВ_Стаж", "ГодВыб");
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Эту выполняйте при закрытии формы ...
А при создании на сервере
&НаСервере
Процедура СохранениеНастроек()
ХранилищеНастроекДанныхФорм.Сохранить("ОбработкаВыгрузкаАлиментовСбербанк", "Организация", Объект.Организация);
ХранилищеНастроекДанныхФорм.Сохранить("ОбработкаВыгрузкаАлиментовСбербанк", "Зарплатныйпроект", Объект.ЗарплатныйПроект);
КонецПроцедуры
А при создании на сервере
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Организация= ХранилищеНастроекДанныхФорм.Загрузить("ОбработкаВыгрузкаАлиментовСбербанк", "Организация");
Объект.ЗарплатныйПроект=ХранилищеНастроекДанныхФорм.Загрузить("ОбработкаВыгрузкаАлиментовСбербанк", "Зарплатныйпроект");
(8) Тоггда все тоже самое но перед закрытием и перед открытием
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ХранилищеНастроекДанныхФорм.Сохранить("ПоискРазрывовСЗВ_Стаж", "ГодВыб", ЭтотОбъект.ГодВыб);
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ЭтотОбъект.ГодВыб=ХранилищеНастроекДанныхФорм.Загрузить("ПоискРазрывовСЗВ_Стаж", "ГодВыб");
(9) А если надо сохранять значения объекта ПостроительОтчета.Отбор . Он у меня на форме и в нём задаются разные настройки. В этом вся суть
Достаточно этого?
Попытался сделать на объекты формы ДатуНачала и ДатуКонца. Всё равно не сохраняет при новом открытии обработки.
Прошёлся отладчиком призакрытии. По идее Сохранять делает. Но когда открываю форму в объектах пусто, при загрузке.
Достаточно этого?
ХранилищеНастроекДанныхФорм.Загрузить("ОбработкаУтверждениеЗаказов", "ПостроительОтчетаОтбор", ЭтотОбъект.ПостроительОтчета.Отбор);
Попытался сделать на объекты формы ДатуНачала и ДатуКонца. Всё равно не сохраняет при новом открытии обработки.
Прошёлся отладчиком призакрытии. По идее Сохранять делает. Но когда открываю форму в объектах пусто, при загрузке.
(14)
поле объекта не обнаружено АдресДоставки в этом месте ругается.
Процедура мУстановитьОтборыПоУмолчанию()
СтруктураОтборов = Новый Структура("Контрагент, АдресДоставки, Ответственный, Утвержден");
ПоляОтбора = ПостроительОтчета.Отбор.ПолучитьДоступныеПоля();
ПоляОтбора.АдресДоставки.Представление = "Адрес доставки";
Для Каждого КлючЗначение Из СтруктураОтборов Цикл
ПолеОтбора = ПоляОтбора.Найти(КлючЗначение.Ключ);
Если ПолеОтбора <> Неопределено И ПолеОтбора.Отбор Тогда
ЭлОтбора = ПостроительОтчета.Отбор.Найти(КлючЗначение.Ключ);
КонецЕсли;
Если ЭлОтбора = Неопределено Тогда
мУстановитьОтборПостроителя(ПостроительОтчета, КлючЗначение.Ключ, ПолеОтбора.Представление, Неопределено, , Ложь);
КонецЕсли;
КонецЦикла;
ЭлОтбора = ПостроительОтчета.Отбор.Найти("Утвержден");
//Если ЭлОтбора = Неопределено Тогда
мУстановитьОтборПостроителя(ПостроительОтчета, "Утвержден", "Утвержден", Ложь);
//КонецЕсли;
КонецПроцедуры
Показатьполе объекта не обнаружено АдресДоставки в этом месте ругается.
(10) то есть в Обработке создайте реквизиты ДатуНачала и ДатуКонца и вот их точно получится восстанавливать
Реквизиты формы не пробовал никогда, потому как минимум, что не использую обычно реквизитов у форм ни у обычных ни в управляемых
Реквизиты удобно делать у самой обработки...
Реквизиты формы не пробовал никогда, потому как минимум, что не использую обычно реквизитов у форм ни у обычных ни в управляемых
Реквизиты удобно делать у самой обработки...
Процедура ПриОткрытии()
// Реквизит формы и компоновщик отчета ссылаются на один компоновщик
//КомпоновщикНастроек = ЭтотОбъект.КомпоновщикНастроек;
ТиповыеОтчеты.ОбновитьТаблицуДоступныхНастроекПользователю(ЭтотОбъект);
ТиповыеОтчеты.УстановитьВариантПоУмолчанию(ЭтотОбъект, ЭтаФорма);
// Нарисуем кнопки выбора настроек на верхней панели
ТиповыеОтчеты.ОбновитьКнопкиВыбораНастроек(ЭтаФорма, ЭтотОбъект, ПредставлениеНастройки, РежимРедактированияНастройки);
ТиповыеОтчеты.ОбновитьФормуТиповогоОтчетаПоКомпоновщику(ЭтотОбъект, ЭтаФорма);
ТиповыеОтчеты.УстановитьВидимостьПанелиВариантовПоУмолчанию(ЭтотОбъект, ЭтаФорма);
ТиповыеОтчеты.УстановитьВидимостьПанелиПользователяПоУмолчанию(ЭтотОбъект, ЭтаФорма);
ТиповыеОтчеты.ВосстановитьНастройкиФормыОтчета(ЭтотОбъект, ЭтаФорма);
ТиповыеОтчеты.УправлениеОтображениемПанелиВариантов(ЭтаФорма);
ТиповыеОтчеты.УправлениеОтображениемПанелиПользователя(ЭтаФорма);
ЭтаФорма.ЭлементыФормы.Результат.Защита = УправлениеДопПравамиПользователей.ЗащитаТаблиц();
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
Если РежимРедактированияНастройки Тогда
СтандартнаяОбработка = Ложь;
Возврат;
КонецЕсли;
ТиповыеОтчеты.ОбработкаЗакрытияНастройкиОтчета(ЭтотОбъект, ЭтаФорма, Отказ, СтандартнаяОбработка);
Если Не ЭтоОтработкаРасшифровки И Не РежимРедактированияНастройки Тогда
ТиповыеОтчеты.СохранитьПоследнююИспользуемуюНастройку(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
Показать
(26) В том то и дело, что это не моя настройка мУстановитьОтборыПоУмолчанию.Но она нужна.
Если я поставлю условие Если пусто и не выполнять, то она сброситься... А хотелось чтобы эта настройка была и значения которые в этих отборах сохранялись. Это реально же ?)
Кроме того он не в одном месте ругнется ещё. Так как ПостроительОтчета пустой..
Если я поставлю условие Если пусто и не выполнять, то она сброситься... А хотелось чтобы эта настройка была и значения которые в этих отборах сохранялись. Это реально же ?)
Кроме того он не в одном месте ругнется ещё. Так как ПостроительОтчета пустой..
скрестить ежа с ужом не всегда целесообразно...
Вы хотите не настройки сохранять, а задавать начальные программно - это немного все же другая задача изначально.
Вернитесь вчистую к своему варианту и отладкой ищите что у вас там не стыкуется...
Еще раз говорю - без отладки вы ничего не сможете.
Ищите где и что заполняется не так как вы задумали
Вы хотите не настройки сохранять, а задавать начальные программно - это немного все же другая задача изначально.
Вернитесь вчистую к своему варианту и отладкой ищите что у вас там не стыкуется...
Еще раз говорю - без отладки вы ничего не сможете.
Ищите где и что заполняется не так как вы задумали
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот