|   |   | 
| 
 | Тривиальная задача | ☑ | ||
|---|---|---|---|---|
| 0
    
        Doman26 25.08.11✎ 12:33 | 
        Есть поле на форме связанное с реквизитом типа справочника, хочется чтобы при выборе в тексте поля появлялось не представление справочника а кое какое изменение этого справочника
  Процедура МеханикОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) ЭлементыФормы.Механик.Значение = Контрагенты.ФИО(ВыбранноеЗначение); КонецПроцедуры выводит тоже представление, как быть? | |||
| 1
    
        Doman26 25.08.11✎ 12:34 | 
        изменение не справочника а его представление     | |||
| 2
    
        Живой Ископаемый 25.08.11✎ 12:35 | 
        наврал, что задача тривиальная...     | |||
| 3
    
        Mort 25.08.11✎ 12:35 | 
        Элемент формы не привязывать к данным и вручную обрабатывать необходимые события.     | |||
| 4
    
        Mort 25.08.11✎ 12:35 | 
        На самом деле всё не сложно.     | |||
| 5
    
        Шапокляк 25.08.11✎ 12:36 | 
        Может, не изменение, а реквизит?  А  по сабжу - список для выбора надо формировать.     | |||
| 6
    
        Mort 25.08.11✎ 12:37 | 
        А обладая некоторыми навыками, даже типовые функции не придется изменять.     | |||
| 7
    
        Doman26 25.08.11✎ 12:38 | 
        (3) т е при изменение открывать список справочника потом при выборе присваивать реквизиту объекта выбранное значение, а в поле ткста соответствующую строку?     | |||
| 8
    
        Doman26 25.08.11✎ 12:38 | 
        (6) подскажите     | |||
| 9
    
        Mort 25.08.11✎ 12:39 | 
        (7) При начале выбора. И еще ПриИзмененииДанных перечитывать в поле значение реквизита.     | |||
| 10
    
        Mort 25.08.11✎ 12:42 | 
        (8) Ну, например, если уже есть типовая функция ПриИзмененииДанных (хотя даже в типовых иногда "грешат" и косвенные значения читают в "ПриОткрытии") и не хочется её менять, можно в модуле формы переназначить событие формы на свою функцию, которая вызывает типовую функцию и выполняет свои действия. Но это в редких случаях может оказаться полезным.     | |||
| 11
    
        Doman26 25.08.11✎ 12:47 | 
        (10) ка к это приблизительно будет выглядеть?     | |||
| 12
    
        Mort 25.08.11✎ 12:56 | 
        (11) Это никак не относится к задаче (0), но если интересно, вот "перегрузка" ПриОткрытии():
  Процедура МояПриОткрытии() ПриОткрытии(); Сообщить("Здрассте!"); КонецПроцедуры ЭтаФорма.УстановитьДействие("ПриОткрытии", новый Действие("МояПриОткрытии")); | |||
| 13
    
        Doman26 25.08.11✎ 13:08 | 
        все же я не понял как решить мою задачу, отсоеденил от данных,
  Процедура МеханикНачалоВыбора(Элемент, СтандартнаяОбработка) Справочники.Сотрудники.ПолучитьФормуВыбора().Открыть(); КонецПроцедуры Процедура МеханикОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Механик = ВыбранноеЗначение; Элемент.Значение = Контрагенты.Фио(Механик); КонецПроцедуры пустое значение! что не сделал? | |||
| 14
    
        shuhard 25.08.11✎ 13:10 | 
        (13) а мы не поняли твою задачу,
  пример приведи что за [а кое какое изменение этого справочника ] | |||
| 15
    
        Doman26 25.08.11✎ 13:14 | 
        (14) ну там вместо представления, должна строка возвращаться из функции над этим представлением 
  Элемент.Значение = Контрагенты.Фио(Механик); | |||
| 16
    
        shuhard 25.08.11✎ 13:16 | 
        (15) а тип у контрагента и механика одинаковый ?     | |||
| 17
    
        Mort 25.08.11✎ 13:17 | 
        (13) Тип строковой не забыл задать для отвязанного элемента?     | |||
| 18
    
        Doman26 25.08.11✎ 13:24 | 
        (16) это Контрагент сдесь не причем , это глобальная функция и она работает
  (17) когда строковый пустое значение | |||
| 19
    
        Doman26 25.08.11✎ 13:25 | 
        даже не заходит в обработку выбора     | |||
| 20
    
        Doman26 25.08.11✎ 13:30 | 
        почему когда строка, не заходит даже в обработку выбора?     | |||
| 21
    
        shuhard 25.08.11✎ 13:32 | 
        (20) потому что ты забыл сделать рядом кнопку и подложить под неё код     | |||
| 22
    
        Doman26 25.08.11✎ 13:36 | 
        (21) гляди, я кнопку поставил(стандартную выбора) в обработке открыл форму(выбора справочника), но при выборе из формы он не понимает что надо заходить в обработку выбора (Логично так как тип строка а не справочник), так вот как заставить ее понимать этот выбор из формывыбора?     | |||
| 23
    
        Doman26 25.08.11✎ 13:39 | 
        какие свойства формывыбора отвечают за выбранное значение?     | |||
| 24
    
        shuhard 25.08.11✎ 13:40 | 
        (23) логично вернуться в начало пути и понять что хранит реквизит и что в нём должно отображаться     | |||
| 25
    
        catena 25.08.11✎ 13:42 | 
        На форме поле выбора с типом того реквизита, который будем отображать (у меня дата)
  НачалоВыбора---> Процедура ФизлицоНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка=Ложь; СпрФЛ = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(); СпрФЛ.НачальноеЗначениеВыбора = Справочники.ФизическиеЛица.ПустаяСсылка(); СпрФЛ.РежимВыбора = Истина; Значение = СпрФЛ.ОткрытьМодально(); Если Значение<>Неопределено Тогда Физлицо = Значение.ДатаРождения; КонецЕсли; КонецПроцедуры | |||
| 26
    
        Doman26 25.08.11✎ 13:53 | 
        все оказалось проще
  Процедура МеханикНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Форма = Справочники.Сотрудники.ПолучитьФормуВыбора(, Элемент); Форма.ОТкрыть(); КонецПроцедуры Процедура МеханикОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Механик = ВыбранноеЗначение; Элемент.Значение = Контрагенты.Фио(Механик); КонецПроцедуры | |||
| 27
    
        Doman26 25.08.11✎ 13:54 | 
        всем спасибо     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |