|   |   | 
| 
 | Команды управляемого интерфейса 8.2 | ☑ | ||
|---|---|---|---|---|
| 0
    
        UncleVader 24.05.12✎ 21:01 | 
        Всем Ку!
  Сел разбираться (как всегда на ходу :) с тонкостями незнакомого мне механизма, а именно с вызовом команд управляемого интерфейса. ... и сразу наткнулся на потребность иметь параметризированную общую команду с параметром типа "УправляемаяФорма" или "ДанныеФормыСтруктура". Например хочу сделать свой диалог выбора некоего периода, и добавить функцию его вызова на панель списка документов. Привязывать такую команду к объекту(ссылке) документа неправильно, т.к. данной команды не должно быть видно в форме документа, а только в списке. Есть и еще почему нельзя... Отсюда у меня возникло жгучее желание привязать команду к любой форме, чтобы в ее (команды) параметр передавалась ссылка на вызвавшую форму со всеми вытекающими ,) Мне понятно что разрабы это не заложили, поэтому мне приходится добавлять локальную команду даже не объекта, а для формы, и делать в ней какие-то телодвижения. Или я недознакомился с возможностями чудо-интерфейса или другого пути нет. !? | |||
| 1
    
        DrShad 24.05.12✎ 21:49 | 
        недоознакомился видимо, да и как бы поздно начал знакомиться     | |||
| 2
    
        UncleVader 25.05.12✎ 10:54 | 
        (1) а по делу?     | |||
| 3
    
        UncleVader 25.05.12✎ 12:50 | 
        Что никто не подскажет другой путь? ((     | |||
| 4
    
        gosn1ck 25.05.12✎ 12:54 | 
        сделай общую команду, в чем проблема?     | |||
| 5
    
        UncleVader 25.05.12✎ 15:40 | 
        (4) Проблема в том что я не знаю как в нее передать контекст вызывающей формы чтобы потом установить в ней период списка и его обновить     | |||
| 6
    
        UncleVader 25.05.12✎ 15:41 | 
        (4) и еще, какую группу указать общей команде? Делать ее параметризированной нельзя!     | |||
| 7
    
        На стороне добра 25.05.12✎ 16:38 | 
        (0) Делаешь общую команду, привязываешь её к "Командная панель формы.Важное", в качестве типа параметра команды указываешь ссылку на документ. В форме документа, в командном интерфейсе снимаешь видимость этой команды. А в списке она остается. В модуле команды вызываешь свою форму.     | |||
| 8
    
        UncleVader 25.05.12✎ 16:46 | 
        (7) пробовал, так нельзя - если список документов будет пуст, то команда не выполнится на системном уровне, платформа ругнется что нельзя выполнять команду с пустым параметром, ну как-то так     | |||
| 9
    
        Юрий Лазаренко 25.05.12✎ 16:48 | 
        (8) Добавь локальную команду в форму списка, там можно будет отловить момент отсутствия документов в списке.     | |||
| 10
    
        На стороне добра 25.05.12✎ 16:49 | 
        Посмотри в УТ 11 "Дополнительные сведения". Это кажется аналог Свойств и категорий. В общем там в качестве параметра указываются ссылки. 
  в (8) правильно говорит | |||
| 11
    
        UncleVader 25.05.12✎ 16:51 | 
        (9) так и делаю, но мне не нравится - в каждой форме надо иметь код этой команды, а я так не хочу
  (10) пойду посмотрю... | |||
| 12
    
        UncleVader 25.05.12✎ 22:35 | 
        ... посмотрел.
  Есть общая команда "ДополнительныеСведения", привязанная к ссылкам на некоторые объекты, в т.ч. документы и справочники, но в самих формах объектов и списков видимость этой команды выключена, т.е. не применяется. Таким образом вопрос остается нерешенным - как из пустого списка вызвать общую параметризированную команду? | |||
| 13
    
        Юрий Лазаренко 26.05.12✎ 11:25 | 
        (11) Зачем иметь код в каждой форме? Вызывай код в общем модуле. Тебе в любом случае придется извращаться, например делать кнопку вызова общей команды невидимой или недоступной, если список пуст. Проще уж добавить локальную команду на форму.     | |||
| 14
    
        UncleVader 26.05.12✎ 11:40 | 
        (13) Так и делаю, добавляю команду в каждую форму и назначаю ей вот такой код, а хотелось иметь один код
  &НаКлиенте Процедура ВыбратьПериод(Команда) Если ОбщиеФункцииНаКлиенте.ВыбратьПериод(Элементы.Список.Период.ДатаНачала,Элементы.Список.Период.ДатаОкончания) Тогда Элементы.Список.Обновить(); КонецЕсли; КонецПроцедуры | |||
| 15
    
        Юрий Лазаренко 26.05.12✎ 18:08 | 
        (14) Я наверно что-то недопонял. У тебя и так будет один код во всех процедурах всех форм, если у всех списков с документами (элементов формы) будет одно имя - "Список".
  Если ты имеешь в виду, что не хотелось бы вносить изменения в код каждой формы, то ИМХО такой вариант не сработает, будет выдаваться ошибка, если список пуст. | |||
| 16
    
        Юрий Лазаренко 26.05.12✎ 18:14 | 
        +(15) Хотя почему бы не попробовать. Если для команды не задать свойство "Тип параметра команды", то ее можно будет поместить на любую форму со списком, при этом она не будет привязана к этому списку и даже если он будет пустой, то команда все равно сработает. Затем в коде команды можно отловить список:
  ПараметрыВыполненияКоманды.Источник.Элементы.Список Из него получить период: ПараметрыВыполненияКоманды.Источник.Элементы.Список.Период Как-то так. | |||
| 17
    
        UncleVader 26.05.12✎ 18:31 | 
        (15) именно из-за ошибки пустого списка я отказался от этой идеи
  (16) Вот оно ,)) спасибо, главное правильно выбрать группу, поместить в какую-то подсистему и оттуда перетащить на форму из глобальных независимых команд! | |||
| 18
    
        Юрий Лазаренко 26.05.12✎ 18:41 | 
        (17) Нема за що ))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |