
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.2] |
![]() |
|
![]() |
Сообщ.
#1
,
|
|
Как программно можно убрать из панели функций текущего раздела что-то?
Я нашел код, который может добавлять\удалять сами разделы, а вот как работать с конкретным элементом раздела не сказано. ![]() ![]() На сервере: НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения; НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // Очистить настройки состава. НастройкиСостава.Верх.Очистить(); НастройкиСостава.Лево.Очистить(); НастройкиСостава.Низ.Очистить(); НастройкиСостава.Право.Очистить(); ПанельИнструментов = Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИнструментов"); НастройкиСостава.Лево.Добавить(ПанельИнструментов); // Загрузить настройки состава в пустой объект настроек. НастройкиИнтерфейса.УстановитьСостав( НастройкиСостава); // Положить объект настроек текущему пользователю в хранилище. ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса); На Клиенте: ОбновитьИнтерфейс(); Речь про интерфейс 8.3 |
![]() |
Сообщ.
#2
,
|
|
Кто-то знает? Мне нужно сделать некие настройки к базе, если галка стоит\не стоит, что-то из интерфейса удалятся\добавляется. Возможно есть какой-то другой путь.
|
![]() |
Сообщ.
#3
,
|
|
^D^ima, функциональные опции подойдут?
Для чего тебе это надо, опиши ситуацию подробнее. |
![]() |
Сообщ.
#4
,
|
|
Я сделал справочник, включил его в подсистему. Некоторым пользователям(у всех 1 роль) это справочник не нужен, я хочу его программно убрать из подсистемы, чтобы он не был виден им.
|
![]() |
Сообщ.
#5
,
|
|
^D^ima, как вариант завести еще одну роль именно для этих целей?
Добавлено Цитата ^D^ima @ Некоторым пользователям Это уже сигнал, что надо использовать роли. |
![]() |
Сообщ.
#6
,
|
|
kosten
Хорошо, как программно дать\удалить роль. Хотя для 1 справочника это как-то походит на костыль... ![]() |
![]() |
Сообщ.
#7
,
|
|
Цитата ^D^ima @ Хорошо, как программно дать\удалить роль. Ты хорошо подумал? Не должна эта задача решаться программно. |
![]() |
Сообщ.
#8
,
|
|
Есть справочник "сотрудники", связанный справочник к нему "Отдел". Есть опции в базе, при выставлении которых справочник "Проекты" виден или не виден в интерфейсе для конкретного отдела. Как это реализовать не программно? Да, саму роль я создам в конфигураторе, но потом привязка к ролям должна быть программная.
|
![]() |
Сообщ.
#9
,
|
|
Цитата ^D^ima @ привязка к ролям должна быть программная Почему??? Это в конфигураторе можно и нужно делать. |
![]() |
Сообщ.
#10
,
|
|
Так как я это привяжу с возможность программно менять настройки? Я поставил в базе галку, сотрудник зашел и увидел\ не увидел справочник.
|
![]() |
Сообщ.
#11
,
|
|
^D^ima, посмотри в синтаксис помощнике "Роли". Там покопаться надо, вроде было программное добавление ролей.
Добавлено ![]() ![]() Если НЕ ПользовательБД.Роли.Содержит(Метаданные.Роли.Найти("назначаемаяРоль")) Тогда ПользовательБД.Роли.Добавить(Метаданные.Роли.Найти("назначаемаяРоль")); ПользовательБД.Записать(); КонецЕсли; Но действовать начнет только после следующего входа пользователя в систему. |
Сообщ.
#12
,
|
|
|
^D^ima, сделай копию интерфейса с командой и без команды и программно переключай интерфейс целиком. Увы
![]() |
![]() |
Сообщ.
#13
,
|
|
Так было написано что можно программно менять
![]() |
Сообщ.
#14
,
|
|
|
К сожалению нет под рукой 8.3, а то бы поэкспериментировал
![]() |
![]() |
Сообщ.
#15
,
|
|
Цитата ^D^ima @ Есть опции в базе, при выставлении которых справочник "Проекты" виден или не виден в интерфейсе для конкретного отдела. Как это реализовать не программно? Если нужно чтобы справочник был просто скрыт из интерфейса - функциональные опции подойдут как нельзя кстати. Кода там вообще по минимуму будет. Могу накидать примерчик если нужно, или просто описать подробнее как сделать. |
![]() |
Сообщ.
#16
,
|
|
Цитата Rust @ Могу накидать примерчик если нужно, или просто описать подробнее как сделать. Если можно, или ссылку на пример, а то не хочется костыли делать на такой простой задаче. |
Сообщ.
#17
,
|
|
|
^D^ima эту возможность обещали в 8.3.6
|
![]() |
Сообщ.
#18
,
|
|
Outlander, ты не в курсе когда она выходит?
|
![]() |
Сообщ.
#19
,
|
|
Функциональные опции подошли как нельзя хорошо. Спасибо.
|
![]() |
Сообщ.
#20
,
|
|
Цитата ^D^ima @ Функциональные опции подошли как нельзя хорошо. Спасибо. Я тебе сразу про них написал ![]() |
![]() |
Сообщ.
#21
,
|
|
Я просто не знал что "функциональные опции" это объект конфигурации, а не абстрактное выражение.
При чем опции вычищают все упоминание того, что включено в их состав. Из справочников, документов, отчетов и даже из динамических списков. Фантастика. |
![]() |
Сообщ.
#22
,
|
|
Цитата ^D^ima @ Я просто не знал что "функциональные опции" это объект конфигурации, а не абстрактное выражение. ^D^ima, учи матчасть - оно окупится, не будешь велик изобретать. |
![]() |
Сообщ.
#23
,
|
|
Я прошел все курсы по программированию 1С которые были, там про это не говорилось)
|
![]() |
Сообщ.
#24
,
|
|
Цитата ^D^ima @ Я прошел все курсы по программированию 1С которые были, там про это не говорилось) Курсы от самой 1С вообще очень ограниченная штука. Построены по принципу "Hello world" для С++. Могу скинуть видео - Общие механизмы платформы. Про функциональные опции вырезал оттуда же. |
![]() |
Сообщ.
#25
,
|
|
Цитата Rust @ Могу скинуть видео - Общие механизмы платформы Кидай конечно ![]() |
![]() |
Сообщ.
#26
,
|
|
ок, как зальется на паблик - кину ссылку.
|
![]() |
Сообщ.
#27
,
|
|
^D^ima, какие на фиг курсы?
Книга Радченко - обязательна к изучению в первую очередь. Вот эта... Скрытый текст ![]() Добавлено Потом есть смысл изучить двухтомник "профессиональная разработка в системе 1С:Предприятие 8.2" |
Сообщ.
#28
,
|
|
|
Извеняюсь Эти функции уже есть...
![]() ![]() Процедура ВыполнитьНастройкуПанелей() Экспорт // Для примера будем менять настройки пользователя "не глядя" на то, что он себе настроил. // Создать пустой объект настроек. НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения; // С помощью пустого объекта настроек получить настройки состава, установленные в конфигураторе. НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // Очистить настройки состава. НастройкиСостава.Верх.Очистить(); НастройкиСостава.Лево.Очистить(); НастройкиСостава.Низ.Очистить(); НастройкиСостава.Право.Очистить(); // Заполнить своими панелями. // Для примера самый простой вариант: слева - панель инструментов. ПанельИнструментов = Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИнструментов"); НастройкиСостава.Лево.Добавить(ПанельИнструментов); // Загрузить настройки состава в пустой объект настроек. НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава); // Положить объект настроек текущему пользователю в хранилище. ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса); // Если же хотим менять настройки, которые установил пользователь себе, // тогда нужно прочитать его настройки из хранилища, и метод ПолучитьСостав() // вернёт не то, что в конфигураторе, а то, что пользователь установил себе. // // НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения"); // НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); // ... изменть настройки состава // НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава); // ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса); КонецПроцедуры |
![]() |
Сообщ.
#29
,
|
|
Outlander, я так понял, что задача была исключить конкретный пункт из меню(панели).
|
![]() |
Сообщ.
#30
,
|
|
Outlander
Я этот код вначале приводил. Мне нужно было конкретный элемент из панели функций искючить. |