Имя: Пароль:
1C
1С v8
УФ: как сделать такое поведение в таблице
,
0 AlStorm
 
31.07.12
11:27
Всем привет.
Дано: таблица на форме. В ней колонка "ПричинаСписания", тип составной: справочник и строка.

Как сделать такое поведение:
Ячейка имеет кнопку выбора для выбора из справочника, можно выбрать необходимое значение. Также можно ввести в ячейку произвольный текст. И все без выбора типа ячейки! То есть прозрачно для пользователя: либо используй подбор, либо вводи с клавы. Важно, чтобы также при вводе с клавиатуры появлялся стандартный список подбора справочника по первым символам.

Пользователи не хотят выбирать тип:(
1 SherifSP
 
31.07.12
11:33
Для этого есть типовые процедуры в общем модуле
2 SherifSP
 
31.07.12
11:34
Обработчики вешаешь на свою ячейку и проблемы решены
3 AlStorm
 
31.07.12
11:35
(2)
А конкретней можно?
Тут и дураку понятно, что надо обработчики вешать, только какие?
4 SherifSP
 
31.07.12
11:36
Процедура НачисленияСотрудникПриИзменении(Элемент)
   
   
   ДанныеСтроки = ЭлементыФормы.Начисления.ТекущиеДанные;
   ДанныеСтроки.ФизЛицо = Элемент.Значение.ФизЛицо;
   
   ВыбранноеЗначение = ПроцедурыУправленияПерсоналом.СведенияПоВыбранномуРаботнику(Элемент.Значение, "Работники");
   Если ВыбранноеЗначение <> Неопределено Тогда
       ДанныеСтроки.Подразделение = ВыбранноеЗначение.Подразделение;
   КонецЕсли;
   
КонецПроцедуры

Процедура НачисленияСотрудникНачалоВыбора(Элемент, СтандартнаяОбработка)
   
   ПроцедурыУправленияПерсоналом.ОткрытьФормуВыбораСотрудника(Элемент, Ссылка, Истина, Дата, СтандартнаяОбработка, Элемент.Значение);
   
КонецПроцедуры

Процедура НачисленияСотрудникОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   
   СведенияПоСотруднику = ПроцедурыУправленияПерсоналом.СведенияПоВыбранномуРаботнику(ВыбранноеЗначение, "Работники, УчетЗаработкаРаботников");
   Если СведенияПоСотруднику <> Неопределено Тогда
       ЭлементыФормы.Начисления.ТекущиеДанные.Подразделение = СведенияПоСотруднику.Подразделение;
   КонецЕсли;
   
КонецПроцедуры
5 SherifSP
 
31.07.12
11:38
(3)ПриИзменении, НачалоВыбора, ОбработкаВыбора и будит тебе счастье
6 AlStorm
 
31.07.12
11:40
Щас попробуй
7 AlStorm
 
31.07.12
11:40
*попробую
8 AlStorm
 
31.07.12
11:45
Блин, не выходит:( Какого типа изначально должна быть ячейка? Типа справочника?
Можно конкретный пример?
9 SherifSP
 
31.07.12
11:53
Сотрудник - Тип "СправочникСсылка.ФизЛица, Строка
10 AlStorm
 
31.07.12
11:55
(9)
Что за конфа?
11 SherifSP
 
31.07.12
12:03
(10)Упп 8.1
12 AlStorm
 
08.08.12
10:16
Подниму тему... Не получается у меня:( Я совсем тупой?
13 AlStorm
 
08.08.12
10:45
еще раз ап
14 AlStorm
 
08.08.12
12:06
Ну что, никто не знает? То, что в (4) для УФ не пашет(((
15 Lex_Liven
 
08.08.12
12:11
А если элемент в справочнике не найден, то данные хранятся, как строка?
16 undertaker
 
08.08.12
12:40
а если когда пользователи вручную вводят, например "Брак" и в справочнике есть такой элемент, то надо чтобы элемент из справочника подставлялся, или же строка оставалась?
17 undertaker
 
08.08.12
12:43
может быть так: пользователи вводят строку, после окончания ввода делаешь поиск по наименованию в справочнике "Причины списания", если найдет, то подставляешь элемент справочника и тип становится ссылка на справочник, если не найден, то оставляешь строку. То есть всегда изначально тип строка. Только как еще прикрутить выпадающий список....
18 AlStorm
 
08.08.12
13:58
(15)
Да

(16)(17)
Вариант, но в этом случае не будет работать быстрый поиск (это типа когда список выбора под полем появляется, когда несколько символов ввели)
19 olegves
 
08.08.12
14:14
(18) не фиг составной тип Ссылка+Строка использовать
Ссылка1+Ссылка2
или
Ссылка
20 AlStorm
 
08.08.12
14:17
(19)
Нипонял, какие Ваши предложения?
21 olegves
 
08.08.12
14:24
(20) Причины списания в справочник прописать, а строки не допускать
22 AlStorm
 
08.08.12
14:29
(21)
Не выход... Условия я описал, от них нельзя отступать
23 Ksandr
 
08.08.12
14:32
Через две ячейки, в одну вводить данные и обрабатывать событие выбор, в другой хранить.
24 AlStorm
 
08.08.12
14:38
(23)
Не подходит, в (18) написал почему
25 AlStorm
 
08.08.12
16:49
ап ап
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.