Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Програмная активизация нужных строк (документов) журнала документов.

v7: Програмная активизация нужных строк (документов) журнала документов.
Я
   jah1111
 
07.04.21 - 10:28
Помогите кодом!
вот есть активный документ в журнале.
как переити, к примеру к следуеещему документу (строке жрунала) или к предидущему?

рою в сторону атрибута ТекущийДокумент и  метода АктивизироватьОбъект(<Объект>)
но что писать в скобках для описания предидущего или следуещего документа журнала?

все это надо для реализации на форме кнопок навигации по журналу
   Злопчинский
 
1 - 07.04.21 - 10:42
Эмулируй нажатие клавиши стрелка вверх/вниз
   HawkEye
 
2 - 07.04.21 - 11:11
(0) заполни таблицу значений документами по параметрам журнала, найди в ней текущий и возми следующий ))))))))
   jah1111
 
3 - 07.04.21 - 11:23
(1) если вот так то почему не взлетает?

Функция ПриВыбореЗначения(Об="") 
    Если 
        Об  = "" Тогда 
        Об = Форма.АктивныйЭлемент(); 
    КонецЕсли;//Об  = ""

 Если Об = "кнВверх" Тогда
     АктивизироватьОбъект(ТекущийДокумент);
      Клав = СоздатьОбъект("Wscript.Shell");
       Клав.SendKeys("{UP}");" 
 КонецЕсли;
КонецФункции
   jah1111
 
4 - 07.04.21 - 11:24
(2) Вас понял, хлопотно это, но если с эмуляцией не сложится  то попробую
   jah1111
 
5 - 07.04.21 - 11:40
(3) оно его активизирует, но фокус ввода не на документе..., а на кнопке по которой жмякаю...
   HawkEye
 
6 - 07.04.21 - 11:52
(4) ну так, все не нужное - хлопотно )))
(5) ну так переведи фокус на нужное тебе поле )))
   jah1111
 
7 - 07.04.21 - 12:45
(6)

   (5) ну так переведи фокус на нужное тебе поле )))
как перевести????????? я думал АктивизироватьОбъект() переводит фокус!!!!!
   Cthulhu
 
8 - 07.04.21 - 12:51
Активизировать() - активизирует реквизит
АктивизироватьОбъект() - активизирует объект в форме списка.
продам синтакс-помощник. дорого.
   Cthulhu
 
9 - 07.04.21 - 12:52
ЗЫ: если ругнется на "...нельзя использовать..." - гуглить "псевдо-закрытие формы".
   Злопчинский
 
10 - 07.04.21 - 13:17
ну и зачем скриптшелл? если эмуляция кбд есть в формексе
   Злопчинский
 
11 - 07.04.21 - 13:20
активизироватьОбъект();
Запустить формексом обработку ожидания на 50-100 мсек
в ОО - отключить ОО, сэмулировать клаву
   jah1111
 
12 - 07.04.21 - 13:21
(9) один ему хрен
   jah1111
 
13 - 07.04.21 - 13:25
Функция  вверх()
    
        Активизировать(ТекущийДокумент);
      Клав = СоздатьОбъект("Wscript.Shell");
        Клав.SendKeys("{UP}");
                                                
    КонецФункции

срабатывает также как и при АктивизироватьОбъект()
   HawkEye
 
14 - 07.04.21 - 13:32
(7) "табом" ты же умееешь программно кнопки нажимать )))
   jah1111
 
15 - 07.04.21 - 13:36
(14) оооохрєєєєєнєєєєть. это уже не костыль, это уже инв. коляска..
   Ёпрст
 
16 - 07.04.21 - 14:09
(3) в (0) пишешь по кнопке. в (3) в ПриНачалеВыбораЗначения..
ты определись уже, если что, по-кнопке в функции будет работать так, например:

Функция НажалиНаКнопкуВВерх()
    Активизировать("ДатаДок",0);
    Клавиша = СоздатьОбъект("Wscript.Shell");
    Клавиша.SendKeys("{UP}"); 
КонецФункции
   Arbuz
 
17 - 08.04.21 - 16:45
всё работает
АктивизироватьОбъект(Тек_Документ);// Тек_Документ - это документ на который надо установить фокус

Активизировать(Тек_Колонка, 0);// Активируем нужную колонку, Тек_Колонка - строка с именем идентификатора колонки
дальше эмулируй клаву, но имей ввиду, что нажатия обработаются только после того, как ВЕСЬ твой код выполнится.
   victuan1
 
18 - 08.04.21 - 17:17
Не проще ли сразу использовать класс "ТабличноеПоле", чтобы потом все-таки всё не переделывать?
   Cthulhu
 
19 - 08.04.21 - 23:47
(12),(13): ты бы хоть заглянул в синтакс-помощник и разобрался - что и зачем и как используется. а то несешь хрень какую-то причем на каком-то птичьем языке.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.