1С 8.3, 8.5 Сохранить и восстановить значения объектов и реквизитов - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3, 8.5 Сохранить и восстановить значения объектов и реквизитов

Данные > Примеры кода 1С > 1С 8.3 Пользователи, роли (права) доступа
⚙️ Настройки (реквизиты объектов, форм) можно хранить в:
ХранилищеОбщихНастроек
Регистре сведений
Справочнике
Внешнем файле (удобно для миграции между базами), JSON.
Штатно в настройках формы. Достаточно только поставить напротив галочку Сохранение.


Удобно при отладке для 1Сника и ускоряют работу пользователей. В повседневной работе использую именно хранилище общих настроек. Эти простые куски кода кочуют из одной внешней обработки (отчета) в другую. Если есть БСП, используем соответствующие процедуры.
Програмно сохранить и восстановить значения объектов и реквизитов формы 1С 8.3, 8.5:
&НаСервере
Процедура ВосстановитьНастройки()

   КлючОбъекта = "ВнешняяОбработка_ЗагрузкаСоСклада";
   КлючНастроек = "ПериодПутьОрганизация";
   ИмяПользователя = ИмяПользователя();

   Попытка
       ЗначениеНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек, , ИмяПользователя);
       // ЗначениеНастроек = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(ИмяНастройки);
   Исключение
       Сообщить("Не достаточно прав доступа к настройкам пользователя: "+ИмяПользователя);
   КонецПопытки;

   Если ЗначениеНастроек = Неопределено Тогда // Значит настроек нет
       Сообщить("Не получилось прочитать настройки.");
   Иначе
       Если ТипЗнч(ЗначениеНастроек) = Тип("Соответствие") Тогда
           Объект.НачалоПериода = ЗначениеНастроек.Получить("НачалоПериода");
           Объект.КонецПериода = ЗначениеНастроек.Получить("КонецПериода");
           Объект.Организация = ЗначениеНастроек.Получить("Организация");
           Объект.ПутьККаталогу = ЗначениеНастроек.Получить("ПутьККаталогу");
       КонецЕсли;
   КонецЕсли;

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

&НаСервере
Процедура СохранитьНастройки()

   КлючОбъекта = "ВнешняяОбработка_ЗагрузкаСоСклада";
   КлючНастроек = "ПериодПутьОрганизация";
   ИмяПользователя = ИмяПользователя();

   Настройки = Новый Соответствие;
   Настройки.Вставить("НачалоПериода", Объект.НачалоПериода);
   Настройки.Вставить("КонецПериода", Объект.КонецПериода);
   Настройки.Вставить("Организация", Объект.Организация);
   Настройки.Вставить("ПутьККаталогу", Объект.ПутьККаталогу);

   ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, , ИмяПользователя);
   // ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(ИмяНастройки, ,ЗначениеНастроек);

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
  ВосстановитьНастройки();   // Восстанавливаем данные!!!
КонецПроцедуры

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

//&НаКлиенте
//Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
//    Если ЗавершениеРаботы = Ложь и Модифицированность Тогда           //  Исключает ошибку "Запрещены серверные процедуры"
//        СохранитьНастройки(); // Сохраняем данные!!!
//    КонецЕсли;
//    Оповестить("ЗакрытьФормуКонсолиЗапроса",,ЭтаФорма);
//КонецПроцедуры
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 02.03.2025
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому