Имя: Пароль:
1C
1C 7.7
v7: ФормаСписка справочника: повесить две формулы на один элемент
,
0 Zhuravlik
 
19.03.13
09:24
Добрый день. Есть форма списка, в ней есть строковый реквизит, и реквизит справочника (тип "число"). В конфигураторе установлен режим редактирования "Обоими" способами.
Хочу отображать отредактированное наименование в этот строковый реквизит, и по щелчку на нем выполнять какое-либо действие (напр. открыть элемент), а по щелчку на реквизит - редактировать его в списке.
С ОбработкаВыбораСтроки - не могу открывать *строку* на редактирование (т.е. редактировать реквизит в списке). Без "ОбработкаВыбораСтроки" - не получается одновременно отображать наименование в текстовом реквизите, и обрабатывать событие по щелчку на нем.
Есть ли горячая клавиша для редактирования строки (ток не ентер конечно:) )? Или как это программно вызвать?
1 Zhuravlik
 
19.03.13
09:35
SHIFT + ENTER  - горячие клавиши, сращу не заметил в подсказке.
Как вот их еще эмулировать...
2 1Сергей
 
19.03.13
09:38
Кто-нибудь понял?
3 Масянька
 
19.03.13
09:38
(2) Честно - нет.
4 Ёпрст
 
19.03.13
09:41
(0)
Процедура ПриНачалеРедактированияСтроки()
      Сообщить(Форма.ТекущаяКолонка());
      //твои действия + СтатусВозврата(0) если надо
КонецПроцедуры
5 Zhuravlik
 
19.03.13
09:42
(2)(3) Нужно редактировать строку в форме списка по щелчку, с включенным "ОбработкаВыбораСтроки". Пробую эмулировать SHIFT+ENTER, но вот так:

       гСервис.ЭмулироватьКлавиатуру("{SHIFT}");
       гСервис.ЭмулироватьКлавиатуру("{ENTER}" ,1);
Строка открывается на редактирование, и тут же на редактирование закрывается. Т.е. как будто два раза нажали энтер на реквизите формы списка.
6 Zhuravlik
 
19.03.13
09:43
(4) С ОбработкаВыбораСтроки(1) - не работает.
7 Ёпрст
 
19.03.13
09:44
(6) она тебе не нужна
8 Ёпрст
 
19.03.13
09:46
если уж очень хочется, то так:

Процедура ПриВыбореСтроки()
   Активизировать(Форма.ТекущаяКолонка(),1);
КонецПроцедуры
Форма.ОбработкаВыбораСтроки(1);
9 Zhuravlik
 
19.03.13
09:49
(8) Попробую, но вот так уже взлетело:
гСервис.ЭмулироватьКлавиатуру("+{ENTER}");
10 Zhuravlik
 
19.03.13
09:50
(8) Получилось) Спасибо.
11 Zhuravlik
 
19.03.13
10:00
(4) Да, так лучше. Не думал, что это работает с строковым реквизитом, у него же доступность (0).
12 Zhuravlik
 
19.03.13
11:21
А подскажите пожалуйста, как открывать форму нового элемента при инсерте, с заданием текущего родителя?
Делаю так:

Процедура ПриВводеСтроки()
   
   Если Уровень() = 1 Тогда
       ОткрытьФорму("Элемент._ТТН_Направления",,,1);
   Иначе
       ОткрытьФорму("Элемент._ТТН_Направления",,Родитель);    
   КонецЕсли;
   
   СтатусВозврата(0);
   Возврат;
   
КонецПроцедуры


Но если в текущей группе нет элементов, то значение "Родитель" - пустое.
13 Zhuravlik
 
19.03.13
11:22
+ Справочник двухуровневый (может быть только один уровень групп)
14 Ёпрст
 
19.03.13
11:22
(12)
ОткрытьФорму("Элемент._ТТН_Направления",,ИспользоватьРодителя());
15 Zhuravlik
 
19.03.13
11:24
(14) Спасибо!
Ошибка? Это не ошибка, это системная функция.