Вход | Регистрация


1С:Предприятие ::

Метки:

Как спозиционировать фокус на элемент справочника при интерактивном перемещ

Я
   2pac
 
17.08.04 - 21:32
Люди добрые! Поможите! Как спозиционировать фокус на элемент справочника при интерактивном перемещении курсора по элементам в форме списка и присвоить его значение переменной?
 
 
   Волшебник
 
1 - 17.08.04 - 21:36
Примерно так:
В модуле формы списка справочника:
Спр = СоздатьОбъект("Справочник."+Вид());
Спр.НайтиЭлемент(ТекущийЭлемент());

p.s. не тестировал.
   Guk
 
2 - 17.08.04 - 21:45
(0) А просто ТекщийЭлемент() уже не катит?...
   2pac
 
3 - 17.08.04 - 21:50
Просто ТекущийЭлемент() не катит, потому что его нет, пока его не спозиционируешь с помощью НайтиПоКоду и т.д. Но Кода или ещё чего у меня нет, так как я просто стрелками перемещаюсь по форме списка.
   2pac
 
4 - 17.08.04 - 21:56
Спр = СоздатьОбъект("Справочник."+Вид());
Если у меня Справочник.Люди то как будет выглядеть вышеописанная строка. Или где посмотреть синтаксис как создать объект Справочник с видом. У меня есть 2 тома описания языка, идут с дистрибутивом.
   Guk
 
5 - 17.08.04 - 22:10
(4) Попробуй эти 2 тома не просто иметь, а хотя бы почитать. Когда ты передвигаешься с помощью курсора, твой текущий элемент это как раз и есть ТекущийЭлемент(), как это ни банально...
Вот записать при присвоении, ты действительно не сможешь. Поэтому см. (1)...
   2pac
 
6 - 17.08.04 - 22:23
Спасибо всем! Заработало.
   Scarabey
7 - 19.08.04 - 14:34
вопрос по той же почти теме:
у меня в форме списка справочника для выбора есть кнопка, вызывающая обработку мастера заполнения реквизитов элемента.
установить курсор на введённый такой обработкой элемент - не вопрос, легко.
А фокус почему-то остаётся на кнопке!
Т.е. после отработки мастера его форма закрывается, перед пользователем висит форма выбора элемента справочника, в котором подсветка на нужной строке. Счастливый пользователь жмёт Enter, - и попадает опять в мастер ввода, потому что фокус так и остался на его кнопке вызова.
Как фокус-то переместить?
   Старина Z
 
8 - 19.08.04 - 14:38
(7)
Активизировать(<?>,);
Синтаксис:
Активизировать(<ИмяРеквизита>,<Режим>)
   Мулька
 
9 - 19.08.04 - 14:44
(5) ТекЭл=?(ТекущийЭлемент().Выбран=1,ТекущийЭлемент(),"");
тоже не покатит ?
   Scarabey
10 - 19.08.04 - 14:44
Активизировать - а как активизировать строку многострочной части формы списка?
 
  Рекламное место пустует
   GrayT
 
11 - 19.08.04 - 14:56
(10)Так же (фром 8). Любой реквизит справочника. Не забудь 0 приписать
   Scarabey
12 - 19.08.04 - 15:01
Так я и говорю, у меня в мастере есть такая строчка:
Конт.АктивизироватьОбъект(СпрКонтрагенты.ТекущийЭлемент());
А результат: после закрытия мастера эта строчка только ПОДСВЕЧИВАЕТСЯ, курсор на ней, похоже, установился. Но ФОКУС - нет. Он остался на кнопке вызова мастера. И если нажать Enter, происходит не выбор этого элемента, а опять открытие мастера!
   GrayT
 
13 - 19.08.04 - 15:06
Хм. Вроде понятно написал.
Конт.Активизировать("Наименование",0)
Где КОнт - форма списка справочника
   Scarabey
14 - 19.08.04 - 15:29
to (13):
сделал, как ты сказал:
Конт.АктивизироватьОбъект(СпрКонтрагенты.ТекущийЭлемент());
Конт.Активизировать("Наименование",0)
Результат:
Форма.Наименование.Активизировать();
{Справочник.Контрагенты.ФормаСписка.я_ФормаСписка.Модуль(347)}: Поле агрегатного объекта не обнаружено (Активизировать)
   GrayT
 
15 - 19.08.04 - 15:36
Конт.Активизировать("Наименование",0) - где вызывается?
   GrayT
 
16 - 19.08.04 - 15:42
В справочнике
ОткрытьФорму("Отчет", Контекст, КаталогИБ()+"ExtForms\Временный.ert");

В обработке
Процедура ПРиЗакрытии()
    Форма.Параметр.Активизировать("Наименование",0);
КонецПроцедуры//ПРиЗакрытии
   Scarabey
17 - 19.08.04 - 15:49
Форма.Параметр.Активизировать("Наименование",0);
{Обработка.я_ПомощникВводаКонтрагента.Форма.Модуль(358)}: Поле агрегатного объекта не обнаружено (Активизировать)
   GrayT
 
18 - 19.08.04 - 15:56
Код в 16 проверил.
Добился сообщения "Значение не представляет агрегатный объект (Активизировать)" когда закрыл форму списка прежде чем закрыть обработку.
Как контекст в обработку передавал, покажи вызов обработки по кнопке
   Scarabey
19 - 19.08.04 - 16:06
Процедура ВызватьПомощника()
    СЗ = СоздатьОбъект("СписокЗначений");
    СЗ.Установить("Конт", Контекст);
    СЗ.Установить("ВызовИзСправочника", 1);
    ОткрытьФорму("Обработка.я_ПомощникВводаКонтрагента",СЗ );
   //Активизировать("Наименование",0);

   //Форма.Наименование.Активизировать();

КонецПроцедуры
   GrayT
 
20 - 19.08.04 - 16:11
Номано. У тебя в параметр формы что передалось контекст или список значений? :)
Форма.Параметр.Получить("Контекст").Активизировать("Наименование",0);
   Scarabey
21 - 19.08.04 - 16:13
GrayT - всё-таки ты был прав, просто я, похоже, где-то забыл сохраниться;(
всё заработало!
В форме списка:
Процедура ВызватьПомощника()
    СЗ = СоздатьОбъект("СписокЗначений");
    СЗ.Установить("Конт", Контекст);
    СЗ.Установить("ВызовИзСправочника", 1);
    ОткрытьФорму("Обработка.я_ПомощникВводаКонтрагента",СЗ );
КонецПроцедуры 

в мастере:
        Если ПустоеЗначение(Форма.Параметр.Получить("Конт")) = 0 Тогда
            Конт = Форма.Параметр.Получить("Конт");
            если  Форма.Параметр.Получить("ВызовИзСправочника")=1 тогда
                Конт.АктивизироватьОбъект(СпрКонтрагенты.ТекущийЭлемент());
                Конт.Активизировать("Наименование",0);
            иначе
                Если ТипЗначения(Конт) = 100 Тогда
                    Конт.НоваяСтрока();
                    Конт.ПолучитьСтрокуПоНомеру(Конт.КоличествоСтрок());
                    Конт.Контрагент = СпрКонтрагенты.ТекущийЭлемент();
                    Если (ПустоеЗначение(Фамилия) = 0) или (ПустоеЗначение(Имя) = 0) или (ПустоеЗначение(Отчество) = 0) Тогда
                        Конт.КонтактноеЛицо = Спря_КонтактныеЛица.ТекущийЭлемент();
                    КонецЕсли;
                    Конт.ТипАбонента = Перечисление.я_ТипАбонента.Кому;
                    Конт.Форма.Обновить(1);
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
Спасибо!
   Shaytan
 
22 - 19.08.04 - 16:13
Как в (19), если коментарий убрать, не работает?
   GrayT
 
23 - 19.08.04 - 16:16
Пажалста.
"Ну ты это, заходи если что" © Жил-был пес ;)



Список тем форума
Рекламное место пустует   Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует