|
Тривиальная задача | ☑ | ||
---|---|---|---|---|
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
|
всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |