Задача:
Есть реквизит на форме (булево). Для формы установлено автоматическое сохранение данных в настройках. Нужно, чтобы при первом открытии формы пользователем (т.е. настройки для него не сохранены) реквизит устанавливался в истину, иначе - брался из настроек.
Думал, что решу задачу легко и просто - использованием событий ПередЗагрузкойДанныхИзНастроекНаСервере и ПриЗагрузкойДанныхИзНастроекНаСервере. Однако, для меня стало неприятным сюрпризом, что эти процедуры не вызываются, если для данной формы еще нет сохраненных настроек.
Посмотрел ХранилищеНастроекДанныхФорм - там вообще пусто, хотя для других пользователей есть сохраненные натройки. Видимо, хранятся они где-то еще.
Есть какие-то цивилизованные методы решения? Конкретно интересно, можно ли откуда-то вытащить данные, которые хранятся по галочке "автоматическое сохранение данных в настройках".
Есть реквизит на форме (булево). Для формы установлено автоматическое сохранение данных в настройках. Нужно, чтобы при первом открытии формы пользователем (т.е. настройки для него не сохранены) реквизит устанавливался в истину, иначе - брался из настроек.
Думал, что решу задачу легко и просто - использованием событий ПередЗагрузкойДанныхИзНастроекНаСервере и ПриЗагрузкойДанныхИзНастроекНаСервере. Однако, для меня стало неприятным сюрпризом, что эти процедуры не вызываются, если для данной формы еще нет сохраненных настроек.
Посмотрел ХранилищеНастроекДанныхФорм - там вообще пусто, хотя для других пользователей есть сохраненные натройки. Видимо, хранятся они где-то еще.
Есть какие-то цивилизованные методы решения? Конкретно интересно, можно ли откуда-то вытащить данные, которые хранятся по галочке "автоматическое сохранение данных в настройках".
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) juntatalor,
Можно реализовать с помощью дополнительного реквизита "ПервыйВызов" с типом БУЛЕВО
В ПриСозданииНаСервере устанавливать его в Истина
В ПриЗагрузкеДанныхИзНастроекНаСервере присваивать ему Ложь
В ПриОткрытии его анализировать.
Но возможно - это не цивилизованный метод решения :)
Можно реализовать с помощью дополнительного реквизита "ПервыйВызов" с типом БУЛЕВО
В ПриСозданииНаСервере устанавливать его в Истина
В ПриЗагрузкеДанныхИзНастроекНаСервере присваивать ему Ложь
В ПриОткрытии его анализировать.
Но возможно - это не цивилизованный метод решения :)
А если использовать событие формы (для УФ)? Аналогичное событие есть для обычных форм:
УправляемаяФорма (ManagedForm)
ПриЗагрузкеДанныхИзНастроекНаСервере (OnLoadDataFromSettingsAtServer)
Синтаксис:
ПриЗагрузкеДанныхИзНастроекНаСервере(<Настройки>)
Параметры:
<Настройки>
Тип: Соответствие.
Настройки формы.
Описание:
В обработчик передается объект-соответствие, из которого загружены настройки. В нем находятся значения реквизитов.
В обработчике можно загрузить собственные свойства из соответствия. Например, отбор.
Примечание:
Вызывается на сервере.
УправляемаяФорма (ManagedForm)
ПриЗагрузкеДанныхИзНастроекНаСервере (OnLoadDataFromSettingsAtServer)
Синтаксис:
ПриЗагрузкеДанныхИзНастроекНаСервере(<Настройки>)
Параметры:
<Настройки>
Тип: Соответствие.
Настройки формы.
Описание:
В обработчик передается объект-соответствие, из которого загружены настройки. В нем находятся значения реквизитов.
В обработчике можно загрузить собственные свойства из соответствия. Например, отбор.
Примечание:
Вызывается на сервере.
Для типа "булево" можно использовать обратный реквизит, который при первом запуске = ложь, а нужный тогда будет = истина.
А для реквизита любого типа- задавать нужное значение при первом запуске в процедуре ПриСозданииНаСервере. А в обработчике ПриЗагрузкеДанныхИзНастроекНаСервере, который выполняется (если выполняется) после ПриСозданииНаСервере уже будет присваиваться указанное пользователем и сохраненное в настройках.
А для реквизита любого типа- задавать нужное значение при первом запуске в процедуре ПриСозданииНаСервере. А в обработчике ПриЗагрузкеДанныхИзНастроекНаСервере, который выполняется (если выполняется) после ПриСозданииНаСервере уже будет присваиваться указанное пользователем и сохраненное в настройках.
ПриСозданииНаСервере выполняется раньше чем ПриЗагрузкеДанныхИзНастроекНаСервере.
Отсюда вывод. В ПриСозданииНаСервере инициализируем параметр как нам угодно, в нашем случае реквизит выставляем в истину.
Если нет сохраненных настроек - он останется. Если есть настройки - то его значение заменится значением из настроек.
Или я не прав?
Отсюда вывод. В ПриСозданииНаСервере инициализируем параметр как нам угодно, в нашем случае реквизит выставляем в истину.
Если нет сохраненных настроек - он останется. Если есть настройки - то его значение заменится значением из настроек.
Или я не прав?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот