Имя: Пароль:
1C
1С v8
Хранилище общих настроек
0 deskut
 
19.04.26
10:37
Помогите, пожалуйста, разобраться с хранилищем общих настроек.

Создал форму, на ней реквизит, пусть будет Реквизит1 (булево), поместил на форму.

Модуль формы:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Реквизит1 = ХранилищеОбщихНастроек.Загрузить("ПользовательскиеНастройки", "Реквизит1");
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ХранилищеОбщихНастроек.Сохранить("ПользовательскиеНастройки", "Реквизит1", Реквизит1);
КонецПроцедуры
Показать


Запускаю 1С, открываю форму, ставлю флажок Реквизит1, сохраняю. Открываю заново - флажок не стоит.
В процедуре ПриСозданииНаСервере() пробовал получать значение через Сообщить(), оно пустое.

Я неправильно записываю или что-то еще? Помогите, пожалуйста.
1 Chameleon1980
 
19.04.26
12:20
А это форма чего?
руками написал "ПередЗаписьюНаСервере" ?
а отладка что говорит?
2 deskut
 
19.04.26
13:23
(1) Общая форма. Чтобы на ней была кнопка записи, пришлось создавать как форму констант, но их на форму не выносить.
"ПередЗаписьюНаСервере" привязано, разумеется, к событию.

"Отладка"? Ну гляну, но я думаю, что просто что-то не то делаю.
3 deskut
 
19.04.26
13:25
Может где-то в настройках конфигурации надо как-то это хранилище включить? Просто я с ним не работал никогда.
4 deskut
 
19.04.26
13:31
Официальная документация, которой я пользовался: https://its.1c.ru/db/v8std/content/557/hdoc
Мои строки схожи с теми, что они дают.
А дипсик предлагает вообще со структурами работать.
5 Mr_Boogie
 
19.04.26
14:27
(0) Попробуйте чуть по другому и запихните запись/сохранение в событие передзакрытием. Если у вас реквизит формы, то ключ обзовите как реквизит. Пример из моей какой-то обработки:

#Область СобытияФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

        Организация = ХранилищеОбщихНастроек.Загрузить("Организация");

КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)

	ПередЗакрытиемНаСервере();

КонецПроцедуры

&НаСервере
Процедура ПередЗакрытиемНаСервере()
	
	ХранилищеОбщихНастроек.Сохранить("Организация",, Организация);
	
КонецПроцедуры

#КонецОбласти
6 deskut
 
19.04.26
14:31
(5) Ваш способ сработал. Благодарю.
Однако интересно...
7 Chameleon1980
 
19.04.26
14:46
(2) "..Общая форма. Чтобы на ней была кнопка записи, пришлось создавать как форму констант.."

извращенец? свою кнопку не судьба сделать? нужно записывать принудительно константы?
8 deskut
 
19.04.26
14:50
(7) Быстрее и проще было сделать временно так, дабы потестить функционал хранилища общих настроек.
9 Chameleon1980
 
19.04.26
15:34
(8) ну я и говорю...
10 ProxyInspector
 
19.04.26
18:30
(5)Надо ИмяПользователя задавать.
Если ИмяПользователя = Неопределено, тогда это текущий пользователь.
Я обычно использую ИмяПользователя = "<все>"
11 deskut
 
19.04.26
19:52
(10) А мне и надо было, чтобы текущий. Я делал форму личных настроек пользователя.
12 ProxyInspector
 
19.04.26
21:20
ТекущийПользователь &НаКлиенте и &НаСервере не одно и тоже.