Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Форма констант типа ХранилищеЗначения возможна?

Форма констант типа ХранилищеЗначения возможна?
Я
   Mikhail Volkov
 
15.04.21 - 08:35
Захотелось взглянуть на константы типа ХранилищеЗначения. Например, на Параметры центра мониторинга, какие значения настройки этих параметров... Открываю ее через "Все функции", вижу только ее наименование и кнопки: Записать, Еще..!? В Общих формах Форма констант не нашел, решил свою внешнюю обработку сделать по статье https://www.1s-up.ru/konstanty-v-1s-8-3/. Добавил в нее реквизит НаборКонстант (тип КонстантыНабор), но все константы типа ХранилищеЗначения оказываются недоступны в данных формы!?
Права вроде полные... Не пойму в чем дело, или это секрет 1С?
   acht
 
1 - 15.04.21 - 08:52
(0) Это касается всех управляемых форм, константы тут не причем. Хранилища значений на клиете нет, поэтому в данные формы они не попадают. Надо писать обход вручную - при чтении/создании помещать во внутреннее хранилище, оперировать адресом, при записи перекладывать обратно в объект.
   Mikhail Volkov
 
2 - 15.04.21 - 18:22
(1) Пока так: вместо самих констант добавил строковый реквизит ИмяКонстанты, заполнил СписокВыбора именами констант с типом ХранилищеЗначения, добавил кнопку выпадающего списка. В форме по имени выбираю нужную константу, и далее:

&НаСервере
Функция ИмяКонстантыПриИзмененииНаСервере()
    УстановитьПривилегированныйРежим(Истина);
    Попытка
        СтароеСодержимое = Константы[ИмяКонстанты].Получить().Получить();
        Содержимое = ЗначениеВСтрокуВнутр(СтароеСодержимое);// тут разбираем на кусочки для удобного отображения на фоме

        ИнформацияОКонстанте = Метаданные.Константы[ИмяКонстанты].Синоним + ?(ПустаяСтрока(Содержимое), "", ": " + Содержимое);
    Исключение
        ИнформацияОКонстанте = "Константа '" + ИмяКонстанты + "' не найдена";
    КонецПопытки;
    УстановитьПривилегированныйРежим(Ложь);
    Возврат ИнформацияОКонстанте;
КонецФункции

&НаКлиенте
Процедура ИмяКонстантыПриИзменении(Элемент)
    Если ПустаяСтрока(ИмяКонстанты) Тогда
        Возврат;
    КонецЕсли;
    Элементы.ИнформацияОКонстанте.Заголовок = ИмяКонстантыПриИзмененииНаСервере();
КонецПроцедуры

Далее можно менять значения параметров, и записывать в константы.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.