На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Программно изменить интерфейс "Такси".
    Как программно можно убрать из панели функций текущего раздела что-то?
    Я нашел код, который может добавлять\удалять сами разделы, а вот как работать с конкретным элементом раздела не сказано.

    ExpandedWrap disabled
      На сервере:
       НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
       НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав();
       
      // Очистить настройки состава.
        НастройкиСостава.Верх.Очистить();
        НастройкиСостава.Лево.Очистить();
        НастройкиСостава.Низ.Очистить();
        НастройкиСостава.Право.Очистить();
          
       
          
        ПанельИнструментов = Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИнструментов");
        НастройкиСостава.Лево.Добавить(ПанельИнструментов);
       
      // Загрузить настройки состава в пустой объект настроек.
        НастройкиИнтерфейса.УстановитьСостав( НастройкиСостава);
          
      // Положить объект настроек текущему пользователю в хранилище.
        ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса);
       
       
      На Клиенте:
      ОбновитьИнтерфейс();


    Речь про интерфейс 8.3
      Кто-то знает? Мне нужно сделать некие настройки к базе, если галка стоит\не стоит, что-то из интерфейса удалятся\добавляется. Возможно есть какой-то другой путь.
        ^D^ima, функциональные опции подойдут?
        Для чего тебе это надо, опиши ситуацию подробнее.
          Я сделал справочник, включил его в подсистему. Некоторым пользователям(у всех 1 роль) это справочник не нужен, я хочу его программно убрать из подсистемы, чтобы он не был виден им.
            ^D^ima, как вариант завести еще одну роль именно для этих целей?

            Добавлено
            Цитата ^D^ima @
            Некоторым пользователям

            Это уже сигнал, что надо использовать роли.
              kosten
              Хорошо, как программно дать\удалить роль.

              Хотя для 1 справочника это как-то походит на костыль... :(
                Цитата ^D^ima @
                Хорошо, как программно дать\удалить роль.

                Ты хорошо подумал?
                Не должна эта задача решаться программно.
                  Есть справочник "сотрудники", связанный справочник к нему "Отдел". Есть опции в базе, при выставлении которых справочник "Проекты" виден или не виден в интерфейсе для конкретного отдела. Как это реализовать не программно? Да, саму роль я создам в конфигураторе, но потом привязка к ролям должна быть программная.
                    Цитата ^D^ima @
                    привязка к ролям должна быть программная

                    Почему???
                    Это в конфигураторе можно и нужно делать.
                      Так как я это привяжу с возможность программно менять настройки? Я поставил в базе галку, сотрудник зашел и увидел\ не увидел справочник.
                      Сообщение отредактировано: ^D^ima -
                        ^D^ima, посмотри в синтаксис помощнике "Роли". Там покопаться надо, вроде было программное добавление ролей.

                        Добавлено
                        ExpandedWrap disabled
                          Если НЕ ПользовательБД.Роли.Содержит(Метаданные.Роли.Найти("назначаемаяРоль")) Тогда
                             ПользовательБД.Роли.Добавить(Метаданные.Роли.Найти("назначаемаяРоль"));
                             ПользовательБД.Записать();
                           КонецЕсли;

                        Но действовать начнет только после следующего входа пользователя в систему.
                          ^D^ima, сделай копию интерфейса с командой и без команды и программно переключай интерфейс целиком. Увы :(
                            Так было написано что можно программно менять :(
                              К сожалению нет под рукой 8.3, а то бы поэкспериментировал :( До сих пор на 8.2 сижу.
                                Цитата ^D^ima @
                                Есть опции в базе, при выставлении которых справочник "Проекты" виден или не виден в интерфейсе для конкретного отдела. Как это реализовать не программно?

                                Если нужно чтобы справочник был просто скрыт из интерфейса - функциональные опции подойдут как нельзя кстати. Кода там вообще по минимуму будет. Могу накидать примерчик если нужно, или просто описать подробнее как сделать.
                                Сообщение отредактировано: Rust -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0639 ]   [ 14 queries used ]   [ Generated: 18.07.25, 00:25 GMT ]