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

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

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

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

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

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

Функция НажалиНаКнопкуВВерх()
    Активизировать("ДатаДок",0);
    Клавиша = СоздатьОбъект("Wscript.Shell");
    Клавиша.SendKeys("{UP}");
КонецФункции
17 Arbuz
 
08.04.21
16:45
всё работает
АктивизироватьОбъект(Тек_Документ); // Тек_Документ - это документ на который надо установить фокус
Активизировать(Тек_Колонка, 0); // Активируем нужную колонку, Тек_Колонка - строка с именем идентификатора колонки
дальше эмулируй клаву, но имей ввиду, что нажатия обработаются только после того, как ВЕСЬ твой код выполнится.
18 victuan1
 
08.04.21
17:17
Не проще ли сразу использовать класс "ТабличноеПоле", чтобы потом все-таки всё не переделывать?
19 Cthulhu
 
08.04.21
23:47
(12),(13): ты бы хоть заглянул в синтакс-помощник и разобрался - что и зачем и как используется. а то несешь хрень какую-то причем на каком-то птичьем языке.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн