Программная установка режима просмотра списка
Здравствуйте!
Нужно, чтобы при открытии формы выбора иерархического справочника из формы определенного документа, в поле списка всегда стоял режим отбора "Список". Из формы документа передаю параметр выбора, в событии ПриСозданииНаСервере формы выбора проверяю его, если он есть и значение Истина - ставлю Элементы.Список.Отображение = ОтображениеТаблицы.Список;
И все работает хорошо, пока пользователь вручную не изменит режим просмотра. Вот тогда моя программная установка режима просмотра перестает работать. Я так понимаю, пользовательская настройка приоритетнее программной.
Существует ли способ отключать пользовательские настройки в момент создания формы?
Нужно, чтобы при открытии формы выбора иерархического справочника из формы определенного документа, в поле списка всегда стоял режим отбора "Список". Из формы документа передаю параметр выбора, в событии ПриСозданииНаСервере формы выбора проверяю его, если он есть и значение Истина - ставлю Элементы.Список.Отображение = ОтображениеТаблицы.Список;
И все работает хорошо, пока пользователь вручную не изменит режим просмотра. Вот тогда моя программная установка режима просмотра перестает работать. Я так понимаю, пользовательская настройка приоритетнее программной.
Существует ли способ отключать пользовательские настройки в момент создания формы?
По теме из базы знаний
- Подсистема ViewValues (просмотр "табличных" объектов). Версии для 1С:Предприятие-8.x и для 1С:Предприятие-7.7
- Получение информации о списке установленных лицензий с помощью утилиты RING начиная с 8.3.8
- Тикеты - система учета задач/Service Desk в 1С (+ мобильное приложение)
- OneS Cluster Admin - консоль администрирования кластера серверов 1С (кроссплатформенная, мультиверсионная)
- Инструменты разработчика "Инструментики" для тонкого клиента 1С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) CyberRich,
нет, просто, "ПриСозданийНаСервере" работает только один раз.
А вам надо процедуру проверки и установки запихать в какое то событие, которое будет вызываться при любом телодвижении пользователя.
Типа как обновить.
Возможно не одно событие, а в разные. Там надо уже более детально смотреть.
Если системных событий недостаточно для описаний задачи, то можно обработчик ожидания подключить.
Я так понимаю, пользовательская настройка приоритетнее программной.
нет, просто, "ПриСозданийНаСервере" работает только один раз.
А вам надо процедуру проверки и установки запихать в какое то событие, которое будет вызываться при любом телодвижении пользователя.
Типа как обновить.
Возможно не одно событие, а в разные. Там надо уже более детально смотреть.
Если системных событий недостаточно для описаний задачи, то можно обработчик ожидания подключить.
Устанавливать режим в реальном времени мне не нужно. Мне нужно, чтобы при каждом открытии формы с определенным параметром устанавливался режим отображения "Список" независимо от того, какое отображение выбирал пользователь в предыдущие разы. Как то так.
(3) CyberRich, странно конечно, поэкспериментировать сейчас не могу,
можно попробовать, тогда при закрытии формы, всегда устанавливать список. Тогда неважно что пользак в процессе устанавливал, когда форму закрывает хоть крестиком хоть кнопкой "ОК", программно устанавливается список, и даже если там какое то сохранение параметров есть, то оно и сохранит именно такой режим.
можно попробовать, тогда при закрытии формы, всегда устанавливать список. Тогда неважно что пользак в процессе устанавливал, когда форму закрывает хоть крестиком хоть кнопкой "ОК", программно устанавливается список, и даже если там какое то сохранение параметров есть, то оно и сохранит именно такой режим.
(3) CyberRich, ПриСозданииНаСервере при определенном значении параметра(чтоб именно с нужной формы открывалось без возможности сменить вариант отображения, а из остальных все работало как обычно)сделай остальные стандартные команды списка недоступными. т.е. оставь только "Список", а "ИерархическийСписок" и "Дерево" отключи. чтото типа того Элементы.СписокИерархическийСписок.Доступность = Ложь;
А при открытии нельзя изменить режим просмотра?
Логика следующая:
ПриСозданииНаСервере() - не смотрим
До ПриОткрытии() - считываются пользовательские значения
ПриОткрытии() - устанавливаем необходимый режим
Логика следующая:
ПриСозданииНаСервере() - не смотрим
До ПриОткрытии() - считываются пользовательские значения
ПриОткрытии() - устанавливаем необходимый режим
Сделал так: в событии ПриСозданииНаСервере() при присутствии соответствующего параметра выбора применяю нужные отборы, а в событии ПриОткрытии() перебираю ПараметрыВыбора у Владельца формы. Если найден нужный нам, устанавливаю режим просмотра. Мне не особо нравится, но работает. Очень странно и жаль, что ПриСозданииНаСервере() установка режима не "перебарывает" пользовательские настройки.
(9) CyberRich,
а что тут странного. На сервере нет пользовательских настроек. Они считываются на клиенте. ПриСозданииНаСервере форма подготавливается. ПриОткрытии уже выполняется настройка отборов ДС и тд.
Очень странно и жаль, что ПриСозданииНаСервере() установка режима не "перебарывает" пользовательские настройки.
а что тут странного. На сервере нет пользовательских настроек. Они считываются на клиенте. ПриСозданииНаСервере форма подготавливается. ПриОткрытии уже выполняется настройка отборов ДС и тд.
А как бы в управляемой форме редактируется в конфигураторе состав команд видимых пользователю, и собственно можно и запретить ему менять в данной форме режим просмотра с заданного программно или заданного в свойствах в конфигураторе.
(9) Можно проще сделать.
У динамического списка есть компоновщик настроек, а в компоновщике - есть настройки, а в настройках есть дополнительные свойства - это структура, в которую можно положить что-то в процедуре "ПриСозданииНаСервере" и без проблем забрать из процедуры "ПриОткрытии".
ПриСозданииНаСервере:
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("Отображение",ОтображениеТаблицы.Список);
ПриОткрытии:
Элементы.Список.Отображение = Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Отображение;
Для того, чтобы свойство гарантированно лежало в структуре, его можно всегда записывать значением по умолчанию на сервере, либо сделать проверку наличия свойства на клиенте.
У динамического списка есть компоновщик настроек, а в компоновщике - есть настройки, а в настройках есть дополнительные свойства - это структура, в которую можно положить что-то в процедуре "ПриСозданииНаСервере" и без проблем забрать из процедуры "ПриОткрытии".
ПриСозданииНаСервере:
Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("Отображение",ОтображениеТаблицы.Список);
ПриОткрытии:
Элементы.Список.Отображение = Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Отображение;
Для того, чтобы свойство гарантированно лежало в структуре, его можно всегда записывать значением по умолчанию на сервере, либо сделать проверку наличия свойства на клиенте.
Здравствуйте!
Платформа: 8.3.21.1622
Сработал перевод в режим просмотра "Список" через свойство Параметры.ОтображениеТаблицы
Это свойство увидел среди предопределенных свойств у структуры "Параметры" в методе "ПриСозданииНаСервере"
Код:
ПараметрыФормы = Новый Структура("РежимВыбора",Истина);
ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ПараметрыФормы.Вставить("ОтображениеТаблицы", ОтображениеТаблицы.Список);
ОткрытьФорму(
"Справочник.Номенклатура.ФормаВыбора",
ПараметрыФормы,
Элементы.ВыбНоменклатура);
Платформа: 8.3.21.1622
Сработал перевод в режим просмотра "Список" через свойство Параметры.ОтображениеТаблицы
Это свойство увидел среди предопределенных свойств у структуры "Параметры" в методе "ПриСозданииНаСервере"
Код:
ПараметрыФормы = Новый Структура("РежимВыбора",Истина);
ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ПараметрыФормы.Вставить("ОтображениеТаблицы", ОтображениеТаблицы.Список);
ОткрытьФорму(
"Справочник.Номенклатура.ФормаВыбора",
ПараметрыФормы,
Элементы.ВыбНоменклатура);
(15) На 8.3.18.1334 такого свойства еще нет использовал такой прием:
ОбработчикВыбораПриЗакрытии = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтотОбъект, "Подбор");
ФормаОборудования = ОткрытьФорму("Справочник.SMG_ОборудованиеЦех.ФормаВыбора", НастройкиВыбораИзСписка, ЭтаФорма, , , , ОбработчикВыбораПриЗакрытии);
ФормаОборудования.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот