| 
    
            
         
         | 
    
  | 
v7: предустановленный реквизит при открытии диалога | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        maestro-72    
     07.12.11 
            ✎
    09:36 
 | 
         
        Имею на форме текстовое поле и поле для выбора элемента справочника, условие такое, если введенная информация найдена в реквизитах справочника то в поле выбора подставляется этот элемент, если не найдена то открывается форма выбора элемента. Как правило если информация не найдена то оператор добавляет новый элемент в справочник, при этом ему приходится вводить информацию из текстового поля и нередко ошибается. Хотел сделать чтобы при открытии диалога инфа из текстового поля уже ставилась в новый элемент справочника. Ничего не получилось. Не знаю как передать информацию. Форма для подбора открывается безо всякого дополнительного кода если информация в справочнике не найдена. Может кто уже использовал такое, поделитесь мыслью...     
         | 
|||
| 
    1
    
        povar    
     07.12.11 
            ✎
    09:38 
 | 
         
        "Хотел сделать чтобы при открытии диалога инфа из текстового поля уже ставилась в новый элемент справочника. Ничего не получилось"
  
        покажи как хотел  | 
|||
| 
    2
    
        ДенисЧ    
     07.12.11 
            ✎
    09:38 
 | 
         
        Капитан Очевидность подсказывает, что нужно программно открывать форму подбора с передачей нужных параметров...     
         | 
|||
| 
    3
    
        maestro-72    
     07.12.11 
            ✎
    09:49 
 | 
         
        Да я пробовал программно, всё там здорово, только она не закрывается при достижении и вводе последней колонки вводом. Форму открывать программно нет события которое ее закрывало бы при нажатии в последней колонке ввода. Как то коряво объяснил...     
         | 
|||
| 
    4
    
        ДенисЧ    
     07.12.11 
            ✎
    09:51 
 | 
         
        да уж... Нормальным объяснением тут и не пахнет...     
         | 
|||
| 
    5
    
        Песец    
     07.12.11 
            ✎
    09:51 
 | 
         
        (0) В ПриНачалеВыбораЗначения поискать что тебе надо, если не нашел открывать форму выбора.     
         | 
|||
| 
    6
    
        Rie    
     07.12.11 
            ✎
    09:57 
 | 
         
        (3) Угу, коряво. У тебя редактирование - в форме списка справочника?     
         | 
|||
| 
    7
    
        maestro-72    
     07.12.11 
            ✎
    09:57 
 | 
         
        Оператор при открытии диалога выбора элемента справочника понимает что искомая информация не была найдена и создает новый элемент. При вводе очередного реквизита в форме списка курсор перескакивает на следующую колонку, это очень удобно, по достижении последней колонки и вводе значения форма закрывается и этот элемент справочника появляется в реквизите вызывающей формы     
         | 
|||
| 
    8
    
        maestro-72    
     07.12.11 
            ✎
    09:58 
 | 
         
        В случае программного открытия формы с передачей параметра так не получается     
         | 
|||
| 
    9
    
        maestro-72    
     07.12.11 
            ✎
    09:59 
 | 
         
        Форма выбора почемуто не закрывается при нажатии ввода в последней колонке     
         | 
|||
| 
    10
    
        Rie    
     07.12.11 
            ✎
    10:04 
 | 
         
        (8) Покажи, как делаешь.     
         | 
|||
| 
    11
    
        maestro-72    
     07.12.11 
            ✎
    10:07 
 | 
         
        в текстовом поле прописана процедура которая находит элемент справочника
  
        Если нашла - подставляет значение в поле выбора элемента и диалог не открывается. если не нашла, то процедура завершается, следующим просто открывается диалог для выбора... Как при нажатии на педалку срабатывает  | 
|||
| 
    12
    
        maestro-72    
     07.12.11 
            ✎
    10:08 
 | 
         
        В модуле формы из которой элемент выбирается ничего не прописано     
         | 
|||
| 
    13
    
        Rie    
     07.12.11 
            ✎
    10:12 
 | 
         
        (11) Так а как передаёшь информацию в форму выбора? (или что имелось в виду под "не получается"?).
  
        Может, имеет смысл обратить внимание на методы формы РежимВыбора, ОбработкаВыбораСтроки и ВыполнитьВыбор?  | 
|||
| 
    14
    
        maestro-72    
     07.12.11 
            ✎
    10:15 
 | 
         
        В ощем надо закрыть эту форму при окончании ввода последней колонки если вводится новый элемент справочника с передачей этого элемента в диалог выбора. Это и не получается.     
         | 
|||
| 
    15
    
        Rie    
     07.12.11 
            ✎
    10:18 
 | 
         
        (14) Форма.Закрыть() - не поможет?
  
        Ну и так, для профилактики - покажи код. А то постов уже много, а что обсуждаем-то - до сих пор непонятно.  | 
|||
| 
    16
    
        maestro-72    
     07.12.11 
            ✎
    10:18 
 | 
         
        Когда я открываю форму для выбора сам программно, и передаю ей параметр, всё хорошо но она не закрывается и элемент не выбирается, а на эти процедуры внимание действительно надо обратить и я уже эксперементировал с ними, но чтото ничего не получилось из желаемого. как отловить событие что последняя колонка заполнена?     
         | 
|||
| 
    17
    
        Ёпрст    
     гуру 
    07.12.11 
            ✎
    10:19 
 | 
         
        ёпта, открытьФорму, через контекст открытой формы нового элемента справочника передать всё что угодно     
         | 
|||
| 
    18
    
        Rie    
     07.12.11 
            ✎
    10:20 
 | 
         
        (16) Тут дело не в бобине...
  
        Форма с переданным параметром ведёт себя точно также, как и форма без передачи ей параметра - если потом с этим параметром ничего не делать. А код ты почему-то прячешь.  | 
|||
| 
    19
    
        maestro-72    
     07.12.11 
            ✎
    10:24 
 | 
         
        А какой код показать? 
  
        Процедура ПриОткрытии() Если ТипЗначенияСтр(форма.Параметр) = "СписокЗначений" Тогда Серт = Форма.Параметр.Получить("Серт"); Если ПустоеЗначение(Серт) = 0 Тогда Новый(); Сертификат = Серт; Активизировать("Наименование",1); КонецЕсли; КонецЕсли; КонецПроцедуры Вот примерно так, базы под рукой нет. Но больше там ничего не прописано... никаких процедур. При открытии это я прописал, а то и этого небыло... и все работало как описано выше...  | 
|||
| 
    20
    
        maestro-72    
     07.12.11 
            ✎
    10:26 
 | 
         
        Можно при закрытии записать - Записать(). А как она закроется?     
         | 
|||
| 
    21
    
        Rie    
     07.12.11 
            ✎
    10:28 
 | 
         
        (20) Форма.Закрыть() её закроет.     
         | 
|||
| 
    22
    
        maestro-72    
     07.12.11 
            ✎
    10:30 
 | 
         
        Ладно, еще попробую, Если не будет получаться напишу что делал, может еще мысли появятся...     
         | 
|||
| 
    23
    
        maestro-72    
     07.12.11 
            ✎
    10:31 
 | 
         
        Пока мне понравилось - "ведет себя точно также" Это и будем исследовать.     
         | 
|||
| 
    24
    
        maestro-72    
     08.12.11 
            ✎
    15:23 
 | 
         
        В общем кому интересно, решение проблемы вылилось в это:
  
        Перем СерияФ; Перем Параметры; Процедура ПриОткрытии() Параметры = Форма.Параметр; Если ТипЗначенияСтр(Параметры) = "СписокЗначений" Тогда СерияФ = Параметры.Получить("Серия"); ВладелецФ = Параметры.Получить("Владелец"); ИспользоватьВладельца(ВладелецФ); КонецЕсли; КонецПроцедуры Процедура ПриРедактированииНовойСтроки() Серия = СерияФ; Активизировать("Наименование", 1); КонецПроцедуры Процедура ПриЗаписи() Форма.Закрыть(); КонецПроцедуры Процедура ПриЗакрытии() Если ПустоеЗначение(Параметры) = 0 Тогда Форма.Параметр.Установить("Сертификат",ТекущийЭлемент()); КонецЕсли; КонецПроцедуры  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |