Программная установка режима просмотра списка

1. CyberRich 2 26.11.15 09:39 Сейчас в теме
Здравствуйте!

Нужно, чтобы при открытии формы выбора иерархического справочника из формы определенного документа, в поле списка всегда стоял режим отбора "Список". Из формы документа передаю параметр выбора, в событии ПриСозданииНаСервере формы выбора проверяю его, если он есть и значение Истина - ставлю Элементы.Список.Отображение = ОтображениеТаблицы.Список;

И все работает хорошо, пока пользователь вручную не изменит режим просмотра. Вот тогда моя программная установка режима просмотра перестает работать. Я так понимаю, пользовательская настройка приоритетнее программной.

Существует ли способ отключать пользовательские настройки в момент создания формы?
Dementor; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Boneman 298 26.11.15 09:47 Сейчас в теме
(1) CyberRich,
Я так понимаю, пользовательская настройка приоритетнее программной.

нет, просто, "ПриСозданийНаСервере" работает только один раз.
А вам надо процедуру проверки и установки запихать в какое то событие, которое будет вызываться при любом телодвижении пользователя.
Типа как обновить.
Возможно не одно событие, а в разные. Там надо уже более детально смотреть.
Если системных событий недостаточно для описаний задачи, то можно обработчик ожидания подключить.
3. CyberRich 2 26.11.15 10:19 Сейчас в теме
Устанавливать режим в реальном времени мне не нужно. Мне нужно, чтобы при каждом открытии формы с определенным параметром устанавливался режим отображения "Список" независимо от того, какое отображение выбирал пользователь в предыдущие разы. Как то так.
4. Boneman 298 26.11.15 10:27 Сейчас в теме
(3) CyberRich, странно конечно, поэкспериментировать сейчас не могу,
можно попробовать, тогда при закрытии формы, всегда устанавливать список. Тогда неважно что пользак в процессе устанавливал, когда форму закрывает хоть крестиком хоть кнопкой "ОК", программно устанавливается список, и даже если там какое то сохранение параметров есть, то оно и сохранит именно такой режим.
5. ЧерныйКот 26.11.15 10:29 Сейчас в теме
(3) CyberRich, ПриСозданииНаСервере при определенном значении параметра(чтоб именно с нужной формы открывалось без возможности сменить вариант отображения, а из остальных все работало как обычно)сделай остальные стандартные команды списка недоступными. т.е. оставь только "Список", а "ИерархическийСписок" и "Дерево" отключи. чтото типа того Элементы.СписокИерархическийСписок.Доступность = Ложь;
7. CyberRich 2 26.11.15 11:24 Сейчас в теме
(5) ЧерныйКот, так не получается.
6. dj_serega 392 26.11.15 10:43 Сейчас в теме
А при открытии нельзя изменить режим просмотра?
Логика следующая:
ПриСозданииНаСервере() - не смотрим
До ПриОткрытии() - считываются пользовательские значения
ПриОткрытии() - устанавливаем необходимый режим
user1826529; +1 Ответить
8. CyberRich 2 26.11.15 11:26 Сейчас в теме
(6) dj_serega, да, если использовать Элементы.Список.Отображение = ОтображениеТаблицы.Список; в событии ПриОткрытии, то режим устанавливается! Спасибо! Теперь буду думать, как с наименьшим гемором передавать в нее значение параметра выбора
9. CyberRich 2 26.11.15 12:00 Сейчас в теме
Сделал так: в событии ПриСозданииНаСервере() при присутствии соответствующего параметра выбора применяю нужные отборы, а в событии ПриОткрытии() перебираю ПараметрыВыбора у Владельца формы. Если найден нужный нам, устанавливаю режим просмотра. Мне не особо нравится, но работает. Очень странно и жаль, что ПриСозданииНаСервере() установка режима не "перебарывает" пользовательские настройки.
10. dj_serega 392 26.11.15 12:22 Сейчас в теме
(9) CyberRich,
Очень странно и жаль, что ПриСозданииНаСервере() установка режима не "перебарывает" пользовательские настройки.

а что тут странного. На сервере нет пользовательских настроек. Они считываются на клиенте. ПриСозданииНаСервере форма подготавливается. ПриОткрытии уже выполняется настройка отборов ДС и тд.
vladnest; dynamicsystems; _Sedoy; ЧерныйКот; +4 Ответить
11. ybatiaev 58 20.12.19 17:48 Сейчас в теме
Элементы.Список.Отображение = ОтображениеТаблицы.Список; //(или Дерево, или ИерархическийСписок)
user785234; dimisa; Teut_Vlad; vi329; Stylo; +5 Ответить
13. Stylo 25.08.21 11:03 Сейчас в теме
(11) Прекрасно работает в "при создании на сервере". Спасибо.
12. Sikh 12.05.21 15:33 Сейчас в теме
А как бы в управляемой форме редактируется в конфигураторе состав команд видимых пользователю, и собственно можно и запретить ему менять в данной форме режим просмотра с заданного программно или заданного в свойствах в конфигураторе.
14. kostaen 02.10.22 02:41 Сейчас в теме
(9) Можно проще сделать.
У динамического списка есть компоновщик настроек, а в компоновщике - есть настройки, а в настройках есть дополнительные свойства - это структура, в которую можно положить что-то в процедуре "ПриСозданииНаСервере" и без проблем забрать из процедуры "ПриОткрытии".

ПриСозданииНаСервере:

Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Вставить("Отображение",ОтображениеТаблицы.Список);

ПриОткрытии:

Элементы.Список.Отображение = Список.КомпоновщикНастроек.Настройки.ДополнительныеСвойства.Отображение;


Для того, чтобы свойство гарантированно лежало в структуре, его можно всегда записывать значением по умолчанию на сервере, либо сделать проверку наличия свойства на клиенте.
Nicholas; shima; +2 Ответить
15. isy 06.07.23 06:50 Сейчас в теме
Здравствуйте!

Платформа: 8.3.21.1622

Сработал перевод в режим просмотра "Список" через свойство Параметры.ОтображениеТаблицы

Это свойство увидел среди предопределенных свойств у структуры "Параметры" в методе "ПриСозданииНаСервере"

Код:
ПараметрыФормы = Новый Структура("РежимВыбора",Истина);
ПараметрыФормы.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
ПараметрыФормы.Вставить("ОтображениеТаблицы", ОтображениеТаблицы.Список);

ОткрытьФорму(
"Справочник.Номенклатура.ФормаВыбора",
ПараметрыФормы,
Элементы.ВыбНоменклатура);
Наг; Wolex; sergzero; Papilion; slknnk; +5 Ответить
16. lvictor58 135 13.09.23 14:27 Сейчас в теме
(15) На 8.3.18.1334 такого свойства еще нет использовал такой прием:
	ОбработчикВыбораПриЗакрытии = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтотОбъект, "Подбор");
	ФормаОборудования = ОткрытьФорму("Справочник.SMG_ОборудованиеЦех.ФормаВыбора", НастройкиВыбораИзСписка, ЭтаФорма, , , , ОбработчикВыбораПриЗакрытии);
	ФормаОборудования.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот