| 
    
        
     
     | 
    
  | 
v7: Выполнение процедуры привязать к событию | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Enlighted    
     03.05.15 
            ✎
    16:21 
 | 
         
        Знатоки. Добрый день. Подскажите пожалуйста такую вещь.
 
        На форме имеется поле со списком, как заставить некую процедуру выполняться если пользователь выбрал некое значение в этом списке?  | 
|||
| 
    1
    
        Torquader    
     03.05.15 
            ✎
    16:23 
 | 
         
        Семёрка стандартно выбранное "отдаёт" после перехода к другому полю, так что или фоновое обновление (флажок на форме) или читать, что умеет FormEx.     
         | 
|||
| 
    2
    
        ДенисЧ    
     03.05.15 
            ✎
    16:24 
 | 
         
        Блин, 7ку лень запускать...
 
        Смотри СП на предмет предопределенных процедур модуля формы. Там ПриВыборе или похожее по смыслу  | 
|||
| 
    3
    
        Cap_1977    
     03.05.15 
            ✎
    16:32 
 | 
         
        (0) При тыкании пользователя в список значений (либо в список значений с пометками) не происходи смена фокуса элемента. В результате фенкция прицепленная к списку не отрабатывает.
 
        Решение. Повесить на форму скрытое текстовое поле в котором прописать нужную процедуру. Она будет вызваться каждый раз когда пользователь что то ткнул куда то на форме. В ней отлавливать нужное сбытие. Подобное реализовато в типовой ТиС 9.2, например в форме документа реализация.  | 
|||
| 
    4
    
        Остап Сулейманович    
     03.05.15 
            ✎
    16:36 
 | 
         
        (2) ПриНачалеВыбораЗначения(). Хотя не всегда его можно примутить. Например если вставить свою колонку в табличную часть (ну кинуть туда текстовую колонку). Там просто не происходит выбор. Тогда нужно в ПриНачалеРедактированияСтроки() отлавливать АктивныйЭлемент().     
         | 
|||
| 
    5
    
        ChMikle    
     03.05.15 
            ✎
    17:22 
 | 
         
        обработкаподбора() , нет ?     
         | 
|||
| 
    6
    
        Enlighted    
     03.05.15 
            ✎
    18:21 
 | 
         
        (5) а разве эта процедура сработает с полем со списком?     
         | 
|||
| 
    7
    
        Enlighted    
     03.05.15 
            ✎
    18:40 
 | 
         
        Поле со списком называется "ВыборСМС"
 
        Процедура ОбработкаПодбора(ВыборСМС) Сообщить("ну началось"); КОнецПроцедуры Не срабатывает процедура при выборе значения в поле  | 
|||
| 
    8
    
        Cap_1977    
     03.05.15 
            ✎
    18:44 
 | 
         
        Процедура Алерт()
 
        Если Форма.АктивныйЭлемент() = "ВыборСМС" Тогда Сообщить("ну началось"); КонецЕсли; КонецПроцдеуры На форму текстовое поле. Алерт в формулу этого текстового поля.  | 
|||
| 
    9
    
        Zamestas    
     03.05.15 
            ✎
    18:45 
 | 
         
        (8) +1     
         | 
|||
| 
    10
    
        Enlighted    
     03.05.15 
            ✎
    19:38 
 | 
         
        Алерт переменная не определена. Походу её надо добавить в реквизиты?     
         | 
|||
| 
    11
    
        Enlighted    
     03.05.15 
            ✎
    19:39 
 | 
         
        добавляю скобки в формулу Алерт()
 
        говорит процедура вызывается как функция  | 
|||
| 
    12
    
        Garykom    
     гуру 
    03.05.15 
            ✎
    19:40 
 | 
         
        (11) ну сделай функцией без возврата значения     
         | 
|||
| 
    13
    
        Garykom    
     гуру 
    03.05.15 
            ✎
    19:41 
 | 
         
        (12)+ и этот вспомогательный текстовый элемент за пределы формы чтобы его не видно или на отдельный слой     
         | 
|||
| 
    14
    
        ChMikle    
     03.05.15 
            ✎
    20:39 
 | 
         
        не правильно вопрос понял, думал ты из справочника в списокзначений добавляешь     
         | 
|||
| 
    15
    
        ChMikle    
     03.05.15 
            ✎
    20:40 
 | 
         
        тогда функцию засовывай в вызов на форме списка на второй закладке     
         | 
|||
| 
    16
    
        Enlighted    
     03.05.15 
            ✎
    21:18 
 | 
         
        (14) Да изначально я добавляю из справочника значения в список значений таким способом.
 
        СправочникСМС = СоздатьОбъект("Справочник.СМС"); СправочникСМС.ВыбратьЭлементы(); сч = 1; ; Пока СправочникСМС.ПолучитьЭлемент() = 1 Цикл ВыборСМС.ДобавитьЗначение(сч, СправочникСМС.наименование); сч = сч + 1; КонецЦикла; А потом когда пользователь в списке выбирает нужное значение, другое текстовое поле на форме должно принят соответствуюее этому значению текст. Вот я и хочу чтобы когда юзер тыкнул по полю со списком событие присвоения сработало.  | 
|||
| 
    17
    
        ChMikle    
     03.05.15 
            ✎
    21:48 
 | 
         
        смотри, в списке на форме можно вставить любую процедуру , которая будет исполняться после выбора значния в списке. Дважды кликнешь и на второй закладке, если память не изменяет     
         | 
|||
| 
    18
    
        Enlighted    
     03.05.15 
            ✎
    22:08 
 | 
         
        (17) ИИИИессть спасибо.     
         | 
|||
| 
    19
    
        ChMikle    
     03.05.15 
            ✎
    22:16 
 | 
         
        (18) да не за что :)     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |